Linuxホストのセットアップ
私が行ったセットアップは次のとおりです。
- LAN(ホストネットワーク)内のマシンに、192.168.0.XなどのIPアドレスを割り当てる。
- ホストのIPアドレスを192.168.0.2とする。
- 2台のUMLゲストマシンの名前はuml1とuml2とし、アドレスはそれぞれ192.168.0.201と192.168.0.202とする。
- LAN内のインターネットゲートウェイに、IPアドレス192.168.0.1を割り当てる。
ホストマシンにブリッジインスタンスを追加するときはbrctlを使いました。これは、イーサネットブリッジ管理用のbridge-utilパッケージで提供されるユーティリティです。
brctl addbr the_bridge
その他のブリッジパラメータも、brctlユーティリティを使って設定できますが(スパニングツリープロトコルを制御する変数の設定など)、これらの設定は複雑なネットワークトポロジに関連するので、本稿では説明を省きます。
次に、通常のネットワークインターフェイスの場合と同じようにブリッジインターフェイスを起動しました。名前はthe_bridgeとし、IPアドレスの割り当てでは、通常のLAN上のホストに割り当てるはずの相対ネットマスクを使用しました。
ifconfig the_bridge 192.168.0.2 netmask 255.255.255.0 up
ブリッジが起動すると(起動したかどうかはifconfigで確認できます)、ソケットを持つ物理的なイーサネットスイッチを設定した場合と同じように、ネットワーク内の他のマシンに接続できるようになります。接続する必要がある1つ目のマシンは、ホスト自身でした。ブリッジへの接続はすべて、プロミスキャスインターフェイスとして標準eth0インターフェイスにIPアドレス0.0.0.0を割り当てる構成から成り立ちます。このインターフェイスをブリッジに正しく追加する必要があります。
ifconfig eth0 0.0.0.0 promisc up brctl addif the_bridge eth0
次に、インターネットにアクセスするデフォルトゲートウェイを追加しました。
route add default gw 192.168.0.1
次に、Linuxホストの内側で起動するその他のすべてのUMLマシンを接続する必要がありました。ホスト内の各マシンで必要だった処理は、次のとおりです。
- UMLのネットワークインターフェイスeth0に関連付けるTAPインターフェイスを作成し、それを特定のユーザー(host-user)に割り当てる。
- TAPをプロミスキャスインターフェイスとして構成して起動する。
- ブリッジにTAPインターフェイスを追加する。
1つ目と2つ目のUMLマシンでは、次のように実行しました(図1を参照してください)。
tunctl -u host-user -t the_uml_conn1 ifconfig the_uml_conn1 0.0.0.0 promisc up brctl addif the_bridge the_uml_conn1 tunctl -u host-user -t the_uml_conn2 ifconfig the_uml_conn2 0.0.0.0 promisc up brctl addif the_bridge the_uml_conn2

