13.2. Red Hat Enterprise Linux 5.0 ラップトップネットワークの設定
重要
virt-manager でゲストを作成するときに "仮想ネットワーク" アダプタを使用します。NetworkManager は Red Hat Enterprise Linux 5.1 及び それ以降でデフォルトで仮想ネットワークデバイスを使用して作動します。
<interface type='network'>
<mac address='AA:AA:AA:AA:AA:AA'/>
<source network='default'/>
<target dev='vnet0'/>
<model type='virtio'/>
</interface>
xm 設定ファイル内で、仮想ネットワークデバイスは "vif" のラベルを持ちます。
ifup コール又は、ifdown コールを 実行することもあります。更には、ワイヤレスネットワークカードは、 Xen の(デフォルトの)ブリッジ化したネットワーク使用の理由で、仮想化環境内では うまく機能しません。
- ユーザーはダミーのネットワークインターフェイスを設定して、それが Xen で 使用できるようにします。この例では、インターフェイスは
dummy0と名付けます。これによりユーザーはゲストの為に隠れ IP アドレスの スペースを使用することができます。 - DHCP は DHCP 要求のためのダミーインターフェイスをリッスンしないため、静的 IPアドレスを 使用する必要があります。ユーザー自身のバージョンの DHCP をコンパイルしてダミーインターフェイスで リッスンするようにはできます。しかし、Xen 環境内で DNS、DHCP、及び tftpboot サービスの為の dnsmasq の使用を考慮してみましょう。セットアップと設定はこの章/セクションの後半で説明してあります。
- NAT と IP マスカレーディングを設定することにより、ゲストからのネットワークへの アクセスを有効にできます。
使用するホスト上で以下の設定手順を実行します:
- dummy0 のネットワークインターフェイスを作成して、それに静的 IP アドレスを割り当てます。 ここでの例では、現在の環境でルーティング問題を防止するために 10.1.1.1 を選択しています。 ダミーデバイスサポートを有効にするには、以下の行を
/etc/modprobe.confに追加します。alias dummy0 dummy options dummy numdummies=1 - dummy0 用のネットワーキングを設定するには、
/etc/sysconfig/network-scripts/ifcfg-dummy0を編集/作成します:DEVICE=dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes xenbr0をdummy0に バインドして、物理ネットワークに接続していない時でもネットワークを使用できるようにします。/etc/xen/xend-config.sxpを編集して、netdev=dummy0エントリを含むようにします:(network-script 'network-bridge bridge=xenbr0 netdev=dummy0')- ゲスト内で
/etc/sysconfig/networkを開き、デフォルトのゲートウェイがdummy0を指すように修正します。静的 IP を使用している場合は、 ゲストの IP アドレスをdummy0と同じサブネット上で存在するように セットします。NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0 - ホスト内に NAT をセットアップすると、ワイヤレスを含むインターネットアクセスがゲストで可能になります。 そして Xen とワイヤレスカードの問題を解決します。以下のスクリプトにより、現在ユーザーの ネットワーク接続で使用されているインターフェイスを基にした NAT を有効にします。
NAT (Network address translation) を使用すると、パケットの妨害をしてそれをプライベート IP アドレスに 渡すことにより複数のネットワークアドレスが 1つの IP アドレスを介して接続できるようになります。 以下のスクリプトを /etc/init.d/xenLaptopNAT にコピーして、/etc/rc3.d/S99xenLaptopNAT へのソフトリンクを作成することができます。これが自動的に ブート時に NAT を開始します。
注記
#!/bin/bash
PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH
GATEWAYDEV=`ip route | grep default | awk {'print $5'}`
iptables -F
case "$1" in
start)
if test -z "$GATEWAYDEV"; then
echo "No gateway device found"
else
echo "Masquerading using $GATEWAYDEV"
/sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE
fi
echo "Enabling IP forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`"
echo "done."
;;
*)
echo "Usage: $0 {start|restart|status}"
;;
esac
ラップトップ(又は、単独の安定したネットワーク接続に継っていないいずれかのコンピュータ)上で 仮想化を実行することの挑戦課題の1つは、ネットワークインターフェイスの変化と可用性です。 ダミーネットワークインターフェイスを使用すると、より安定した環境を設立できますが、それはまた、 DHCP、DNS、及び tftpboot サービスなどをユーザーの仮想化マシン/ゲストに提供することに於いて新しい挑戦を 持ち込みます。Red Hat Enterprise Linux と Fedora Core で配付されているデフォルトの DHCP デーモンは ダミーインターフェイスでリッスンしません。ユーザーの DNS 転送された情報は、異なるネットワークや VPN に 接続すると変化する可能性があります。
dnsmasq を設定する方法についての短い説明を示します:
- ここ から最新バージョンの dnsmasq を取得します。
- dnsmasq のドキュメントは ここ で見ることができます。
- 以下で参照されている他のファイルを http://et.redhat.com/~jmh/tools/xen/ からコピーして、ファイル
dnsmasq.tgzを取得します。この tar アーカイブには、以下のファイルが含まれています:nm-dnsmasqは NetworkManager の為のディスパッチャスクリプトとして 使用できます。これは NetworkManager が接続に変化を検出する度に実行されて、dnsmasq の 再スタート/再ロードを強制します。これは/etc/NetworkManager/dispatcher.d/nm-dnsmasqに コピーする必要があります。xenDNSmasqは、/etc/init.d/xenDNSmasqの 主要スタートアップ、又はシャットダウンのスクリプトとして使用できます。dnsmasq.confは/etc/dnsmasq.confの サンプルの設定ファイルです。dnsmasqは/usr/local/sbin/dnsmasqのバイナリイメージです。
- dnsmasq (デフォルトインストールは
/usr/local/sbin/dnsmasqへの バイナリ)を展開してビルドした後は、dnsmasq 設定ファイルを編集する必要があります。このファイルは/etc/dnsmaqs.confにあります。 - 設定を編集してユーザーのローカルニーズと要件に合うようにします。以下の パラメータはたぶんユーザーが修正すべきものでしょう:
interfaceパラメータはdnsmasqが 指定したインターフェイスのみでDHCPとDNS要求をリッスンするようにします。それは ダミーインターフェイスでもありえますが、ユーザーの公共インターフェイスやローカルループバックインターフェイス ではありえません。複数インターフェイスの為にもう1つのinterface行を 追加します。interface=dummy0は、dummy0インターフェイスでリッスンする1つの例です。- 統合された
DHCPサーバーを有効にするdhcp-rangeには、リース及びオプションのリース期間用に 利用できるアドレスの範囲を供給する必要があります。複数のネットワークを使用している場合は、DHCPを適用したい各ネットワーク上でこれを繰り返す 必要があります。1つの例として、dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12hが あります(ネットワーク 10.1.1.* 用であり、12時間のリース期間)。 - dnsmasq により供給されたデフォルトのルートを上書きするための
dhcp-optionは ルーターが dnsmasq を実行しているマシンと同じだと想定します。例としてはdhcp-option=3,10.1.1.1があります。
- dnsmasq を設定した後は、以下にあるスクリプトを
xenDNSmasqとして、/etc/init.dにコピーできます。 - システムブート中に自動的に dnsmasq を開始したい場合は、chkconfig(8) を使用して それを登録する必要があります:
chkconfig --add xenDNSmasq自動スタートアップ用にそれを有効にします:chkconfig --levels 345 xenDNSmasq on - NetworkManager が接続の変化を検出する度に 再スタートするように
dnsmasqを設定するには、 供給されているスクリプトnm-dnsmasqを使用すれば 達成できます。nm-dnsmasqスクリプトを/etc/NetworkManager/dispatcher.d/にコピーします。- NetworkManager ディスパッチャは、接続に 変化がある度にそのスクリプト(同じディレクトリ内に他のスクリプトがあるとアルファベット順)を 実行します。
dnsmasqもまた ユーザーの/etc/resolv.conf内の変化を検出して自動的にそれらを再ロードします (例えば VPN セッションをスタートした場合など)。- ユーザーが隠れたネットワークに仮想化ゲストを持ち、それらに公共ネットワークへの アクセスを許可している場合、
nm-dnsmasqスクリプトとxenDNSmasqスクリプトは両方共、NAT もセットアップします。