单纯的SIT隧道配置如下:
Host-A:
ip link add sit01 type sit local 10.10.10.103 remote 10.10.10.145 ttl 255
ip link set sit01 up
ip addr add 3ffe:6::1/96 dev sit01
Host-B:
ip link add sit01 type sit local 10.10.10.145 remote 10.10.10.103 ttl 255
ip link set sit01 up
ip addr add 3ffe:6::2/96 dev sit01
登录主机A,测试连通性:
Host-A $ ping6 3ffe:6::2
PING 3ffe:6::2(3ffe:6::2) 56 data bytes
64 bytes from 3ffe:6::2: icmp_seq=1 ttl=64 time=0.744 ms
以下为使用tcpdump抓取的数据报文,外层为IPv4头部,内层为IPv6头部:
查看内层的IPv4头部信息,可见其协议号为41,即IPv6-in-IPv4。
FOU封装SIT隧道
主机A配置如下,设置FOU接收端口为6666,协议号41为IPv6-in-IPv4隧道协议:
ip fou add port 6666 ipproto 41
ip link add sit01 type sit local 10.10.10.103 remote 10.10.10.145 ttl 255 encap fou encap-sport auto encap-dport 5555
ip link set sit01 up
ip addr add 3ffe:6::1/96 dev sit01
主机B配置如下,设置其FOU封装接收端口为5555,对应sit隧道设备sit01的目的端口encap-dport(5555)。
ip fou add port 5555 ipproto 41
ip link add sit01 type sit local 10.10.10.145 remote 10.10.10.103 ttl 255 encap fou encap-sport auto encap-dport 6666
ip link set sit01 up
ip addr add 3ffe:6::2/96 dev sit01
登录主机A测试连通性:
Host-A $ ping6 3ffe:6::2
使用tcpdump抓取到的数据报文如下,相比如没有FOU封装的sit隧道报文,增加了UDP头部,IPv6报文作为UDP的载荷存在:
GUE封装的SIT隧道
主机A配置如下,设置GUE接收端口为7777,GUE封装与FOU不同,其不需要在配置命令中指定协议类型,协议类型包含在数据包的GUE头部中:
ip fou add port 7777 gue
ip link add sit01 type sit local 10.10.10.103 remote 10.10.10.145 ttl 255 encap gue encap-sport auto encap-dport 8888 encap-csum encap-remcsum
ip link set sit01 up
ip addr add 3ffe:6::1/96 dev sit01
主机B配置如下,设置其GUE封装接收端口为8888,对应sit隧道设备sit01的目的端口encap-dport(8888)。
ip fou add port 8888 gue
ip link add sit01 type sit local 10.10.10.145 remote 10.10.10.103 ttl 255 encap gue encap-sport auto encap-dport 7777 encap-csum encap-remcsum
ip link set sit01 up
ip addr add 3ffe:6::2/96 dev sit01
登录主机A测试连通性:
Host-A $ ping6 3ffe:6::2
使用tcpdump抓取数据包如下,GUE头部信息为00 29 00 00:
配置环境
主机A:Ubuntu 17.04,IP命令版本:ip utility, iproute2-ss161212。
主机B:Ubuntu 18.04.1 LTS,IP工具版本:ip utility, iproute2-ss180129