Mostrando entradas con la etiqueta switching. Mostrar todas las entradas
Mostrando entradas con la etiqueta switching. Mostrar todas las entradas

martes, diciembre 20, 2016

Cómo conectar GNS3 1.x a nuestra red local

GNS3 es un potente software de simulación de redes que utiliza imágenes de Cisco IOS para crear routers con los que construir las topologías que consideremos más adecuadas para nuestras prácticas y simulaciones. Si no lo conoces ya puedes ir descargándolo e instalándolo para echarle un vistazo.

Una parte interesante de GNS3 es que podemos conectar la red virtual simulada a nuestra red local real, física, a través de las interfaces de la máquina virtual sobre la que corre GNS3 y acceder tanto a los recursos de nuestro equipo como dar salida hacia Internet a la red virtual. Veamos cómo con un sencillo ejemplo. Usaremos la versión 1.5.2 de GNS3 corriendo en Windows 10 y no será necesario crear una interfaz Loopback en nuestro PC, como se indica en otros sitios. Si utilizamos una versión de GNS3 de la rama 2.x tendremos que usar otro método para conectar la red virtual a la local, como por ejemplo el descrito en Cómo conectar GNS3 2.x a nuestra red local.

  • Tenemos nuestra red virtual. Puede ser tan sencilla como para constar de un único router, como en este ejemplo, y tan complicada como para tener decenas de routers y hosts virtuales:

 Un solitario router (un Cisco 3745 en este caso, con un montón de interfaces) puebla de momento nuestra topología.

  • Vamos a configurar una interfaz del router con una IP de la LAN de la interfaz virtual VMware Network Adapter VMnet1. Es una de las dos redes virtuales que crea la máquina virtual de GNS3 y que tiene como red 192.168.50.0/24. Podemos ver las interfaces virtuales en Panel de control\Redes e Internet\Conexiones de red.

Configuramos una interfaz del router (FastEthernet0/0, por ejemplo) con una IP del rango de Network Adapter VMnet1 que no esté en uso y levantamos la interfaz. En este ejemplo usaremos la IP 192.168.50.100/24:

R1#conf t

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.50.100 255.255.255.0
R1(config-if)#no shut
 

*Mar  1 00:17:20.507: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:17:21.507: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up


La interfaz está configurada y levantada.

  • Ahora debemos crear un enlace entre el mundo virtual de GNS3 y el mundo real de nuestro PC. El elemento que hará de puente será el objeto Cloud de GNS3, que conectaremos mediante un Ethernet switch virtual al router. Seleccionamos y arrastramos tanto la nube como el switch hacia el área principal y cuando soltemos cada uno de los elementos elegiremos Local Server, que es el valor por defecto.

  •  Antes de enlazar los elementos hay que configurar la nube: pulsamos con el botón derecho sobre ella, Configure, y en la pestaña Ethernet, apartado Generic Ethernet NIO, elegimos la interfaz que ya debería estar seleccionada por defecto, VMware Network Adapter VMnet1. Pulsamos en Add y luego en OK.


  • Ya podemos enlazar el puerto FastEthernet0/0 del router y  la interfaz de la nube con el switch. Contra qué puerto del switch vaya cada interfaz es irrelevante. Si tenemos configuraciones con VLANs hay que recordar que debemos poner los puertos del switch en modo dot1q pero para este ejemplo no será necesario tocar nada en el switch:
Conectamos el puerto FastEthernet0/0 al puerto 1 del switch.

Conectamos la interfaz VMnet1 al puerto 8 del switch.

La topología final.
  •  Ahora comprobamos que desde el router llegamos a la interfaz de la máquina virtual, que tiene la IP 192.168.50.1:

R1#ping 192.168.50.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.50.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/11/12 ms


¡Funciona! Ahora queda por ver si podemos llegar al router real de acceso a Internet, que en este caso tiene como puerta de enlace 192.168.1.1:

R1#ping 192.168.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)


Está claro que nuestro router virtual no puede acceder a la red física donde está nuestro PC. Falta una cosa: indicarle por dónde puede acceder hacia fuera, y la forma que tenemos de decírselo es mediante una ruta por defecto apuntando hacia la puerta de enlace de la red de la máquina virtual:

R1#conf t

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.50.128

R1(config)#exit

R1#ping 192.168.1.1
 

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/12 ms


R1#ping 216.58.201.35

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 216.58.201.35, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/43/44 ms

Ya podemos acceder a la puerta de enlace de nuestro router físico y al resto de nuestra red. Incluso hemos podido hacer ping a una IP de Internet.

¡OJO!, como puede verse en la configuración, la puerta de enlace para la red de la máquina virtual es 192.168.50.128 y no 192.168.50.1. Se ve claramente en la pantalla de inicio de la máquina virtual:


Ahora ya hay visibilidad entre la red virtual simulada y nuestra red física, con todas las posibilidades que ello conlleva: acceso a internet desde la red simulada, envío de tráfico de syslog y SNMP a un servidor en nuestro PC...

