IPv6 隧道间歇性丢弃入站

IPv6 隧道间歇性丢弃入站

我有一个 IPv6 隧道,它在流量出站之前拒绝工作。如果我打开设备并 ping 进去,我不会得到任何响应,直到我开始 ping 出去。如果我离开几个小时并尝试再次 ping 进去,我将得不到任何响应。

我在隧道中使用 Debian Lenny 和 Hurricane Electric。我甚至不知道从哪里开始调试这种行为,因为它太不寻常了。我使用了 Debian 配置http://www.tunnelbroker.net/forums/index.php?topic=18.0以及来自的配置http://wiki.debian.org/DebianIPv6以及其间的各种调整,但我仍然无法让设备持续接受入站流量。没有 ip6tables,但我确实有各种 iptable 规则。有没有其他人遇到过这种问题?我能做些什么来调试或解决这个问题?

编辑:没有涉及 NAT,而且都是 IPv4 Cisco 基础设施。我认为我、交换机和路由器之间没有任何 IPv6。

答案1

SixXS FAQ 中给出了真正的答案:

http://www.sixxs.net/faq/connectivity/?faq=conntracking

请参阅该文章以获得完整解释。

答案2

在不了解您的网络设计的情况下,我假设您的隧道端点位于 LAN 上的设备上,位于互联网路由器后面。我还假设该设备通过路由器上的 NAT 访问互联网。

入站问题可能由路由器上的 NAT 表引起。路由器不知道如何将入站 v6(协议 41)流量路由到隧道端点设备。只要您通过隧道向外发送 v6 流量,就会在 NAT 表中创建一个条目。此条目允许路由器将入站流量发送回隧道端点。

在没有流量的一段时间后,路由器会使条目过期并将其从其 NAT 表中清除,因此没有入站流量能够再到达您的隧道端点。

如何解决这个问题取决于您的路由器的功能。

  1. 在您的路由器上制定转发规则,将传入的“协议 41”流量转发到 LAN 上的隧道端点设备。大多数消费级路由器无法做到这一点。
  2. 或者确保有足够的出站流量来触发路由器,使 NAT 表条目永不过期。这可以通过设置 cronjob 以每 5 分钟 ping6 外部服务器来实现。

解决方案 2 的示例:将以下内容放入您的 crontab 中

# Ping6 every 5 minutes to keep NAT open
*/5 * * * * ping6 -c1 -q www.sixxs.net 2>&1  >/dev/null

相关内容