GRE 隧道在 1 个方向上终止

GRE 隧道在 1 个方向上终止

我在 2 个 Centos-7 主机之间通过 tap0 接口建立了 GRE 隧道。我通过以下方式完成此操作:

  • 主机-A:10.0.10.5
  • 主机-B:10.0.20.5

在主机 A 上:

ip tunnel add tap0 mode gre remote 10.0.20.5 local 10.0.10.5 ttl 255
ip link set tap0 up
ip addr add 10.10.10.1/24 dev tap0

在主机 B 上:

ip tunnel add tap0 mode gre remote 10.0.10.5 local 10.0.20.5 ttl 255
ip link set tap0 up
ip addr add 10.10.10.2/24 dev tap0

完成此操作后,一切都运行良好。我可以双向 ping 通。问题是几分钟后,从主机 A 到主机 B 的隧道中断。但接口仍然正常运行。

我在两端都运行了 tcpdump。主机 A 上的 tcpdump 显示数据包通过 tap0 发出,但主机 B 上的 tcpdump 显示没有收到任何数据包。

如果我登录到 Host-B 并 ping Host-A,则隧道将再次处于活动状态,然后 Host-A 可以 ping Host-B。我通过在 Host-B 上创建一个 cron 作业并每分钟 ping Host-A 一次来完成伪保持活动,这可以使隧道保持活动状态,但我认为这不是必要的。

我读过的文档中没有发现任何关于 GRE 隧道超时的信息。还有其他人遇到过这种情况吗?

答案1

  1. 您使用无状态 GRE 隧道。它只是封装,没有任何建立和协商阶段。
  2. 运行tcpdump并检查哪些 GRE 数据包从一端发出并到达另一端。
  3. 使用命令检查 iptables 规则iptables-save -c。您应该允许 GRE 协议的传入数据包。检查两侧。
iptables -A INPUT -p 47 -j ACCEPT
  1. 此外,问题也可能是由主机之间的状态防火墙引起的。

相关内容