Networking

IPv6 隧道間歇性地丟棄入站

  • January 31, 2011

我有一個 ipv6 隧道,它在流量出站之前拒絕工作。如果我打開設備並 ping 入,直到我開始 ping 出的那一秒才得到響應。如果我然後離開幾個小時並嘗試再次ping,我將沒有任何回應。

我正在為我的隧道使用 Debian Lenny 和 Hurricane Electric。我什至不確定從哪裡開始調試這種行為,因為它太不尋常了。我已經使用了來自http://www.tunnelbroker.net/forums/index.php?topic=18.0的 Debian 配置和來自http://wiki.debian.org/DebianIPv6的配置以及各種調整之間,但我仍然無法讓設備持續接受入站流量。沒有 ip6tables,但我確實有各種 iptable 規則。有沒有其他人遇到過這種問題?我可以做些什麼來調試或解決這個問題?

編輯:不涉及 NAT,都是 IPv4 Cisco 基礎設施。我認為我、交換機和路由器之間沒有任何 IPv6。

SixXS 常見問題解答中給出了真正的答案:

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

有關完整說明,請參閱該文章。

在不了解您的網路設計的更多資訊的情況下,我假設您的隧道端點位於 LAN 上的設備上,位於 Internet 路由器後面。我還假設設備通過路由器上的 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

引用自:https://serverfault.com/questions/75473