IPIP 隧道 测试及验证

时间:2024-04-06 09:43:49

本文主要是讲解IPIP隧道的创建,及验证与问题分析
IPIP 隧道 测试及验证
1、创建两个网络命名空间
ip netns add ns1
ip netns add ns2
2、创建两对 veth pair ,一端各挂在一个命名空间下
ip link add v1 type veth peer name v1_p
ip link add v2 type veth peer name v2_p

ip link set v1 netns ns1
ip link set v2 netns ns2

3、分别配置地址,并启用
ip addr add 10.10.10.1/24 dev v1_p
ip link set v1_p up
ip addr add 10.10.20.1/24 dev v2_p
ip link set v2_p up

ip netns exec ns1 ip addr 10.10.10.2/24 dev v1
ip netns exec ns1 ip link set v1 up
ip netns exec ns2 ip addr 10.10.20.2/24 dev v2
ip netns exec ns1 ip link set v2 up

4、分别配置路由
ip netns exec ns1 route add –net 10.10.20.0/24 gw 10.10.10.1
ip netns exec ns2 route add –net 10.10.10.0/24 gw 10.10.20.1

此时执行 ip netns exec ns1 ping 10.10.20.2 是通的,说明v1、v2 是互通的

5、创建 tun设备,并设置为ipip隧道
ip netns exec ns1 ip tunnel add tun1 mode ipip remot 10.10.20.2 local 10.10.10.2
ip netns exec ns1 ip link set tun1 up
ip netns exec ns1 ip addr 10.10.100.10 peer 10.10.200.10 dev tun1

ip netns exec ns2 ip tunnel add tun2 mode ipip remot 10.10.10.2 local 10.10.20.2
ip netns exec ns2 ip link set tun2 up
ip netns exec ns2 ip addr 10.10.200.10 peer 10.10.100.10 dev tun1

6、测试隧道是否通
ip netns exec ns1 ping 10.10.200.10 发现不通

问题分析
1、查看路由信息
IPIP 隧道 测试及验证

2、Ping 同时抓包
IPIP 隧道 测试及验证
显示 10.10.10.1 > 10.10.10.2 不可达

3、在本机 ping 10.10.10.2 是通的
IPIP 隧道 测试及验证

4、查看 v1与 v1_p 的链接关系
IPIP 隧道 测试及验证

5、通过traceroute 查看路由信息
IPIP 隧道 测试及验证
没有获取到信息

6、查看iptables 规则
iptables -nvL
IPIP 隧道 测试及验证
怀疑是不是被这条规则过滤了

1)iptables –Z 统计清零,再进行测试
IPIP 隧道 测试及验证
ip netns exec ns1 ping -c 4 10.10.200.10 发送4次ping包测试

2)几乎可以确定是被该规则过滤,删除规则进一步确认
iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited

删除规则后,数据通过
IPIP 隧道 测试及验证