17.6. 仮想マシンをネットワークに接続するためにネットワークボンディングにブリッジを設定する
ネットワークブリッジは、仮想マシンをホストと同じネットワークに接続します。あるホスト上の仮想マシンを、別のホストや別のホスト上の仮想マシンに接続する場合は、ブリッジによってそれらの間の通信が確立されます。ただし、ブリッジはフェイルオーバーメカニズムを備えていません。通信障害に対処するには、ネットワークボンディングによって、ネットワークインターフェイスの障害発生時に通信を処理します。フォールトトレランスと冗長性を確保するために、active-backup
ボンディングメカニズムにより、ボンディング内で 1 つポートだけがアクティブであると判断されます。このとき、スイッチ設定は不要です。アクティブポートに障害が発生した場合、代替ポートがアクティブになり、ネットワーク内に設定されている仮想マシン間の通信が維持されます。
17.6.1. nmcli を使用してネットワークボンディング上のネットワークインターフェイスを設定する
コマンドラインでネットワークボンディングを設定するには、nmcli
ユーティリティーを使用します。
前提条件
-
サーバーに 2 台以上の物理デバイスがインストールされていて、それらが
NetworkManager
接続プロファイルに設定されていない。
手順
ボンドインターフェイスを作成します。
# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
このコマンドは、
active-backup
モードを使用するbond0
という名前のボンディングを作成します。イーサネットインターフェイスをボンディングに割り当てます。
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0 # nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0
これらのコマンドは、
enp7s0
およびenp8s0
のプロファイルを作成し、bond0
接続に追加します。IPv4 を設定します。
- DHCP を使用するために必要な操作はありません。
静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
bond0
接続に設定するには、次のように入力します。# nmcli connection modify bond0 ipv4.addresses
192.0.2.1/24
ipv4.gateway192.0.2.254
ipv4.dns192.0.2.253
ipv4.dns-searchexample.com
ipv4.methodmanual
IPv6 設定を行います。
- ステートレスアドレス自動設定 (SLAAC) を使用する場合、アクションは必要ありません。
静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
bond0
接続に設定するには、次のように入力します。# nmcli connection modify bond0 ipv6.addresses
2001:db8:1::1/64
ipv6.gateway2001:db8:1::fffe
ipv6.dns2001:db8:1::fffd
ipv6.dns-searchexample.com
ipv6.methodmanual
オプション: ボンディングポートにパラメーターを設定する場合は、次のコマンドを使用します。
# nmcli connection modify bond0-port1 bond-port.<parameter> <value>
ボンディングが有効な場合に Red Hat Enterprise Linux がすべてのポートを自動的に有効にするように設定します。
# nmcli connection modify bond0 connection.autoconnect-ports 1
ブリッジをアクティブ化します。
# nmcli connection up bond0
検証
ホストからネットワークケーブルを一時的に削除します。
ソフトウェアユーティリティーを使用して、リンク障害イベントを適切にテストする方法がないことに注意してください。nmcli などの接続を非アクティブにするツールでは、ポート設定の変更を処理するボンディングドライバーの機能のみが表示され、実際のリンク障害イベントは表示されません。
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0
17.6.2. nmcli を使用してネットワークボンディング用のネットワークブリッジを設定する
ネットワークボンディング用のネットワークブリッジには、トラフィック処理を改善するために複数のネットワークインターフェイスを組み合わせたボンディングインターフェイスを設定する必要があります。そのため、仮想マシンはネットワークブリッジを使用して結合されたネットワークインターフェイスを介してネットワークにアクセスできます。nmcli
ユーティリティーにより、設定に必要な接続ファイルをコマンドラインから作成および編集します。
手順
ブリッジインターフェイスを作成します。
# nmcli connection add type bridge con-name
br0
ifnamebr0
ipv4.methoddisabled
ipv6.methoddisabled
bond0
ボンディングをbr0
ブリッジに追加します。# nmcli connection modify bond0 master br0
ブリッジが有効な場合に Red Hat Enterprise Linux がすべてのポートを自動的に有効にするように設定します。
# nmcli connection modify br0 connection.autoconnect-ports 1
ブリッジを再度アクティブにします。
# nmcli connection up br0
検証
ip
ユーティリティーを使用して、特定のブリッジのポートであるイーサネットデバイスのリンクステータスを表示します。# ip link show master br0 6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:38:a9:4d brd ff:ff:ff:ff:ff:ff ...
bridge
ユーティリティーを使用して、任意のブリッジデバイスのポートであるイーサネットデバイスの状態を表示します。# bridge link show 6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100 ...
特定のイーサネットデバイスのステータスを表示するには、
bridge link show dev <ethernet_device_name>
コマンドを使用します。
関連情報
-
nm-settings(5)
man ページ -
bridge(8)
man ページ
17.6.3. 既存のボンディングインターフェイスを使用して libvirt で仮想ネットワークを作成する
仮想マシン (VM) がボンディングで br0
ブリッジを使用できるようにするには、まず、このブリッジを使用する libvirtd
サービスに仮想ネットワークを追加します。
前提条件
-
libvirt
をインストールした。 -
libvirtd
を起動して有効にした。 -
Red Hat Enterprise Linux 上のボンディングを使用して
br0
デバイスを設定した。
手順
次の内容を含む
~/bond0-bridge.xml
ファイルを作成します。<network> <name>bond0-bridge</name> <forward mode="bridge" /> <bridge name="br0" /> </network>
~/bond0-bridge.xml
ファイルを使用して、libvirt
に新しい仮想ネットワークを作成します。# virsh net-define ~/bond0-bridge.xml
~/bond0-bridge.xml
ファイルを削除します。# rm ~/bond0-bridge.xml
bond0-bridge
仮想ネットワークを起動します。# virsh net-start bond0-bridge
libvirtd
サービスの起動時に自動的に起動するようにbond0-bridge
仮想ネットワークを設定します。# virsh net-autostart bond0-bridge
検証
仮想ネットワークのリストを表示します。
# virsh net-list Name State Autostart Persistent ---------------------------------------------------- bond0-bridge active yes yes ...
関連情報
-
virsh(1)
man ページ
17.6.4. ボンディングインターフェイスを使用するように仮想マシンを設定する
ホスト上のブリッジデバイスとボンディングインターフェイスを使用するように仮想マシンを設定するには、bond0-bridge
仮想ネットワークを使用する新しい仮想マシンを作成するか、このネットワークを使用するように既存の仮想マシンの設定を更新します。
RHEL ホストでこの手順を実行します。
前提条件
-
libvirtd
でbond0-bridge
仮想ネットワークを設定した。
手順
新しい仮想マシンを作成し、
bond0-bridge
ネットワークを使用するように設定するには、仮想マシンを作成するときに、virt-install
ユーティリティーに--network network:bond0-bridge
オプションを渡します。# virt-install ... --network network:bond0-bridge
既存の仮想マシンのネットワーク設定を変更するには、次のコマンドを実行します。
仮想マシンのネットワークインターフェイスを
bond0-bridge
仮想ネットワークに接続します。# virt-xml <example_vm> --edit --network network=bond0-bridge
仮想マシンをシャットダウンして、再起動します。
# virsh shutdown <example_vm> # virsh start <example_vm>
検証
ホストの仮想マシンの仮想ネットワークインターフェイスを表示します。
# virsh domiflist <example_vm> Interface Type Source Model MAC ------------------------------------------------------------------- vnet1 bridge bond0-bridge virtio 52:54:00:c5:98:1c
br0
ブリッジに接続されているインターフェイスを表示します。# ip link show master br0 18: bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 2a:53:bd:d5:b3:0a brd ff:ff:ff:ff:ff:ff 19: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:c5:98:1c brd ff:ff:ff:ff:ff:ff ...
libvirtd
は、ブリッジの設定を動的に更新することに注意してください。bond0-bridge
ネットワークを使用する仮想マシンを起動すると、ホスト上の対応するvnet*
デバイスがブリッジのポートとして表示されます。
関連情報
-
virt-install(1)
man ページ -
virt-xml(1)
man ページ -
virsh(1)
man ページ -
arping(8)
man ページ