Cortes por cable equivocado: Cómo un solo cable detiene un centro de datos

¿Te fue útil?

Puedes diseñar una arquitectura resiliente, comprar redundancia en todo y aun así caer por un cable de parcheo de seis dólares instalado con confianza. El informe postmortem parecerá sátira: “Causa raíz: cable equivocado.” A los clientes no les hará gracia.

Esta es la verdad poco glamorosa de los sistemas en producción: la física gana. Un cable no es “solo un cable”. Es un componente eléctrico u óptico con direccionalidad, estándares de cableado, límites de potencia y peculiaridades del proveedor. Una elección equivocada puede convertir un centro de datos estable en un espectáculo de luces parpadeantes.

Qué significa realmente “cable equivocado”

“Cable equivocado” rara vez es una sola cosa. Es una familia de desajustes entre lo que el puerto espera y lo que el cable realmente es. A veces el enlace no sube. Ese es el día fácil. Los días difíciles son cuando el enlace sube, negocia algo “suficientemente cercano” y luego falla bajo carga, calor o con el tiempo.

Las categorías principales de cortes por cable equivocado

  • Desajuste de conector físico: LC vs SC en fibra; MPO con pines erróneos; RJ45 pero con cableado equivocado (T568A vs T568B no suele ser fatal, pero paneles patch mezclados sí pueden serlo).
  • Desajuste de medio: enchufar DAC de cobre en puertos que esperan óptica (o al revés). O usar AOC donde se asumía transceptor + fibra.
  • Desajuste de características eléctricas: calibre incorrecto, categoría equivocada (Cat5 vs Cat6A), apantallamiento inadecuado, longitud errónea para la velocidad, incompatibilidad de clase PoE.
  • Desajuste del budget óptico: tipo de fibra equivocado (OM3 vs OS2), transceptor equivocado (SR vs LR), demasiados parches/empalmes, conectores sucios o violación del radio de curvatura que “más o menos funciona”.
  • Desajuste de polaridad / pinout: Tx/Rx cruzados, método de polaridad MPO invertido, orientación de breakout equivocada, cable rollover usado donde se necesita straight-through.
  • Estándares y peculiaridades del proveedor: transceptores codificados por el proveedor, compatibilidad EEPROM en DAC, listas de transceptores “soportados” y casos límite de autonegociación.
  • Error de topología que se disfraza de problema de cable: parchear dos puertos de switch en lugares equivocados creando un loop; interconectar telas de almacenamiento; mover un uplink a un puerto de acceso.
  • Errores en el cableado de potencia: tipo C13/C19 equivocado, fase/leg de PDU equivocada, calificación de amperaje incorrecta o una extensión que convierte un rack en una estufa.

Dos principios para interiorizar:

  1. La luz de enlace no es prueba de corrección. Solo significa que un subconjunto de la capa física cree que está bien.
  2. “Funcionó la última vez” no es una especificación. La calidad y compatibilidad de los cables no son transitivas entre proveedores, versiones de firmware y temperatura ambiente.

Datos interesantes y un poco de historia

Seis a diez verdades pequeñas que explican por qué el cableado sigue humillando a gente inteligente:

  1. El Ethernet temprano usaba “vampire taps” en coax grueso. Un tap defectuoso podía tumbar todo el segmento porque literalmente era un bus compartido.
  2. El cable crossover solía ser la norma para conectar dispositivos similares (switch-a-switch, host-a-host). Auto-MDI/MDIX redujo ese dolor, pero no para todas las velocidades y PHY.
  3. 10GBase-T tuvo reputación de calentar en implementaciones tempranas. Las elecciones de cableado y PHY impactaban el consumo, lo que afectó la fiabilidad en diseños densos top-of-rack.
  4. La polaridad en fibra es una tragedia recurrente: la fibra dúplex parece simple hasta que aparecen paneles patch, cassettes y trunks MPO. “A-a-B” y “Método B” no son cuentos para dormir.
  5. Los transceptores codificados por proveedor son un modelo de negocio, no una ley natural. Muchas ópticas están físicamente bien pero bloqueadas por comprobaciones de firmware. Los equipos de operaciones sufren las consecuencias.
  6. InfiniBand y Ethernet comparten conectores en algunas generaciones (QSFP), lo que ha provocado incidentes reales de “entra, así que debe funcionar”.
  7. Multipathing de almacenamiento existe porque los cables fallan. La arquitectura asume que perderás un camino—a menudo por una persona con una escalera.
  8. Los cables de parche tienen grados de rendimiento. Un “Cat6” al azar del cajón puede no cumplir los requisitos de canal Cat6, especialmente cuando está agrupado y caliente.
  9. Pequeño radio de curvatura, grandes consecuencias: las curvas cerradas en fibra pueden introducir pérdidas por macrobending. A veces es intermitente según cómo la temperatura cambia la geometría.

Una cita que merece estar pegada en cada puerta de gabinete (idea parafraseada):

John Gall (idea parafraseada): Los sistemas complejos que funcionan tienden a evolucionar desde sistemas más simples que funcionaban.

