Почему некоторые маршрутизаторы WiFi блокируют многоадресные пакеты, идущие от проводного к беспроводному?

40652
hooby3dfx

Я работал с десятками потребительских Wi-Fi-роутеров, и им это очень понравилось, хотя, похоже, все становится лучше.

Пример вопроса:

  1. Устройство, которое можно обнаружить с помощью mDNS, подключается к маршрутизатору с помощью кабеля.
  2. Другое устройство, подключенное к маршрутизатору по WiFi, пытается обнаружить устройство на шаге 1.
  3. Пакеты с устройства по WiFi не попадают на проводное устройство, или, если они это делают, пакеты, отправленные с проводного устройства, не попадают на беспроводное устройство.

Многие маршрутизаторы имеют настройки, позволяющие это работать.

См. Http://community.linksys.com/t5/Wireless-Routers/WRT120N-WLAN-Issues/td-p/400073 и http://forums.verizon.com/t5/FiOS-Internet/Communication-between-wired -и-беспроводная сеть-на-actiontec / td-p / 461359 для примеров.

Есть ли где-нибудь список несовместимости с этим? В чем причина? Просто ошибка в роутере?

25
Скорее всего, это будет перенесено в Superuser - там больше внимания уделяется оборудованию потребительского уровня. EEAA 10 лет назад 1

2 ответа на вопрос

36
Spiff

It's usually due to bugs in the Wi-Fi home gateway routers (APs), or sometimes in the wireless client chipsets/drivers/software.

On Wi-Fi, sending multicasts from the AP to the wireless clients (this is known in the standard as "From the Distribution System" or "FromDS") is tricky, so there are lots of ways it can fail, and it's easy to introduce bugs.

  1. Even though the radio medium is unreliable enough that 802.11 unicasts are required to have link-level acknowledgements (ACKs) and get retransmitted several times if there's no ACK, FromDS multicasts are never ACKed because they'd need to be ACKed by all the wireless clients of the AP, which could be quite an "ACK storm". So instead, FromDS multicasts have to be sent at a low data rate; using a simpler, slower, easy-to-decode-even-at-low-signal-to-noise-ratios modulation scheme, that can hopefully be received reliably by all the clients of the AP. Some APs let the administrator set the multicast rate, and some administrators unwittingly set it too high for some of their clients to receive reliably, breaking multicast delivery to those clients.
  2. When WPA (TKIP) or WPA2 (AES-CCMP) encryption is in use, FromDS multicasts have to be encrypted with a separate encryption key that is known to all of the clients (this is called the Group Key).
  3. When a client leaves the network, or every hour or so, just for good measure, the Group Key needs to be changed so that the client that left no longer has access to decrypt the multicasts. This "Group Key Rotation" process sometimes has problems. If a client doesn't acknowledge receipt of the new group key, the AP is supposed to de-authenticate that client, but if it fails to do that due to a bug, a client could have the wrong group key and thus be "deaf" to multicasts without realizing it.
  4. When WPA2 "mixed mode" is enabled (that is, when both WPA and WPA2 are enabled at the same time), the FromDS multicasts typically have to be encoded with the TKIP cipher, so that all clients are guaranteed to know how to decode it.
  5. FromDS multicasts have to be queued up by the AP and only transmitted at times when all clients who care about multicasts can be expected to have their receivers powered on. The time between the "safe to transmit FromDS multicasts" periods is called the "DTIM interval". If the AP or clients screw up their DTIM interval handling, it could result in clients unable to receive multicasts reliably.
  6. Some APs have features to keep wireless clients from being able to talk directly to each other, to maybe keep your wireless guests from hacking your other wireless guests. These features usually block multicasts from WLAN devices to other WLAN devices, and could well be implemented in a naive way that even blocks multicasts from LAN to WLAN.

