Entendimiento. Detectar cambios de mac address y envío por snmp.

La característica principal de un Switch es poder aprender el mac-address de un puerto y poder realizar la conmutación entre los puertos. Este proceso se realiza de manera automática y se hace aprendiendo siempre el mac address origen en el envío, siendo el primero una tormenta Broadcast.

Generalmente esto puede pasarse por desapercibido, pero en temas de seguridad, es importante tener un poco de control en el aprendizaje de las direcciones MAC.

Existen varios métodos como mac access-list, port-security, vlan access-map, entre otros para su filtrado, pero en este caso usaremos el método de aprendizaje. Puede ser útil para saber donde se están conectando y además que se envíe a una estación NMS por snmp.
Tomar de referencia la siguiente imágen:

mac-notification.JPG

Situación.

Se desea que la PC al conectarse en el puerto fa0/24 del Switch, genere un mensaje snmp indicando el mac address y el puerto al servidor NMS. Para poder lograrlo se debe activar estos tres pasos:

  • activar el envío de traps general. Al menos el snmp-server enable traps mac-notification o de manera general.
  • indicar el NMS donde enviarlo. activar al menos el snmp-server host 187.1.3.100 COMMTRAP mac-notification. Sino se especifica envía todos los traps que, de manera general, ha dejado permitir.
  • activar el modo de notificación de mac address mac address-table notification change
  • Especificar por interfaz el envío de snmp. A pesar de activar la caracteristica, sino se especifica en la interfaz snmp trap mac-notification change added

Nota: Hay que recordar que a pesar que en la configuración se coloca los NMS, sino se activan de manera general con snmp-server enable traps **traps**, no enviarán información.

Haremos un ejemplo basado en la imágen anterior. Los comandos mínimos para el funcionamiento del trap de la notificación

snmp-server enable traps mac-notification change move threshold
snmp-server host 187.1.3.100 COMMTRAP mac-notification
mac address-table notification change
!
interface FastEthernet0/24
 snmp trap mac-notification change added
end

Pruebas

Para todas las pruebas, activaremos el debug ip packet detail filtrado para este tráfico. Es posible utilizar otro debug como debug snmp packet.

Rack1SW2#config t 
Enter configuration commands, one per line.  End with CNTL/Z.
Rack1SW2(config)#access-list 100 permit udp any host 187.1.3.100
Rack1SW2(config)#end
Rack1SW2#
Rack1SW2#debug ip packet detail 100
IP packet debugging is on (detailed) for access list 100
Rack1SW2#

Prueba 1: completo, verificación

Con la configuración inicial y el debug activado, se tumba la interfaz Fa0/24 y se levanta para simular el aprendizaje de un mac address.

Rack1SW2#config t
Enter configuration commands, one per line.  End with CNTL/Z.
Rack1SW2(config)#int fa0/24
Rack1SW2(config-if)#shut
Rack1SW2(config-if)#
*Mar  1 00:03:50.493: %LINK-5-CHANGED: Interface FastEthernet0/24, changed state to administratively down
*Mar  1 00:03:51.500: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to down
Rack1SW2(config-if)#
Rack1SW2(config-if)#no shut
Rack1SW2(config-if)#end
Rack1SW2#
Rack1SW2#
*Mar  1 00:04:09.024: IP: s=187.1.38.8 (local), d=187.1.3.100, len 132, local feature
*Mar  1 00:04:09.024:     UDP src=62812, dst=162, Redirection Cli(6), rtype 0, forus FALSE, sendself FALSE, mtu 0
*Mar  1 00:04:09.024: IP: s=187.1.38.8 (local), d=187.1.3.100, len 132, local feature
*Mar  1 00:04:09.024:     UDP src=62812, dst=162, Clustering(7), rtype 0, forus FALSE, sendself FALSE, mtu 0
*Mar  1 00:04:09.024: FIBipv4-packet-proc: route packet from (local) src 187.1.38.8 dst 187.1.3.100
*Mar  1 00:04:09.024: FIBipv4-packet-proc: packet routing succeeded
*Mar  1 00:04:09.024: IP: tableid=0, s=187.1.38.8 (local), d=187.1.3.100 (Vlan38), routed via FIB
*Mar  1 00:04:09.024: IP: s=187.1.38.8 (local), d=187.1.3.100 (Vlan38), len 132, sending
*Mar  1 00:04:09.024:     UDP src=62812, dst=162
*Mar  1 00:04:09.024: IP: s=187.1.38.8 (local), d=187.1.3.100 (Vlan38), len 132, output feature
*Mar  1 00:04:09.024:     UDP src=62812, dst=162, Check hwidb(63), rtype 1, forus FALSE, sendself FALSE, mtu 0
*Mar  1 00:04:09.024: IP: s=187.1.38.8 (local), d=187.1.3.100 (Vlan38), len 132, sending full packet
*Mar  1 00:04:09.024:     UDP src=62812, dst=162
Rack1SW2#

Prueba 2: eliminando uno de los pasos.

Anteriormente se menciona que si uno de los comandos mínimos mostrados de arriba se elimina, ya deja de funcionar la solución. Hay una forma de verificar si estos comandos ya están activos:

no snmp-server enable traps mac-notification change move threshold

ó
no mac address-table notification change

Verificación final.

Utilizar el comando show mac address-table notification change puedes visualizar si está activado. La funcionalidad de registrar los mac address tambien puede ser para uso local. Veamos el show, con los campos que se modifican al usar los comandos:

show-mac-notification.JPG

En la imágen anterior muestra donde se ve reflejado cuando el comando se activa. La sección Current History Table Length : 1 muestra cuantas mac locales tiene guardado. Como está por defecto a solo guardar uno, es igual que el configurado.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License