※この記事は「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仮想スイッチにおけるブリッジチェーンのうち「br.dmx」~「br.mx」までのブリッジのFlowテーブルを確認しました。今回は、最後のブリッジとして仮想マシンやPrism Centralの実際の接続インターフェースを持つ「br0.local」のFlowテーブルを確認してみます。
目次
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. br0.localのMACアドレステーブル
▽br0.localのMACアドレステーブルは以下の通りです。Flowテーブルで「action: NOMAL」というルールが出てくると、このMACアドレステーブルを参照して宛先ポートを認識します。br0.local内の通信でこのテーブルがどの程度使われているか微妙ですが、最低限接続されているポートのMACアドレス情報は保持するようです。
port VLAN MAC Age
3 2205 50:6b:8d:c3:d5:32 54 (←VM)
2 0 50:6b:8d:96:c5:eb 0 (←Prism Central)
3. br0.localのFlowテーブル
▽br0.localのFlowテーブルは以下の通りです。
cookie=0x0, duration=944380.018s, table=0, n_packets=346157488, n_bytes=173254739479, priority=52,in_port=tap0,vlan_tci=0x0000/0x0fff actions=resubmit(,4),load:0x200->NXM_NX_PKT_MARK,resubmit(,2)
cookie=0x0, duration=933890.891s, table=0, n_packets=48244, n_bytes=2507276, priority=52,in_port=tap1,vlan_tci=0x0000/0x0fff actions=load:0x189d->NXM_OF_VLAN_TCI[0..12],resubmit(,4),load:0x300->NXM_NX_PKT_MARK
,resubmit(,2)cookie=0x0, duration=947990.495s, table=0, n_packets=373769162, n_bytes=163328554014, priority=51,in_port="br0.local.d" actions=resubmit(,"flow_table_32768")
cookie=0x0, duration=944380.017s, table=0, n_packets=0, n_bytes=0, priority=51,in_port=tap0 actions=drop
cookie=0x0, duration=933890.889s, table=0, n_packets=0, n_bytes=0, priority=51,in_port=tap1 actions=drop
cookie=0x0, duration=947990.495s, table=0, n_packets=0, n_bytes=0, priority=50 actions=drop
cookie=0x0, duration=944313.240s, table="flow_table_32768", n_packets=340737617, n_bytes=160366377736, hard_timeout=300, priority=65050,vlan_tci=0x0000/0x0fff,dl_dst=50:6b:8d:96:c5:eb actions=load:0->NXM_OF_VLAN_TCI[0..12],output:tap0
cookie=0x0, duration=933880.682s, table="flow_table_32768", n_packets=67, n_bytes=4864, hard_timeout=300, priority=65050,vlan_tci=0x089d/0x0fff,dl_dst=50:6b:8d:c3:d5:32 actions=load:0->NXM_OF_VLAN_TCI[0..12],output:tap1
cookie=0x0, duration=944380.017s, table="flow_table_32768", n_packets=63299, n_bytes=2666934, priority=52,pkt_mark=0x200,vlan_tci=0x0000/0x0fff actions=load:0->NXM_OF_VLAN_TCI[0..12],load:0x2->NXM_OF_IN_PORT,NORMAL
cookie=0x0, duration=933890.890s, table="flow_table_32768", n_packets=48152, n_bytes=2493784, priority=52,pkt_mark=0x300,vlan_tci=0x089d/0x0fff actions=load:0->NXM_OF_VLAN_TCI[0..12],load:0x3->NXM_OF_IN_PORT,NORMAL
cookie=0x0, duration=944380.017s, table="flow_table_32768", n_packets=0, n_bytes=0, priority=51,pkt_mark=0x200 actions=load:0x2->NXM_OF_IN_PORT,NORMAL
cookie=0x0, duration=933890.889s, table="flow_table_32768", n_packets=0, n_bytes=0, priority=51,pkt_mark=0x300 actions=load:0x3->NXM_OF_IN_PORT,NORMAL
cookie=0x0, duration=947990.494s, table="flow_table_32768", n_packets=32920027, n_bytes=2957010696, priority=50 actions=load:0xffff->NXM_OF_IN_PORT,NORMAL
cookie=0x0, duration=947990.494s, table=2, n_packets=346205732, n_bytes=173257246755, priority=50 actions=output:"br0.local.d"
cookie=0x0, duration=947990.492s, table=4, n_packets=346205732, n_bytes=173257246755, priority=50 actions=learn(table="flow_table_32768",hard_timeout=300,priority=65050,NXM_OF_ETH_DST=NXM_OF_ETH_SRC,NXM_OF_VLAN_TCI[0..11],load:0->NXM_OF_VLAN_TCI[0..12],output:NXM_OF_IN_PORT)
cookie=0x0, duration=947990.492s, table=5, n_packets=0, n_bytes=0, priority=50 actions=learn(table="flow_table_32768",hard_timeout=300,priority=65050,NXM_OF_ETH_DST=NXM_OF_ETH_SRC,NXM_OF_VLAN_TCI[0..11],output:NXM_OF_IN_PORT)
cookie=0x0, duration=944380.016s, table=6, n_packets=0, n_bytes=0, priority=100,vlan_tci=0x0000/0x0fff actions=load:0x8d96c5eb->NXM_NX_REG6,load:0x506b->NXM_NX_REG7,resubmit(,7)
cookie=0x0, duration=933890.886s, table=6, n_packets=0, n_bytes=0, priority=100,vlan_tci=0x089d/0x0fff actions=load:0x8dc3d532->NXM_NX_REG6,load:0x506b->NXM_NX_REG7[],resubmit(,7)
cookie=0x0, duration=947990.493s, table=7, n_packets=0, n_bytes=0, priority=10 actions=resubmit(,8)
cookie=0x0, duration=947990.493s, table=8, n_packets=0, n_bytes=0, priority=10 actions=resubmit(,9)
cookie=0x0, duration=947990.493s, table=9, n_packets=0, n_bytes=0, priority=10 actions=resubmit(,10)
cookie=0x0, duration=947990.492s, table=10, n_packets=0, n_bytes=0, priority=10 actions=resubmit(,11)
cookie=0x0, duration=944380.016s, table=11, n_packets=0, n_bytes=0, priority=2,pkt_mark=0x200,reg6=0x8d96c5eb,reg7=0x506b actions=drop
cookie=0x0, duration=944380.016s, table=11, n_packets=0, n_bytes=0, priority=2,pkt_mark=0x200,reg6=0x8d96c5eb,reg7=0x1506b actions=drop
cookie=0x0, duration=933890.887s, table=11, n_packets=0, n_bytes=0, priority=2,pkt_mark=0x300,reg6=0x8dc3d532,reg7=0x506b actions=drop
cookie=0x0, duration=933890.887s, table=11, n_packets=0, n_bytes=0, priority=2,pkt_mark=0x300,reg6=0x8dc3d532,reg7=0x1506b actions=drop
cookie=0x0, duration=944380.017s, table=11, n_packets=0, n_bytes=0, priority=1,reg6=0x8d96c5eb,reg7=0x506b actions=load:0->NXM_OF_VLAN_TCI[0..12],output:tap0
cookie=0x0, duration=944380.016s, table=11, n_packets=0, n_bytes=0, priority=1,reg6=0x8d96c5eb,reg7=0x1506b actions=output:tap0
cookie=0x0, duration=933890.888s, table=11, n_packets=0, n_bytes=0, priority=1,reg6=0x8dc3d532,reg7=0x506b actions=load:0->NXM_OF_VLAN_TCI[0..12],output:tap1
cookie=0x0, duration=933890.887s, table=11, n_packets=0, n_bytes=0, priority=1,reg6=0x8dc3d532,reg7=0x1506b actions=output:tap1
▽表にすると以下の通りですね。



この内容を見てみると、「table=0」で「tap(PCやVM)」から受信した通信にVLAN IDを設定し、「br0.local.d」に流している様子が確認できます。VLAN IDはFlowテーブルのルールによってつけたり、削除したりしているんですね。
「br0.local.d」から入ってきた通信については、「flow_table_32768」に転送し、VLAN IDと宛先MACをみて特定のtapポートに転送しているといった様子が確認できますね。
このテーブルで何度確認しても謎だったのは、table=0の2行目で、tap1(VM)からの通信に対して、VLAN ID=「6301」でタグ付けしているところです。この仮想マシンが接続している仮想ネットワークのVLAN IDは「2205」なので、「6301」といったタグが付くはずはないのですが、何かカラクリがあるのかもですね。
さいごに
今回までで、Nutanix AHVのbr0ブリッジを構成するブリッジチェーンについて確認した情報を紹介してきました。これで、AHVの基本となるブリッジの話は終わりになります。
これからは、Flow Virtual NetworkingやFlow Network Securityの検証を進めながら、仮想スイッチの様子なども確認していきたいと思います。