Xen セットアップ · 1 min read · Feb 10, 2026
Debian Sarge 用の完璧な Xen 3.0.3 セットアップ - ページ 5
4.5 仮想マシンから仮想ローカルネットワークを作成する (オプション)
(この章はオプションです。ここで説明することは、ソースから Xen をインストールした場合にのみ機能します。)
この章では、仮想マシンを使って仮想ネットワークを作成したいと思います。つまり、dom0 のネットワークとは異なるネットワークです。
私がやりたいことの図はここにあります: http://wiki.xensource.com/xenwiki/XenNetworkingUsecase#head-7f23d0f2248cb0c70458f9339b4405e2b1bfc271
私はここで Xen 2.0.7 で同じことをしました: https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6。しかし、Xen 3 でこれを達成する方法は完全に変わりました。Xen 3 はすべてのファイアウォールルール、ゲートウェイなどを 自動的に 設定します。さらに、仮想ネットワークのためにダミーのネットワークインターフェースはもはや必要ありません。Xen 3 は 10.x.x.x ネットからゲートウェイを仮想マシンに割り当てるため、仮想マシンにも 10.x.x.x ネットから IP アドレスを割り当てるのが良いアイデアです。もし 192.168.3.x ネットから IP アドレスを与えると (https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6 で Xen 2.0.7 の時に行ったように)、仮想マシンはインターネットにアクセスできなくなります。
したがって、vm01 に IP アドレス 10.0.0.1 を、vm02 に IP アドレス 10.0.0.2 を与えます。
まず、/etc/xen/xend-config.sxp を編集し、ブリッジを無効にし、代わりに NAT (ネットワークアドレス変換) を有効にします:
vi /etc/xen/xend-config.sxp| [...] #(network-script network-bridge) #(vif-script vif-bridge) (network-script network-nat) (vif-script vif-nat) [...] |
次に、vm01 と vm02 の設定ファイルを変更します:
/etc/xen/vm01-config.sxp:
vi /etc/xen/vm01-config.sxp| name="vm01" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] vif=[ 'ip=10.0.0.1' ] dhcp="off" hostname="vm01.example.com" ip="10.0.0.1" netmask="255.0.0.0" gateway="10.0.0.254" extra="3" |
/etc/xen/vm02-config.sxp:
vi /etc/xen/vm02-config.sxp| name="vm02" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] vif=[ 'ip=10.0.0.2' ] dhcp="off" ip="10.0.0.2" netmask="255.0.0.0" gateway="10.0.0.254" hostname="vm02.example.com" extra="3" |
その後、vm01 と vm02 をシャットダウンします:
xm shutdown vm01
xm shutdown vm02数秒待って、xm list で vm01 と vm02 がシャットダウンしたことを確認します。次に、システムを再起動します:
shutdown -r nowもし vm01 と vm02 が起動時に自動的に起動しない場合は、今すぐ起動します:
xm create /etc/xen/vm01-config.sxp
xm create /etc/xen/vm02-config.sxp今、vm01 から vm02 に ping を送信できるはずで、逆も同様です。また、dom0 やインターネット上のホストにも ping を送信できるはずです!
さて、vm01 にポート 80 のウェブサーバーがあり、vm02 にポート 25 のメールサーバーがあると仮定しましょう。彼らは独自のネットワーク (10.x.x.x) にいるため、これらのポートを適切な vm に転送しない限り、外部からアクセスすることはできません。iptables の助けを借りて、dom0 で必要なポート転送ルールを作成できます:
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25今、ポート 80 で dom0 に接続すると、vm01 に転送されます。ポート 25 と vm02 も同様です。
もちろん、転送ルールは dom0 を再起動すると失われます。したがって、ルールを /etc/network/if-up.d/iptables に入れます。これは、システムが起動すると自動的に実行されます:
vi /etc/network/if-up.d/iptables| #!/bin/sh ### ポート転送 ### iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80 iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25 |
今、私たちはそのスクリプトを実行可能にする必要があります:
chmod 755 /etc/network/if-up.d/iptables追加のポート転送ルールが必要な場合は、dom0 のシェルでそれらを実行し、再起動後も利用できるように /etc/network/if-up.d/iptables に追加してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。