Aplicado al cableado: si no puedes mantener correcto un modelo de patch simple, no estás listo para uno inteligente.

Cómo un cable detiene un centro de datos: modos de falla que realmente ocurren

1) El especial “enlace arriba, tráfico abajo”

El puerto muestra UP. LACP dice que estás en un bundle. Pero el tráfico cae, los retransmisiones se disparan, la latencia sube y el gráfico de la aplicación parece una sierra.

Causas clásicas:

  • Categoría de cobre equivocada o terminación mala que produce altos errores CRC/FCS bajo carga.
  • Óptica en el límite del budget: funciona de noche, falla al mediodía cuando la sala se calienta y cambian los flujos de aire de los ventiladores.
  • Compatibilidad límite en DAC/AOC: la EEPROM reporta parámetros aceptables, pero la integridad de la señal no es estable a la velocidad negociada.
  • Desajuste de autonegociación: un lado fuerza velocidad/duplex y el otro autonegocia; algunas plataformas “suben” pero se comportan mal.

2) Polaridad y pinout: el asesino silencioso

La fibra dúplex tiene un transmisor y un receptor. Si los intercambias, nada funciona—a menos que el panel patch o cassette “amistosamente” invierta otra vez, en cuyo caso funciona hasta que alguien repachea un lado.

Los cables breakout añaden otra capa: un QSFP-to-4xSFP es direccional. Usa el extremo equivocado en el equipo incorrecto y obtendrás comportamiento parcial extraño: algunas lanes arriba, otras abajo y mucha confusión segura de sí misma.

Broma #1 (corta, relevante): Una polaridad de fibra equivocada es como una señal de calle de sentido único que no puedes leer—todos siguen conduciendo y nadie llega.

3) Loops: cuando el parche equivocado se vuelve un amplificador de broadcast

Si quieres ver miedo, crea un loop de Capa 2 en una red que no lo espera. El conjunto de síntomas es dramático: picos de CPU en switches, tablas MAC que saltan, tormentas de broadcast y interfaces de gestión inalcanzables justo cuando las necesitas.

Sí, STP existe. No, no te salvará si está deshabilitado, mal configurado o es lento comparado con la velocidad a la que tu error derrite el plano de control. Y si el loop toca tu red fuera de banda, tu ruta “romper vidrio” también está en llamas.

4) Cross-connect en telas de almacenamiento: multipath se vuelve multipain

En SAN y otras telas de almacenamiento, “cable equivocado” a menudo significa “tela equivocada”. Existen dos telas independientes para que una falle sin impacto. Si las cruzas, no obtienes redundancia—obtienes falla correlacionada, estados de path confusos y a veces un corte que parece un error del controlador de almacenamiento.

En iSCSI ocurre algo similar cuando VLANs o subredes se cruzan, o cuando un puerto host se conecta a la VLAN equivocada. multipathd sigue intentando. Tu I/O se vuelve una lotería de latencia.

5) Cableado de potencia: el corte que huele a plástico

La gente de red y almacenamiento a veces trata la potencia como “problema de Facilities” hasta que aparece el cable equivocado. Un cable C13 en un mundo C19 no encaja; eso es misericordioso. Los peligrosos encajan pero están subvalorados: cordones de calibre fino, longitud equivocada (enrollados detrás de racks) o balanceo de fases de PDU incorrecto.

Los errores de potencia no siempre disparan breakers inmediatamente. Pueden crear brownouts que reinician dispositivos, corrompen caches o provocan flaps de enlace que parecen problemas de red. La potencia es la dependencia compartida original. No le importa tu diagrama de redundancia.

6) Plano de gestión: a un parche de cable de operaciones ciego

La gestión fuera de banda debería ser el bote salvavidas. Equivoca un cable una vez—mueve un uplink de gestión a un puerto de acceso en la VLAN equivocada, o parchea iDRACs en la red de producción por accidente—y aprenderás cuánto dependes de IPMI, BMCs, servidores de consola y reinicios por ciclo de alimentación.

Cuando OOB cae, el radio de falla se expande porque tu capacidad de diagnóstico se reduce.

7) “Ópticas soportadas” y el veto de firmware

Un corte sorprendentemente común: el cable es físicamente correcto, pero el transceptor es rechazado después de un reinicio o actualización de firmware. Los puertos quedan oscuros. El turno nocturno descubre que “funcionaba ayer” incluye “antes de que el switch reiniciara”.

Eso no es un problema de cable en el sentido físico, pero sí lo es en el sentido operacional. La dependencia es “número de parte correcto”, no “longitud de onda correcta”.

Guion de diagnóstico rápido (primero/segundo/tercero)

Este es el guion que ejecutas cuando los gráficos se ponen rojos y alguien dice: “Empezó después de un cambio de cableado rápido.” Buscas el cuello de botella rápidamente, no pruebas un teorema.