jueves, mayo 21, 2015

Port Security en switches Cisco y los modos de bloqueo de port-security: protect, restrict y shutdown.

Tras haber revisado las maneras de asegurar nuestros puertos ante equipos no autorizados mediante los comandos "switchport port-security" y "switchport port-security mac-address", hemos visto que el comportamiento predeterminado cuando se produce una violación en el acceso es tirar el puerto. Existen otros dos comportamientos configurables por comando. La forma general del comando es la siguiente, una vez que estamos dentro de la interfaz en que lo queremos configurar:

SW1(config-if)#switchport port-security violation <protect | restrict | shutdown>

Veamos cada uno de los modos.

shutdown


Es el modo por defecto, así que no hace falta configurarlo. En este modo el puerto, en cuanto se produce una violación en el acceso, queda deshabilitado, cortándose todo tráfico de raíz. Es el comportamiento que hemos visto en los ejemplos de la entrada a que nos referimos al principio. Si fuese necesario volver a configurarlo porque hemos configurado previamente uno de los otros modos el comando sería el siguiente:

SW1(config-if)#switchport port-security violation shutdown

Podemos verificar en qué modo está el puerto con el comando show port-security interface fastEthernet x/y

SW1#show port-security interface fastEthernet 0/2
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 00D0.97EA.6C5A:1
Security Violation Count   : 0


protect


Con protect el puerto no se deshabilita, sino que se corta el tráfico al equipo que haya producido la violación de acceso dejando pasar el resto, si hay más de un equipo conectado a dicho puerto. El comando es:

SW1(config-if)#switchport port-security violation protect

Y para verificarlo:

SW1# show port-security interface fastEthernet 0/2
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Protect
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 3
Total MAC Addresses        : 0
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0002.1758.D55A:1
Security Violation Count   : 0


Veamos un ejemplo con la siguiente topología:


Al puerto FastEthernet 0/2 del switch SW1 va conectado un hub con tres equipos pinchados. Hay además un cuarto equipo, que se conectará más tarde. Los equipos tienen las siguientes IPs:

PC0: 192.168.1.11
PC2: 192.168.1.12
PC3: 192.168.1.13
PC4: 192.168.1.14

El puerto FastEthernet 0/2 está configurado para aceptar tres MACs distintas y activar la protección cuando se conecte una cuarta o más, y además se ha configurado el modo de protección en protect:

!
interface FastEthernet0/2
 switchport mode access
 switchport port-security
 switchport port-security maximum 3
 switchport port-security violation protect
!


Las tres IPs de los equipos conectados responden:

SW1#ping 192.168.1.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 6/7/8 ms

SW1#ping 192.168.1.12

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.12, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/5/7 ms

SW1#ping 192.168.1.14

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.14, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/7 ms



Veamos qué pasa si conectamos el cuarto equipo:


No veremos nada por pantalla, ningún aviso, ningún bloqueo del puerto, ninguna alerta. El nuevo equipo conectado dará link de forma normal, pero veamos qué ocurre al hacer ping ahora a todos los equipos:

SW1#ping 192.168.1.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/8 ms

SW1#ping 192.168.1.12

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.12, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms

SW1#ping 192.168.1.13

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.13, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)


SW1#ping 192.168.1.14

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.14, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/6/7 ms



Todos los equipos que respondían antes, pero el nuevo equipo (IP 192.168.1.13) no responde pese a estar dando link: el switch está parando todo el tráfico dirigido y proveniente de él.


restrict

El modo restrict se comporta exactemente igual que protect con la diferencia de que se notificará la puesta en marcha de la protección mediante mensajes de SNMP o Syslog, si los tenemos configurados adecuadamente en el switch.

El comando para configurarlo es:

SW1(config-if)#switchport port-security violation restrict

Y para verificarlo:

SW1#show port-security interface fastEthernet 0/2
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 3
Total MAC Addresses        : 3
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0002.1758.D55A:1
Security Violation Count   : 6

lunes, mayo 04, 2015

Port Security en switches Cisco: los comandos "switchport port-security" y "switchport port-security mac-address" y el error "Found duplicate mac-address"

En una entrada anterior (Port Security en switches Cisco: cuando no podemos asegurar el puerto y nos sale "Command rejected: FastEthernet0/1 is a dynamic port") vimos la razón de cierto error y cómo asegurar un puerto de un switch Cisco para permitir que por el mismo pasase única y exclusivamente una sola MAC y que el puerto se deshabilitase al pasar MACs adicionales, como ocurre cuando se conecta un hub u otro switch a un puerto donde debería haber un único cliente.


lunes, abril 13, 2015

Port Security en switches Cisco: cuando no podemos asegurar el puerto y nos sale "Command rejected: FastEthernet0/1 is a dynamic port"

En los switches Cisco es posible asegurar un puerto mediante el comando

switchport port-security

