Mar 30, 2016

Contrail BUM tree utility

Contrail creates BUM tree to avoid particular node processes huge BUM traffic when Contrail processes BUM traffic.
At this time, one vRouter replicates BUM traffic to maximum Four vRouter.
We can confirm actual BUM tree by cli or Introspect on vRouter, it's tired to connect multiple vRouter then to execute command.

In case of cli, we can see it in the following procedure.
1) Confirm NextHop ID by VNI
root@contrail-05:~# vxlan --get 2008
VXLAN Table

 VNID    NextHop
----------------
   2008    183

2) Confirm VRF ID from NextHop
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) Comfirm MAC address list from VRF ID
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) Confirm NextHop ID of ff:ff:ff:ff:ff:ff then confirm each 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)

bumtreedisp.py that I made automatically shows BUM replication list when you set VNI and IP address of vRouter as arguments
Program is HERE.
Download "bumtreedisp.py" and "contrail_sandeshlibs.py"
*** bumtreedisp.py is main program.

Required libraliy of python are "argparse, sys, xmldict, urllib2"

How to use is "python bumtreedisp.py -t <IP address of vRouter> -v <VNI>"
It shows like below
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

No comments:

Post a Comment