Primero: establece el radio de impacto con tres preguntas

  1. ¿Es un solo host, un rack, una tela o un servicio? Si es un rack, sospecha potencia, uplinks de ToR o un panel patch compartido.
  2. ¿Es el plano de control, el plano de datos o ambos? Si los switches son alcanzables pero el tráfico está muerto, sospecha mismatch de VLAN/trunk, LACP u errores de óptica/PHY. Si los switches también son inalcanzables, sospecha loops, potencia o errores en OOB.
  3. ¿Algo se reinició? Un reinicio convierte “transceptor de terceros tolerado” en “transceptor de terceros rechazado”.

Segundo: verifica la verdad física + de capa de enlace, no sensaciones

  1. Busca flaps de enlace, errores CRC/FCS y mismatch de velocidad/duplex.
  2. Confirma tipo de transceptor, niveles DOM y estado de lanes para breakouts QSFP.
  3. Verifica socios LACP y estado del bundle. Un cable equivocado puede aterrizar en el puerto equivocado y aún así mostrar luz.

Tercero: prueba topología y pathing (red + almacenamiento)

  1. Confirma vecinos LLDP para los puertos sospechosos. Si dice que estás conectado al dispositivo equivocado, créelo.
  2. Revisa membresía de VLAN/trunk y modo de puerto en ambos extremos. Cable equivocado a menudo significa “puerto equivocado”.
  3. En almacenamiento, revisa estado de multipath y agrupamiento de paths. Si todos los paths pasan por una sola tela, tu “redundancia” es ficción.

Si solo recuerdas una cosa: un corte por cable equivocado se diagnostica más rápido combinando contadores de interfaz + descubrimiento de vecinos + verificaciones de redundancia de paths.

Tareas prácticas: comandos, salidas, decisiones

Estas son tareas reales que puedes ejecutar durante un incidente o una validación de cableado. Cada una incluye: el comando, una salida de ejemplo, qué significa y la decisión que tomas.

Task 1: See if the link is actually flapping

cr0x@server:~$ sudo journalctl -k --since "30 min ago" | egrep -i "link is|NIC Link|renamed|bond|mlx|ixgbe" | tail -n 20
Jan 22 12:11:03 server kernel: ixgbe 0000:3b:00.0 eth2: NIC Link is Up 10 Gbps, Flow Control: RX/TX
Jan 22 12:14:19 server kernel: ixgbe 0000:3b:00.0 eth2: NIC Link is Down
Jan 22 12:14:23 server kernel: ixgbe 0000:3b:00.0 eth2: NIC Link is Up 10 Gbps, Flow Control: RX/TX

Significado de la salida: La interfaz está rebotando. Eso suele ser físico (cable, óptica, puerto), a veces potencia o una mispatch de LACP.

Decisión: Trátalo como físico hasta que se pruebe lo contrario. Pasa a contadores y diagnóstico de transceptores; si los flaps coinciden con una ventana de mantenimiento, sospecha un cambio reciente de parche.

Task 2: Check interface counters for CRC/FCS errors

cr0x@server:~$ ip -s link show dev eth2
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:fd:fe:12:34:56 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
      987654321 1234567  0      12       0       0
    TX:  bytes packets errors dropped carrier collsns
      876543210 1122334  0      0       0       0

Significado de la salida: Drops sin errores pueden ser congestión, overflow de colas o problemas upstream. Errores CRC serían más obviamente físicos, pero los drops también importan.

Decisión: Si los drops aumentan con la carga, revisa estadísticas del driver de NIC y contadores del switch; considera cable defectuoso, categoría incorrecta o mismatch de duplex/autoneg.

Task 3: Get detailed NIC stats (ethtool)

cr0x@server:~$ sudo ethtool -S eth2 | egrep -i "crc|fcs|symbol|align|drops|miss|errors" | head -n 20
     rx_crc_errors: 1842
     rx_length_errors: 0
     rx_errors: 1842
     tx_errors: 0
     rx_dropped: 12

Significado de la salida: Los errores CRC son casi siempre Capa 1/2: cableado, óptica, asiento del transceptor, EMI o un puerto malo.

Decisión: Deja de debatir. Reemplaza el cable de parche primero (uno conocido bueno), luego intercambia ópticas y luego mueve el puerto. Si es cobre, valida categoría y longitud; si es fibra, limpia conectores.

Task 4: Confirm speed/duplex and autonegotiation

cr0x@server:~$ sudo ethtool eth2 | egrep -i "Speed|Duplex|Auto-negotiation|Link detected"
	Speed: 10000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Link detected: yes

Significado de la salida: La NIC cree que es 10G full duplex con autoneg activado. Si el lado del switch está forzado, aún puedes obtener “Link detected” y un día malo.

Decisión: Verifica que la configuración del switch coincida. Si no puedes, fuerza temporalmente ambos extremos de forma consistente durante la mitigación (luego deshaz y documenta).

Task 5: Check transceiver and DOM (optical power)

cr0x@server:~$ sudo ethtool -m eth2 | egrep -i "Identifier|Connector|Vendor|Part|Type|Wavelength|RX Power|TX Power" | head -n 25
Identifier                                : 0x03 (SFP)
Connector                                 : 0x07 (LC)
Vendor name                               : FINISAR CORP.
Vendor PN                                 : FTLX8571D3BCL
Transceiver type                          : 10G Ethernet: 10G Base-SR
Laser wavelength                          : 850.00 nm
TX Power                                  : -2.1 dBm
RX Power                                  : -10.9 dBm

