※この記事は「AOS 7.0.xx」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。
この記事は、AHVにおけるOVSのブリッジチェーンの中身を確認する連載シリーズです。各記事には以下のリンクからアクセスできます。
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認① アップリンクの確認
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認② ブリッジチェーンの確認
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認③ ブリッジチェーンの解説
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認④ MACアドレステーブルの確認
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認⑤ Flowテーブルの確認
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認⑥ br0ブリッジで通信が処理される仕組み
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認⑦ ブリッジチェーンのFlowテーブルを確認
- 【AOS 7.0】Nutanix AHVの仮想スイッチを確認⑧ br0.localのFlowテーブル
前回の記事では、Nutanix AHVの仮想スイッチを構成するOVSのブリッジチェーン構造をCLIから確認してみました。今回は、「br0」ブリッジのMACアドレステーブルを確認してみます。
目次
1.今回の環境
3ノードAHVクラスタ
AOS: 7.0.1
AHV: 10.0.1
Prism Central: pc.2024.3.1.1
test-VM: Windows Server 2022
環境は以下のイメージで、一般的なNutanixの3ノードクラスタです。

仮想スイッチのイメージ図は以下の通りです。

2. ofport番号の確認
まずは、ブリッジのポート(インターフェース)に割り当てられている「ofport」というOpenFlowで使用される識別子となる番号を確認しておきます。この番号は、MACアドレステーブル内でもポートのインターフェースの識別番号として使用されています。
ofportは「ovs-vsctl list interface」コマンドで、インターフェースごとに確認できます。以下は実行結果のうち、br0に関わる部分の抜粋です。
--
mac_in_use : "0a:b5:1b:9c:96:xx"
mtu :
mtu_request :
name : br0-dhcp
ofport : 13
ofport_request :
options : {key="1", remote_ip="172.22.1.53"}
other_config : {}
statistics : {rx_bytes=796, rx_packets=4, tx_bytes=6130, tx_packets=27}
status : {tunnel_egress_iface=br0, tunnel_egress_iface_carrier=up}
--
mac_in_use : "00:62:0b:20:ef:xx"
mtu : 1500
mtu_request : 1500
name : br0
ofport : 65534
ofport_request :
options : {}
other_config : {}
statistics : {collisions=0, rx_bytes=1921905322, rx_crc_err=0, rx_dropped=645518, rx_errors=0, rx_frame_err=0, rx_missed_errors=0, rx_multicast_packets=0, rx_over_err=0, rx_packets=18291793, tx_bytes=2678084690, tx_dropped=0, tx_errors=0, tx_packets=5064164}
status : {driver_name=openvswitch}
--
mac_in_use : "fe:54:00:f7:01:xx"
mtu : 1500
mtu_request :
name : vnet0
ofport : 5
ofport_request :
options : {}
other_config : {}
statistics : {collisions=0, rx_bytes=626963530938, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_missed_errors=0, rx_multicast_packets=0, rx_over_err=0, rx_packets=433639437, tx_bytes=650593706491, tx_dropped=246, tx_errors=0, tx_packets=503193717}
status : {driver_name=tun, driver_version="1.6", firmware_version=""}
--
mac_in_use : "00:62:0b:20:ef:xx"
mtu : 1500
mtu_request :
name : eth0
ofport : 11
ofport_request :
options : {}
other_config : {}
statistics : {collisions=0, rx_bytes=2094483863, rx_crc_err=0, rx_dropped=18, rx_errors=0, rx_frame_err=0, rx_missed_errors=0, rx_multicast_packets=3682509, rx_over_err=0, rx_packets=14266779, tx_bytes=1066906468, tx_dropped=0, tx_errors=0, tx_packets=1458279}
status : {driver_name=bnxt_en, driver_version="1.10.2-228.0.133.0", firmware_version="218.0.152.0/pkg 218.0.166.0"}
--
mac_in_use : "00:62:0b:20:ef:xx"
mtu : 1500
mtu_request :
name : eth1
ofport : 10
ofport_request :
options : {}
other_config : {}
statistics : {collisions=0, rx_bytes=745644610821, rx_crc_err=0, rx_dropped=18, rx_errors=0, rx_frame_err=0, rx_missed_errors=0, rx_multicast_packets=3682072, rx_over_err=0, rx_packets=995109202, tx_bytes=728548912696, tx_dropped=0, tx_errors=0, tx_packets=956157937}
status : {driver_name=bnxt_en, driver_version="1.10.2-228.0.133.0", firmware_version="218.0.152.0/pkg 218.0.166.0"}
--
mac_in_use : "b6:88:9f:55:f0:xx"
mtu :
mtu_request :
name : br0-arp
ofport : 12
ofport_request :
options : {key="1", remote_ip="192.168.5.2"}
other_config : {}
statistics : {rx_bytes=0, rx_packets=0, tx_bytes=2094888, tx_packets=42024}
status : {tunnel_egress_iface=virbr0, tunnel_egress_iface_carrier=up}
--
mac_in_use : "9a:14:d2:6b:38:xx"
mtu :
mtu_request :
name : br0.u
ofport : 9
ofport_request :
options : {peer=br.dmx.d.br0}
other_config : {}
statistics : {rx_bytes=83628875132, rx_packets=164172864, tx_bytes=79528684479, tx_packets=174462342}
status : {}
--
[root@ahv-01 ~]#
このofport番号をブリッジの図に追加すると、以下の通りになります。

