IPIP

Два маршрутизатора (Net-R0 и Net-R2) на базе Linux CentOS 7 с такими вводными:

Net-R0:

WAN enp0s3 192.168.113.63
LAN enp0s8 10.0.0.1

Net-R2:

WAN enp0s3 192.168.113.65
LAN enp0s8 172.16.8.1

Поднять тонель и получить доступ к внутренним сетям.

# sysctl net.ipv4.ip_forward=1

Net-R0:

[root@Net-R0 network-scripts]# cat ifcfg-ipip1
DEVICE=tun0
BOOTPROTO=none
ONBOOT=no
TYPE=IPIP

## Addr Srv Net-R0
MY_OUTER_IPADDR=192.168.113.63
MY_INNER_IPADDR=172.17.254.1

PEER_OUTER_IPADDR=192.168.113.65
PEER_INNER_IPADDR=172.17.254.2

Net-R2:

[root@Net-R2 network-scripts]# cat ifcfg-ipip1
DEVICE=tun0
BOOTPROTO=none
ONBOOT=no
TYPE=IPIP

## Addr Srv Net-R2
MY_OUTER_IPADDR=192.168.113.65
## Addr Srv in a tonnel
MY_INNER_IPADDR=172.17.254.2

# Addr Peer (other side Net-R0)
PEER_OUTER_IPADDR=192.168.113.63
PEER_INNER_IPADDR=172.17.254.1

Теперь посмотрим IPIP пакеты. Видно, что пакеты IPIP энкапсулируют заголовок IP (192.168.113.65 > 192.168.113.63) во внутренний IP заголовок (172.17.254.2 > 10.0.0.1).

[root@Net-R2]# ping 10.0.0.1 -c2
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.863 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.522 ms
[root@Net-R0]# tcpdump -vvnneSs 0 -i any port not ssh
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
04:55:26.814714 In 08:00:27:5b:03:19 ethertype IPv4 (0x0800), length 120: (tos 0x0, ttl 64, id 12468, offset 0, flags [DF], proto IPIP (4), length 104)
    192.168.113.65 > 192.168.113.63: (tos 0x0, ttl 64, id 31918, offset 0, flags [DF], proto ICMP (1), length 84)
    172.17.254.2 > 10.0.0.1: ICMP echo request, id 25063, seq 1, length 64
04:55:26.814828 In ethertype IPv4 (0x0800), length 100: (tos 0x0, ttl 64, id 31918, offset 0, flags [DF], proto ICMP (1), length 84)
    172.17.254.2 > 10.0.0.1: ICMP echo request, id 25063, seq 1, length 64
04:55:26.814877 Out ethertype IPv4 (0x0800), length 100: (tos 0x0, ttl 64, id 22476, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.0.1 > 172.17.254.2: ICMP echo reply, id 25063, seq 1, length 64
04:55:26.814886 Out 08:00:27:5c:5e:08 ethertype IPv4 (0x0800), length 120: (tos 0x0, ttl 64, id 63103, offset 0, flags [DF], proto IPIP (4), length 104)
    192.168.113.63 > 192.168.113.65: (tos 0x0, ttl 64, id 22476, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.0.1 > 172.17.254.2: ICMP echo reply, id 25063, seq 1, length 64