Significado de la salida: Óptica SR a 850nm implica fibra multimodo (OM3/OM4). RX cercano al borde (muy bajo) sugiere conectores sucios, tipo de fibra equivocado, pérdida excesiva o una curva.

Decisión: Si RX es bajo, limpia ambos extremos e inspecciona el recorrido por curvas cerradas. Confirma que el parche es OM3/OM4, no OS2 monomodo con adaptadores al azar.

Task 6: Verify LLDP neighbor (are you plugged into what you think you’re plugged into?)

cr0x@server:~$ sudo lldpctl eth2
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface:    eth2, via: LLDP, RID: 1, Time: 0 day, 00:00:21
  Chassis:
    ChassisID:    mac 7c:fe:90:aa:bb:cc
    SysName:      tor-a17
  Port:
    PortID:       ifname Ethernet1/17
    PortDescr:    server-rack12-uplink
-------------------------------------------------------------------------------

Significado de la salida: Estás conectado a tor-a17 en un puerto específico. Si esperabas tor-b o un puerto diferente, el cable está en el lugar equivocado.

Decisión: Si el vecino es incorrecto, detente y rastrea/etiqueta físicamente antes de hacer cambios de configuración. Arregla el parche; no “lo arregles” reconfigurando el puerto equivocado.

Task 7: Validate bond/LACP state (Linux)

cr0x@server:~$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
MII Status: up
Active Aggregator Info:
        Aggregator ID: 2
        Number of ports: 2
Slave Interface: eth2
MII Status: up
Actor Churn State: churned
Partner Churn State: churned
Slave Interface: eth3
MII Status: up
Actor Churn State: stable
Partner Churn State: stable

Significado de la salida: Un slave está “churned”, lo que significa que LACP se renegocia repetidamente—a menudo porque el extremo remoto no está configurado de forma consistente, o el cable está parcheado al switch/port-channel equivocado.

Decisión: Comprueba si eth2 y eth3 aterrizan en el par MLAG correcto y en los miembros correctos del port-channel. Un cable equivocado puede dividir un bond entre switches no emparejados y causar pérdida intermitente.

Task 8: Spot a duplex mismatch or autoneg mismatch via counters

cr0x@server:~$ sudo ethtool -S eth2 | egrep -i "late_collision|excessive_collision|carrier|jabber" | head -n 20
     tx_carrier_errors: 0
     tx_late_collisions: 0
     tx_excessive_collisions: 0

Significado de la salida: En enlaces modernos full-duplex deberías ver cero colisiones. Si ves colisiones en algo que “no debería chocar”, sospecha mala negociación o una configuración de convertidor de medios rara.

Decisión: Si los contadores relacionados con colisiones incrementan, alinea velocidad/duplex en ambos extremos. También confirma que no insertaste el dispositivo intermedio equivocado (convertidor de medios, switch antiguo).

Task 9: Detect a broadcast storm/loop from a host viewpoint

cr0x@server:~$ sudo tcpdump -nni eth2 -c 20 ether multicast
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:20:01.120001 ARP, Request who-has 10.20.0.1 tell 10.20.15.44, length 28
12:20:01.120054 ARP, Request who-has 10.20.0.1 tell 10.20.15.44, length 28
12:20:01.120102 ARP, Request who-has 10.20.0.1 tell 10.20.15.44, length 28
12:20:01.120150 ARP, Request who-has 10.20.0.1 tell 10.20.15.44, length 28

Significado de la salida: Broadcasts idénticos repetidos en rápida sucesión pueden indicar un loop o un dominio L2 muy inestable. No es prueba, pero huele potente.

Decisión: Escala al equipo de red para revisar STP/loop guard y cerrar puertos sospechosos. Mientras tanto, aisla el host desconectando un enlace (si está bonded) para reducir el radio de impacto.

Task 10: Confirm routing and ARP sanity (is this actually a cabling issue?)

cr0x@server:~$ ip route get 10.20.0.1
10.20.0.1 dev eth2 src 10.20.15.44 uid 0
    cache

Significado de la salida: El OS cree que la gateway es accesible directamente vía eth2. Si esto cambió tras parchear, podrías estar en la VLAN/subred equivocada.

Decisión: Si la ruta apunta a una interfaz inesperada, verifica el etiquetado VLAN, el modo del switchport y si el cable está en un puerto configurado para otra red.

Task 11: Check iSCSI sessions (storage pathing)

cr0x@server:~$ sudo iscsiadm -m session
tcp: [1] 10.30.1.10:3260,1 iqn.2020-01.example:target.a (non-flash)
tcp: [2] 10.30.2.10:3260,1 iqn.2020-01.example:target.b (non-flash)

Significado de la salida: Dos sesiones sugieren redundancia a través de subredes/telas. Si ves solo una sesión después de un cambio de cableado, probablemente perdiste un path.

