Gentoo Linuxの流儀に従い、ネットワークの設定変更は /etc/conf.d/net というファイルの内容を書き換えることによって行います。

デフォルトでこのファイルには行頭の # から始まるコメント以外何も書かれていませんが、何も書かれていない状態では

config_eth0="dhcp"

と書かれているのと同じ扱いになり、唯一のインターフェイス eth0 にDHCPを使ってIPアドレスを自動で与えることになります。もしあなたのマシンが2番目のネットワークインターフェイスを持っているのであれば、それは eth1 という名前になります。もし eth0をデフォルトと同様 DHCPで、eth1を手動によるIPアドレスの割り当てで構成するとしたら /etc/conf.d/net の内容は下記のようになります。

config_eth0="dhcp"
config_eth1="172.16.10.123/16"

各インターフェイスの設定については IPアドレスを固定する方法 も参照してください。

インターフェイスをアクティブにするが IPアドレスは与えない、ということも可能です。これは、Walbrix本体はそのインターフェイスで通信しないで仮想マシンにのみIPアドレスを与えて使用するといったような場合の設定です。

config_eth1="null"

物理インターフェイスを追加したら、Xenの仮想ネットワークインターフェイスとしてそれを利用出来るようにするための設定も続けて書き込みます。Xenや Gentoo Linuxにはこれを設定する方法が用意されていないため、この設定方法はWalbrixのオリジナル拡張として用意されたものです。eth0と eth1の両方を 仮想マシンから利用可能にするには、/etc/conf.d/net に

xenvif_eth0=0
xenvif_eth1=1

と書き加えてください。

デフォルトの /etc/conf.d/netには xenvif_行がひとつも書かれていませんが、その場合は、xenvif_eth0=0 と書かれているのと同じ扱いになっています。

/etc/conf.d/net に eth0と eth1の設定およびXenの仮想インターフェイスとして利用するための設定を書きんだら、eth1を利用するためにシェルで下記のコマンドを実行して対応する initスクリプトを有効にし、自動起動に設定します。

# ln -s net.lo /etc/init.d/net.eth1
# rc-update add net.eth1 default

これで Walbrixを次回起動した時から、eth1が有効となります。

タグベースVLAN(802.1Q)の利用

WalbrixはタグベースVLANに対応しています。タグベースVLANを使うと、ひとつの物理的なネットワークインターフェイスに仮想的な複数のネットワークを割り当てることができます(この機能はインテリジェントL2スイッチなどのタグベース VLAN対応機器と組み合わせて使うのが普通です)。また、Walbrix側で定義した VLANを仮想マシンに対しては普通のネットワークインターフェイスとして見せることが出来ます。

例えば eth0をVLAN番号 1, 2, 3に分割し、VLAN1をDHCPで、VLAN2を固定割り当てのIPアドレスで、VLAN3をIPアドレスなしで運用するにはこのようにします。

config_eth0="null"
vlans_eth0="1 2 3"

config_eth0_1="dhcp"
config_eth0_2="172.16.10.123/16"
config_eth0_3="null"

xenvif_eth0_1=0
xenvif_eth0_2=1
xenvif_eth0_3=2

分割元となる eth0は null設定にし、eth0の後にアンダースコアで区切ってVLAN番号を記したものを代わりに設定することになります。initスクリプトは分割元のインターフェイスのものだけ有効になっていれば十分です(分割後の仮想インターフェイスごとに initスクリプトを有効にする必要はありません)。eth0の initスクリプトは最初から有効なので、eth0をVLAN分割する場合は initスクリプトについて何かする必要はないことになります。

仮想マシンへの複数インターフェイスの割り当て

インターフェイスの設定ができたら、それを仮想マシンに割り当てます。

Walbrixの仮想マシンは、デフォルトでは物理インターフェイス eth0が 仮想マシンの eth0 として単純に割り当てられるよう設定されています。仮想マシン設定ファイル /etc/xen/仮想マシン名 を編集することで、この設定を変更できます。

デフォルトで、仮想マシンへのネットワークインターフェイス割り当て設定はこのような記述になっています。

vif=[""];

これは省略された記述で、実際には

vif=["bridge=eth0"];

と書かれているのと一緒です。eth0に加えて eth1を仮想マシンから利用可能にするには、

vif=["bridge=eth0","bridge=eth1"];

のようにカンマで区切って bridge=設定を追加します。ひとつの物理インターフェイスをタグベース VLANで分割している場合は

vif=["bridge=eth0.1","bridge=eth0.2"];

のように物理インターフェイス名にピリオド(ここではアンダースコアではないことに注意)で区切ってVLAN番号を付けます。このように設定すると仮想マシンからはVLAN1が eth0、VLAN2が eth1として見えるようになります。つまり、仮想マシン側で VLANに関する設定をする必要はありません。

仮想マシンに与えるインターフェイスの順番を変えることも出来ます。

vif=["bridge=eth1","bridge=eth0"];

とすれば、物理インターフェイスの eth0と eth1を仮想マシン側ではそれぞれ eth1, eth0 として利用することが可能です。

古い Xenの解説では仮想マシンに与えるブリッジインターフェイスの指定に xenbr0, xenbr1 のようなブリッジ名を使っていることが多いですが、現行の Xenではeth0, eth1のように元々のインターフェイス名でそのまま指定できます。