Autor Tema: IGMP snooping no funciona  (Leído 10989 veces)

0 Usuarios y 1 Visitante están viendo este tema.

jfm

  • Visitante
IGMP snooping no funciona
« en: 23-09-2014, 23:11 (Martes) »
Abro este hilo porque como aquí hay algunos genios de la programación, seguro que me pueden ayudar y dan con el problema.

Yo tengo un switch entre mi LAN y mi router que tiene IGMP snooping. Y funciona.

Pero para hacer unas pruebas se me ocurrió conectar un punto WiFi al router (Comternd 5813n) y descubrí que el IGMP snooping, aunque estaba bien configurado, no funcionaba. No sé si el problema viene de versiones anteriores de Openwrt, lo he detectado en una de las más recientes.

He abierto un ticket en Openwrt: https://dev.openwrt.org/ticket/17954

He seguido investigando y he añadido un par de comentarios al ticket:
Encontré una página donde decía que el código de bridge de Ubuntu 12 tenía un bug por el que sólo consideraba multicast las direcciones 224.0.0.x

Y luego buscando en el código de Openwrt encontré dos archivos in.h en include/linux/in.h y en include/netinet/in.h donde venían estas definiciones:

Código: [Seleccionar]
/* Defines for Multicast INADDR.  */
#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */
#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */
#define INADDR_ALLRTRS_GROUP    ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
#define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */

A mí me parece que lo correcto sería que la última línea fuese:
Código: [Seleccionar]
#define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xefffffff) /* 239.255.255.255 */

Los canales de imagenio son todos 239.0.x.y, pero no sé si el problema está ahí y no quisiera dejar el router frito con un experimento como éste.

La pregunta: quizá alguien que sepa más de esto me pueda explicar si esa constante INADDR_MAX_LOCAL_GROUP  tiene que tener el valor que tiene y por qué.

Una idea: quizá alguien tenga el Openwrt sobre una máquina virtual o algo así y pueda hacer una prueba sin cargarse nada.

Gracias por vuestra ayuda.



jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #1 en: 24-09-2014, 09:57 (Miércoles) »
Sigo poniendo aquí lo que voy averiguando. Lo de

Código: [Seleccionar]
#define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
es correcto, porque se refiere a las direcciones multicast utilizables en una subred de una LAN (definición IANA). No hay nada que probar por este camino.

De modo que sigo sin pistas sobre por qué no me funciona IGMP snooping.

El otro sospechoso que tengo es IGMP proxy.



jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #2 en: 25-09-2014, 11:34 (Jueves) »
Hola jfm

Yo estoy igual que tu, no consigo que deje de propagarse "mierda" por la red ... ¿has averiguado algo más?

Gracias, un saludo.

