为什么有些WiFi路由器会阻止从有线到无线的组播数据包?


26

我曾经使用过几十种消费级WiFi路由器,虽然它似乎越来越好,但它们确实很受欢迎。

问题示例:

  1. 可以使用mDNS发现的设备通过电缆连接到路由器。
  2. 连接到WiFi上的路由器的另一个设备尝试在步骤1中发现该设备。
  3. 来自WiFi上的设备的数据包不会进入有线设备,或者如果它们发送,则从有线设备发送的数据包不会进入无线设备。

许多路由器都有允许其工作的设置。

请参阅http://community.linksys.com/t5/Wireless-Routers/WRT120N-WLAN-Issues/td-p/400073http://forums.verizon.com/t5/FiOS-Internet/Communication-between-wired以及无线网络on-actiontec / td-p / 461359为例。

是否有与此不兼容的列表?原因是什么?只是路由器中的一个错误?


1
这可能会迁移到超级用户 - 他们更多地处理消费者级别的设备。
EEAA 2014年

Answers:


39

这通常是由于Wi-Fi家庭网关路由器(AP)中的错误,或者有时是无线客户端芯片组/驱动程序/软件中的错误。

在Wi-Fi上,将多播从AP发送到无线客户端(这在标准中称为“来自分发系统”或“FromDS”)是棘手的,因此有很多方法可以失败,并且很容易介绍错误。

  1. 即使无线电介质不够可靠,802.11单播要求具有链路级别确认(ACK),并且如果没有ACK则多次重传,FromDS多播永远不会被确认,因为它们需要被所有无线客户端确认AP,这可能是一个“ACK风暴”。因此,必须以低数据速率发送FromDS多播; 使用更简单,更慢,易于解码,甚至低信噪比的调制方案,有望AP的所有客户端可靠地接收。有些AP允许管理员设置多播速率,一些管理员无意中将其设置得太高,以至于某些客户端无法可靠地接收,打破了向这些客户端的多播传输。
  2. 当使用WPA(TKIP)或WPA2(AES-CCMP)加密时,必须使用所有客户端都知道的单独加密密钥对FromDS多播进行加密(这称为组密钥)。
  3. 当客户端离开网络时,或者每隔一小时左右,只需要进行更好的测量,就需要更改组密钥,以便不再具有解密多播的客户端。这种“组密钥轮换”过程有时会出现问题。如果客户端未确认收到新的组密钥,则AP应该对该客户端进行解除身份验证,但如果由于错误而无法执行此操作,则客户端可能具有错误的组密钥,因此“聋” “没有意识到多播。
  4. 当启用WPA2“混合模式”时(即,同时启用WPA和WPA2时),FromDS多播通常必须使用TKIP密码进行编码,以便所有客户端都能够知道如何解码它。
  5. FromDS多播必须由AP排队,并且仅在所有关心多播的客户端可以预期其接收器通电时发送。“安全传输FromDS多播”时段之间的时间称为“DTIM间隔”。如果AP或客户端搞砸了DTIM间隔处理,则可能导致客户端无法可靠地接收多播。
  6. 一些AP具有使无线客户端无法直接相互通话的功能,可能会使您的无线客户无法攻击其他无线客户。这些功能通常会阻止从WLAN设备到其他WLAN设备的多播,并且可以以简单的方式实现,甚至可以阻止从LAN到WLAN的多播。

疯狂的是,“ToDS”多播就像ToDS单播一样,因此它们很少会破坏。由于ToDS多播(不是FromDS多播)是无线客户端获得DHCP租约和ARP以查找其默认网关时所需的全部内容,因此大多数客户端都能够连接并上网,查看电子邮件等,即使在FromDS多播打破了。所以很多人都没有意识到他们的网络上存在组播问题,直到他们尝试做mDNS(又名IETF ZeroConf,Apple Bonjour,Avahi等)之类的事情。

有关有线到无线多播传输的其他几点需要注意:

  1. 大多数LAN多播(例如mDNS)都是使用特殊的多播地址范围完成的,这些范围并不是要通过路由器进行路由。由于启用了NAT的支持Wi-Fi的家庭网关可以算作路由器,因此mDNS并不意味着从WAN到[W] LAN。但它应该从局域网到WLAN工作。
  2. 因为Wi-Fi上的多播必须以低数据速率发送,所以它们占用了大量的通话时间。所以它们“很贵”,你不想拥有太多它们。这与有线以太网的工作方式相反,在有线以太网中,多播比向每台机器“调谐到多播视频流”发送单独的单播“更便宜”。因此,许多Wi-Fi AP将执行“IGMP Snooping”来监视哪些机器正在发送Internet组管理协议(IGMP)请求,表达他们希望调谐到给定的多播流。执行IGMP侦听的Wi-Fi AP不会自动将某些类别的多播转发到无线网络,除非他们看到无线客户端尝试通过IGMP订阅该流。描述如何正确执行IGMP侦听的文档清楚地表明,即使没有人通过IGMP明确要求,也应该始终转发某些类别的低带宽多播(mDNS适合此类别)。但是,如果IGMP Snooping实施中断,在看到IGMP请求之前绝对不会转发任何类型的组播,我不会感到惊讶。

tl;博士:虫子。很多错误的机会。偶尔设计不佳的功能和配置错误。您最好的防御方法是从关注确保多播工作的公司购买高质量的AP。由于Apple非常喜欢Bonjour(mDNS),Apple的AP在可靠地传递多播方面可能是最出色的,而Apple的Wi-Fi客户端设备在可靠地接收多播方面可能是最出色的。


太棒了,谢谢你。@Spiff关于不兼容性有多广泛的任何线索?
hooby3dfx 2014年

@ hooby3dfx这肯定不是一个罕见的问题,因为我一直在SU上看到它的问题。但我不知道有多少百分比的Wi-Fi网络看到了这个问题。
Spiff 2014年

任何想法谁可能?您是否了解WiFi上设备的其他方法以发现其他有线设备?
hooby3dfx 2014年

1

@Spiff在他的回答中提出了一些很棒的观点,我不会在此重申。但是还有一些其他答案和替代方案可以解决这个问题。

简短的回答?我不认为他们总是“阻挡”因为工程师懒惰创造任何特定设备他们只是“不要开始”。有些人没有将其作为高优先级,有些人没有时间让它发挥作用。

与市场营销用于销售这些消费级设备的所有新“功能”相比,优先级列表并不高,这是大多数非技术人员都不知道的功能,因此在优先级列表中它会一直持续到除非有大量业主抱怨它,否则它将被排除在任何修订更新之外。

如果您需要支持它的设备,请对您的研究进行尽职调查,并获得支持它的设备,或者如果您可以找到支持Polarcloud的OpenWrtTomato等新设备或旧设备,您可以确保得到你所需要的。

祝好运。:)


1
+1使用或多或少的标准化解决方案,如OpenWRT,你不会得到这样的错误,你可以报告你发现的错误,并希望修复它们。
PavelŠimerda2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.