The crazy thing is, "ToDS" multicasts are done just like ToDS unicasts, and so they rarely break. And since ToDS multicasts (not FromDS multicasts) are all that are needed when a wireless client gets a DHCP lease and ARPs to find its default gateway, most clients are able to get connected and surf the web, check email, etc. even when FromDS multicasts are broken. So a lot of people don't realize they have multicast problems on their network until they try to do things like mDNS (a.k.a. IETF ZeroConf, Apple Bonjour, Avahi, etc.).

A couple other things to note, regarding wired to wireless multicast transmissions:

  1. Most LAN multicasts, such as mDNS, are done using special multicast address ranges that are not meant to be routed across routers. Since Wi-Fi-capable home gateways with NAT enabled count as routers, mDNS is not meant to cross from WAN to [W]LAN. But it SHOULD work from LAN to WLAN.
  2. Because multicasts on Wi-Fi have to be sent at a low data rate, they take up a lot of airtime. So they're "expensive", and you don't want to have too many of them. That's the opposite of how things work on wired Ethernet, where multicasts are "less expensive" than sending separate unicasts to each machine "tuning into a multicast video stream" for example. Because of this, many Wi-Fi APs will do "IGMP Snooping" to watch which machines are sending Internet Group Management Protocol (IGMP) requests, expressing their desire to tune into a given multicast stream. Wi-Fi APs that do IGMP Snooping won't automatically forward some classes of multicasts onto the wireless network unless they see a wireless client try to subscribe to that stream via IGMP. The documents that describe how to do IGMP Snooping properly make it clear that certain classes of low-bandwidth multicasts (mDNS fits in this category) are supposed to always be forwarded even if no one has explicitly asked for them via IGMP. However, I wouldn't be surprised if there are broken IGMP Snooping implementations out there that absolutely never forward any kind of multicast until it sees an IGMP request for it.

tl;dr: Bugs. Lots of opportunities for bugs. And occasional poorly-designed features and configuration errors. Your best defense is to buy high-quality APs from companies that care about making sure multicasts work. Since Apple loves Bonjour (mDNS) so much, Apple's APs are probably the most consistently excellent at passing multicasts reliably, and Apple's Wi-Fi client devices are probably the most consistently excellent at receiving multicasts reliably.

Здорово, спасибо. @Spiff Любая подсказка о том, как широко распространена несовместимость? hooby3dfx 10 лет назад 0
@ hooby3dfx Это, конечно, не редкая проблема, потому что я вижу вопросы об этом здесь на SU все время. Но я понятия не имею, какой процент сетей Wi-Fi видит эту проблему. Spiff 10 лет назад 0
Есть идеи, кто мог бы? Известны ли вам альтернативные методы для устройств на Wi-Fi, чтобы обнаружить другие проводные устройства? hooby3dfx 10 лет назад 0
1
isildur

@Spiff сделал несколько удивительных замечаний в своем ответе, и я не буду повторять здесь. Но есть и другие ответы и альтернативы, чтобы обойти эту проблему.

Короткий ответ? Я не думаю, что они всегда "блокируют" столько, сколько они просто "не делают это с самого начала" из-за инженерной лени, создающей какое-то конкретное устройство. У некоторых это не является приоритетом, а у некоторых просто нет времени, чтобы заставить его работать.

Он не занимает первое место в списке приоритетов по сравнению со всеми новыми «функциями», используемыми маркетингом для продажи этих потребительских устройств, и это особенность, которую не разбираются в большинстве не разбирающихся в технологиях людей, поэтому в списке приоритетов он идет до того момента, когда если большой пул владельцев не жалуется на это, он не учитывается в любых обновлениях ревизий.

Если вы хотите устройство, которое его поддерживает, проведите тщательную проверку своих исследований, и вы получите устройство, которое его поддерживает, или если вы можете найти новое или использованное устройство, которое поддерживает что-то вроде OpenWrt или Tomato, из Polarcloud, вы можете уверен получить то, что вам нужно.

Удачи. :)

+1 за использование более или менее стандартизированного решения, такого как OpenWRT, где вы не получаете подобных ошибок и где вы можете сообщать о найденных ошибках и надеетесь их исправить. Pavel Šimerda 10 лет назад 1

Похожие вопросы