Decisión: Identifica qué NIC/VLAN corresponde a la sesión faltante, luego revisa el cableado y la configuración del switch para esa tela. No aceptes “está bien” con almacenamiento de un solo path.

Task 12: Inspect multipath health (SCSI multipath)

cr0x@server:~$ sudo multipath -ll | head -n 40
mpatha (36001405a6b3f2c9b3e1d2f9b7a8c1234) dm-2 EXAMPLE,Array
size=2.0T features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 2:0:0:1 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 3:0:0:1 sdc 8:32 active ready running

Significado de la salida: Existen dos paths, uno preferido. Si uno muestra failed o desaparece, puede que un cable esté conectado al switch equivocado o a la tela equivocada.

Decisión: Si algún path está caído, trátalo como incidente aunque la app “esté bien.” Estás a un cable equivocado más del downtime.

Task 13: Detect NVMe/TCP connectivity issues (if applicable)

cr0x@server:~$ sudo nvme list-subsys
nvme-subsys0 - NQN=nqn.2014-08.org.nvmexpress:uuid:11111111-2222-3333-4444-555555555555
\
 +- nvme0 tcp traddr=10.40.1.20 trsvcid=4420 live
 +- nvme1 tcp traddr=10.40.2.20 trsvcid=4420 live

Significado de la salida: Dos paths NVMe/TCP en vivo. Si uno desaparece tras un parcheo, probablemente cruzaste VLANs o cableaste la NIC equivocada al ToR equivocado.

Decisión: Valida la separación de red para las telas de almacenamiento; confirma LLDP neighbor en las NICs de almacenamiento; restaura dual-path antes de declarar resuelto.

Task 14: Verify ZFS pool health (symptom of path loss)

cr0x@server:~$ sudo zpool status -x
pool 'tank' is healthy

Significado de la salida: No hay fallo obvio a nivel de pool. Pero que ZFS esté healthy no significa que tus paths subyacentes sean redundantes; solo significa que no ha detectado un fallo de vdev.

Decisión: Si un path de almacenamiento es sospechoso, también valida multipath y enlaces HBA. No confundas “no muerto” con “seguro”.

Task 15: Identify the physical PCI device and driver (helps map to the right cable)

cr0x@server:~$ sudo ethtool -i eth2
driver: ixgbe
version: 5.15.0
firmware-version: 0x800003e5
bus-info: 0000:3b:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Significado de la salida: Puedes mapear bus-info a un puerto físico de NIC usando la documentación del servidor o un esquema de etiquetado.

Decisión: Si tienes múltiples NICs, confirma que estás investigando el puerto que corresponde al cable que cambió. Esto evita el clásico tiempo perdido de “arreglar la interfaz equivocada”.

Task 16: Quick throughput sanity (is the wire the bottleneck?)

cr0x@server:~$ iperf3 -c 10.20.15.10 -P 4 -t 10
Connecting to host 10.20.15.10, port 5201
[  5] local 10.20.15.44 port 54122 connected to 10.20.15.10 port 5201
[SUM]   0.00-10.00  sec  2.10 GBytes  1.80 Gbits/sec  1420 retr

Significado de la salida: El throughput está muy por debajo de lo esperado para 10G, con alto recuento de retransmisiones. Eso apunta directo a problemas físicos o congestión/loop severo.

Decisión: Si las retransmisiones son altas, prioriza swap de cable/óptica/puerto y revisa errores CRC. Si las retransmisiones son bajas pero el throughput está limitado, investiga QoS, policing o negociación de velocidad incorrecta.

Tres microhistorias corporativas (anonimizadas, plausibles, técnicamente exactas)

Microhistoria 1: El corte causado por una suposición equivocada

Estaban agregando capacidad a un clúster de nube privada. Nuevos hypervisors, nuevos switches top-of-rack, el mismo playbook de siempre. El técnico que hacía los parches tuvo una suposición razonable: “Ambos switches son un par; cualquier uplink es un uplink.” Aterrizó un miembro de bond en ToR-A y el otro en ToR-C, porque los puertos estaban adyacentes y las etiquetas eran… aspiracionales.

Las luces de enlace se encendieron. LACP mayormente subió. Luego empezó la pérdida de paquetes. No en todas partes—lo suficiente para que los timeouts de almacenamiento aparecieran. Las migraciones de VM se colgaron. Las bases de datos empezaron a registrar lag de replicación. Los gráficos parecían un bug intermitente de la aplicación. Varias personas miraron al array de almacenamiento porque a almacenamiento se le echa la culpa de todo, incluida la gravedad.

El problema real era topológico, no de ancho de banda. El par MLAG era ToR-A y ToR-B; ToR-C era un par distinto. El bond estaba efectivamente dividido entre dos switches no relacionados, produciendo churn de LACP y a veces blackholing de tráfico según los resultados del hashing.

Tomó más tiempo del que debería porque el equipo confió en el estado de enlace. Una vez que alguien ejecutó LLDP desde el host y lo comparó con lo que el diagrama del rack decía, la discrepancia fue obvia. La solución fue vergonzantemente simple: mover un cable al switch peer correcto y ver cómo el sistema se calmó instantáneamente.

