Select Page

A veces es necesario escuchar el tráfico (entiéndase visualizar mediante un analizador de protocolos) de otro host conectado a un switch para propósitos de desarrollo, auditoría o seguridad. Como platiqué en otra entrada, me encuentro desarrollando un dispositivo que se conecta a una red Ethernet, por lo tanto, es importante verificar los datos que envía y recibe desde la red y sin embargo, al estar conectado a un switch, hay algunos problemas para hacerlo.

Como sabemos, un switch es un dispositivo de capa 2 que opera mediante direcciones MAC. Cuando un switch recibe una trama Ethernet en uno de sus puertos y no conoce (mediante su tabla de switcheo CAM -Content Addressable Memory) a que puerto esta conectado el host con la MAC destino, el switch realiza un “flooding” de tráfico unicast. Es decir, el switch transmite la trama a través de todas sus interfaces. Cuando el host para el que estaba dirigida la trama responde o envía tráfico, el switch guarda la información y el puerto asociado a esa dirección MAC.

Una vez que el switch completa su tabla en memoria, el tráfico unicast ya no aparece en todos los puertos, en vez de eso, el switch envía el tráfico al puerto en el que sabe que esta ubicada la dirección MAC destino. De esta manera el tráfico entre dos hosts (A y B) no puede ser visualizado por un tercero (Sniffer), simplemente por que el switch no lo transmite hacia su interfaz de red.

La figura muestra como un switch evita que otros host puedan escuchar el tráfico unicast entre dos hosts.

Una forma de visualizar el tráfico de la red es mediante un hub, el hub es un dispositivo más básico que el switch y simplemente retransmite toda la información que recibe de un puerto hacia los puertos restantes. Esto permite que cualquier computadora conectada al hub escuche el tráfico entre otras dos estaciones.

Un hub retransmite el tráfico entrante hacia todas las interfaces. Cualquier computadora que transmita puede ser escuchada por otro host conectado al hub.

Afortunadamente los diseñadores de los Switches Cisco (y de otras marcas) pensaron en esto y existe una tecnología que  nos permite que un puerto (Span Port) reciba una copia de las tramas enviadas y recibidas en puertos seleccionados, permitiéndonos de esta manera escuchar las conversaciones entre otras computadoras. La característica anterior se conoce en Cisco como SPAN o Switched Port Analyzer y de manera general se conoce como “puertos espejo” o “port mirroring” en inglés.

El switch al que tengo acceso es un Cisco 2950. En este switch podemos configurar uno o mas puertos como “Origen SPAN” y otro como “Destino SPAN”. Todo el el tráfico en los puertos de origen se volcará al puerto destino SPAN. Esto nos permitirá escuchar el tráfico con una tercera computadora.

Terminología SPAN

  • Tráfico de ingreso: Es el tráfico que entra al switch en una interfaz.
  • Tráfico de egreso: Es el trafico que deja el switch a través de una interfaz.
  • Puerto Origen SPAN (Source SPAN port): Un puerto que es monitoreado mediante el uso de SPAN.
  • VLAN Origen SPAN (Source SPAN VLAN): Una VLAN cuyo tráfico es monitoreado mediante SPAN.
  • Puerto Destino SPAN: Un puerto que monitorea el tráfico de los puertos origen, normalmente se conecta un analizador de protocolos de red, appliance de seguridad, etc.
  • Puerto Reflector: Puerto que copia el tráfico a una VLAN RSPAN.
  • Puerto monitor: En algunos switches es sinónimo de Puerto Destino SPAN.

Configuración en la que el trágico de puertos origen SPAN se envía al puerto destino de SPAN.

  • SPAN Local: La característica SPAN es local si todos los puertos monitoreados pertenecen al mismo switch que el puerto destino.
  • SPAN Remoto: Algunos de los puertos origen no están localizados en el mismo switch que el puerto destino. RSPAN es una característica avanzada que requiere una VLAN especial para transportar el tráfico de SPAN entre switches.
  • SPAN basado en puertos: El usuario elige uno o varios puertos origen y un puerto destino.
  • SPAN basado en VLAN: El usuario puede elegir monitorear mediante SPAN todos los puertos de una VLAN particular.

Ejemplo de configuración

Vamos a configurar SPAN en un switch Cisco 2950. Lo primero que hacemos es configurar las interfaces de las cuales queremos escuchar, para esto usamos el commando “monitor session 1 source”. Podemos definir una interfaz, un rango de interfaces o una VLAN cuyo tráfico se copiará al puerto SPAN destino.

Luego configuramos la interfaz destino SPAN mediante el comando “monitor session 1 destination”. Con esto definimos la interfaz del switch en la que queremos que salga todo el tráfico de la interfaz o interfaces de origen.


C2950#configure terminal
C2950(config)#
C2950(config)#monitor session 1 source interface fastethernet 0/2
C2950(config)#monitor session 1 destination interface fastethernet 0/3
C2950(config)#end

Una vez introducidos estos comandos podremos ver el tráfico de la interfaz fastethernet 0/2 duplicado en la interfaz fastethernet 0/3 del switch. Podemos capturar las tramas y decodificar los paquetes con un analizador de protocolos como Wireshark. Debido a que wireshark escuchará la interfaz conectada al switch en el puerto SPAN en modo promiscuo, no hace falta ninguna configuración (IP, Gateway, etc.) especial en la interfaz ethernet de la PC.

Para verificar la configuración de SPAN podemos utilizar los siguientes comandos:

C2950#show monitor session 1
Session 1
---------
Source Ports:
RX Only: None
TX Only: None
Both: Fa0/2
Destination Ports: Fa0/3
C2950#

Referencias.

shares