jueves, marzo 13, 2008

Las funciones básicas de un switch

El artículo más leído de este blog, es el de Vale la pena un switch administrable? Algunos lectores están interesados en saber las diferencias entre un switch administrable y otro que no lo es, las diferencias de precio son importantes y por eso surge la curiosidad, que ventajas tiene uno sobre el otro? Otros lectores ya cuentan con un switch administrable, pero no saben que hacer con él, como aprovechar esas características que costaron muchos dólares de más.

No es posible describir en un solo post todo lo que es posible hacer con un switch administrable, por lo que en el futuro espero dedicar al menos un post al mes para describir con más detalle algunas características de los switches, con ejemplos prácticos de implementación, por lo pronto quiero empezar con los fundamentos, en realidad como funciona un switch?, Esto nos ayudará a sentar las bases para más adelante discutir prestaciones más avanzadas de los switches.

Un Switch es un dispositivo de red que funciona en la capa 2 del modelo OSI, para los lectores que no están familiarizados con el modelo OSI, los invito a leer la definición de la wikipedia, para los propósitos de este post lo importante es saber que la capa 2 tiene que ver con la dirección física de la tarjeta de red, esto es la dirección MAC, que es un número único asignado por el fabricante a la tarjeta de red, cada fabricante tiene su propio rango de direcciones MAC, lo que asegura que no se repitan, en la práctica es posible modificarlo mediante software, pero en lo que respecta al proceso de fabricación, si es un número único asignado a cada tarjeta de red.

De paso también menciono que hay switches de capa 3 e incluso de capa 4, pero aun estos switches más avanzados, deben cumplir con las funciones de un switch capa 2, que es las que explicaremos en este post.

Un switch debe realizar tres tareas básicas, las cuales se describen a continuación.

1. Aprender direcciones (address learning)

Todo switch tiene una tabla de direcciones MAC con el puerto asociado, cuando el switch se enciende por primera vez, esta tabla esta vacía, ahora con relación a la figura 1, supongamos que A, desea comunicarse con B, para esto, A tiene preparado un frame, en el que entre otras cosas, esta expresadas los direcciones de origen y destino. El siwtch recibe este paquete y toma nota de la dirección de origen y la anota en la tabla de direcciones MAC, esto es la línea 1 de la tabla MAC ilustrada en la figura 1. Inicialmente el switch no conoce donde esta ubicado B, por lo que reenvia el frame a través de todos los puertos excepto en el puerto donde lo recibió, de esta manera B recibe el frame y lo responde nuevamente con un paquete que tiene como origen la dirección MAC de B, por lo que de esta manera, el switch ahora puede determinar donde esta ubicado B y agrega la segunda línea de la pequeña tabla MAC ilustrada en la figura 1. Para la siguiente comunicación entre A y B, el switch conoce la ubicación exacta de ambos y reenvia los frames directamente entre A y B.




2. Reenviar y Filtrar

Cuando el switch recibe un frame, examina el destino y busca en la tabla el puerto de salida y lo envía únicamente a través de este puerto, esta es la función de filtro, limita el envió del frame al puerto específico en el que se encuentra el destino. Por otra parte, como ya vimos al inicio, si la tabla MAC aun no tiene la información el paquete es reenviado a todos los puertos excepto al puerto en el que se recibió el paquete originalmente, lo mismo pasa cuando ocurre un broadcast (en breves palabras, un broadcast es un frame cuya dirección de destino es todos los del segmento) es decir, cuando una PC envía un frame de broadcast, este es recibido por todas las PCs en el mismo segmento de red, en el caso de los broadcast, el switch los reenvia por todos los puertos, excepto en el puerto que lo recibió originalmente.

3. Evitar Loops

Una tercera función básica e importante de un switch es evitar loops (uso el ingles, porque me parece más apropiado que bucle, o lazo). Para entender que es un loop, y lo dañino que es para cualquier red, observemos la situación ilustrada en la figura 2. Supongamos que por conveniencia alguien decide que desea tener dos enlaces a un mismo switch, de tal forma que si uno falla el otro funcione, o supongamos que alguien inadvertidamente ve un cable colgando y con la mejor de las intenciones decide conectarlo al switch sin percatarse que ese mismo cable ya estaba conectado en otro puerto del mismo switch, lo que ocurre a continuación es desastroso.


Imaginemos que la PC envía un broadcast, este es recibido por el switch 01 y reenviado a todos los puertos excepto el puerto F0/3 (porque por ahí fue recibido originalmente), el switch 02 recibe uno de los broadcast en el puerto F0/1 y lo reenvia a todos los demás puertos excepto por supuesto el puerto F0/1, el problema es que el broadcast también llego por el puerto F0/2 y reenviado a todos los puertos, así que el resultado es que tanto en F0/1 como en F0/2 del switch 02, tendremos nuevamente un paquete de broadcast enviado al switch 01 que nuevamente repite la acción y de esta forma tenemos un loop infinito, en la práctica lo que ocurre es que esto deja inutilizada la red, ya que los recursos en el switch están totalmente consumidos enviando y recibiendo broadcast. He vivido experiencias de estas y créanme que no es nada agradable.

Por lo anterior, un switch debe proveer de mecanismos que eviten la formación de estos loops, y la solución es el Spanning Tree Protocol o STP, este protocolo evita la formación de loops en los switches

De las tres características antes mencionadas, las primeras dos están presentes en cualquier switch sea o no administrable, sin embargo, la tercera, la posibilidad de evitar loops únicamente esta disponible en switches administrables, no solo eso, usualmente requieren poca o ninguna configuración, por lo que a mi entender, este simple hecho es una buena razón para utilizar switches administrables.

Una de las preguntas que me han hecho algunos lectores es la siguiente, acabo de comprar un switch administrable, que debo configurarle para que mi red funcione? en principio nada, el switch tan pronto se conecte a la energía eléctrica y tenga PCs conectadas en sus puertos intentando comunicarse unas con otras, empezara a construir su tabla de direcciones, reenviara y filtrara frames y también evitara loops, por supuesto en el caso de los switches administrables.

También una palabra de advertencia, el hecho de tener algunos switches administrables no evitara la formación de loops en los switches no administrables, he visto redes de miles de dólares venirse abajo porque alguien conecta en algún punto de la red, un switch no administrable e inadvertidamente forma un loop. Por supuesto, la presencia de switches administrables permitirá diagnosticar y resolver el problema de manera más rápida.

Ahora, supongo que no invertiste miles de dólares, para que tu switch aprenda direcciones, reenvie/filtre frames y evite loops, por supuesto que deseas hacer muchas cosas más con tu switch, te invito a dejar un comentario con tus inquietudes, experiencias y espero más adelante estar publicando otros artículos para que puedas desquitar cada dólar de tu inversión.

Publicar un comentario