blob: c9586c1c85dc8ced013c77f9bd740d78dac15a2d [file] [log] [blame]
.. _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