Xen のルーティングモードで仮想ネットワークを構築しました。
192.168.1.111 のサーバ上に 192.168.2.0/24 の仮想ネットワークを
作成して、その仮想ネットワークに仮想サーバ vps1, vps2…を作成
しました。
イメージはこんな感じです。
イロイロと試行錯誤をしたので、もう一度最初からやってみないと
どうやれば良いのか実は分かっていませんが 😎 記憶と
現状の結果を元に行った事をメモとして残します。
最初にまず、通常のブリッジモードで仮想サーバ vps1 を追加しました。
デフォルトの状態ですね。
# virt-install --name vps1 --nographics --prompt |
次に仮想スイッチを作成しました。
以下のような定義ファイル yngsw1_def.xml を作成します。
<network> <name>yngsw1</name> <forward mode="route" dev="eth0" /> <bridge name="yngsw1" /> <ip address="192.168.2.1" netmask="255.255.255.0"> </ip> </network> |
このファイルから仮想スイッチを作成します。
# virsh net-define yngsw1_def.xml Network yngsw1 defined from yngsw1_def.xml |
作成した yngsw1 をスタートさせます。
# virsh net-start yngsw1 Network yngsw1 started |
そしてついでに、デフォルトの仮想ブリッジを削除しておきます。
# virsh net-destroy default # rm /etc/libvirt/qemu/networks/autostart/default.xml |
すると、以下のルーティングが追加されます 🙂
# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 yngsw1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 |
yngsw1 を自動的にスタートするようにします。
# virsh net-autostart yngsw1 Network yngsw1 marked as autostarted |
そして、デフォルトのブリッジモードではなく、ルーティングモードで
起動するように /etc/xen/xend-config.sxp を変更します。
(network-script network-bridge) ↓コメントアウト #(network-script network-bridge) (vif-script vif-bridge) ↓コメントアウト #(vif-script vif-bridge) #(network-script network-route) #(vif-script vif-route) ↓コメントを外す (network-script network-route) (vif-script vif-route) |
vps1 を yngsw1 に接続します。
/etc/xen/vps1 の vif の bridge を変更します。
vif = [ "mac=00:16:36:02:e0:5d,bridge=xenbr0,script=vif-bridge" ] ↓変更 vif = [ "mac=00:16:36:02:e0:5d,bridge=yngsw1,script=vif-bridge" ] |
vps1 の IP Address を yngsw1 上の IP Address に変更します。
vps1# vi /etc/sysconfig/network vps1# /etc/sysconfig/network-scripts/ifcfg-eth0 |
ここまでやったらサーバを再起動すれば完成です。
もっとちゃんとした手順があると思うのですが見つける事が
できませんでした。。。
※外部のサーバから yngsw1 上の vps1 と通信する為には、
外部のサーバや、ルータなどで vps1 へのルーティングを
192.168.1.111 に向けないと通信できません。
※2 台目の仮想サーバ vps2 を追加する場合、
virt-install がエラーになってしまいます。
どうやら virbr0 や xenbr0 が無いとダメみたいです。
仕方がないので /etc/xen/scripts/network-bridge を起動して
から virt-install しました。