Oracle VMでVLANを設定する
サーバを仮想化すると必然的に一つの物理ネットワークポートを数多くのVMで共有することになりがちです。そんな環境では、セキュリティ的に(こういう表現好きじゃないんだけど)それぞれのVMのセグメントを分離したいという要件がでてきます。または、特にRAC等の検証環境で物理ネットワークポートは一個しかないんだけど、仮想マシンには最低2つのセグメントを与えたい、というような要件がでてきます。そんなときにはVLANですよね。
ということで、Oracle VM環境でVM Serverには物理的なネットワークポートは一つしかないけど、VLANで二つの仮想ネットワークポートを作成して仮想マシンに2つのネットワークセグメントへの接続を与えるという設定方法を紹介します。RACでは最低でもPublicとPrivateの二つのセグメントが必要になるのでそういう場合に便利です。
*ちなみにOracle VMはバージョンによって内部仮想ネットワークの構成がちょいちょい変わっていますが、この手順は2.1.xでも最新の2.2でもいけるはずです。
*タグVLAN(802.1q)を使用するので、VM Serverを結ぶネットワークスイッチも適切に設定する必要があります。
まずxend-config.sxpを編集してネットーワーク設定の初期化を行うnetwork-scriptを変更します。
[root@vmserver]# cd /etc/xen/xend-config.sxp (network-script network-bridge-ovs)
次に先程指定したnetwork-bridge-ovsを作成します。これは実際にはダミーです。つまりVLANを構成する場合は通常のネットワーク初期化機構を放棄するという設定を行っているわけです。
[root@vmserver]# vi /etc/xen/scripts/network-bridge-ovs #!/bin/sh /bin/true
そしてVLAN用に仮想スイッチの設定ファイルを作成します。各VLAN毎にxenbr(仮想スイッチ)を作成します。xenbrNNのNNの部分は任意ですが、VLAN IDと紐付けておくのが吉でしょう。ここではVLAN ID:11と、VLAN ID:12に対応するxenbrを作成しています。
[root@vmserver]# vi /etc/sysconfig/network-scripts/ifcfg-xenbr11 DEVICE=xenbr11 ONBOOT=yes TYPE=Bridge DELAY=0 STP=off BOOTPROTO=static IPADDR=10.0.11.1 NETMASK=255.255.255.0 [root@vmserver]# vi /etc/sysconfig/network-scripts/ifcfg-xenbr12 DEVICE=xenbr12 ONBOOT=yes TYPE=Bridge DELAY=0 STP=off BOOTPROTO=static IPADDR=10.0.12.1 NETMASK=255.255.255.0
次にVLANインターフェースを作成します。ここではeth0上にVLAN ID:11とVLAN ID:12となるインターフェースを作成しています。このときのeth0.NNのNNがVLAN IDの指定になります。単なる名前ではなくVLAN IDの設定になるので、ここの設定と物理スイッチでのVLAN設定は合わせる必要があります。そして各VLANインターフェースは先程作成した対応するxenbrにそれぞれ接続します。
[root@vmserver]# vi /etc/sysconfig/network-scripts/ifcfg-eth0.11 DEVICE=eth0.11 BOOTPROTO=none ONBOOT=yes BRIDGE=xenbr11 VLAN=yes [root@vmserver]# vi /etc/sysconfig/network-scripts/ifcfg-eth0.12 DEVICE=eth0.12 BOOTPROTO=none ONBOOT=yes BRIDGE=xenbr12 VLAN=yes
これで完了です。VM Serverを再起動すればxenbr11が作成され、そこにeth0.11が接続されます。また、xenbr12が作成され、eth0.12がそこに作成されます。
ゲストOSの仮想ネットワークインターフェースを作成するときは、xebr11を指定すればVLAN 11に、xenbr12を指定すればVLAN 12に接続されます。