ip-in-ip隧道不工作 – 数据包没有被解封

我试图使用ip-in-ip隧道将数据包从HostA转发到HostB。 当数据包到达目的地时,它们不会被接收主机解封装,从而被丢弃。 我觉得我已经耗尽了所有的谷歌。 在本质上,接收主机看起来不会将数据包发送到隧道设备进行解封装。

我在这里尝试使用的教程最多,但是我已经尝试了多种方法和不同的教程,并且不断遇到同样的问题。 我错过了什么?

在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也没有响应。

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

在这种情况下,具体而言,接受'ipencap'协议解决了这个问题。