MAC Multicast: De los gritos en Ethernet al ahorro en ancho de banda
En las transmisiones de uno a muchos, se utilizan mecanismos como el Broadcast, donde un host quiere anunciar públicamente una información a todos los vecinos de su dominio de broadcast. Es como gritar en un salón para que todos puedan escuchar lo que tienes que decir. Algunos de esos anuncios os sonarán, aunque no seáis conscientes de cómo funcionan y de que utilizan dicho mecanismo. Estos son tres ejemplos:
– Resolución de nombres por Netbios.
– Resolución de IPs por ARP.
– Solicitudes de IP por DHCP.
Dependiendo de la capa de red en la que nos encontremos, se enviará un paquete a una dirección de destino concreta:
– En Capa 2 enviaremos un paquete a la dirección ethernet FFFF:FFFF:FFFF.
– En Capa 3 enviaremos un paquete a la dirección IP 255.255.255.255.
Recordemos que todo este tráfico no sale nunca de nuestro dominio de Broadcast (contenido en la vlan o conjunto de switches en los que estemos). En cuanto exista un router, éste bloquea dicho broadcast y no lo redirige a la siguiente red. Por eso, antes los llamaban “contenedores de Broadcast”.
Creando un grupo selecto de interlocutores
Pero, ¿qué pasa cuando solo queremos comunicarnos con un grupo selecto de destinatarios porque comparten un mismo interés y hablan un protocolo común? Siguiendo el símil, es bastante maleducado ir pegando voces por una sala, es más prudente sacar el móvil y crear tu propio grupo de WhatsApp para hablar con tus colaboradores.
Uno de los ejemplos más conocidos ocurre en el caso de que queramos enviar un flujo de datos, como una película de video, a distintos suscriptores. Necesitamos ahorrar ancho de banda. Si tenemos 100 clientes y necesitamos 2Gbps de tráfico saliente desde el servidor hacia los clientes, con técnicas como el Multicast, el servidor solo tiene que enviar un único flujo de 20Mbps. El ahorro es considerable, ¿verdad? Aunque es algo más complejo, la idea es esa, optimizar los recursos.
Para esto, al igual que antes, podemos hacerlo en cualquiera de los dos niveles:
- En la Capa 2 enviaremos un paquete a una dirección MAC Multicast
- En la Capa 3 enviaremos un paquete a una dirección IP Multicast.
Quedándonos solamente en la Capa 2, y analizando cómo están formados los paquetes de ella, vemos un detalle importante:
- MAC multicast: comienzan con un número IMPAR.
- MAC unicast: comienzan con un número PAR.
Estos son algunos de los ejemplos que podéis encontrar en Wikipedia y donde se ve claramente cómo muchos mecanismos de control de switches, routers y enrutamiento dinámico utilizan direcciones MAC multicast:
Son idiomas que hablan los dispositivos de una red en el mismo dominio de broadcast. Están muy bien diseñados, e intentan no molestar al resto de los hosts de la red. Entendemos por “molestar” al proceso por el cual la tarjeta de red al que le llega un paquete, se lee, se compara con una lista de filtros de MACs autorizadas y si está en la zona VIP de los autorizados, molesta al recurso más preciado que tienen los equipos, los ciclos de reloj de la CPU.
Podéis ver más detalles en el artículo anterior.
Switches compatibles
Un detalle muy importante. Los switches que empleemos deben de ser compatibles. Si un switch no entiende este tipo de tráfico Multicast, lo reenviará por todos sus puertos tratándolo como un tráfico de broadcast. En tal caso, los protocolos seguirían funcionando, pero no estarían aprovechándose las cualidades para las que se inventó el sistema multicast.
Existen protocolos como el IGMP, que permiten aprender dinámicamente qué puertos pertenecen a un grupo multicast.
Aseguraos, pues, de que vuestro switch está preparado.
Caso práctico
Un ejemplo muy práctico es el utilizado por el fabricante Checkpoint, especialista en soluciones de ciberseguridad. En uno de sus modos de trabajo en sus firewalls, Load Sharing Multicast Mode, se utiliza una dirección MAC multicast.
El sistema distribuye el tráfico de red entre dos nodos activos al mismo tiempo, de manera que se aprovechan al 100% los recursos de los dos firewalls y se logra una muy buena disponibilidad en el caso de que uno de ellos tenga problemas.
Para ello necesitan compartir una IP Virtual. Los paquetes que se envíen a dicha dirección virtual en el fondo se están mandando a una dirección MAC multicast que llegará a ambos firewalls al mismo tiempo. Dado que están coordinados perfectamente, solo uno de ellos cursará el tráfico hacia el otro lado de la red.
A día de hoy, un firewall ya no solo mira las cabeceras IP, sino que penetra en lo más profundo de los paquetes IP para observar su interior. Los Blades de Checkpoint como Antivirus, IPS o Antibot hacen uso de muchos ciclos de CPU, por lo que estos sistemas de balanceo y clusterización son ideales para distribuir la carga de tráfico, compartir CPU y, además, dotar de muy buena disponibilidad a nuestra red.
Hasta aquí el post de hoy, espero que os haya sido de interés y que tengáis una visión algo más amplia de este infinito mundo tecnológico.
Deja una respuesta