為什麼我的 Linux 主機會突然停止接收多重播送?專用網路上的所有其他網路卡正在接收

為什麼我的 Linux 主機會突然停止接收多重播送?專用網路上的所有其他網路卡正在接收

這是我的困境。突然之間,從昨天開始,一個節點不再從 eth1(專用千兆位元網路)接收多播封包。所有節點之間路由良好,無衝突、丟包等情況。

ifconfiginfo、inet addr、Bcast、Mask 都很好 - 它們都共享相同的 bcast 和網路遮罩。此外,它們都共享: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 on eth1 。

這些節點均由 Xen VM 提供者託管。所有客人都可以看到彼此的私人 IP 位址。沒有iptables涉及任何規則。除了一個節點之外,所有節點(20+)之間都可以看到多播資料包 - 使用tcpdump.系統重新啟動等。

只是補充一下,根據 netstat -g,受影響的節點沒有像所有其他節點一樣被分配多播組“eth1 1 224.2.2.4”。

什麼會導致這樣的事情呢?似乎一個節點不再是多播組的一部分 - 我打開了一張票,但我有一種感覺,他們被難住了。

答案1

我不知道 Linux 堆疊中 IGMP 群組成員身分有任何過期策略。它可能會發生,但我對此表示懷疑,因為至少有兩種方法可以告訴核心(一種是顯式的,另一種是隱式的)何時應該刪除程式的 IGMP 成員身份。

因此,我認為您偵聽多播封包的軟體有錯誤。 (願意說出它的名字嗎?)接收多播的程序不知何故要么放棄了自己的成員資格,要么忽略了在啟動時添加其成員資格。重新啟動多重播送偵聽器程式時,tcpdump應該會看到網路上發出 IGMPv2+ 群組新增成員資格請求。

在小型 LAN 上進行測試時,您可能從未註意到此錯誤,因為廉價的網路交換器不支援 IGMP。此功能稱為 IGMP 監聽,僅在交換器中發現,每個連接埠的成本約為最便宜設備的 5 倍或更多。沒有 IGMP 偵聽功能的交換器(或關閉該功能的交換器)會將多重播放轉換為廣播,因此不需要 IGMP 群組新增訊息。

您的託管提供者顯然在其網路結構上啟用了 IGMP 監聽,因為在 IGMP 群組成員資格在故障電腦的網路堆疊上消失後,多播訊息停止傳入。

也可能是託管提供者的 IGMP 監聽選項在交換器中配置錯誤,因此它們會刪除群組成員身份,但這並不能解釋結果netstat -g

相關內容