| .. _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 |