Lección: las suposiciones son solo requisitos no documentados. Si tu diseño necesita “estos dos puertos deben terminar en este par MLAG”, etiquétalo como corresponde y valídalo con software, no con la memoria.

Microhistoria 2: La optimización que salió mal

Una iniciativa de ahorro de costes apuntó a ópticas y cableado. La propuesta de compra era clara: reemplazar “ópticas caras del proveedor” con “DACs equivalentes de terceros” para carreras cortas. La prueba en laboratorio pasó. El despliegue comenzó.

Funcionó bien durante semanas. Luego una actualización de software del switch afectó la flota. Un puñado de puertos no volvió. Los dispositivos arrancaron, los ventiladores se calmaron y los uplinks permanecieron oscuros. El ingeniero on-call hizo el ritual normal—reload, reseat, swap de puertos—hasta que alguien notó un patrón: solo los puertos con los nuevos DACs estaban muertos.

El nuevo firmware endureció la validación de transceptores. No fue un error en la consola que gritara “transceptor no soportado”, más bien una negativa educada a levantar el enlace. En algunos casos subió a menor velocidad; en otros se quedó abajo. La “optimización” se había convertido en un barranco de compatibilidad.

Mitigaron moviendo enlaces críticos de vuelta a ópticas conocidas y soportadas y dejando los DACs cuestionables para segmentos de leaf a laboratorio menos críticos. La solución a largo plazo fue procedural: cada cambio de firmware planificado ahora incluía una verificación de compatibilidad de transceptores y una prueba en staging usando exactamente los mismos números de parte en producción.

Lección: las optimizaciones de coste en la Capa 1 no son puramente financieras. Son decisiones de fiabilidad. Si no puedes probar compatibilidad a través de ciclos de firmware, no estás ahorrando dinero—estás pidiendo prestado del presupuesto de incidentes.

Microhistoria 3: La práctica aburrida pero correcta que salvó el día

Un equipo de almacenamiento ejecutaba telas duales para almacenamiento en bloque. Cada host tenía dos HBAs, cada uno conectado a un switch de tela diferente, y los switches estaban físicamente separados. Aburrido. Caro. Correcto.

Durante un mantenimiento apresurado, un contratista repacheó un bundle y movió accidentalmente varios enlaces de la Tela A a puertos de la Tela B. En una configuración menos disciplinada, eso habría resultado en un corte multi-host: confusión de multipath, thrash de paths, potenciales bloqueos de colas y una larga noche de “¿está muriendo el array?”

Pero el equipo tenía dos salvaguardas. Primero, usaban codificación por color estricta y etiquetado de puertos: Tela A siempre de un color, Tela B de otro, y ambos extremos etiquetados con dispositivo+puerto. Segundo, ejecutaban una comprobación automatizada diaria que validaba la simetría de multipath: cada host debe ver paths a través de ambas telas, y el recuento de paths debe coincidir con la línea base esperada.

La alerta saltó en minutos. La remediación fue dirigida: identificar qué hosts perdieron paths de la Tela A, revisar datos LLDP/FC neighbor y repachear solo los enlaces afectados. El incidente nunca se volvió visible para clientes porque la redundancia siguió siendo real, no decorativa.

Lección: las prácticas “aburridas”—etiquetas, colores, auditorías y separación estricta—son las que impiden que tu arquitectura ingeniosa colapse por manos humanas.

Errores comunes: síntoma → causa raíz → solución

1) Síntoma: Enlace arriba, pero los errores CRC suben

Causa raíz: Categoría de cobre equivocada, cable de parche dañado, terminación pobre, EMI o ópticas marginales.

Solución: Reemplaza por un cable conocido bueno; evita “cables del cajón misterioso”. Si es fibra, limpia e inspecciona conectores; revisa niveles DOM. Si es cobre, exige Cat6A para 10GBase-T y respeta las especificaciones de longitud.

2) Síntoma: Interfaz bonded muestra churn, pérdida de paquetes intermitente

Causa raíz: Un miembro del bond parcheado al switch equivocado o al port-channel equivocado; MLAG mismatched.

Solución: Usa LLDP para confirmar vecinos; verifica que ambos switchports pertenezcan al mismo LAG/MLAG pair; repachea, no reconfigures alrededor del error.

3) Síntoma: Tras reinicio/upgrade, puertos quedan abajo con ópticas de terceros

Causa raíz: Firmware aplica allowlist de transceptores; partes previamente toleradas ahora bloqueadas.

Solución: Mantén inventario de números de parte de transceptores y compatibilidad; prueba firmware en staging con las ópticas exactas; conserva repuestos soportados para rollback de emergencia.

4) Síntoma: Algunas lanes arriba, otras abajo en un breakout QSFP

Causa raíz: Tipo de breakout u orientación equivocada (cable direccional), o modo de breakout del switch mal configurado.

Solución: Confirma que el hardware soporta el breakout; verifica que la configuración del switch coincida (breakout activado); asegúrate de conectar el extremo correcto al dispositivo QSFP.

