Firewall

ICMPv6 限制性防火牆:隨著時間的推移失去連接

  • December 5, 2017

問題:

在一段時間後失去與遠端 IP 的 IPv6 連接,但未建立與遠端 IP 的連接。

我的設置:

我正在執行一個帶有ip6tables防火牆的伺服器,它過濾傳入的 ICMPv6 數據包。我已經根據RFC 4890為本地配置流量設置了這個防火牆。INPUT介面鏈上允許以下 ICMPv6 eth0

type 1 (destination unreachable)
type 2 (packet too big)
type 3 (time exceeded)
type 4 (parameter problem)
type 128 limit 100/sec limit-burst 500 (Echo)
type 129 (Echo reply)
type 133 (Router Solicitation)
type 134 (Router Advertisement)
type 135 (Neighbor Solicitation)
type 136 (Neighbor Advertisement)
type 141 (Inverse Neighbor Discovery Solicitation)
type 142 (Inverse Neighbor Discovery Advertisement)
type 148 (Certificate Path Solicitation)
type 149 (Certificate Path Advertisement
type 151 (Multicast Router Advertisement)
type 152 (Multicast Router Solicitation)
type 153 (Multicast Router Termination)

其他所有類型都被刪除。介面的 OUTPUT 鏈上允許所有 ICMPv6 數據包eth0

我試過什麼:

啟用規則後ip6tables,所有 IPv6 流量都可以順暢執行。然而,大約之後。1 天沒有連接到遠端 IP 地址,它突然變得無法訪問。

在遠端位置執行tcpdump表明來自防火牆伺服器的 ICMPv6 回顯成功到達並發送了回复。然而,迴聲回复沒有返回。

如果放寬防火牆策略以允許所有 ICMPv6 數據包通過,則建立連接,然後重新啟動原始防火牆 - 這一切都會繼續工作。

我的問題:

如何防止連接失去?

我想我一定是丟棄了某種對建立連接很重要的 ICMPv6 數據包。

我錯過了從 IPv4 防火牆導入的規則,它位於INPUT鏈中的較高位置並阻止了所有多播數據包:

-t filter -A INPUT -m pkttype --pkt-type multicast

刪除此規則後,連接已恢復。

我通過仔細檢查防火牆伺服器上的 ICMPv6 流量發現了這一點。伺服器正在接收鄰居請求數據包,但沒有發送鄰居廣告作為回复。

我仍然覺得這很奇怪,因為多播丟棄規則位於INPUT鏈上,因此它不應該阻止廣告數據包。相反,我認為我什至不應該收到徵集請求……

對不起,噪音。

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