en el modo de configuración de interfaz. Si usamos el comando sin más, sin valores adicionales, garantizamos que en ese mismo puerto solo pueda haber conectado un único host (o lo que es lo mismo, que la conexión se restrinja a una MAC, una dirección física), imposibilitando el uso de hubs o switches conectados a dicho puerto. Si esa regla es violada y por el puerto se ve más de una MAC, el switch tirará el puerto. Para asegurar por ejemplo la interfaz FastEthernet0/1 de un switch Cisco deberíamos hacer lo siguiente:

SW1#conf t
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport port-security
Command rejected: FastEthernet0/1 is a dynamic port.


Ahora bien, hemos intentado habilitar la seguridad en el puerto FastEthernet0/1 pero el comando ha sido rechazado, informándosenos de que dicho puerto es dinámico. ¿Qué significa esto? Si hacemos un show interface switchport de dicho puerto obtenemos esta información:

SW1#show interfaces fastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: dynamic auto
Operational Mode: static access
.

.
.

Vemos que el Administrative Mode del switchport está a auto. El modo administrativo define el modo de trunking del puerto, es decir, si el puerto va a funcionar en modo acceso (access mode), permitiendo el paso de una única VLAN, o en modo trunk, permitiendo el paso de múltiples VLANs. Existe además el modo dinámico en que el puerto es configurado de manera automática como acceso o como trunk según el switch detecte lo que hay conectado a ese puerto. En la captura anterior podemos ver que el Operational Mode es static access porque el switch ha detectado que el equipo conectado a ese puerto funciona en modo acceso. Para equipos finales como PCs lo normal es utilizar el modo acceso a secas, por lo que podemos cambiar sin problemas el modo del switchport:

SW1#conf t
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport mode ?
  access   Set trunking mode to ACCESS unconditionally
  dynamic  Set trunking mode to dynamically negotiate access or trunk mode
  trunk    Set trunking mode to TRUNK unconditionally
 

SW1(config-if)#switchport mode access

Ahora podemos ver que el modo administrativo (además del modo operacional) es static access:

SW1#show interfaces fastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
.

.
.

Ahora sí vamos a poder habilitar la seguridad:

SW1#conf t
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport port-security
SW1(config-if)#



Hay que recordar que el comando, sin más parámetros, permite el paso de un único host (una sola MAC) y que cuando se detecta más de una el puerto es tirado por el switch. Veámoslo con un ejemplo.

Tenemos el siguiente segmento de red, con un switch (SW1) al que va conectado un hub (Hub0) a través del puerto FastEthernet0/2, hub al que a su vez hay conectado un host (PC0). Hay un host adicional (PC2) que de momento no está conectado al hub. A qué puertos concretos del hub están conectados los hosts es irrelevante.

De momento el switch ve a través del puerto FastEthernet0/2 una sola MAC, la de PC0. La MAC que ve a través del puerto FastEthernet0/1 es irrelevante para el caso.

SW1#show mac-address-table
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

   1    0060.2f7d.5401    DYNAMIC     Fa0/1
   1    00d0.97ea.6c5a    STATIC      Fa0/2



La norma es que no deben usarse hubs para agregar hosts por los conocidos problemas de colisiones y de bajada del rendimiento en el segmento al que pertenecen. Si como administradores de la red hemos decidido que en la organización no se usarán hubs para agregar equipos, tiene sentido que habilitemos la seguridad en los puertos para equipos finales y evitar precisamente situaciones como esta, en la que posiblemente alguien ha conectado el hub de manera no autorizada y con fines desconocidos. Hemos habilitado la seguridad del puerto en FastEthernet0/2:

SW1#conf t
SW1(config)#interface fastEthernet 0/2
SW1(config-if)#switchport port-security
SW1(config-if)#


Veamos qué ocurre en cuanto conectamos el host PC2 al hub:


El puerto ha caído instantáneamente y el segmento con los hosts ha quedado aislado. En el switch tenemos la siguiente salida:

SW1#
%LINK-5-CHANGED: Interface FastEthernet0/2, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down



Si hacemos un show interface a la interfaz:

SW1#show interfaces fastEthernet 0/2
FastEthernet0/2 is down, line protocol is down (err-disabled)
  Hardware is Lance, address is 000a.41a4.8602 (bia 000a.41a4.8602)
 BW 100000 Kbit, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255

.
.
.


Vemos que la razón de la caída del puerto es err-disabled, que es un código genérico para distintos tipos de motivos por los que el switch puede tirar un puerto, Port Security incluido. Para rehabilitar el puerto necesitamos primero desconectar fisicamente uno de los hosts y realizar primero un shutdown y luego un no shutdown del puerto, con lo que se restaura la situación inicial:

SW1#conf t
SW1(config)#interface fastEthernet 0/2
SW1(config-if)#shut


%LINK-5-CHANGED: Interface FastEthernet0/2, changed state to administratively down
 

SW1(config-if)#no shut

%LINK-5-CHANGED: Interface FastEthernet0/2, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up