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 もセットアップします。