MACsec - Configuración
MACsec (IEEE 802.1AE) cifra y protege el tráfico Ethernet salto a salto (link-by-link) entre dos dispositivos directamente conectados: host↔switch o switch↔switch. A diferencia de IPSec - Configuración (capa 3, extremo a extremo), MACsec es de capa 2 y protege cada enlace físico contra escuchas y manipulación. Las claves se negocian con MKA (MACsec Key Agreement), usando una clave pre-compartida (PSK) para enlaces switch-switch, o claves dinámicas derivadas de 802.1X - Configuración/AAA para host-switch. La validación está en MACsec - Verificación y el diagnóstico en MACsec - Troubleshooting.
Importante: MACsec requiere soporte de hardware en los puertos y la CLI varía por plataforma (Catalyst 9000, etc.). Confirma con
mka ?/macsec ?en tu equipo.
Prerrequisitos
- Puertos que soporten MACsec por hardware en ambos extremos.
- Para PSK: una clave (key-string) idéntica en los dos switches.
- Para host-switch: 802.1X/AAA funcionando (ver AAA - Configuración).
Conceptos previos (mínimos)
- MACsec protege un solo enlace (los dos dispositivos de sus extremos). No es extremo a extremo: cada salto descifra y vuelve a cifrar.
- MKA (MACsec Key Agreement): el protocolo que negocia y rota las claves de sesión.
- Dos formas de desplegarlo:
- PSK (manual): típico switch-switch. Se define una clave en un
key chain macsecy se aplica conmacsec network-link. - 802.1X (dinámico): típico host-switch. Las claves se derivan de la autenticación 802.1X/AAA.
- PSK (manual): típico switch-switch. Se define una clave en un
- Cipher suite: el algoritmo (por ejemplo
gcm-aes-128ogcm-aes-256). - Debe coincidir en ambos extremos: clave, algoritmo de MKA y cipher suite.
Pasos (switch-switch con PSK):
- Key chain MACsec con la clave.
- Política MKA con el cipher suite.
- Aplicar en la interfaz del uplink (
macsec network-link).
Comandos de configuración
Switch ↔ Switch con clave pre-compartida (PSK)
! 1) Key chain de tipo macsec
SW1(config)# key chain KC-MACSEC macsec
SW1(config-keychain)# key 01
SW1(config-keychain-key)# cryptographic-algorithm aes-128-cmac
SW1(config-keychain-key)# key-string 12345678901234567890123456789012
SW1(config-keychain-key)# exit
! 2) Política MKA con el cipher suite
SW1(config)# mka policy MKA-POL
SW1(config-mka-policy)# macsec-cipher-suite gcm-aes-128
SW1(config-mka-policy)# exit
! 3) Aplicar en el uplink switch-switch
SW1(config)# interface gigabitEthernet 1/0/1
SW1(config-if)# mka policy MKA-POL
SW1(config-if)# mka pre-shared-key key-chain KC-MACSEC
SW1(config-if)# macsec network-link
key chain <nombre> macsec+key-string: la clave pre-compartida (en hex; la longitud depende del algoritmo).cryptographic-algorithm aes-128-cmac: algoritmo con que MKA protege sus mensajes.mka policy+macsec-cipher-suite gcm-aes-128: el cifrado de los datos.mka pre-shared-key key-chain <nombre>: usa esa clave en la interfaz.macsec network-link: activa MACsec en un enlace de infraestructura (switch-switch).
Host ↔ Switch con 802.1X (claves dinámicas)
SW1(config)# interface gigabitEthernet 1/0/2
SW1(config-if)# macsec
SW1(config-if)# access-session host-mode single-host
SW1(config-if)# dot1x pae authenticator
SW1(config-if)# mka policy MKA-POL
macsec(por interfaz) + 802.1X: las claves las entrega la sesión autenticada (no hay PSK). Requiere AAA/802.1X configurado.
Añadido pro:
gcm-aes-256da cifrado más fuerte (requiere licencia/hardware que lo soporte). Elkey-stringdebe tener la longitud exacta que pida el algoritmo, o la sesión MKA no sube.
Dos ejemplos completos de configuración
Ejemplo 1 — Enlace cifrado entre dos switches (PSK)
En SW1 (mostrado arriba) y en SW2 con la misma clave y política:
SW2# configure terminal
SW2(config)# key chain KC-MACSEC macsec
SW2(config-keychain)# key 01
SW2(config-keychain-key)# cryptographic-algorithm aes-128-cmac
SW2(config-keychain-key)# key-string 12345678901234567890123456789012
SW2(config-keychain-key)# exit
SW2(config)# mka policy MKA-POL
SW2(config-mka-policy)# macsec-cipher-suite gcm-aes-128
SW2(config-mka-policy)# exit
SW2(config)# interface gigabitEthernet 1/0/1
SW2(config-if)# mka policy MKA-POL
SW2(config-if)# mka pre-shared-key key-chain KC-MACSEC
SW2(config-if)# macsec network-link
SW2(config-if)# end
SW2# copy running-config startup-config
Ambos extremos deben tener idénticos: key 01, key-string, algoritmo y cipher suite.
Ejemplo 2 — Puerto de acceso con MACsec vía 802.1X
SW1# configure terminal
! (AAA/802.1X ya configurados - ver AAA y 802.1X)
SW1(config)# interface gigabitEthernet 1/0/2
SW1(config-if)# switchport mode access
SW1(config-if)# macsec
SW1(config-if)# access-session host-mode single-host
SW1(config-if)# dot1x pae authenticator
SW1(config-if)# mka policy MKA-POL
SW1(config-if)# end
SW1# write memory
Aquí no hay clave manual: el PC se autentica por 802.1X y de esa sesión se derivan las claves MACsec.
Verificación rápida (comprobar que quedó bien)
La validación detallada está en MACsec - Verificación.
! Resumen de MACsec y sesiones MKA
SW1# show macsec summary
SW1# show mka sessions
! Detalle de la interfaz
SW1# show macsec interface gigabitEthernet 1/0/1
Qué deberías ver:
- En
show mka sessions, la sesión con el peer en estadoSecured. - En
show macsec interface, el cifrado activo (gcm-aes-128) y contadores de paquetes protegidos/cifrados.
Nota de origen: este tema se construyó desde el estándar de Cisco (IEEE 802.1AE / MKA). No había diapositiva de MACsec en tus carpetas, y la CLI depende de la plataforma (Catalyst 9000, etc.). Si consigues diapositivas de MACsec, las integro.