我试图使用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'协议解决了这个问题。