Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.2. Red Hat Enterprise Linux 5.0 ラップトップネットワークの設定

重要

このセクションでは、ネットワークブリッジを手動で追加する方法を説明します。この手順は、 Red Hat Enterprise Linux のバージョン 5.0 以降の全てのバージョンでは必要でもなく、また 推奨もされません。5.0 以降の新しいバージョンは、virt-manager でゲストを作成するときに "仮想ネットワーク" アダプタを使用します。NetworkManager は Red Hat Enterprise Linux 5.1 及び それ以降でデフォルトで仮想ネットワークデバイスを使用して作動します。
仮想ネットワークデバイス用の virsh XML 設定ファイルのサンプル:
<interface type='network'>
        <mac address='AA:AA:AA:AA:AA:AA'/>
        <source network='default'/>
        <target dev='vnet0'/>
        <model type='virtio'/>
</interface>
xm 設定ファイル内で、仮想ネットワークデバイスは "vif" のラベルを持ちます。
ラップトップ上で Xen hypervisor を実行することに関しての挑戦課題は ほとんどのラップトップがワイヤレスネットワーク、又は有線の接続を介して ネットワークに接続することです。多くの場合、これらの接続は1日のうちに何回も オン/オフになります。そのような環境で、システムはいつでも同じインターフェイスに アクセスを持つと想定し、それが使用しているネットワークインターフェイスへ ifup コール又は、ifdown コールを 実行することもあります。更には、ワイヤレスネットワークカードは、 Xen の(デフォルトの)ブリッジ化したネットワーク使用の理由で、仮想化環境内では うまく機能しません。
このセットアップはユーザーがラップトップにアクティブなネットワーク接続を 持たない時にオフラインモードで Xen を実行できるようにします。ラップトップ上で Xen を実行する最も簡単な方法は、以下に概要のある手順に従うことです:
  • ユーザーはダミーのネットワークインターフェイスを設定して、それが Xen で 使用できるようにします。この例では、インターフェイスは dummy0 と名付けます。これによりユーザーはゲストの為に隠れ IP アドレスの スペースを使用することができます。
  • DHCP は DHCP 要求のためのダミーインターフェイスをリッスンしないため、静的 IPアドレスを 使用する必要があります。ユーザー自身のバージョンの DHCP をコンパイルしてダミーインターフェイスで リッスンするようにはできます。しかし、Xen 環境内で DNS、DHCP、及び tftpboot サービスの為の dnsmasq の使用を考慮してみましょう。セットアップと設定はこの章/セクションの後半で説明してあります。
  • NAT と IP マスカレーディングを設定することにより、ゲストからのネットワークへの アクセスを有効にできます。
ダミーネットワークインターフェイスの設定

使用するホスト上で以下の設定手順を実行します:

  1. dummy0 のネットワークインターフェイスを作成して、それに静的 IP アドレスを割り当てます。 ここでの例では、現在の環境でルーティング問題を防止するために 10.1.1.1 を選択しています。 ダミーデバイスサポートを有効にするには、以下の行を /etc/modprobe.conf に追加します。
    alias dummy0 dummy
    options dummy numdummies=1
    
  2. 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
    
  3. xenbr0dummy0 に バインドして、物理ネットワークに接続していない時でもネットワークを使用できるようにします。 /etc/xen/xend-config.sxp を編集して、netdev=dummy0 エントリを含むようにします:
    (network-script 'network-bridge bridge=xenbr0 netdev=dummy0')
    
  4. ゲスト内で /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
    
  5. ホスト内に NAT をセットアップすると、ワイヤレスを含むインターネットアクセスがゲストで可能になります。 そして Xen とワイヤレスカードの問題を解決します。以下のスクリプトにより、現在ユーザーの ネットワーク接続で使用されているインターフェイスを基にした NAT を有効にします。
仮想化ゲスト用 NAT の設定

NAT (Network address translation) を使用すると、パケットの妨害をしてそれをプライベート IP アドレスに 渡すことにより複数のネットワークアドレスが 1つの IP アドレスを介して接続できるようになります。 以下のスクリプトを /etc/init.d/xenLaptopNAT にコピーして、/etc/rc3.d/S99xenLaptopNAT へのソフトリンクを作成することができます。これが自動的に ブート時に NAT を開始します。

注記

以下のスクリプトは、スタートアップ遅延のため、ワイヤレスネットワークや NetworkManager ではうまく機能しない可能性があります。 この場合、マシンがブートした後にスクリプトを手動で実行することになります。

#!/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
DNS、DHCP、及び tftpboot サービスのために dnsmasq を設定します。

ラップトップ(又は、単独の安定したネットワーク接続に継っていないいずれかのコンピュータ)上で 仮想化を実行することの挑戦課題の1つは、ネットワークインターフェイスの変化と可用性です。 ダミーネットワークインターフェイスを使用すると、より安定した環境を設立できますが、それはまた、 DHCP、DNS、及び tftpboot サービスなどをユーザーの仮想化マシン/ゲストに提供することに於いて新しい挑戦を 持ち込みます。Red Hat Enterprise Linux と Fedora Core で配付されているデフォルトの DHCP デーモンは ダミーインターフェイスでリッスンしません。ユーザーの DNS 転送された情報は、異なるネットワークや VPN に 接続すると変化する可能性があります。

上記の挑戦課題への1つの解決案は、1つのパッケージのみで上記のサービスの全てを 提供できて、ユーザーが自分のダミーインターフェイスからの要求のみに利用可能なサービスを 制御できるようにしてくれる dnsmasq の使用です。以下に、仮想化を実行しているラップトップで 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 が 指定したインターフェイスのみで DHCPDNS 要求をリッスンするようにします。それは ダミーインターフェイスでもありえますが、ユーザーの公共インターフェイスやローカルループバックインターフェイス ではありえません。複数インターフェイスの為にもう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 もセットアップします。