AHVのインターフェースとなるinternalポート「br0」の番号が「65534」となっていますが、これはどうもOpenFlowプロトコルの管理対象となっていない扱いのように見えています。
NetworkManager(nmcli)からbr0ブリッジをみると、以下の通りブリッジ自身のIP(AHVのIP)が確認できるので、「br0」の管理には一部NetworkManagerが関わっている部分もありそうです。
GENERAL.DEVICE: br0
GENERAL.TYPE: ovs-interface
GENERAL.HWADDR: 00:62:0B:20:EF:xx
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: br0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/12
IP4.ADDRESS[1]: 172.22.1.61/24
IP4.GATEWAY: 172.22.1.1
IP4.ROUTE[1]: dst = 172.22.1.0/24, nh = 0.0.0.0, mt = 800
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 172.22.1.1, mt = 800
IP6.GATEWAY: --
[root@ahv-01 ~]#
3. br0ブリッジのMACアドレステーブルの確認
OVSでは、OpenFlowのルールによって、柔軟なネットワークの制御ができますが、個別のブリッジ自体はL2スイッチとしてMACアドレスをもとにパケットを転送するといった動作をします。
ブリッジが学習しているMACアドレスとポート番号、VLAN IDは、FDB(Forwarding Database)に登録されています。MACアドレステーブルは以下のコマンドで確認可能です。
ovs-appctl fdb/show <ブリッジ名>
実行結果は以下の通りです。必要な部分のみコメントを付けて抜粋して紹介します。
port VLAN MAC Age
9 2205 50:6b:8d:c3:d5:xx 6 ← br0.u(win2022-vmへ)
LOCAL 0 00:62:0b:20:ef:xx 1 ← br0(AHV#1)
5 0 52:54:00:f7:01:xx 0 ← vnet0(CVM#1)
9 0 50:6b:8d:96:c5:xx 0 ← br0.u(Prism Centralへ)
10 0 00:62:0b:18:f2:xx 0 ← eth1(AHV#2へ)
10 0 00:62:0b:18:d8:xx 0 ← eth1(AHV#3へ)
10 0 52:54:00:f3:31:xx 0 ← eth1(CVM#2へ)
10 0 52:54:00:32:30:xx 0 ← eth1(CVM#3へ)

AHVのOVSでは、OpenFlowのルールも定義されており、このMACアドレステーブルも組み合わせて使用されています。次回は、ブリッジチェーン上のほかのブリッジの情報やOpenFlowルールについて確認したいと思います。