2007/05/18

VLANとXenを組合わせて使う・その2・VLAN設定

VLANとXenを組合わせて使うシリーズの第2回。Red Hat系のOSで802.1QタグVLANを設定する方法を解説する。

2008/6/20追記:
VLANとsnmpdを組み合わせて使うと問題が発生する場合がある。『snmpd: ioctl 35123 returned -1』を併せて読んで欲しい。

2008/6/25追記:
細かい手順を解説した。『続・snmpd: ioctl 35123 returned -1』にも眼を通してほしい。

前提条件
まずカーネル(kernel)がVLANに対応していけなればならない。Red Hat系の最近のOSであれば、普通にyumで入れたようなカーネルは最初からVLANに対応しているので問題ない。
次に、VLANインターフェースを作成するためのコマンドvconfigが必要だ。Red Hat系だと、vconfigというRPMパッケージに入っている。デフォルトでインストールされているはずだが、もしインストールされていなければ、
yum install vconfig
をrootで実行してインストールする。
最後に、ネットワークインターフェース。これがなければ話にならない(笑)。
あと、タグVLANに対応したL2SWも必要。この設定については、機器毎に違うので、各機器のマニュアルを参照してほしい。

ネットワーク全体設定
Red Hat系のOSでは、ネットワーク全体に対する設定を/etc/sysconfig/networkで行う。ここには、(1)VLANを使用すること、(2)VLANインターフェースに対する命名規則の二つを宣言する。以下の行を追加する。
VLAN=yes
VLAN_NAME_TYPE=DEV_PLUS_VID
最初の行はVLANを使用することの宣言、二行目は命名規則の宣言だ。命名規則には、以下の四種類が指定できる。例は、物理インターフェースeth0に対してVLAN ID 100を追加した場合ののVLANインターフェース名。
VLAN_PLUS_VIDvlan0100
VLAN_PLUS_VID_NO_PADvlan100
DEV_PLUS_VIDeth0.0100
DEV_PLUS_VID_NO_PADeth0.100
VLAN_PLUS_VIDやVLAN_PLUS_VID_NO_PADの場合、そのVLANインターフェースに対応している物理インターフェースが名前から判断できないことに注意しよう。

物理インターフェース設定
Red Hat系では、eth0に対する設定は、/etc/sysconfig/network-scripts/ifcfg-eth0で行う。通常、このファイルの中には、静的なIPアドレスか、ブートプロトコルかのいずれかが指定されいるが、eth0でVLANを使う場合にはeth0に直接IPアドレスを割当てることはしないため、この設定は削除する。
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes


VLANインターフェース設定
物理インターフェースと同様、VLANインターフェースの設定も/etc/sysconfig/network-scripts以下のifcfg-インターフェース名というファイルの中で行う。命名規則にDEV_PLUS_VIDを指定した場合、eth0にVLAN ID 900を追加したいときには、/etc/sysconfig/network-scripts/ifcfg-eth0.0900を作成し、以下のように記述する。
DEVICE=eth0.0900
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
基本的に通常のifcfg-eth0などと同様。ただし、命名規則にVLAN_PLUS_VIDやVLAN_PLUS_VID_NO_PADを選んだ場合は、
PHYSDEV=eth0
の様に、対応する物理インターフェースを指定する必要がある。なぜなら、前に指摘したとおり、VLANインターフェース名から対応する物理インターフェースを特定できないからだ。

参考
この手の設定パラメータを調べるには、/etc/init.d以下のスクリプトを眺めてみるとよい。ネットワークインターフェース設定に関しては、起動・停止に/etc/sysconfig/network-scripts/if{up,down}が呼ばれることになるので、これらを覗く。

VLANとXenを組合わせて使う・その1
VLANとXenを組合わせて使う・その2・VLAN設定l
VLANとXenを組合わせて使う・その3・Xenネットワーク
VLANとXenを組合わせて使う・その4・DomUインストール
VLANとXenを組合わせて使う・その5・仮想ブリッジが多い場合