El protocolo de fiabilidad y balanceo de tráfico RBP en redes de acceso VPLS J. M. Arco, J. A. Carral, A. García, G. Ibañez Departamento de Automática– Universidad de Alcalá Edificio Politécnico, Campus Universitario, 28871 Alcalá de Henares, España {jmarco, jac, antonio, gibanez}@aut.uah.es Abstract— El servicio LAN de red privada virtual (Virtual Private LAN Service, VPLS), ofrece conectividad punto a multipunto, pero las implementaciones actuales no tiene fiabilidad en la red de acceso. El STP (Spanning Tree Protocol) es requerido para dar fiabilidad, con el problema del bloqueo de los enlaces y los retardos de recuperación. En este artículo se propone un nuevo protocolo el Resilience and Traffic Balance Protocol RBP, que soluciona estos problemas. El protocolo mejora una versión anterior propuesta, considerando también los fallos en los nodos de acceso. RBP balancea el tráfico de manera rápida y eficiente entre los nodos y enlaces activos. El protocolo se implementa en los nodos de acceso y en el conmutador Ethernet del cliente. Se ha realizado una implementación del protocolo y unas pruebas de validación. Los resultados muestran que la carga del protocolo en el sistema es baja y unos tiempos de recuperación en torno a 90 mseg. Palabras clave -redes de acceso, fiabilidad, balanceo de tráfico, VPLS. I. INTRODUCCION VPLS suministra una conectividad punto a multipunto. VPLS es independiente del protocolo de capa de red y no necesita configuración de nivel 3 en las redes del usuario y del proveedor. VPLS es también adecuado para la computación GRID y el envío de tráfico multicast seguro. VPLS A Site 1 IP 10.0.0.0 CE PE VPLS network VPLS A Site 2 IP 10.0.0.0 PE CE el multi acceso, por lo que los CEs deben ejecutar STP [1] para evitar bucles. STP no admite balanceo de tráfico al deshabilitar enlaces para evitar los bucles. Otra limitación de STP es su alto tiempo de reacción, entorno a 40 seg., lo que implica grandes pérdidas en enlaces de alta velocidad y tiempos de recuperación inaceptables, dados los tiempos de recuperación de Multi-Protocol Label Switching (MPLS) y Fast Reroute (FRR), de decenas de miliseg. Recientemente el IEEE estandarizó el Rapid Spanning Tree Protocol (RSTP) [2] que da un tiempo de recuperación más rápido que el STP, de 1 a 2 seg. [3]. Sin embargo, RSTP tiene bajo ciertas condiciones un comportamiento de cuenta a infinito, que incrementa el tiempo de recuperación [4], [5]. RSTP, como cualquier protocolo de árbol en expansión deshabilita enlaces para evitar los bucles. El protocolo propuesto RBP soluciona estos problemas, utilizando todos los enlaces activos y con unos tiempos de recuperación del orden de miliseg., actuando de manera transparente al usuario. Este protocolo es un mejora de otro anterior [6] propuesto el Resilience and Traffic Balance Protocol (RTBP). La mejora consiste en que RBP considera también los fallos de los PEs. El resto del artículo está organizado de la siguiente manera. La sección 2 muestra cómo tratan el problema del multi enlace los borradores propuestos. En la sección se expone el protocolo propuesto. Por último, se muestran unos resultados de una implementación realizada y terminamos con las conclusiones. User network VPLS B Site 2 IP 10.0.0.0 VPLS B Site 1 IP 10.0.0.0 CE MPLS core network CE PE PE Virtual Connection (VC) of the VPLS A VC of the VPLS B MPLS LSP Fig. 1. Acceso VPLS multi enlace. El acceso a red a través de varios enlaces, es un servicio avanzada de VPLS. Desde el nodo del cliente (Customer Edge, CE) hay varios enlaces al nodo del proveedor (Provider Edge, PE), Fig 1. Este servicio da fiabilidad pero puede crear bucles. Las implementaciones actuales de VPLS no soportan II. ARQUITECTURAS MULTI ACCESO EN VPLS Hay dos arquitecturas propuestas para VPLS basadas en MPLS: Lasserre [7] y Kompella [8]. Ambos a su vez, proponen arquitecturas planas y jerárquicas, [7], [9]. Finalmente, Kompella propone un modelo donde el PE puede ser descentralizado [10]. En un escenario multi enlace las tramas de difusión de nivel 2 pueden provocar bucles. El servicio de multi enlace puede ser ofrecido o no por el proveedor. Si no, el usuario debe configurárselo. Las implementaciones actuales de los CEs que usan multi enlace emplean STP. Pero STP sólo usa un enlace en cada momento. Las arquitecturas actuales no soportan el servicio de multi enlace. Los usuarios deben implementarlo utilizando STP para evitar los bucles, con la consiguiente infrautilización de los enlaces bloqueados y los altos tiempos de reconfiguración. III. EL PROTOCOLO RBP El protocolo RBP ha sido diseñado para tener una rápida recuperación y aprovechar todos los enlaces en un escenario multi enlace, balanceando el tráfico entre ellos mediante una técnica eficiente. Los nodos PEs que sirven a una sede de un cliente, conocen a otros PEs que sirven a esta sede, implementando un protocolo tipo “keep-alive”. El balanceo de carga es llevado a cabo usando una función hash [11] basada en la dirección origen (source address, SA) de las tramas. A. Descripción del protocolo El protocolo ofrece una rápida recuperación ante fallos y aprovecha el multi enlace para hacer balanceo de carga entre todos los enlaces disponibles. El protocolo tiene mecanismos eficientes para solucionar fallos de enlaces o PEs y redistribuir el tráfico en consecuencia. También descubre nuevos enlaces y distribuye tráfico tan pronto como se detectan. El CE Modificado (MCE) sirve a una sede y monitoriza los PEs activos a los que se conecta la sede mediante un mecanismo de keep-alive o HELLO (mecanismo de descubrimiento). El balanceo de carga se hace con una función hash [11], basada en la dirección fuente para que el tráfico de un cliente sea reenviado por el mismo interfaz. El MCE tiene dos tablas, i) la clásica de direcciones MAC aprendidas por el puente, usada para las direcciones MAC locales de la sede, ii) una tabla WAN MAC para grabar las direcciones origen destino (DA-SA) y su interfaz WAN asociado, usado para encaminar tramas entre esos dos clientes, uno local y el otro remoto. B. Procedimiento de descubrimiento El MCE difunde tramas de HELLO a través de sus interfaces WAN cada 30 mseg. El mensaje identifica la sede (ID) y el cliente VPLS, VPLS ID. Los PEs al recibir este mensaje deben asentirlo y devolver su identidad y la del interfaz en uso (por si hubiera más disponibles). Nuevos enlaces disponibles (PEs) son descubiertos cuando contesta a las tramas HELLO. Fallos en los enlaces o PEs son asumidos cada 3 respuestas consecutivas no recibidas. Por tanto, el tiempo de descubrimiento de un fallo varía entre 60 y 90 mseg. C. Reenvío de tramas El MCE ejecuta el protocolo en sus interfaces LAN comportándose como un puente de aprendizaje. En la recepción de una trama, aprende la dirección de origen y el interfaz de entrada, o reinicia el temporizador asociado a la entrada si ya era conocida. Luego procesa la trama para enviarla al destino: • Si la trama es de difusión o multidifisión o con destino desconocido, se difunde por todos los interfaces LAN. Luego se selecciona un interfaz WAN, usando una función hash de la dirección origen para mandar la trama al resto de sedes de la VPLS. • Si la dirección destino estaba en la tabla de MAC conocidas, destino local de la sede, la trama se reenvía por el interfaz LAN correspondiente. • En otro caso, debe haber un par de SA-DA almacenado en la tabla de WAN MAC y la trama se manda por el correspondiente interfaz WAN. Tramas recibidas vía un interfaz WAN se pueden reenviar sólo a través de un interfaz LAN. Si la dirección destino está en la tabla LAN se reenvía por el interfaz LAN correspondiente y la entrada DA-SA es creada o actualizada en la tabla WAN LAN. En otro caso la trama se difunde a la sede. D. Procedimiento de fallo Después de que un fallo de un PE o enlace es detectado, se deben distribuir los flujos entre los restantes enlaces WAN. El MCE debe actualizar su tabla WAN para actualizar la distribución de flujos y los PEs deben ser informados para que actualicen los caminos de vuelta a la sede. Todo esto debe hacerse de manera transparente al usuario. • El MCE debe calcular un nuevo interfaz WAN para cada entrada de la tabla WAN afectada por el fallo. Estos pares SA-DA son reasignados a los interfaces restantes de manera balanceada. • El MCE selecciona uno de sus PEs activos y envía la lista de PEs activos de la sede y el ID del PE con el fallo. Este PE reenvía esta información a los otros PEs a través de extensiones BGP para VPLS. Después todos deben balancear las tablas WAN de la misma manera que lo hizo el MCE. E. Procedimiento de recuperación Como se explicó anteriormente, un PE nuevo o recuperado es detectado por el MCE. Luego distribuye los flujos entre los PEs e informa de la existencia del nuevo PE a todas la VPLS. • El MCE debe calcular de nuevo la tabla WAN. Cada entrada un nuevo interfaz WAN es seleccionado aplicando la función hash a la SA de cada par SADA. De esta manera los flujos activos son distribuidos entre todos los PEs. • Luego el MCE selecciona uno de sus PEs activos y le manda la lista de PEs activos de la sede. Este PE informa al resto de PEs de la VPLS a través de extensiones de BGP para VPLS. Después todos los borran sus entradas WAN de su tabla MAC. La figura 2 ilustra un ejemplo del funcionamiento del protocolo. El cliente A (sede 1) intenta un ping al cliente C (sede 2). A manda una trama de difusión (ARP request) preguntando la dirección MAC de C. (1) MCE procesa la trama enviada por A y la reenvía vía LAN, porque no sabe de C, añade una entrada para A en la tabla MAC y por último selecciona un interfaz WAN (hash(‘A’)=L2) para transmitir la trama a otras sedes. (2) PE2 envía la trama a PE3, (3) luego a CE2 y finalmente llega al cliente C. (4) C contesta con una trama ARP Reply enviada directamente a A que sigue el mismo camino de vuelta al MCE. (5) MCE añade la entrada ‘A-C vía L2’ y envía la trama a A. La tramas siguientes del ping de A a C, usan el camino abierto por la trama ARP inicial (mostrado en la figura como una línea de puntos roja). PE2 Sede 2 Sede 1 A 4 C 4 4 5 L2 B 2 1 1 CE2 3 3 2 L1 MCE D 4 PE3 PE1 Fig. 2. Ejemplo de funcionamiento del protocolo. La figura 3 muestra un ejemplo de fallo del enlace L2 y la reasignación del tráfico del flujo A-C al enlace L1. Hay un flujo continuo de tramas de A a C siguiendo el camino seleccionado en la Fig. 2. Cuando falle el enlace L2 o PE2, MCE selecciona L1 como interfaz WAN para el para A-C y actualiza su tabla. Después informa a PE1, el único PE activo, de que PE2 no está accesible. PE1 reenvía la información a PE3. Ambos borran cualquier entrada dirigida a PE2 y aprenden el nuevo camino. El flujo es ahora dirigido a través de PE1 y PE3. MAC Port C 2->3 PE2 MAC Port A B A MCE MAC Port 3->1 3->1 4 MAC Port B 3->1 5 MAC Port B A CE2 L1 D 3 2 PE3 MAC Port A B ->A ->B A B ->A ->B Pair Port Pair Port A-C B-D L1 L1 A-C B-D L2 L1 1 3 PE1 MAC Port D C 1->3 1->3 4 MAC Port D C 2->3 MAC Port 3 PE2 MAC Port A B A MCE MAC Port L1 MAC Port B 3->1 5 MAC Port B A 3->1 3->1 C CE2 D 3 2 PE3 6 MAC Port A B ->A ->B A B ->A ->B Pair Port Pair Port A-C B-D L2 L1 A-C B-D L1 L1 1 4 0 L2 B 3->2 3->1 3 PE1 MAC Port 1->3 5 MAC Port D C 1->3 1->3 Fig. 4. Un ejemplo de la activación del enlace L2 o PE2. 3->1 3->2 C 0 L2 B MAC Port D MAC Port 5 prueba, Fig. 2. Se ha implementado una entidad VPLS en los nodos PEs de las dos sedes. La Sede 1 es multi enlace. El RBP está implementado principalmente en el MCE. En los PEs se ha realizado una pequeña modificación para implementar el RBP. Los PEs y el MCE son PCs con Linux Red Hat Fedora Core 2 y la distribución 1.946 MPLS for Linux [12]. Luego en los PEs hemos modificado la entidad MPLS para implementar una entidad VPLS simplificada. Por último, hemos implementado la entidad VPLS. En el MCE hemos modificado la entidad VPLS y hemos implementado RBP. Más detalles se pueden encontrar en [13]. Como dijimos en la sección 3, hay algunos mensajes RBP que el MCE debe mandar a través del núcleo MPLS a través de BGP. Por simplicidad hemos implementado estos envíos a través de tramas Ethernet. 1->3 Fig. 3. Ejemplo del fallo del enlace L2 o de PE2. La figura 4 muestra la recuperación del enlace L2 o de PE2 cuando dos flujos A-C y B-D siguen el camino MCE-PE1PE3. Primero MCE calcula una nueva entrada WAN para cada flujo. Luego informa a PE1 del nuevo PE (PE2). PE3 cambiará sus entradas para balancear los flujos entre PE1 y PE2 de la manera que MCE lo hizo. F. Diferencias con el protocolo RTBP La principal diferencia entre el RBP y el anterior RTBP [6] es que trata con los fallos de los PEs. Las tramas falsas no son usadas y la recuperación y fallos de RBP son más fáciles. En cuanto a las desventajas, que un CE especial es necesario y que las tablas MAC son más grandes. IV. IMPLEMENTACION El protocolo RBP ha sido implementado en una red de V. RESULTADOS Y PRUEBAS Para comprobar el impacto de RBP en el rendimiento de la red, hemos realizado varias pruebas, en el escenario de la Fig. 2. En la mayoría de los casos no había diferencias significativas entre usar o no RBP, por lo que los resultados muestran sólo la diferencia entre IP y la arquitectura VPLS con RBP. Las pruebas miden tiempos de recuperación, retardo, velocidad máxima, incremento de carga de la CPU y jitter. A. Tiempo de recuperación Esta prueba mide el tiempo sin recepción, cuando el enlace se cae. El ensayo se hace con la herramienta mgen [14] para generar tráfico continuo desde un PC de usuario. El tráfico se graba en otro PC receptor (Fig. 5). De esta manera podemos ver cuantos mensajes se pierden desde que se tira el enlace hasta que el protocolo RBP pasa el tráfico al otro enlace. Después de perder tres mensajes HELLO consecutivos, RBP da por caído un enlace. Estos mensajes son enviados cada 30 mseg. (periodo T), por los que el tiempo mínimo de recuperación es de 60 mseg. (dos veces T), y el máximo 90 mseg., (tres veces T), y el tiempo medio, 75 mseg. Asumimos que el tiempo de procesamiento de RBP es despreciable frente al tiempo de recuperación. Para comprobar el tiempo de recuperación el mgen es configurado para enviar 200 mensajes por segundo (T=5 mseg.). Los resultados muestran una pérdida de 30 mensajes, Fig. 5, es decir que el tiempo de recuperación de esta prueba es de 79,8 mseg. Flow>0001 Seq>002319 Src> 10.0.0.9/2000 Dest> 10.0.0.1/3000 TxTime>12:35:01.349621 RxTime>08:40:10.943708 Size>1250 Flow>0001 Seq>002333 Src> 10.0.0.9/2000 Dest> 10.0.0.1/3000 TxTime>12:35:01.429433 RxTime>08:40:11.023549 Size>1250 Fig. 5. Tiempo de recuperación con 200 mensajes por segundo. B. Retardo En esta prueba comprobamos un CE contra un MCE con VPLS con el algoritmo RBP. El tiempo de RTT par un comando ping varia desde 307 μsec.hasta 398 μseg. El incremento es producido por el cambio de un hub Ethernet (retardo despreciable) a un MCE (un PC con un retardo entorno a 80 μsec). C. Velocidad máxima El ensayo se ha realizado generando tráfico con mgen. El tamaño del mensaje fue 1250 bytes, y la velocidad de emisión se incrementaba progresivamente para comprobar la velocidad en recepción. Para RBP la máxima velocidad fue de 88 Mbps, que corresponde a 94,717 Mbps de velocidad en la línea. Con sólo IP la máxima velocidad fue 82 Mbps, que corresponde con 94,177 de velocidad en la línea. La pérdida de velocidad es menor de 550 kbps (menos del 0,6%). activaciones. RBP es sencillo de desplegar, precisa sólo pequeños cambios software en el nodo de acceso VPLS (PEs) y un nuevo nodo de acceso del cliente (MCE). El protocolo ha sido implementado y validado en una red de laboratorio y no muestra pérdidas significativas de rendimiento. El protocolo RBP tiene varias ventajas con relación a STP y RSTP. Primera, permite el uso simultáneo de todos los enlaces disponibles a diferencia de STP y RSTP (sólo uno). Segundo, el tiempo de reacción es muy bajo, inapreciable para el usuario final, en STP es de varios segundos. Tercero, reduce tráfico en el núcleo de red, ya que sólo transmite tráfico de señalización cuando se activa o desactivan enlaces o PEs, en STP de forma continua. Cuarto, a diferencia del último protocolo propuesto [6], también funciona con fallos en los PEs. AGRADECIMIENTOS Este trabajo ha sido financiado por la Conserjería de Educación de la Comunidad de Madrid y los fondos FEDER de la UE en el programa “Aplicaciones Emergentes para Internet de Nueva Generación, eMagerit“ (S-0505/TIC/0251). REFERENCIAS [1] D. Carga de la CPU En este experimento medimos el incremento de carga causado por RBP en relación con el funcionamiento de sólo IP. Esta medida se ha hecho ejecutando el comando top en el router mientras el sistema final transmitía a la velocidad máxima, (88 Mbps con mensajes UDP de 1250 bytes). Hay un descenso de la carga con IP 12% al 10% con RBP en el PE. En el MCE la carga sube al 14 %. [2] E. Variación del retardo Cada mensaje mgen lleva grabado el tiempo de emisión, por lo que es posible calcular el periodo de emisión y el de recepción, cuya diferencia es el jitter. Para IP el jitter máximo es de 31 μseg. y la media de 17 μseg. Para RBP, el máximo jitter es 20 μseg. y la media 6.5 μseg. El jitter IP es mayor debido a que los datagramas necesita más tiempo de procesamiento, dando lugar a mayor probabilidad de interrupción de la CPU por otros procesos. En cualquier caso, el jitter es despreciable. [6] [3] [4] [5] [7] [8] [9] [10] [11] VI. CONCLUSIONES La arquitectura VPLS no soporta multi enlaces en el acceso. Por tanto, el usuario debe ejecutar STP en los CEs para soportar multi enlaces. Así sólo un enlace por sede puede ser usado en cada momento para evitar bucles. Un nuevo protocolo (RBP) ha sido propuesto para soportar multi enlaces soportando reparto de carga entre los enlaces disponibles y una rápida reacción frente a fallos o [12] [13] [14] IEEE 802 LAN/MAN Standards Committee “Media Access Control (MAC) bridges” IEEE 802.1D. 1998 IEEE 802 LAN/MAN Standards Committee “Media Access Control (MAC) bridges” IEEE 802.1D. 2004 Iwata, A. Hidaka, Y. Umayabashi, M. Enomoto, N. Arutaki, A., “Global open ethernet (GOE) system and its performance evaluation”, IEEE Journal on Selected Areas in Communications, Volume: 22, Issue: 8 pp. 1432-1442, Oct. 2004. Andy Myers, Eugene Ng, Hui Zhang, “Rethinking the Service Model: Scaling Ethernet to a Million Nodes”, ACM SIGCOMM HotNets'04. K. Elmeleegy, Alan L. Cox, T. S. Eugene Ng, "On Count-to-Infinity Induced Forwarding Loops in Ethernet Networks", INFOCOM'06, Barcelona, Spain, April 2006. V, “RTBP: A protocol for providing resilience and load balance in VPLS network access”, J. M. Arco, J. A. Carral, A. García, G. Ibañez, VI Workshop in G/MPLS Networks I.S.B.N .978-84-96742-20-8, pp 121-132, Gerona 2007. M. Lasserre, V. Kompella “Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling” RFC 4762, January 2007 K. Kompella et al.,” Virtual Private LAN Service (VPLS) Using BGP for Auto-discovery and Signaling “, RFC 4761, enero 2007. K. Kompella, ”Layer 2 VPNs Over Tunnels” draft-kompella-l2vpnl2vpn-01.txt, http://tools.ietf.org/wg/l2vpn/, January 2003. K. Kompella et al., “Decoupled Virtual Private LAN Services” draftkompella-ppvpn-dtls-03.txt, http://www.watersprings.org/pub/id/draftkompella-ppvpn-dtls-03.txt, abril 2004. J. Sastre “Estudio, desarrollo y evaluación de funciones resumen utilizadas para la generación de firmas digitales”. J. Sastre’s TFC, University of Alcalá, 2004. J. Leu, R. Casellas “MPLS for Linux ”, http://sourceforge.net/projects/mpls-linux. E. Escudero, “Implementación de VPLS con protocolo de balanceo de carga y fiabilidad en Linux”, E. Escudero’s TFC, University of Alcalá, 2006. B. Adamson, "The Multi-Generator (MGEN) Toolset". http://manimac.itd.nrl.navy.mil/MGEN/