El asesino del port-channel

156 visualizaciones

Publicado el

Aquesta presentació, a càrrec de Maria Isabel Gandia, cap de Comunicacions del CSUC, forma part de les lighting talks de la 20a edició de la reunió del Grupo de Operadores de Red Español (ESNOG), celebrada els dies 30 i 31 d'octubre a MediaLab Prado, Madrid.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

El asesino del port-channel

  1. 1. El asesino del port-channel… Maria Isabel Gandía CSUC/CATNIX 20º Foro Esnog, Medialab Prado, 31-10-2017
  2. 2. Había una vez, hace mucho, mucho tiempo… …un punto neutro llamado CATNIX… …en el que un inocente portchannel de 2 Gbps vivía feliz entre el punto neutro y uno de sus clientes… …el conmutador del punto neutro funcionaba perfectamente… …el router del cliente también… …eran del mismo fabricante… …y vivían felices juntos… …pero un día… …después de un mantenimiento programado… …uno de los puertos del portchannel murió y no volvió a levantar. HABÍA SIDO ASESINADO ¿Quién lo asesinó? CATNIX CLEINTE x
  3. 3. ¿Quién fue el asesino? ? ? ? ? ? ? ? ? ??????
  4. 4. Las pistas  En el lado del cliente: • %EC-SP-5-L3DONTBNDL2: Gix/x suspended: LACP currently not enabled on the remote port. • GigabitEthernetx/x is up, line protocol is down (notconnect) • Su port-channel era L3. • Tenía tanto IPv4 como IPv6  En el lado de CATNIX: • %EC-5-L3DONTBNDL2: Giy/y suspended: LACP currently not enabled on the remote port. • GigabitEthernety/y is up, line protocol is down (suspended) • Nuestro port-channel era L2. • Estaba configurado Port-security. • La configuración era ligeramente distinta en ambos puertos.  LACP estaba configurado en ambos lados.  Había un workaround: reiniciar el portchannel.
  5. 5. ¿Quién fue el asesino? ¿Port-security mac-address? ? ? ? ? ? ? ? ??????  El cliente cambió una de sus mac-addresses, pero no funcionó.  Borramos el “switchport port-security mac-address xxx”, pero no funcionó.  Antes de pedir asistencia al fabricante, unificamos la configuración en ambos puertos físicos…y no funcionó. x
  6. 6. ¿Quién fue el asesino? ¿L3 <-> L2 port-channels? ? ? ? ? ? ? ? ????? x  El error en ambos lados parecía bastante evidente (L3DONTBNDL2).  Un port-channel de nivel 2 (L2) funcionaba, pero para el cliente la configuración era la misma que en otros IX y no planeaban cambiar a L2 por nosotros.  Abrimos dos casos distintos con el fabricante (1 el cliente, 1 CATNIX).  El problema no se podía reproducir en el laboratorio... x
  7. 7. ¿Quién fue el asesino? ¿Spanning-tree port-fast? ? ? ? ? ? ? ? ???? x x  Borramos la línea “spanning-tree portfast”, pero el comportamiento no cambió…. x
  8. 8. ¿Quién fue el asesino? ¿La supervisora activa? ? ? ? ? ? ? ???? x x x  Un switchover no lo resolvió. x
  9. 9. ¿Quién fue el asesino? ¿Las dos supervisoras? ? ? ? ? ? ???? x x x x  Cambiamos una supervisora y no se resolvió.. x
  10. 10. ¿Quién fue el asesino? ¿El firmware? ? ? ? ? ? ??? x x x xx  Nuestras dos supervisoras tenían firmwares distintos. Hicimos un upgrade. No hubo suerte. x
  11. 11. ¿Quién fue el asesino? ¿El Uptime? ? ? ? ? ??? x x x xx x x  Nuestro switch no se había reiniciado en 2 años. Lo rebotamos. No hubo suerte.
  12. 12. ¿Quién fue el asesino? ¿El sistema operativo? ? ? ? ?? x x x xx x x  Hicimos un upgrade del SO El comportamiento era el mismo. ? x
  13. 13. ¿Quién fue el asesino? ¿LACP? ? ? ? ?? x x x xx x xx  El cliente añadió “channel-protocol lacp” (aunque “mode active” era suficiente).  Cambiamos a PAGP. Idéntico comportamiento. x
  14. 14. ¿Quién fue el asesino? ¿Un bug? ? ? ? x x x xx x xx x  Nuevo ingeniero. Había un bug relacionado con “speed nonegotiate”. Cambiamos el “switchport nonegotiate”. Como era previsible, no funcionó. ? x
  15. 15. ¿Quién fue el asesino? ¿El router del cliente? ? ? ? x x x xx x xx xx  Nuevo ingeniero (de nivel superior).  El conmuitador estaba enviando paquetes LACP pero no los recibía. No teníamos acceso al router de cliente para probar lo mismo simultáneamente.  Tal vez el router no estaba mandando los paquetes…
  16. 16. ¿Quién fue el asesino? ¿La conexión física? ? ? x x x xx x xx xx  Conectamos una fibra directa entre ambos. No hubo suerte. x
  17. 17. ¿Quién fue el asesino? ¿El LACP timeout? ? x x x xx x xx xxx  El LACP timeout era distinto en cada lado, pero cambiarlo tampoco sirvió. x
  18. 18. ¿Quién fue el asesino? ¿El router del cliente? ? x x x xx x xx xxx  Los desarrolladores del router confirmaron que el equipo sí estaba mandando los paquetes LACP.  Tal vez el swith no estaba procesando los paquetes… x x CATNIX
  19. 19. ¿Quién fue el asesino? ¿El switch? No, ¿el router? x x x xx x xx xxxx  Los desarrolladores del switch confirmaron que el switch funcionaba correctamente.  Tal vez el router no estaba enviando los paquetes…… x ? x
  20. 20. ¿Quién fue el asesino? ¿El router? No, ¿el switch? x x x xx x xx xxxx  Los desarrolladores del router confirmaron que el número de LACP PDU enviadas por el router era exactamente el mismo que el de paquetes multicast recibidos en el conmutador en la interfaz suspendida.  Las LACP PDUs llegaban a la interfaz del conmutador, pero no se enviaban a la CPU. ? x
  21. 21. ¿Por qué no recibía la CPU del conmutador los paquetes? ?
  22. 22. 20 #show platform hardware mac-address-table vlan XX Index Mac Address Vlan Type SinglePort/RetIndex/AdjIndex ----- -------------- ----- ---------- ---------------------------- 1111 AAAA.AAAA.AAAA XX SinglePort PoX(20) ND SrcOrDst 2222 AAAA.AAAA.AAAA XX SinglePort WildcardAggport D SrcOrDst ¿Por qué no recibía el conmutador los paquetes? CATNIX CUSTOMER Cuando se formaba el portchannel, se reservaba el AggPort id 20 para representar al puerto lógico dentro del ASIC del switch para lookup y forwarding Forwarding entry for AggPort20 Drop de los paquetes de cualquier otro puerto  Port-security permite que entre en el switch cualquier paquete de AggPort20 y tira los paquetes que entren por otro puerto.
  23. 23. Cuando caía una interfaz del router, el puerto correspondiente en el switch se ponía en shutdown y “se caía” del Aggregated Port 20. El puerto físico recibía un AggPort id distinto, AggPort id 10. ¿Por qué no recibía el conmutador los paquetes? CATNIX CUSTOMER 20 x x10
  24. 24. Cuando caía una interfaz del router, el puerto correspondiente en el switch se ponía en shutdown y “se caía” del Aggregated Port 20. El puerto físico recibía un AggPort id distinto, AggPort id 10. Al levantar la interfaz en el router, el switch lo ponía up en su lado, pero para poder agregarse al portchannel la CPU necesitaba recibir paquetes que nunca recibía, porque eran denegados al llegar de un AggPort id distinto (AggPort 10). ¿Por qué no recibía el conmutador los paquetes? CATNIX CUSTOMER 20 x x10
  25. 25. ¿Por qué no recibía el conmutador los paquetes? Al borrar la port-security (no sólo la port-security mac-address) del portchannel, el puerto se levantó. Sólo ocurría con L2-L3 portchannel y en la versión de supervisora que teníamos al activar port-security. 20 CATNIX CUSTOMER
  26. 26. El asesino era port-security! No el mayordomo 
  27. 27. ¡Gracias por vuestra atención! (y gracias a Manel Pérez) ¿Preguntas? mariaisabel.gandia@csuc.cat

×