NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

【AOS 7.0】Nutanix AHVの仮想スイッチを確認⑧ br0.localのFlowテーブル

※この記事は「AOS 7.0.xx」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。

この記事は、AHVにおけるOVSのブリッジチェーンの中身を確認する連載シリーズです。各記事には以下のリンクからアクセスできます。

 

前回の記事では、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-VMWindows Server 2022

環境は以下のイメージで、一般的なNutanixの3ノードクラスタです。

今回の対象部分は以下の通りです。

2. br0.localのMACアドレステーブル

▽br0.localのMACアドレステーブルは以下の通りです。Flowテーブルで「action: NOMAL」というルールが出てくると、このMACアドレステーブルを参照して宛先ポートを認識します。br0.local内の通信でこのテーブルがどの程度使われているか微妙ですが、最低限接続されているポートのMACアドレス情報は保持するようです。

[root@ahv ~]# ovs-appctl fdb/show br0.local
 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テーブルは以下の通りです。

[root@ahv ~]# ovs-ofctl dump-flows br0.local
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の検証を進めながら、仮想スイッチの様子なども確認していきたいと思います。