Networking

過濾 IPv6 ICMPv6 消息

  • April 5, 2011

所以我在我的家庭網路上更多地使用 IPv6,而且我做的事情有點過時——設置靜態地址等。這意味著我並不真正想要或關心通過各種 ICMPv6 消息內置到 IPv6 中的所有自動配置。但是執行 wireshark 並只擷取 IPv6 流量,我的兩個執行 Linux 的 IPv6 系統被證明是很閒聊的小東西。他們不斷交換“鄰居請求”、“鄰居廣告”和 ICMPv6 多播偵聽器報告“數據包。他們在我為每台機器設置的靜態分配的 ULA 地址和自動配置的鏈路本地地址上都這樣做.

我的問題是,如何在 Linux 中禁用這些?我通過“netsh”命令找到了幾個 Windows 指南(這讓我感到驚訝——在這方面,Windows 似乎比 Linux 更可調)。到目前為止,我在 Linux 中的唯一選擇似乎是使用 ip6tables 來阻止特定的 ICMPv6 消息類型。但是,查看 RFC4890,它們暗示如果 IPv6 主機要成功參與 IPv6 網路,則不能阻止這些消息。

我對 IPv6 協議的閱讀表明它深受大型企業網路中面臨的問題的影響。協議工程師似乎很少考慮小型專用網路。如果您是大型公司或其他此類企業網路的系統管理員,這很好,但如果您只是“某個人”試圖在家庭網路上使用協議來學習它,那就有點煩人了。我的學習方法是建立類似於我的 IPv4 網路的東西作為基線,然後根據需要啟用功能。

所以我問專家,我應該在我的Linux和windows主機上禁用這三種消息類型嗎?如果我這樣做,它會嚴重破壞我的內部 IPv6 設置嗎?當我達到那個階段時,它將如何影響外部 IPv6(我的 ISP 尚未為客戶分配 IPv6 地址,因此目前還沒有外部 IPv6 路由,也沒有 6 到 4 隧道)?ip6tables 是我在 Linux 中的唯一選擇嗎?

我還假設我被連結本地地址所困擾,對嗎?沒有辦法擺脫它們嗎?他們不可能記住……(也許這就是他的意思?)

禁用 IPv6 的 ICMP 可以完全破壞它。它在 v6 中用於v4 更多的東西。它用於錯誤報告、鄰居發現(如您所見)等等。

通過在任何級別阻止 ICMPv6,您可能會嚴重阻礙 IPv6 完成其工作的能力。上面有一個(簡短的)維基百科文章以及正常的非常全面的 RFC

要獲取全域地址,可以使用 6to4;您將獲得將您的全球 v4 地址轉換為 v6 地址的翻譯。缺點是你需要通過一個 6to4 隧道節點;它們的範圍在“慢”和“非常慢”之間,具體取決於您與節點的距離(ping 192.88.99.1 以找出答案;這是應該是您最近的端點的任播地址)。足以獲得測試和學習的實時連結..但僅此而已。

至於 ICMPv6,Mark 已經很好地涵蓋了它。我會補充一點:不要為此感到壓力。想想你目前習慣於調出的所有喋喋不休——ARP、DHCP;如果你有 windows 系統,那麼 netbios、電腦瀏覽器和 teredo;多播垃圾,如 SSDP/DNLA/UPnP。你不習慣這些 ICMP 消息,但它們是 IPv6 工作方式的重要組成部分。這就是為什麼你首先要設置它來學習!

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