1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | --- 這是一個非常關鍵的問題,直接觸及了多點傳播 (multicast) 在不同類型路由器上的處理差異! 如果一個**低階的消費級路由器**,它**沒有實現 PIM (Protocol Independent Multicast) 功能**,收到來自內部網路裝置(例如 IPTV 機上盒)針對 `239.1.1.1` 這類多點傳播群組的 **UDP/IGMP 封包 (具體來說是 IGMP 成員報告)**,它會這樣處理: ### 路由器會怎麼處理? 1. **處理 IGMP 訊息 (區域網路內部):** * 路由器會正常接收並處理來自內部裝置的 **IGMP 成員報告**。 * 如果路由器支援 **IGMP Snooping**(即使沒有 PIM 功能也可能支持),它會記錄下哪個內部埠(乙太網路口或 Wi-Fi 連線)對 `239.1.1.1` 這個多點傳播群組感興趣。這樣,當上游(來自網際網路)有多點傳播流量進來時,它能將其精確地轉發給感興趣的埠,而不會氾濫到所有內部裝置。 * 但是,**它的處理僅限於內部區域網路 (LAN) 層面。** 2. **無法建立外部多點傳播路由:** * **這是關鍵點!** 由於路由器沒有實現 PIM 這樣的多點傳播路由協定,它**不知道如何將來自內部網路的 IGMP 成員報告「轉換」或「傳遞」給網際網路上的上游多點傳播路由器。** * 它沒有能力向 ISP 的多點傳播路由器發出 PIM 加入 (Join) 請求,告訴 ISP:「我的下遊網路有訂閱者想接收 `239.1.1.1` 的流量,請把這個流量傳給我。」 * 換句話說,**它無法建立跨網際網路的「多點傳播樹」到自己這裡。** 3. **對待多點傳播流量如同未知流量:** * 對於從網際網路(WAN 口)接收到的任何 IP 封包,如果目的地 IP 位址是一個多點傳播位址(如 `239.1.1.1`),且這不是它自己發起的流量,**低階路由器通常會選擇直接將其丟棄。** * 因為它沒有參與到網際網路的多點傳播路由協議中,它不知道這個多點傳播流量應該轉發給誰,也不知道自己是否有權接收並分發這個流量。它會像處理任何不清楚目的地的外部流量一樣,將其丟棄。 ### 結論:外部多點傳播流量無法進入 總結來說,沒有 PIM 功能的低階路由器,在收到內部裝置的 IGMP 訂閱請求後: * **內部管理會做(如果支援 IGMP Snooping):** 它可能會管理區域網路內部的多點傳播轉發,避免內部廣播。 * **無法向外請求流量:** 但它**無法**將這些訂閱需求傳達給網際網路,也**無法**從網際網路接收到對應的多點傳播流量。 這意味著,**如果您的 ISP 提供的 IPTV 或其他多點傳播服務需要路由器的 PIM 支援才能從網際網路獲取流量,那麼使用沒有 PIM 功能的低階路由器將無法正常觀看或使用這些服務。** 這時候,您可能就需要更換路由器,或者使用 ISP 提供的專用 IPTV 數據機/路由器,因為它們通常會內建這些多點傳播路由功能。 --- 希望這個解釋清楚地說明了這種情況下路由器的行為! |
Direct link: https://paste.plurk.com/show/QyP3XluVrVSIevlbPu9M