11 #. Associate an interface with a bridge domain
12 #. Create a loopback interface
13 #. Create a BVI (Bridge Virtual Interface) for a bridge domain
14 #. Examine a bridge domain
16 FD.io VPP command learned in this exercise
17 --------------------------------------------
20 bridge <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_bridge-domain>`__
22 detail <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_bridge-domain>`__
24 bridge <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_set_interface_l2_bridge>`__
26 verbose <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_l2.html#clicmd_show_l2fib>`__
31 .. figure:: /_images/Switching_Topology.jpg
32 :alt: Switching Topology
39 Unlike previous exercises, for this one you want to start tabula rasa.
41 Note: You will lose all your existing config in your FD.io VPP instances!
43 To clear existing config from previous exercises run:
45 .. code-block:: console
47 $ ps -ef | grep vpp | awk '{print $2}'| xargs sudo kill
48 $ sudo ip link del dev vpp1host
49 $ # do the next command if you are cleaning up from this example
50 $ sudo ip link del dev vpp1vpp2
52 Run FD.io VPP instances
53 ------------------------
55 #. Run a vpp instance named **vpp1**
56 #. Run a vpp instance named **vpp2**
61 #. Create a veth with one end named vpp1host and the other named
63 #. Connect vpp1out to vpp1
64 #. Add ip address 10.10.1.1/24 on vpp1host
69 #. Create a veth with one end named vpp1vpp2 and the other named
71 #. Connect vpp1vpp2 to vpp1.
72 #. Connect vpp2vpp1 to vpp2.
74 Configure Bridge Domain on vpp1
75 --------------------------------
77 Check to see what bridge domains already exist, and select the first
78 bridge domain number not in use:
80 .. code-block:: console
82 vpp# show bridge-domain
83 ID Index Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
84 0 0 off off off off off local0
86 In the example above, there is bridge domain ID '0' already. Even though
87 sometimes we might get feedback as below:
89 .. code-block:: console
91 no bridge-domains in use
93 the bridge domain ID '0' still exists, where no operations are
94 supported. For instance, if we try to add host-vpp1out and host-vpp1vpp2
95 to bridge domain ID 0, we will get nothing setup.
97 .. code-block:: console
99 vpp# set int l2 bridge host-vpp1out 0
100 vpp# set int l2 bridge host-vpp1vpp2 0
101 vpp# show bridge-domain 0 detail
102 show bridge-domain: No operations on the default bridge domain are supported
104 So we will create bridge domain 1 instead of playing with the default
107 Add host-vpp1out to bridge domain ID 1
109 .. code-block:: console
111 vpp# set int l2 bridge host-vpp1out 1
113 Add host-vpp1vpp2 to bridge domain ID1
115 .. code-block:: console
117 vpp# set int l2 bridge host-vpp1vpp2 1
119 Examine bridge domain 1:
121 .. code-block:: console
123 vpp# show bridge-domain 1 detail
124 BD-ID Index BSN Age(min) Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
125 1 1 0 off on on on on off N/A
127 Interface If-idx ISN SHG BVI TxFlood VLAN-Tag-Rewrite
128 host-vpp1out 1 1 0 - * none
129 host-vpp1vpp2 2 1 0 - * none
131 Configure loopback interface on vpp2
132 -------------------------------------
134 .. code-block:: console
136 vpp# create loopback interface
139 Add the ip address 10.10.1.2/24 to vpp2 interface loop0. Set the state
140 of interface loop0 on vpp2 to 'up'
142 Configure bridge domain on vpp2
143 --------------------------------
145 Check to see the first available bridge domain ID (it will be 1 in this
148 Add interface loop0 as a bridge virtual interface (bvi) to bridge domain
151 .. code-block:: console
153 vpp# set int l2 bridge loop0 1 bvi
155 Add interface vpp2vpp1 to bridge domain 1
157 .. code-block:: console
159 vpp# set int l2 bridge host-vpp2vpp1 1
161 Examine the bridge domain and interfaces.
163 Ping from host to vpp and vpp to host
164 --------------------------------------
166 #. Add trace on vpp1 and vpp2
167 #. ping from host to 10.10.1.2
168 #. Examine and clear trace on vpp1 and vpp2
169 #. ping from vpp2 to 10.10.1.1
170 #. Examine and clear trace on vpp1 and vpp2
175 .. code-block:: console
177 vpp# show l2fib verbose
178 Mac Address BD Idx Interface Index static filter bvi Mac Age (min)
179 de:ad:00:00:00:00 1 host-vpp1vpp2 2 0 0 0 disabled
180 c2:f6:88:31:7b:8e 1 host-vpp1out 1 0 0 0 disabled
183 .. code-block:: console
185 vpp# show l2fib verbose
186 Mac Address BD Idx Interface Index static filter bvi Mac Age (min)
187 de:ad:00:00:00:00 1 loop0 2 1 0 1 disabled
188 c2:f6:88:31:7b:8e 1 host-vpp2vpp1 1 0 0 0 disabled