Spanning Tree Un Spanning Tree, o árbol de expansión, es un grafo en el que solo hay un camino posible entre dos nodos (un árbol sin bucles). Si podemos pintar una red de puentes transparentes como un spanning tree, entonces el problema del bucle no puede darse. El objetivo del protocolo Spanning Tree es evitar que la red tenga bucles Raíz
Protocolo spanning tree Los puentes intercambian información sobre sus conexiones. La información se envía regularmente siguiendo un protocolo denominado Bridge Protocol. Los mensajes se denominan BPDUs (Bridge Protocol Data Units). Las BPDUs emplean un Ethertype propio y se envían a una dirección multicast reservada, la 01-80-C2-00-00-00. Así se asegura que se identifican fácilmente y que llegan a toda la red. Cada puente se identifica por su dirección MAC ‘canónica’. Cada puerto recibe un identificador y tiene asociado un costo que por defecto es inversamente proporcional a su velocidad (ej.: 10 Mb/s costo 100,100 Mb/s costo 10). Cada puente calcula el grafo de la red y observa si existe algún bucle; en ese caso se van desactivando interfaces hasta cortar todos los bucles y construir un árbol sin bucles o ‘spanning tree’.
Protocolo spanning tree Los puentes eligen como raíz del árbol al que tiene el ID más bajo. Todos eligen al mismo Cada puente envía por sus interfaces BPDUs indicando su ID, el ID de su puente raíz y el costo de llegar a él; los mensajes se van propagando por toda la red; cada puente al reenviar los mensajes de otros les suma el costo de la interfaz por la que los emite. Cada puente calcula por que puerto llega al raíz al mínimo costo. Ese es el puerto raíz de ese puente. En caso de empate se elige el puerto de ID más bajo. Para cada LAN hay un puerto designado, que es aquel por el que esa LAN accede al puente raíz al mínimo costo. Los puertos que no son ni raíz ni designados se bloquean. Esos puertos son innecesarios para la comunicación y si se les deja funcionar provocan bucles
ID 42 ID 97 ID 83 ID 44 LAN 2 (100 Mb/s) LAN 1 (100 Mb/s) LAN 4 (10 Mb/s) LAN 3 (10 Mb/s) Coste 10 Coste 100 Coste 10 Coste 10 Coste 100 Coste 100 Coste 10 Coste 100 Coste 100 Coste 10 Coste 10 Ejemplo de red con bucles Interfaz bloqueada por Spanning Tree Puente raíz Puente con dos caminos al raíz Camino de costo 110 Camino de costo 10 Este ya no bloquea nada pues ya no hay bucles P1 P2 P2 P1 P2 P1 P2 P1 P1 P2 P3 ID 45 LAN 5 (10 Mb/s) Puente sin bucles, no ha de bloquear nada Puente con dos caminos al raíz. Bolquea P2 (mayor coste)
LAN 3 LAN 4 LAN 5 LAN 1 LAN 2 (Gp:) Bridge ID 97 Costo a raíz 10 (Gp:) Port ID 2 Costo 10 (Gp:) Port ID 1 Costo 100 (Gp:) Port ID 3 Costo 100
(Gp:) Bridge ID 45 Costo a raíz 10 (Gp:) Port ID 1 Costo 10 (Gp:) Port ID 2 Costo 100
(Gp:) Bridge ID 44 Costo a raíz 10 (Gp:) Port ID 1 Costo 10 (Gp:) Port ID 2 Costo100
(Gp:) Bridge ID 83 Costo a raíz 10 (Gp:) Port ID 1 Costo 10 (Gp:) Port ID 2 Costo 100
(Gp:) Port ID 1 Costo 10 (Gp:) Port ID 2 Costo 10 (Gp:) Bridge ID 42 Costo a raíz 0
Puerto raíz Puerto raíz Puerto raíz Puerto raíz Puerto designado Puerto designado Puerto designado Spanning tree de la red anterior Puerto designado Puerto designado Puertos bloqueados por Spanning Tree
Estado de los puertos Spanning Tree Cuando un puerto de un puente se conecta se pone inicialmente en estado ‘blocking’. En este estado no reencamina tramas; solo capta y procesa las BPDUs que le llegan. Si no detecta bucle el puerto pasa al estado ‘listening’. Ahora además de procesar las BPDUs recibidas genera y envía las calculadas por él. Si todo va bien pasa a estado ‘learning’. Ahora además de procesar y generar BPDUs aprende las direcciones MAC de origen que hay en las tramas que le llegan, pero no reenvía nada (salvo BPDUs). Si todo sigue bien pasa a estado ‘forwarding’ en el que además reenvía las tramas (siguiendo el algoritmo de los puentes transparentes). Este procedimiento evita bloquear la red de entrada si existe algún bucle. Cada vez que se conecta una interfaz se realiza el proceso desde el principio, por eso cuando se conecta una interfaz de un puente tarda unos 10-20 segundos en empezar a funcionar.
Posibles estados de un puerto S.T. Learning Aprende direcciones. Recibe, procesa y transmite BPDUs Forwarding Reenvía tramas, aprende direcciones. Recibe, procesa y transmite BPDUs Disabled Recibe BPDUs Listening Recibe, procesa y transmite BPDUs Blocking Recibe y procesa BPDUs Apagado o desconectado No hace nada Encender o conectar Cambio de topología
Elección del puente raíz Dada una red y una topología el puente raíz es siempre el mismo, independientemente del orden como se enciendan los equipos El criterio del ID más bajo puede resultar en la elección como raíz de un puente periférico o poco importante. Esto normalmente no es problema porque el criterio de costos más bajos suele elegir rutas buenas. El problema se da cuando el puente raíz es inestable (por ejempo si se apaga a menudo) ya que esto obliga a recalcular todo el árbol. Esto gasta CPU y provoca inestabilidades. La elección del puente raíz se puede alterar con el parámetro prioridad. Si a un puente le damos menor prioridad ese será raíz sea cual sea su ID. La prioridad puede valer de 0 a 65535. Por defecto es 32768. Dentro de un puente los puertos también se eligen por identificador, el más bajo primero, es decir se bloquea el más alto (suponiendo el mismo costo). También hay una prioridad por puerto que permite modificar el orden por defecto (rango 0-255 por defecto 128).
Protocolo spanning tree El protocolo Spanning Tree permite crear topologías redundantes, para mejorar la tolerancia a fallos. Spanning Tree es parte de la especificación de puentes transparentes (802.1D), pero los equipos de gama baja no lo implementan El tiempo de reacción ante fallos es lento (minutos) y no es fácil reducirlo en redes grandes. Por tanto no es adecuado como mecanismo de protección para redes de alta disponibilidad En 2001 se estandarizó el Rapid Spanning Tree (802.1w). Con el RST la red converge en pocos segundos. No todos los equipos soportan RST.
(Gp:) C 10 (Gp:) Y (Gp:) ID 29
(Gp:) C 100 (Gp:) W (Gp:) ID 37
LAN X 10 Mb/s LAN W 10 Mb/s LAN Y 100 Mb/s LAN Z 10 Mb/s ID 23 ID 37 ID 41 ID 29 (Gp:) Costo 100 (Gp:) Costo 100 (Gp:) Costo 100 (Gp:) Costo 100 (Gp:) Costo 100 (Gp:) Costo 100 (Gp:) Costo 10 (Gp:) Costo 10
Raíz (Gp:) C 100 (Gp:) Z
(Gp:) C 100 (Gp:) X (Gp:) ID 41
Ejemplo de Spanning Tree R: Puerto raíz (uno por puente) R R R D: Puerto designado (uno por LAN) (Gp:) D (Gp:) D (Gp:) D (Gp:) D
B: Puerto bloqueado B (Gp:) ID 23
LAN X 100 Mb/s LAN W 10 Mb/s LAN Y 100 Mb/s LAN Z 10 Mb/s ID 23 ID 37 ID 41 ID 29 C 10 C 10 C 100 C 100 C 100 C 100 C 10 C 10 D D D D R R R B Raíz C 10 C 100 C 10 C 100 X W Z Y ID 23 ID 37 ID 29 ID 41 Pasando la LAN X a 100 Mb/s nada cambia…
LAN X 100 Mb/s LAN W 10 Mb/s LAN Y 100 Mb/s LAN Z 100 Mb/s ID 23 ID 37 ID 41 ID 29 C 10 C 10 C 100 C 100 C 10 C 10 C 10 C 10 D D R D R R B D Raíz C 10 C 100 C 10 C 10 X W Z Y ID 23 ID 37 ID 29 ID 41 Pero si ademas pasamos la LAN Z a 100 Mb/s si cambia algo:
Conmutadores LAN Son equipos en los que el algoritmo de los puentes transparentes se ha implementado en ASICs (Application Specific Integrated Circuit), en hardware. Tienen un rendimiento muchísimo mayor que los puentes, que realizan el algoritmo por software. Pueden funcionar a ‘wire speed’, es decir a la velocidad nominal de la interfaz. Tienen muchas interfaces, normalmente 12 o mas. Hay modelos que pueden llegar a tener más de 500.
Conmutador con cuatro interfaces 10BASE-T Hub o Concentrador Dominios de Colisión Conmutador
100BASE-TX 100BASE-FX 10BASE-T Conmutador ‘híbrido’, interfaces Ethernet de 10 y 100 Mb/s
Un conmutador LAN típico 24 Puertos 10/100 BASE-T 2 Puertos 10/100/1000 BASE-T Matriz de conmutación de 8,8 Gb/s y 6,6 Mpps (millones de paquetes por segundo)
Matriz ‘non-blocking’: (2 x 1000 Mb/s + 24 x 100 Mb/s) x 2 = 8.800 Mb/s 24 x 148,8 Kpps + 2 x 1.488 Kpps = 6,54 Mpps (Con paquetes de 64 bytes una Ethernet de 100 Mb/s equivale a 148,8 Kpps)
Precio: $1.295 (aprox. 800 €)
Cisco Catalyst modelo WS-C2950T-24
Microsegmentación Si en una red se tienen muchos puertos de conmutador LAN se puede dedicar uno a cada ordenador. Esto se llama microsegmentación. La microsegmentación mejora el rendimiento pues la trama va del origen al destino pasando solo por los sitios precisos. También mejora la seguridad, pues los sniffers no pueden capturar tráfico que no les incumbe. El costo de la microsegmentación se ve favorecido porque el costo por puerto de los conmutadores es cada vez más parecido a los de los hubs.
Evolución de las redes locales Ethernet Fase 1 (1988): Medio compartido (10 Mb/s) con cable coaxial en topología de bus
Fase 2 (1992): Medio compartido (10 Mb/s) con cable de pares (cableado estructurado) y concentradores (hubs) en topología de estrella
Fase 3 (1996): Medio dedicado (10 Mb/s) con cable de pares y conmutadores en topología de estrella (microsegmentación) Cable coaxial Cable de pares Cable de pares Concentrador Conmutador
Conmutadores LAN: Formas de conmutación de tramas Almacenamiento y reenvío: El conmutador recibe la trama en su totalidad, comprueba el CRC y la retransmite si es correcta (si no la descarta). Cut-through: El conmutador empieza retransmitir la trama tan pronto ha leído la dirección de destino (6 primeros bytes). Aunque el CRC sea erróneo la trama se retransmite. Menor latencia que almac./reenvío. Cut-through libre de fragmentos: es igual que Cut-through pero en vez de empezar enseguida espera a haber recibido 64 bytes. Así se asegura que no es un fragmento de colisión. Híbrido: usa cut-through inicialmente, pero si detecta que una estación genera tramas erróneas pasa a modo almacenamiento/reenvío para las tramas que vienen de esa dirección MAC.
Tx Rx Conexión de ordenadores mediante un hub El hub se encarga de cruzar el Tx de cada ordenador con el Rx de los demás. Los cables son paralelos. Si mientras un ordenador transmite (por Tx) recibe algo (por Rx) entiende que se ha producido una colisión. En ese caso deja de transmitir y recibir y envía la señal de colisión Tx Rx Hub Tx Rx A B C
Tx Rx Rx Tx Conexión directa de dos ordenadores Cuando solo se conectan dos ordenadores no es necesario hub. Basta usar un cable cruzado que conecte el Tx de uno con el Rx del otro. Aunque en este caso en principio ambos ordenadores podrían transmitir a la vez, el protocolo CSMA/CD obliga a funcionar igual que si hubiera un hub. Si mientras un ordenador transmite recibe algo entonces deja de transmitir y recibir y envía la señal de colisión. En este caso el protocolo CSMA/CD es una limitación innecesaria pues obliga a la comunicación half duplex cuando el medio físico permitiría funcionar en full duplex A B
TD+ TD- TD- RD+ TD+ RD- RD+ RD- 1 1 2 3 2 3 6 6 Pin Señal Señal Pin Ordenador Ordenador Cable con cruce (crossover) TD+ TD- TD- RD+ TD+ RD- RD+ RD- 1 1 2 3 2 3 6 6 Pin Señal Señal Pin Ordenador Concentrador (Hub) Cable paralelo (normal) Cableado normal y cruzado de un latiguillo
Transmisión Full Dúplex Para transmitir full dúplex hay que suprimir el protocolo MAC (CSMA/CD en el caso de Ethernet) Esto solo es posible cuando: Sólo hay dos estaciones en la red (p. ej. host-host, host-conmutador, conmutador-conmutador), y El medio es Full Dúplex (todos los habituales hoy en día lo son), y Los controladores/transceivers de ambos equipos son capaces de funcionar Full Dúplex (todos los habituales hoy en día lo son) Además de aumentar el rendimiento el full dúplex suprime la limitación de distancias que imponía CSMA/CD. Se ha llegado a hacer enlaces Ethernet de hasta 800 Km (con fibra monomodo y repetidores)
Esquema de un transceiver Ethernet Funcionamiento CSMA/CD (Half Duplex) Funcionamiento libre de colisiones (Full Duplex)
Full Dúplex Suprime MAC, por tanto más sencillo de implementar y más barato que Half Dúplex. Pero: Menor ventaja de lo que parece (generalmente solo útil en servidores y conmutadores) Con hubs hay que funcionar siempre half. En 10 y 100 Mb Ethernet se puede funcionar en modo half o full. En Gb y 10 Gb Eth. todo es full (no hay hubs). Cuando se produce un ‘duplex mismatch’ (dos equipos conectados funcionan half-full) se producen pérdidas enormes de rendimiento (hasta 100 veces menos de lo normal)
El problema de la conexión Half-Full A (Half) B (Full) A detecta una colisión, por lo que abandona la transmisión para reintentar más tarde (retroceso exponencial binario) B no detecta la colisión (está en modo full). Sigue enviando su trama hasta el final; esa trama no es recibida por A pero B no lo sabe, supone que ha llegado bien. Por otro lado B ha recibido de A una trama incompleta, y por tanto incorrecta. Tx Tx Rx Rx A empieza a enviar una trama 1 Al mismo tiempo B empieza a enviar otra 2 Al detectar la colisión A deja también de recibir la trama que le envía B, pues se supone que es errónea
Control de flujo Evita la pérdida de tramas por saturación en un conmutador Se implementa con el comando PAUSE; el receptor pide al emisor que pare un tiempo determinado; pasado ese tiempo el emisor puede volver a enviar Mientras el emisor está parado el receptor puede enviarle un nuevo PAUSE ampliando o reduciendo el plazo indicado anteriormente El control de flujo puede ser asimétrico (p. ej. en una conexión host-conmutador se puede configurar que el conmutador ejerza control de flujo sobre el host pero no al revés)
Autonegociación Permite ajustar el funcionamiento de forma automática para utilizar la mejor opción posible. Similar a la negociación de velocidad en módems. La autonegociación en velocidad solo se utiliza en interfaces en cobre (10/100 y 10/100/1000BASE-T). En las de fibra lo único negociable es el modo dúplex y el control de flujo. Al enchufarse los equipos negocian la comunicación según un orden de prioridad: La autonegociación es opcional, puede estar o no (o estar y no funcionar bien). Si no se necesita a veces es más seguro configurar a mano. Hay interfaces 100BASE-T (solo) y 1000BASE-T (solo).
Cómo evitar el ‘duplex mismatch’ Usar autonegociación siempre que sea posible Si se ha de recurrir a la configuración manual en uno de los extremos de la conexión utilizarla también en el otro Hacer pruebas de rendimiento con tráfico intenso (FTP de un fichero grande) En caso de problemas probar diversas combinaciones. No fiarse de lo que ‘teóricamente’ está configurado Monitorizar el modo real en ambos equipos. En linux usar comandos mii-tool y ethtool, si están disponibles Revisar rendimientos periódicamente.
Agregación de enlaces (802.3ad) Consiste en agrupar varios enlaces para conseguir mayor capacidad. Ej.: 4 x GE = 4 Gb/s. Permite un crecimiento escalable Se suele usar entre conmutadores o en conexiones servidor-conmutador Los enlaces forman un grupo que se ve como un único enlace a efectos de spanning tree Normalmente no resulta interesante por encima de 4 enlaces (mejor pasar a siguiente velocidad de Ethernet).
Ejemplo de agregación de enlaces 3 x (10+10) = 60 Mb/s 10+10 = 20 Mb/s 10 Mb/s Full dúplex Half dúplex Interfaces 10BASE-T
Red con puentes remotos 2048 Kb/s (E1) 64 Kb/s Líneas dedicadas LAN A LAN C LAN B Topología de Spanning Tree: ID 3 ID 4 ID 5 ID 3 LAN A ID 4 ID 5 LAN B LAN C ‘LAN’ X ‘LAN’ Y ‘LAN’ X ‘LAN’ Y Raíz
Arquitectura y encapsulado de los puentes remotos Encapsulado (Gp:) LAN
(Gp:) LAN
Arquitectura Ordenador Puente remoto Ordenador Puente remoto Línea punto a punto
Redes Locales Virtuales (VLANs) Equivalen a ‘partir’ un conmutador en varios más pequeños. Objetivos: Rendimiento (reducir tráfico broadcast) Gestión Seguridad Normalmente la interconexión de VLANs se hace con un router. Las VLANs están soportadas por la mayoría de conmutadores actuales
(Gp:) U
(Gp:) U
Envío de una trama unicast en una LAN 0000.E85A.CA6D 0001.02CD.8397 0001.02CC.4DD5 (Gp:) U
Trama unicast Dir.Destino: 0001.02CC.4DD5 (C) Dirección de la tarjeta de red La trama unicast llega a todos los hosts. La tarjeta de red descarta la trama si la dirección de destino no coincide. La CPU de C es interrumpida, la de A y B no. A B C Si en vez de un hub hay un conmutador la trama ni siquiera llega a A y B (solo a C) HUB
(Gp:) B
0000.E85A.CA6D 0001.02CD.8397 0001.02CC.4DD5 (Gp:) B
Trama broadcast Dir.Destino: FFFF.FFFF.FFFF Dirección de la tarjeta de red La trama broadcast llega a todos los hosts. La tarjeta de red nunca la descarta Las tres CPUs (A, B y C) son interrumpidas para procesar el paquete. (Gp:) B
A B C Envío de una trama broadcast en una LAN Aunque en vez de un hub haya un conmutador la trama llega a todos HUB
Consumo de CPU por tráfico broadcast 200 400 600 800 1000 0 100% 96% 92% 90% Paquetes por segundo Rendimiento del Procesador PC 386 Unicast Broadcast El consumo por tráfico unicast no deseado es nulo. Todo el tráfico unicast que consume CPU es para nosotros El consumo de CPU por tráfico broadcast no deseado es proporcional al número de paquetes (y normalmente al número de hosts). Es preciso usar CPU para decidir si los paquetes nos interesan o no.
Gestión Docencia Investigación Servicio de Informática Red de un campus con una LAN
Los routers aíslan tráfico broadcast/multicast ARP OSPF RIP Broadcast/ multicastómetro ARP RIP OSPF 40 40 80 80 0 0 OSPF RIP ARP Una LAN Dos LANs Tramas/s Tramas/s Broadcast/ multicastómetro Spanning Tree ST ST
LAN gestión LAN docencia LAN investigación Servicio de Informática Router con tres interfaces Etherent para interconectar las tres LANs Red de un campus con tres LANs
Un conmutador con dos VLANs VLAN 2 (roja) VLAN 3 (azul) VLAN 1 (default) Puertos no asignados
Conexión A-B ‘azul’ Conexión A-B ‘roja’ Dos conmutadores con dos VLANs 1 7 10 16 1 7 10 16 8 9 8 9 A B (Gp:) Conexión inter-VLANs
Configuración equivalente: A1 A2 B1 B2
Configuración de VLANs Cuando se configuran VLANs en un conmutador los puertos de cada VLAN se comportan como un conmutador independiente Si se interconectan dos conmutadores por un puerto solo se comunican las VLANs a las que estos pertenecen Para no tener que establecer un enlace diferente por cada VLAN se pueden configurar puertos ‘trunk’
Enlace ‘trunk’ 2 conmutadores, 2 VLANs y un enlace trunk 1 7 10 16 1 7 10 16 8 9 8 9 A B (Gp:) Las tramas Ethernet de ambas VLANs (roja y azul) pasan mezcladas por el cable. Se han de etiquetar de alguna forma para que se puedan separar al recibirlas. La forma estándar es 802.1Q
Conexión inter-VLANs
Etiquetado de tramas según 802.1Q Trama 802.3 Trama 802.1Q El Ethertype X’8100’ indica ‘protocolo’ VLAN Bits 1 3 12 Pri: Prioridad (8 niveles posibles) CFI: Canonical Format Indicator (indica formato de direcciones MAC) VLAN Ident.: Identificador VLAN (máximo 4096 en una misma red)
Página anterior | Volver al principio del trabajo | Página siguiente |