Next Previous Contents

3. Requisitos del kernel y configuración.

Linux es, por supuesto (¿lo dudaba?), completamente capaz de hacer Multicast en el Nivel 2. Cumple todos los requisitos para enviar, recibir y actuar como un encaminador (mrouter) para datagramas multicast.

Si quiere sólo enviar y recibir debe decir «sí» a la pregunta «IP: multicasting» cuando configure su kernel. Si también quiere que su ordenador con Linux pueda actuar como un encaminador de multicast (mrouter) debe activar también encaminamiento multicast en el kernel seleccionando: «IP: forwarding/gatewaying», «IP: multicast routing» y «IP: tunneling», este último porque las nuevas versiones de mrouted dependen de túneles sobre IP para enviar los datagramas de multicast encapsulados en datagramas de unicast. Es necesario cuando se establecen túneles entre ordenadores con multicast separados por redes y encaminadores capaces sólo de unicast (el demonio mrouted implementa el algoritmo de encaminamiento multicast -la política de encaminamiento- e indica al kernel cómo debe encaminar datagramas multicast).

Algunas versiones del kernel marcan el encaminamiento de multicast como «EXPERIMENTAL», así que debe activar la opción «Prompt for development and/or incomplete code/drivers» (Preguntar por dispositivos/código incompleto o/y en desarrollo) en la sección «Code maturity level options» (Opciones de madurez del código n. del t.).

Si cuando se está ejecutando mrouted, el tráfico generado en la misma red que el ordenador al que su GNU/Linux está conectado se reenvía correctamente a la otra red, pero no puedes ver el tráfico de la otra red en su red local, compruebe si está recibiendo mensajes de error de protocolo ICMP. Lo más posible es que olvidase activar los túneles sobre IP en su encaminador GNU/Linux. Es un error algo estúpido cuando lo conoces, pero, creame, lleva mucho tiempo encontrarlo cuando no es así, y no hay razón aparente que indique qué algo está funcionando mal. Un sniffer demuestra ser muy útil en estas situaciones.

(Puede ver más sobre encaminamiento multicast en la sección Políticas de encaminamiento y técnicas de reenvío; se explica también mrouted y los túneles en las secciones El Mbone y Aplicaciones Multicast).

Una vez que ha compilado e instalado su nuevo kernel, debe dar una ruta por defecto al tráfico multicast. El objetivo es añadir una ruta para la red 224.0.0.0.

El problema al que la mayor parte de la gente se enfrenta en este punto de la configuración es la elección del valor de la máscara de red. Si ha leído el excelente NET-3-HOWTO de Terry Dawson [aún no traducida, n. del t.], no te debería ser difícil adivinar el valor correcto. Como allí se explica, la máscara es un número de 32 bits con todo unos en la parte de red de su dirección IP, y con todo ceros en la parte de ordenadores. Recuerde de la sección Direcciones Multicast que una dirección multicast clase D no tiene parte de red ni ordenador. En su lugar tiene un identificador de grupo de 28 bits y un identificador de clase D de 4 bits. Pues bien, estos 4 bits son la parte de red y los restantes 28 la parte de los ordenadores. Así que la máscara buscada es 11110000000000000000000000000000 o, más fácilmente: 240.0.0.0. Entonces el comando completo debería ser:

 
route add 224.0.0.0 netmask 240.0.0.0 dev eth0

Dependiendo de lo viejo que sea su programa route, puedes tener que poner el flag -net después de add.

Aquí suponemos que eth0 tiene capacidades multicast y que, cuando no se indique lo contrario, queremos que se envíe el tráfico multicast por allí. Si este no es su caso, cambie el parámetro dev al correspondiente.

El sistema de ficheros /proc demuestra ser útil aquí una vez más: puede comprobar /proc/net/igmp para ver los grupos a los que su ordenador está suscrito actualmente.


Next Previous Contents