Ip-in-Ip 隧道不工作——数据包未被解封装

Ip-in-Ip 隧道不工作——数据包未被解封装

我正在尝试使用 ip-in-ip 隧道将数据包从 HostA 转发到 HostB。当数据包到达目的地时,接收主机不会对它们进行解封装,因此随后会丢弃它们。我觉得我已经用尽了所有的 Google 搜索。实际上,接收主机似乎从未将数据包发送到隧道设备进行解封装。

我尝试过的最常用的教程是这里,但我尝试了多种方法和不同的教程,但仍然遇到同样的问题。我遗漏了什么?

在 HostA 上:

ip tunnel add tun0 mode ipip local $hostA remote $hostB
ip link set tun0 up
ip addr add 10.10.10.1/24 dev tun0

在 HostB 上

ip tunnel add tun0 mode ipip local $hostB remote $hostA
ip link set tun0 up
ip addr add 10.10.10.2/24 dev tun0

现在,当我 时ping 10.10.10.2,没有收到任何响应。HostB 显示(通过tcpdump -c 10 -nn src host 10.10.10.1 or src host $hostA):

(编辑以删除主机的实际 IP 地址)

18:18:56.026192 IP [HostA eth0 IP] > [HostB eth0 IP]: IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 41073, seq 69, length 64 (ipip-proto-4)

传入的数据包看起来应该如此,但它们从未被解封装。tcpdump -nni tun0没有输出,并且从未对 ping 做出任何响应。

答案1

确保您的防火墙规则允许 HostB 接收该请求(并且,显然,HostA 也允许接收该请求)。

在这种情况下,具体来说,接受“ipencap”协议可以解决问题。

相关内容