How to connect VPP instances using IKEv2
========================================

This section describes how to initiate IKEv2 session between two VPP
instances using Linux veth interfaces and namespaces.

Create veth interfaces and namespaces and configure it:

::

   sudo ip link add ifresp type veth peer name ifinit
   sudo ip link set dev ifresp up
   sudo ip link set dev ifinit up

   sudo ip netns add clientns
   sudo ip netns add serverns
   sudo ip link add veth_client type veth peer name client
   sudo ip link add veth_server type veth peer name server
   sudo ip link set dev veth_client up netns clientns
   sudo ip link set dev veth_server up netns serverns

   sudo ip netns exec clientns \
         bash -c "
                 ip link set dev lo up
                 ip addr add 192.168.5.2/24 dev veth_client
                 ip addr add fec5::2/16 dev veth_client
                 ip route add 192.168.3.0/24 via 192.168.5.1
                 ip route add fec3::0/16 via fec5::1
         "

   sudo ip netns exec serverns \
         bash -c "
                 ip link set dev lo up
                 ip addr add 192.168.3.2/24 dev veth_server
                 ip addr add fec3::2/16 dev veth_server
                 ip route add 192.168.5.0/24 via 192.168.3.1
                 ip route add fec5::0/16 via fec3::1
         "

Run responder VPP:

::

   sudo /usr/bin/vpp unix { \
         cli-listen /tmp/vpp_resp.sock \
         gid $(id -g) } \
         api-segment { prefix vpp } \
         plugins { plugin dpdk_plugin.so { disable } }

Configure the responder

::

   create host-interface name ifresp
   set interface ip addr host-ifresp 192.168.10.2/24
   set interface state host-ifresp up

   create host-interface name server
   set interface ip addr host-server 192.168.3.1/24
   set interface state host-server up

   ikev2 profile add pr1
   ikev2 profile set pr1 auth shared-key-mic string Vpp123
   ikev2 profile set pr1 id local ipv4 192.168.10.2
   ikev2 profile set pr1 id remote ipv4 192.168.10.1

   ikev2 profile set pr1 traffic-selector local ip-range 192.168.3.0 - 192.168.3.255 port-range 0 - 65535 protocol 0
   ikev2 profile set pr1 traffic-selector remote ip-range 192.168.5.0 - 192.168.5.255 port-range 0 - 65535 protocol 0

   create ipip tunnel src 192.168.10.2 dst 192.168.10.1
   ikev2 profile set pr1 tunnel ipip0
   ip route add 192.168.5.0/24 via 192.168.10.1 ipip0
   set interface unnumbered ipip0 use host-ifresp

Run initiator VPP:

::

   sudo /usr/bin/vpp unix { \
         cli-listen /tmp/vpp_init.sock \
         gid $(id -g) } \
         api-segment { prefix vpp } \
         plugins { plugin dpdk_plugin.so { disable } }

Configure initiator:

::

   create host-interface name ifinit
   set interface ip addr host-ifinit 192.168.10.1/24
   set interface state host-ifinit up

   create host-interface name client
   set interface ip addr host-client 192.168.5.1/24
   set interface state host-client up

   ikev2 profile add pr1
   ikev2 profile set pr1 auth shared-key-mic string Vpp123
   ikev2 profile set pr1 id local ipv4 192.168.10.1
   ikev2 profile set pr1 id remote ipv4 192.168.10.2

   ikev2 profile set pr1 traffic-selector remote ip-range 192.168.3.0 - 192.168.3.255 port-range 0 - 65535 protocol 0
   ikev2 profile set pr1 traffic-selector local ip-range 192.168.5.0 - 192.168.5.255 port-range 0 - 65535 protocol 0

   ikev2 profile set pr1 responder host-ifinit 192.168.10.2
   ikev2 profile set pr1 ike-crypto-alg aes-gcm-16 256 ike-dh modp-2048
   ikev2 profile set pr1 esp-crypto-alg aes-gcm-16 256

   create ipip tunnel src 192.168.10.1 dst 192.168.10.2
   ikev2 profile set pr1 tunnel ipip0
   ip route add 192.168.3.0/24 via 192.168.10.2 ipip0
   set interface unnumbered ipip0 use host-ifinit

Initiate the IKEv2 connection:

::

   vpp# ikev2 initiate sa-init pr1

Responder’s and initiator’s private networks are now connected with
IPSEC tunnel:

::

   $ sudo ip netns exec clientns ping 192.168.3.1
   PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.
   64 bytes from 192.168.3.1: icmp_seq=1 ttl=63 time=1.64 ms
   64 bytes from 192.168.3.1: icmp_seq=2 ttl=63 time=7.24 ms
