.. _routing: .. toctree:: Routing ======= Skills to be Learned --------------------- In this exercise you will learn these new skills: #. Add route to Linux Host routing table #. Add route to FD.io VPP routing table And revisit the old ones: #. Examine FD.io VPP routing table #. Enable trace on vpp1 and vpp2 #. ping from host to FD.io VPP #. Examine and clear trace on vpp1 and vpp2 #. ping from FD.io VPP to host #. Examine and clear trace on vpp1 and vpp2 VPP command learned in this exercise ------------------------------------- #. `ip route add <https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip_route>`__ Topology --------- .. figure:: /_images/Connecting_two_vpp_instances_with_memif.png :alt: Connect two FD.io VPP topology Connect two FD.io VPP topology Initial State -------------- The initial state here is presumed to be the final state from the exercise `Connecting two FD.io VPP instances <VPP/Progressive_VPP_Tutorial#Connecting_two_vpp_instances>`__ Setup host route ----------------- .. code-block:: console $ sudo ip route add 10.10.2.0/24 via 10.10.1.2 $ ip route default via 10.0.2.2 dev enp0s3 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 10.10.1.0/24 dev vpp1host proto kernel scope link src 10.10.1.1 10.10.2.0/24 via 10.10.1.2 dev vpp1host Setup return route on vpp2 --------------------------- .. code-block:: console $ sudo vppctl -s /run/vpp/cli-vpp2.sock vpp# ip route add 10.10.1.0/24 via 10.10.2.1 Ping from host through vpp1 to vpp2 ------------------------------------ The connection from vpp1 to vpp2 uses the **memif** driver, the connection to the host uses the **af-packet** driver. To trace packets from the host we use **af-packet-input** from vpp1 to vpp2 we use **memif-input**. #. Setup a trace on vpp1 and vpp2 #. Ping 10.10.2.2 from the host #. Examine the trace on vpp1 and vpp2 #. Clear the trace on vpp1 and vpp2