VyOS CLIガイド:プロフェッショナルな仮想ルーターを一から構築する

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

VyOSによるネットワークコアの仮想化

ネットワーク構築は、往々にして困難な選択を迫られます。Ciscoのようなベンダーの高価で柔軟性に欠ける専用ハードウェアに数千ドルを投じるか、あるいは週末を潰して断片的なLinuxスクリプトやiptablesと格闘するかです。標準的なLinuxサーバーでもパケットのルーティングは可能ですが、大規模な管理はメンテナンスの悪夢と化します。設定を一元的に確認する方法がなく、手動コマンドでの一歩のミスが接続全体を遮断させるリスクもあります。

VyOSはその中間を埋める最適な選択肢です。これはオープンソースのネットワークOS(NOS)であり、堅牢なDebianをベースに、JuniperのJunosに強く影響を受けた統合コマンドラインインターフェース(CLI)を提供します。軽量なVMや古いベアメタルサーバーを、高性能なルーターへと変身させることができます。本番環境では、VyOSが控えめなハードウェアで10Gbpsのスループットを処理する場面も見てきました。ベンダーロックインを避けたいクラウドアーキテクトにとって、頼れる選択肢となっています。

クイックスタート(5分):初期設定

VMware、Proxmox、またはKVMでVyOSのISOを起動した後、ローカルディスクにインストールする必要があります。VyOSはデュアルモードのCLIを採用しています。モニタリング用のオペレーショナルモード$で表示)から開始し、設定変更のためにコンフィグレーションモード#で表示)に切り替えます。

# OSを仮想ドライブにインストールする
install image

# コンフィグレーションモードに入る
configure

# 基本設定
set system host-name 'Core-Router-01'
set system domain-name 'itfromzero.local'
set system login user vyos authentication plaintext-password 'YourSecurePassword'

# リモートアクセス用にSSHを有効化
set service ssh port '22'

# 変更を適用し保存する
commit
save

エンターキーを押した瞬間に変更が反映される標準的な Linuxとは異なり、VyOSではcommitが必要です。これは命綱となります。複雑な変更セットを構築し、それらを一度に適用できるからです。saveを実行しなければ再起動後に変更は消えるため、テスト時の組み込みのセーフティネットとして機能します。

ディープダイブ:ルーティングとインターフェース管理

ルーターの主な役割は、セグメント間でデータを移動させることです。ほとんどの構成では、少なくとも2つのインターフェース(WAN:インターネット側とLAN:内部ネットワーク側)を管理することになります。

インターフェースの設定

仮想アダプターにIPアドレスを割り当てましょう。ここでは、eth0をパブリック向けのWAN、eth1をプライベートなLANと想定します。

set interfaces ethernet eth0 address '203.0.113.10/24'
set interfaces ethernet eth0 description 'WAN-Link'

set interfaces ethernet eth1 address '192.168.10.1/24'
set interfaces ethernet eth1 description 'Internal-LAN'

デフォルトゲートウェイの設定

ルーターは、ローカルネットワーク宛てではないトラフィックをどこに送るべきかを知る必要があります。これがデフォルトルートです。

set protocols static route 0.0.0.0/0 next-hop 203.0.113.1

これにより、VyOSは未知のすべてのトラフィックをISPのゲートウェイ(203.0.113.1)に渡すようになります。動的接続を使用している場合は、単に set interfaces ethernet eth0 address dhcp を使用すれば、OSが自動的にルーティングテーブルを処理してくれます。

LANクライアント用DHCPサーバー

ネットワーク上のすべてのノートパソコンを手動で設定して時間を無駄にしないでください。DHCPプールを使用してプロセスを自動化しましょう。

set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 default-router '192.168.10.1'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 dns-server '8.8.8.8'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 range 0 start '192.168.10.100'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 range 0 stop '192.168.10.200'

高度な活用法:NATとステートフルファイアウォール

ルーターがパブリックインターネットに面している場合、セキュリティは必須です。LANデバイスがウェブを閲覧できるようにソースNATを使用し、悪意のある攻撃をブロックするためにファイアウォールルールを設定します。

ソースNAT(マスカレード)

プライベートIP(192.168.x.x)はパブリックインターネット上を通ることができません。ルーターは内部のソースIPを自身のパブリックIPに置き換える必要があります。

set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '192.168.10.0/24'
set nat source rule 100 translation address 'masquerade'

ステートフルファイアウォールの構築

ステートフルファイアウォールはインテリジェントです。内部のPCがウェブサイトをリクエストしたことを記憶し、外部からの無作為なプローブをブロックしつつ、そのウェブサイトからの応答のみを通します。

# WAN側ではデフォルトですべてをドロップする
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# ルーター自身を保護する
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL protocol 'icmp'

# WANポートにルールを適用する
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

local方向は、ルーター自身のIPに届くトラフィック(SSH管理など)をカバーし、inはサーバーなどを通過するトラフィックをカバーします。

本番環境の安定運用のためのプロのヒント

本番環境でルーターを運用するには、異なるマインドセットが必要です。意図しないダウンタイムを避けるために、以下の戦略を活用してください。

  • パニックボタン: リモートのルーターを設定する際は、commit-confirm 5 を使用してください。これは変更を適用しますが、5分間あなたの確定操作を待ちます。もし接続が切れてしまった場合、ルーターは自動的に再起動し、以前の設定に戻ります。
  • バージョン管理: VyOSは完全な履歴を保持しています。show system commit を使用して、いつ誰が何を変更したかを確認できます。変更によってネットワークが壊れた場合、rollback 1 で即座に前の状態に戻せます。
  • ハードウェアサイジング: 一般的な家庭や小規模オフィスなら、512MBのRAMで十分です。重いNAT処理を伴う1Gbpsの回線で50人以上のユーザーがいる場合は、2GBのRAMと2つのvCPUが理想的です。パケット処理能力を高めるため、常にCPUのクロック周波数を優先すべきです。
  • VLANトランク: VMに大量の仮想NICを追加しないでください。802.1Qタギングを使用して、1本のケーブルで複数のネットワークを運用しましょう。
    set interfaces ethernet eth1 vif 10 address '10.0.10.1/24'
    set interfaces ethernet eth1 vif 20 address '10.0.20.1/24'

VyOSは、5,000ドルもするラックマウントアプライアンスのパワーを、ソフトウェアパッケージの柔軟性とともに提供します. CLIをマスターすれば、ベンダーごとの構文を毎回覚えることなく、AWS、Azure、またはローカルのデータセンター全体に同一のネットワークスタックを展開できるようになります。

Share: