15.7. 仮想マシンをネットワークに接続するためにネットワークボンディングにブリッジを設定する
ネットワークブリッジは、仮想マシンをホストと同じネットワークに接続します。あるホスト上の仮想マシンを、別のホストや別のホスト上の仮想マシンに接続する場合は、ブリッジによってそれらの間の通信が確立されます。ただし、ブリッジはフェイルオーバーメカニズムを備えていません。
通信障害に対処するには、ネットワークボンディングによって、ネットワークインターフェイスの障害発生時に通信を処理します。フォールトトレランスと冗長性を確保するために、active-backup ボンディングメカニズムにより、ボンディング内で 1 つポートだけがアクティブであると判断されます。このとき、スイッチ設定は不要です。アクティブポートに障害が発生した場合、代替ポートがアクティブになり、ネットワーク内に設定されている仮想マシン間の通信が維持されます。
15.7.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.gateway 192.0.2.254 ipv4.dns 192.0.2.253 ipv4.dns-search example.com ipv4.method manual
IPv6 設定を行います。
- ステートレスアドレス自動設定 (SLAAC) を使用する場合、アクションは必要ありません。
静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを
bond0接続に設定するには、次のように実行します。# nmcli connection modify bond0 ipv6.addresses 2001:db8:1::1/64 ipv6.gateway 2001:db8:1::fffe ipv6.dns 2001:db8:1::fffd ipv6.dns-search example.com ipv6.method manual
オプション: ボンディングポートにパラメーターを設定する場合は、次のコマンドを使用します。
# 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
15.7.2. nmcli を使用してネットワークボンディング用のネットワークブリッジを設定する リンクのコピーリンクがクリップボードにコピーされました!
ネットワークボンディング用のネットワークブリッジには、トラフィック処理を改善するために複数のネットワークインターフェイスを組み合わせたボンディングインターフェイスを設定する必要があります。そのため、仮想マシンはネットワークブリッジを使用して結合されたネットワークインターフェイスを介してネットワークにアクセスできます。nmcli ユーティリティーにより、設定に必要な接続ファイルをコマンドラインから作成および編集します。
手順
ブリッジインターフェイスを作成します。
# nmcli connection add type bridge con-name br0 ifname br0 ipv4.method disabled ipv6.method disabledbond0ボンディングを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>コマンドを使用します。
15.7.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.xmlbond0-bridge仮想ネットワークを起動します。# virsh net-start bond0-bridgelibvirtdサービスの起動時に自動的に起動するようにbond0-bridge仮想ネットワークを設定します。# virsh net-autostart bond0-bridge
検証
仮想ネットワークのリストを表示します。
# virsh net-list Name State Autostart Persistent ---------------------------------------------------- bond0-bridge active yes yes ...
15.7.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:1cbr0ブリッジに接続されているインターフェイスを表示します。# 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*デバイスがブリッジのポートとして表示されます。