5) Síntoma: Latencia de almacenamiento se dispara, multipath muestra “enabled” pero no “active”

Causa raíz: Un path de la tela perdido por mispatch, VLAN equivocada o switch equivocado; tráfico obligado a un único path o a un grupo de paths subóptimo.

Solución: Restaura dual-path. Valida redes iSCSI/NVMe/TCP y VLANs. Confirma que cada HBA/NIC aterriza en la tela prevista.

6) Síntoma: Toda la red se siente lenta; plano de gestión inalcanzable

Causa raíz: Loop de Capa 2 creado por parcheo equivocado, o uplink OOB parcheado en VLAN de producción (o viceversa).

Solución: Cierra puertos sospechosos rápidamente; confía en loop guard/BPDU guard; rastrea físicamente los parches nuevos; restaura la aislamiento OOB y verifica con LLDP neighbors.

7) Síntoma: Todo un rack se reinitió “aleatoriamente”

Causa raíz: Error en cableado de potencia: feed de PDU equivocado, circuito sobrecargado, cordón subvalorado calentándose o balanceo de fases pobre llevando a disparos de breaker/brownouts.

Solución: Verifica consumo del rack; inspecciona cordones por su calificación y calor; asegura que PSUs redundantes aterricen en PDUs/feeds independientes; involucra a Facilities temprano.

8) Síntoma: El enlace negocia a 1G en lugar de 10G

Causa raíz: Categoría de cable equivocada, tramo demasiado largo, pares dañados o conectores defectuosos.

Solución: Reemplaza por Cat6A certificada; revisa la configuración del puerto; evita acopladores inline y paneles patch baratos para cobre de alta velocidad.

Broma #2 (corta, relevante): La diferencia entre un “cambio de cableado menor” y un corte suele ser una persona diciendo “debería estar bien” en voz alta.

Listas de verificación / plan paso a paso

Durante un incidente: triage de cableado de 12 minutos

  1. Congela cambios. Detén parches adicionales hasta tener una hipótesis. A la gente le encanta “ayudar” a que un corte dure más.
  2. Identifica los puertos tocados por última vez. Extrae el ticket de cambio, logs de chat y registros de acceso físico si los tienes.
  3. Ejecuta LLDP en hosts afectados. Verifica que el vecino coincida con el switch y puerto planeados.
  4. Revisa flaps de enlace y errores. Mira logs del kernel y ethtool -S para CRC/FCS.
  5. Valida estado LACP/bond. Confirma que todos los miembros estén en el agregador correcto y estables.
  6. Revisa paridad de configuración de switchport (si puedes). Ambos extremos deben coincidir en trunk/access, VLANs, velocidad y membresía LAG.
  7. Para fibra: comprueba niveles DOM. RX bajo sugiere conectores sucios, tipo de fibra erróneo o curvas.
  8. Para cobre: confirma categoría y longitud. “Cat6-ish” no es un estándar.
  9. Intercambia una cosa a la vez. Cable conocido bueno primero, luego ópticas, luego puerto. Evita “swap todo” porque pierdes causalidad.
  10. Confirma que la redundancia se restauró. Multipath con ambas telas; bonds con todos los miembros; uplinks balanceados.
  11. Registra el mapeo físico final. Actualiza la fuente de la verdad mientras está fresca.
  12. Escribe la acción preventiva. Etiquetas, chequeos automatizados o un patrón de cambio bloqueado—algo que haga más difícil repetirlo.

Antes de un trabajo de cableado planificado: hazlo para poder dormir

  1. Requiere un “mapa de puertos” en el cambio. Dispositivo, puerto, destino, tipo de cable, longitud y propósito. Sin mapa, no hay cambio.
  2. Usa etiquetado consistente en ambos extremos. Las etiquetas deben sobrevivir calor y limpieza. Cinta escrita a mano es una confesión.
  3. Codifica por color según función. Ejemplo: tela de almacenamiento A un color, tela B otro; OOB distinto; uplinks distintos. Mantén consistencia en el sitio.
  4. Usa el tipo de cable correcto para el puerto y la velocidad. DAC/AOC vs óptica+fibra es una elección deliberada. No mezcles porque “es lo que había”.
  5. Pre-ubica repuestos. Parcheos y ópticas probadas y conocidas cerca del trabajo. El downtime ama las caminatas largas a la bodega.
  6. Valida vecinos después de parchear. Las comprobaciones LLDP/CDP son rápidas y evitan horas de confusión.
  7. Valida contadores después del tráfico. Un cable puede pasar la comprobación de enlace y aun así corromper tramas.
  8. Ejecuta una auditoría de redundancia. Confirma que ambas telas/paths y ambos miembros de bond funcionen como se espera.

Guardarraíles operativos que evitan que “cable equivocado” sea un “gran corte”

  • Fuente de la verdad para el cableado: un mapeo vivo, no un wiki fósil. Si no puedes confiar en él, la gente deja de usarlo.
  • Detección automática de deriva: chequeos nocturnos que comparan vecinos LLDP y topología esperada; alertas cuando un uplink de servidor se mueve.
  • Partes estandarizadas: limita SKUs de transceptores/cables. La variedad es cómo entran bugs de compatibilidad.
  • Ventanas de cambio con pasos de validación: exige pruebas (LLDP, contadores, multipath) antes de cerrar.
  • Formación que incluya la capa física: tu mejor ingeniero de red sigue siendo mortal ante un cassette MPO a las 2 a.m.

