専用ルータと同等の機能を備えるLinuxベースのソフトウェアルーター「Vyatta」を使う 2ページ
仮想化ソフトウェアやネットワークの事前準備
今回は仮想マシン上にVyattaをインストールしていくので、まず事前に仮想化関連のパッケージをインストールしておく必要がある。必要なパッケージは表1のとおりだ。
パッケージ名 | 説明 |
---|---|
qemu-kvm | KVM本体 |
qemu-img | ディスクイメージ管理ツール |
libvirt | ハイパーバイザや仮想マシンにアクセスするためのライブラリ |
virt-manager | 仮想マシンを監視するGUIツールを提供する |
libvirt-client | 仮想マシンを管理するクライアントを提供する |
これらはyumコマンドでインストールできる。
# yum install qemu-kvm qemu-img libvirt virt-manager libvirt-client
インストールが完了したら、仮想マシンを管理するサービスであるlibvirtdを起動しておく。
# chkconfig libvirtd on # service libvirtd start
以上で仮想化関連の設定は完了だ。
ネットワークインターフェイスの設定
仮想マシン上のネットワークインターフェイス(仮想NIC)を実ネットワークに接続する方法にはいくつかがあるが、今回はブリッジネットワークを使用する。ブリッジネットワークは、ホストマシン上に仮想的に作成したブリッジインターフェイスをホストのNICおよび仮想マシン上の仮想NICに接続することで、仮想NICを直接インターネットやローカルネットワークに接続できるようにするものだ。これにより、仮想マシンをインターネットとローカルネットワークをつなぐルーターとして利用できるようになる。
なお、RHEL 6およびその互換OSでは、ネットワークを管理するためのNetworkManagerというツールが用意されているのだが、このツールはブリッジネットワークの管理には対応していないため、今回は使用できない。NetworkManagerを利用している場合はNetworkManagerを無効にしておこう。
ネットワークインターフェイスの設定は、/etc/sysconfig/network-scriptsディレクトリ内の設定ファイルを追加/編集することで行う。まず、インターネット側のNIC(eth0)に接続するブリッジデバイスであるbr0の設定を「/etc/sysconfig/network-scripts/ifcfg-br0」というファイルに記述する。記述する設定内容はリスト1のとおりだ。なお、太字の個所は環境に応じて適宜変更してほしい。
ここで、IPアドレスおよびネットマスク、ゲートウェイなどは使用する環境に応じて適切に設定しておく。通常はいままでeth0に設定されていたものと同じものを指定すれば良い。
同様にして、ローカルネットワーク側のNIC(eth1)に接続するブリッジデバイスbr1の設定を記述したファイル「/etc/sysconfig/network-scripts/ifcfg-br1」を作成し、ここにリスト2のような内容を記述する。
こちらも、IPアドレスやネットマスク、ゲートウェイの値については今までeth1に設定されていたものと同じものを指定する。
最後に、/etc/sysconfig/network-scripts/ifcfg-eh0および/etc/sysconfig/network-scripts/ifcfg-eth1の内容をリスト3、4のように修正し、作成したブリッジネットワークに接続するように設定を変更する。
なお、ここでHWADDR行にはそれぞれのNICのMACアドレスを「**:**:**:**:**:**」といった形式で指定しておく。
これら設定ファイルの修正が完了したら、ネットワークを再起動する。
# service network restart
再起動が完了したら、NICやブリッジが正しく設定されているかどうかをifconfigコマンドで確認しておこう。
# ifconfig br0 Link encap:Ethernet HWaddr **:**:**:**:**:** inet addr:203.0.113.1 Bcast:203.0.113.255 Mask:255.255.255.240 inet6 addr: ****::***:****:****:****/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14366 errors:0 dropped:0 overruns:0 frame:0 TX packets:9117 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1348559 (1.2 MiB) TX bytes:1416806 (1.3 MiB) br1 Link encap:Ethernet HWaddr **:**:**:**:**:** inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: ****::***:****:****:****/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12535 errors:0 dropped:0 overruns:0 frame:0 TX packets:13159 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1092804 (1.0 MiB) TX bytes:1085957 (1.0 MiB) eth0 Link encap:Ethernet HWaddr **:**:**:**:**:** inet6 addr: ****::***:****:****:****/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:29002511 errors:0 dropped:0 overruns:0 frame:0 TX packets:4747322 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3928090032 (3.6 GiB) TX bytes:1370901150 (1.2 GiB) Interrupt:18 Memory:ef900000-ef920000 eth1 Link encap:Ethernet HWaddr **:**:**:**:**:** inet6 addr: ****::***:****:****:****/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:55848811 errors:0 dropped:0 overruns:0 frame:0 TX packets:53780265 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4395197819 (4.0 GiB) TX bytes:4142896905 (3.8 GiB) Interrupt:20 Memory:efb00000-efb20000
また、ブリッジインターフェイスの状況はbrctl showコマンドで確認できる。
# brctl show bridge name bridge id STP enabled interfaces br0 8000.00224d67eab2 no eth0 br1 8000.00224d67eab3 no eth1
この結果から、br0がeth0に、br1がeth1に正しく接続されていることが分かる。