EDIT: Veo que con el deco apagado el tráfico es de unos 30KB/s pero con el deco encendido es de unos 3 Mbps! :-[ :-[

EDIT2: Me parece que no va a funcionar nunca: https://forum.openwrt.org/viewtopic.php?id=42468
Según leo ahí el IGMP Snooping solo funciona entre los puertos del bridge, por lo tanto en caso de que utilicemos la wifi del router va a dejar de enviar multicast por la wifi pero por ejemplo en mi caso que tengo otro AP enchufado por ethernet al router (y no uso la wifi del router) todo el muticast se propaga por ethernet y el AP por wifi (tengo varios APs, con los airport extreme de apple no hay IGMP Snooping pero con un Ubiquiti que tengo si que funciona bien).
« Última modificación: 25-09-2014, 12:01 (Jueves) por jgice »

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #3 en: 25-09-2014, 17:10 (Jueves) »
Una vez descartado el activar el IGMP Snooping por software, veo que algunos chips lo soportan por HW, en concreto el del comtrend 5813 es un BMC53115 y según las especificaciones de broadcom si que soporta IGMP por HW (http://www.broadcom.com/collateral/pb/53115-PB01-R.pdf)

Citar
Traffic control and network resiliency
• Storm control and port-based ingress/egress rate control
• Spanning Tree support (Rapid Spanning Tree and Multiple Spanning
Trees—up to 16)
• IPv4 IGMP and IPv6 MLD snooping
• IEEE 802.3x programmable per port flow control and
backpressure
• Port mirroring, LLDP, LACP

Sino la otra opción es poner otro switch entre medias que tenga IGMP Snooping, lo más "barato" que he encontrado son los netgear GS108E / GS105E al menos entre el switch del router y los otros puntos de acceso.

Un saludo.

jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #4 en: 25-09-2014, 17:49 (Jueves) »
Yo tengo un netgear GS108T y funciona. Y descubrí el problema precisamente al conectar un punto de acceso directamente al router para hacer unas pruebas.

Salvo que haya código abierto para controlar el hardware snooping de Broadcom y además haya interés en incorporarlo al código de OpenWRT, creo que no hay más salida que el switch. Dicen, aunque yo no lo tengo, que el TP-LINK TL-SG108E también va bien.

Una opción que no he probado es ebtables. Nunca lo he usado y no sé si valdrá para esto ni si sobrecargará mucho el router. Cuando tenga algo de tiempo lo exploraré.
« Última modificación: 25-09-2014, 17:50 (Jueves) por jfm »

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #5 en: 25-09-2014, 18:28 (Jueves) »
Tengo otra pista por donde tirar :)

He visto en el módulo de swconfig para b53 hay cositas para el tema del muticast, en concreto en b53_regs.h (target/linux/generic/files/drivers/net/phy/b53/b53_regs.h):

Citar
/* IP Multicast control (8 bit) */
#define B53_IP_MULTICAST_CTRL           0x21
#define  B53_IPMC_FWD_EN                BIT(1)
#define  B53_UC_FWD_EN                  BIT(6)
#define  B53_MC_FWD_EN                  BIT(7)

y

Citar
/* Switch Mode Control Register (8 bit) */
#define B53_SWITCH_MODE                 0x0b
#define   SM_SW_FWD_MODE                BIT(0)  /* 1 = Managed Mode */
#define   SM_SW_FWD_EN                  BIT(1)  /* Forwarding Enable */

Respecto a este último (B53_SWITCH_MODE) leo en la lista de openwrt un comentario del desarrollado de ese módulo donde parece indicar que el Managed Mode habilita el IGMP Snooping del switch (http://patchwork.openwrt.org/patch/3335/) A ver si compilo un fw que inicie el switch en ese modo y pruebo ...

Un saludo.

jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #6 en: 25-09-2014, 21:48 (Jueves) »
Lo que yo entiendo no es exactamente eso, sino que habilitas un trap (una interrupción) que, si tuvieras el código adecuado, podría servir para el igmp snooping o autenticación 802.x u otras cosas.

Cito:
"enables special treatment for the CPU port and certain
ethernet frames (IIRC multicast joins/leaves etc). It's probably fine
to keep it disabled until we want to use multicast snooping or 802.1x
authentication"

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #7 en: 26-09-2014, 00:03 (Viernes) »
Bueno,

Lo he probado y nada, cambiando simplemente el modo no ha sido posible funcionar, le he enviado un mail al desarrollado a ver si nos da una pista, pero no pinta bien ...

Por otro lado ¿sabes si el firmware de Movistar hace IGMP Snooping o también llena toda la red de multicast?

En cuanto a los otros routers que me comentabas para reemplazar al 5813, ¿no hay alguno que tenga un puerto/interfaz específica para el deco y así aislamos totalmente el tráfico multicast?

Gracias, un saludo.

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #8 en: 26-09-2014, 00:32 (Viernes) »
Yo tengo un netgear GS108T y funciona. Y descubrí el problema precisamente al conectar un punto de acceso directamente al router para hacer unas pruebas.

Salvo que haya código abierto para controlar el hardware snooping de Broadcom y además haya interés en incorporarlo al código de OpenWRT, creo que no hay más salida que el switch. Dicen, aunque yo no lo tengo, que el TP-LINK TL-SG108E también va bien.

Una opción que no he probado es ebtables. Nunca lo he usado y no sé si valdrá para esto ni si sobrecargará mucho el router. Cuando tenga algo de tiempo lo exploraré.

Perdona jfm, cuando dices que funciona sobre tu GS108T te refieres a que no se envía multicast por la wifi del GS108T ? pero y en la prueba que dices que hiciste conectando un AP al router? No termino de entender si conseguiste que no saliera el multicast por el AP conectado al router por ethernet.

Un saludo.

jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #9 en: 26-09-2014, 08:03 (Viernes) »
Tanto el Netgear como el TP-Link son switches que tienen igmp snooping y no tienen WiFi. El Netgear lo puedes ver en http://www.netgear.es/productos/profesional/switches/smart-switches/GS108T.aspx

Si conecto el AP al router se satura con el multicast, si lo conecto al switch funciona.

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #10 en: 26-09-2014, 14:32 (Viernes) »
Gracias jfm.

Una pregunta, ¿has probado a aislar el IPTV en un único puerto ethernet que vaya directo al deco? Yo probé con swswitch a poner el puerto conectado al deco solo a la VLAN 2 (IPTV) y me funcionaba la TV pero no me funcionaba el VoD ¿por narices el deco tiene que estar en la LAN?

Gracias, un saludo.

jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #11 en: 26-09-2014, 19:28 (Viernes) »
No he hecho la prueba que comentas.

En cuanto a la configuración, la nueva de imagenio es así, en la subred de la lan, pero nada te impide ser creativo. Eso sí, a costa de complicar la configuración de la red.

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #12 en: 26-09-2014, 20:39 (Viernes) »
Ok ... al final he tirado por la opción del swtich, el martes me llega un TL-SG108E. Con esto resolveré el problema en la wifi y gran parte de la red, pero hay otra parte que va a seguir recibiendo multicast porque bajo este switch cuelgan otros dos en distintas zonas ... pero "lo gordo" esta en el primero. Seguiré investigando con el tema del cable directo porque es la solución que más me gusta ya que no voy a usar la TV más allá del decodificador (de hecho hace una semana que pusieron la TV y aún no hemos encendido el deco nada más que para las pruebas).

Gracias, un saludo.

jgice

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #13 en: 30-09-2014, 19:47 (Martes) »
Hola,

Después de configurar el TL-SG108E he evitado que los IGMP llegasen a la wifi, aún así no me gusta la solución, cuando tenga un rato intentaré ver si es posible dedicar una boca del switch del Comtrend para el IPTV y que solo el multicast salga por ahí.

Así es como se ve en la configuración del Switch el tema del IGMP Snooping:



Añadir que el switch sólo se puede configurar desde la aplicación WINDOWS de TPLink, no es posible hacerlo desde un navegador, de todas formas por el precio del switch tampoco se puede pedir mucho.

Un saludo.

jfm

  • Visitante
Re: IGMP snooping no funciona
« Respuesta #14 en: 01-10-2014, 16:49 (Miércoles) »
Tendré que cerrar el hilo. Respuesta oficial a mi ticket:

Citar
"The linux igmp/mld snooping only works between linux interfaces, but does not have any effect on the switch chip behind a certain interface.

You should not see any multicast traffic on wifi as long as there are no subscribers, but it will still be broadcast to all ethernet ports if there is any subscriber on one of the ports.

This is more or less a hardware limitation, Broadcom switches do not implement full MLD/IGMP snooping in hardware but are only able to redirect these packets to linux with additional information, which would then require a special driver to update the switch internal forwarding tables to match the joins/leaves/membership reports."

Traduzco:
El snooping igmp/mld de linux sólo funciona entre interfaces linux, pero no tiene ningún efecto sobre el chip que hace de switch detrás de un determinado interfaz.

No deberías ver ningún tráfico multicast en el wifi en tanto en cuanto no haya suscriptores, pero aún habrá broadcast a todos los puertos ethernet si hay algún suscriptor en uno de los puertos.

Esto es más o menos una limitación del hardware, los switches Broadcom no implementan completamente el snooping MLD/IGMP por hardware sino que sólo son capaces de redirigir estos paquetes hacia linux con información adicional, lo que requeriría de un driver especial que actualizara las tablas internas de reenvío del switch para ajustarlas a los informes de uniones/abandonos/afiliación.

Resolución: no es un error.
Estado: cerrado.
 :-\

Ya sabéis, al menos con router Broadcom, hace falta un switch externo para hacer el igmp snooping. Sólo funciona bien el propio wifi del router, por supuesto si no se intenta ver un canal multicast por wifi.