Preguntas frecuentes

1) Si la luz de enlace está encendida, ¿cómo puede el cable seguir siendo incorrecto?

Porque “enlace arriba” solo significa que se detecta cierta señal eléctrica/óptica. Aún puedes tener altas tasas de error de bits, VLAN/puerto equivocado, mispatch de LACP u ópticas marginales.

2) ¿Cuál es la forma más rápida de probar que un cable está enchufado al dispositivo equivocado?

Datos de vecino LLDP/CDP. Desde un host Linux, lldpctl te da el nombre del switch y el puerto. Si no coincide con el parche planificado, el cable está equivocado o la documentación lo está.

3) ¿Son intercambiables los cables DAC entre proveedores?

A veces. Físicamente muchos lo son; operativamente la compatibilidad de firmware e integridad de señal varían. Trata los DACs como ópticas: los números de parte importan y las actualizaciones pueden cambiar el comportamiento.

4) ¿Por qué fallan los enlaces de fibra de manera intermitente?

Conectores sucios, budget óptico marginal, deriva relacionada con temperatura o estrés por curvatura que cambia con el flujo de aire y el movimiento del cable. “Intermitente” suele ser “apenas dentro de tolerancia”.

5) ¿Cómo distingo un loop de simplemente tráfico pesado?

Los loops tienden a mostrar flaps MAC rápidos, picos de broadcast/multicast y problemas en el plano de control (gestión inalcanzable). Desde un host, a menudo verás ARP/ND repetido y pérdida de paquetes que no correlaciona con la carga de la aplicación.

6) ¿Puede un cable equivocado causar corrupción de almacenamiento?

Puede causar timeouts, pérdida de paths y picos de latencia. La corrupción es menos común con checksums end-to-end modernos y journaling, pero no lo apuestes. Almacenamiento en single-path más enlaces inestables es cómo invitas al peor escenario.

7) ¿Es mejor usar óptica + fibra en lugar de DAC/AOC?

No universalmente. Los DACs son excelentes para tramos muy cortos dentro del rack y pueden ser más simples. Óptica+fibra escalan mejor para distancia y cableado estructurado. Elige según distancia, densidad de puertos, presupuesto térmico y tu capacidad para estandarizar e inventariar repuestos.

8) ¿Qué deberíamos estandarizar primero para reducir incidentes por “cable equivocado”?

Estandariza primero el etiquetado y la codificación por color, luego los SKUs de cables/transceptores, y después automatiza auditorías de vecinos y redundancia. La gente puede convivir con documentación imperfecta; no puede convivir con el caos.

9) ¿Por qué los proyectos de “optimización” suelen desencadenar incidentes de cableado?

Porque cambian muchas pequeñas dependencias físicas a la vez: números de parte, tolerancias, compatibilidad de firmware y número de adaptadores en la cadena. Reduces coste, aumentas la variabilidad y luego te sorprendes cuando la variabilidad muerde.

10) ¿Cuál es la métrica que grita “problema de capa física”?

Errores CRC/FCS en puertos de switch o contadores de NIC. Un número pequeño puede ocurrir; una tasa creciente bajo carga es una señal real. Trátalo como culpable hasta que se demuestre inocente.

Conclusión: siguientes pasos para evitar repeticiones

Los cortes por cable equivocado no son “errores tontos.” Son resultados previsibles cuando el trabajo de capa física se trata como informal, no verificado y poco documentado. La solución también es previsible: haz del cableado una parte de primera clase de las operaciones.

Haz lo siguiente:

  1. Adopta el hábito de validar vecinos: tras cualquier parcheo, verifica LLDP/CDP y simetría de bond/multipath antes de dejar el pasillo.
  2. Estandariza e inventaría: limita SKUs de cables y transceptores y ten repuestos probados cerca del trabajo.
  3. Automatiza detección de deriva: alerta cuando un uplink de servidor aterriza en el puerto de switch equivocado o cuando el almacenamiento pierde un path de tela.
  4. Escribe mapas de puertos en los cambios: “conectar A a B con tipo X” no es burocracia; es cómo mantienes causalidad.
  5. Haz que la redundancia sea real: paths duales que no se validan son solo cables extra susceptibles a una mala conexión.

Si gestionas sistemas en producción el tiempo suficiente, aprenderás que la fiabilidad es mayormente una lucha contra detalles pequeños, físicos y aburridos. El cable gana cuando lo dejas anónimo. Dale un nombre, una etiqueta y un paso de validación, y se convierte en otra dependencia manejable.

← Anterior
ZFS: Añadir discos — la trampa de ‘zpool add’ que genera desequilibrio
Siguiente →
Tablas amigables para código: diseño fijo vs automático, ajuste y alineación numérica

Deja un comentario