9 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 #. Associate an interface with a bridge domain
12 #. Create a loopback interaface
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>`__
29 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31 .. figure:: /_images/Switching_Topology.jpg
32 :alt: Switching Topology
37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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 $ sudo ip link del dev vpp1vpp2
51 Run FD.io VPP instances
52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54 #. Run a vpp instance named **vpp1**
55 #. Run a vpp instance named **vpp2**
58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60 #. Create a veth with one end named vpp1host and the other named
62 #. Connect vpp1out to vpp1
63 #. Add ip address 10.10.1.1/24 on vpp1host
66 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
68 #. Create a veth with one end named vpp1vpp2 and the other named
70 #. Connect vpp1vpp2 to vpp1.
71 #. Connect vpp2vpp1 to vpp2.
73 Configure Bridge Domain on vpp1
74 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
76 Check to see what bridge domains already exist, and select the first
77 bridge domain number not in use:
79 .. code-block:: console
81 vpp# show bridge-domain
82 ID Index Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
83 0 0 off off off off off local0
85 In the example above, there is bridge domain ID '0' already. Even though
86 sometimes we might get feedback as below:
88 .. code-block:: console
90 no bridge-domains in use
92 the bridge domain ID '0' still exists, where no operations are
93 supported. For instance, if we try to add host-vpp1out and host-vpp1vpp2
94 to bridge domain ID 0, we will get nothing setup.
96 .. code-block:: console
98 vpp# set int l2 bridge host-vpp1out 0
99 vpp# set int l2 bridge host-vpp1vpp2 0
100 vpp# show bridge-domain 0 detail
101 show bridge-domain: No operations on the default bridge domain are supported
103 So we will create bridge domain 1 instead of playing with the default
106 Add host-vpp1out to bridge domain ID 1
108 .. code-block:: console
110 vpp# set int l2 bridge host-vpp1out 1
112 Add host-vpp1vpp2 to bridge domain ID1
114 .. code-block:: console
116 vpp# set int l2 bridge host-vpp1vpp2 1
118 Examine bridge domain 1:
120 .. code-block:: console
122 vpp# show bridge-domain 1 detail
123 BD-ID Index BSN Age(min) Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
124 1 1 0 off on on on on off N/A
126 Interface If-idx ISN SHG BVI TxFlood VLAN-Tag-Rewrite
127 host-vpp1out 1 1 0 - * none
128 host-vpp1vpp2 2 1 0 - * none
130 Configure loopback interface on vpp2
131 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
133 .. code-block:: console
135 vpp# create loopback interface
138 Add the ip address 10.10.1.2/24 to vpp2 interface loop0. Set the state
139 of interface loop0 on vpp2 to 'up'
141 Configure bridge domain on vpp2
142 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
144 Check to see the first available bridge domain ID (it will be 1 in this
147 Add interface loop0 as a bridge virtual interface (bvi) to bridge domain
150 .. code-block:: console
152 vpp# set int l2 bridge loop0 1 bvi
154 Add interface vpp2vpp1 to bridge domain 1
156 .. code-block:: console
158 vpp# set int l2 bridge host-vpp2vpp1 1
160 Examine the bridge domain and interfaces.
162 Ping from host to vpp and vpp to host
163 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
165 #. Add trace on vpp1 and vpp2
166 #. ping from host to 10.10.1.2
167 #. Examine and clear trace on vpp1 and vpp2
168 #. ping from vpp2 to 10.10.1.1
169 #. Examine and clear trace on vpp1 and vpp2
172 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
174 .. code-block:: console
176 vpp# show l2fib verbose
177 Mac Address BD Idx Interface Index static filter bvi Mac Age (min)
178 de:ad:00:00:00:00 1 host-vpp1vpp2 2 0 0 0 disabled
179 c2:f6:88:31:7b:8e 1 host-vpp1out 1 0 0 0 disabled
182 .. code-block:: console
184 vpp# show l2fib verbose
185 Mac Address BD Idx Interface Index static filter bvi Mac Age (min)
186 de:ad:00:00:00:00 1 loop0 2 1 0 1 disabled
187 c2:f6:88:31:7b:8e 1 host-vpp2vpp1 1 0 0 0 disabled