このとき、1つのvrouterは最大4台のvRouterへトラフィックをコピーします。
実際のツリーを確認するには、コマンドラインかIntrospectで確認できるのですが、複数のvRouterにアクセスしなければ確認できないので面倒です。
例えばコマンドラインの場合、以下の手順で確認できます。
1)VNIからNextHop IDを確認
root@contrail-05:~# vxlan --get 2008
VXLAN Table
VNID NextHop
----------------
2008 183
2) NextHopからVRF IDを確認
root@contrail-05:~# nh --get 183
Id:183 Type:Vrf_Translate Fmly: AF_INET Flags:Valid, Vxlan, Unicast Flood, Rid:0 Ref_cnt:2 Vrf:2005
Vrf:2005
3) VRF IDからMACリストを確認
root@contrail-05:~# rt --dump 2005 --family bridge
Kernel L2 Bridge table 0/2005
Flags: L=Label Valid, Df=DHCP flood
Index DestMac Flags Label/VNID Nexthop
170652 0:44:44:0:0:12 - 1
249441 a0:36:9f:74:88:d8 Df - 3
315393 0:0:5e:0:1:0 Df - 3
404400 0:22:22:0:0:12 - 1
540752 ff:ff:ff:ff:ff:ff LDf 2008 203
656836 2:d2:2f:ef:ae:93 LDf 27 792
797245 2:b:eb:af:7:f5 LDf 24 397
4) ff:ff:ff:ff:ff:ff のNextHopを確認し、Sub NHを確認していく。
root@contrail-05:~# nh --get 203
Id:203 Type:Composite Fmly:AF_BRIDGE Flags:Valid, Multicast, L2, Rid:0 Ref_cnt:4 Vrf:2005
Sub NH(label): 209(0) 204(0) 200(0)
今回作ったプログラムはVNIとvRouterのアドレスを入れれば自動的にBUMを複製するリストを出します。
プログラムはこちら
必要なライブラリは argparse, sys, xmldict, urllib2です。
使い方はpython bumtreedisp.py -t <vRouterアドレス> -v <VNI>です。
以下のように出力します。
root@console:~# python bumtreedisp.py -t 172.27.113.207 -v 2008
### Host 172.27.113.207 VNI 2008 BUM Tree ###
---- TAP interfaces ----
TAP:tapd22fefae-93 MAC:02:d2:2f:ef:ae:93
---- Tunnel interfaces ----
SIP:192.168.21.1 DIP:10.84.50.5 Encap:MPLSoUDP
SIP:192.168.21.1 DIP:192.168.22.1 Encap:MPLSoUDP
※まだ作り途中のため、エラーハンドリングなどが入っていません。
※今後もアップデート予定です。※2015/12/16出力を調整
※2016/2/8 importしているライブラリをContrailが使用しているxmltodictに変更。合わせてコードを少しきれいにした。 ※2016/3/30 一応αをとった
0 件のコメント:
コメントを投稿