Para configurar un dispositivo Cisco, hay que entrar en modo de administración. Esto se hace con enable:
Router>enable Router#
Una vez en modo administrativo, cambia el prompt de > a #.
En este modo, podemos ver bastantes cosas y configurar alguna, pero por lo general, será insuficiente.
Los routers tienen varios interfaces. También, según modelo, tiene unos módulos precargados, con su firmware y sus interfaces. Usaremos básicamente 3 modelos:
HWIC-2T), en caso de ser necesario.
Como ayuda, siempre podremos pulsar la interrogación ? (no hace falta ni pulsar Enter) para ver los comandos disponibles:
Router#? Exec commands: <1-99> Session number to resume auto Exec level Automation clear Reset functions clock Manage the system clock configure Enter configuration mode connect Open a terminal connection copy Copy from one file to another debug Debugging functions (see also 'undebug') delete Delete a file dir List files on a filesystem disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase a filesystem exit Exit from the EXEC logout Exit from the EXEC mkdir Create new directory more Display the contents of a file no Disable debugging informations ping Send echo messages reload Halt and perform a cold restart resume Resume an active network connection rmdir Remove existing directory send Send a message to other tty lines setup Run the SETUP command facility show Show running system information ssh Open a secure shell client connection telnet Open a telnet connection terminal Set terminal line parameters traceroute Trace route to destination undebug Disable debugging functions (see also 'debug') vlan Configure VLAN parameters write Write running configuration to memory, network, or terminal
También se puede usar dentro de cada opción, para ver las opciones secundarias.
Podemos usar el tabulador para completar un comando después de escribir al menos los 3 primeros caracteres:
Router#conf Router#configure ter Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#
En este modo, principalmente se pueden usar comandos show:
Router#show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0 192.168.10.1 YES manual up up GigabitEthernet0/1 192.168.20.1 YES manual up up Vlan1 unassigned YES unset administratively down down
Router#show running-config Building configuration... Current configuration : 984 bytes ! version 16.6.4 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Router ! ! interface GigabitEthernet0/0 ip address 192.168.10.1 255.255.255.0 duplex auto speed auto ! interface GigabitEthernet0/1 no ip address duplex auto speed auto ! interface Vlan1 no ip address shutdown ! ! end
Se han omitido algunas líneas.
Se usa el comando write memory (sólo en este modo):
Router#write memory Building configuration... [OK] Router#
Desde el modo administración, entraremos al modo configuración con configure terminal:
Router# Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#
En general, observaremos que el prompt cambia según estemos en un modo u otro. También, dentro del modo de configuración, cambiará el prompt según el submenú en el que estemos.
En general, para trabajar con una interfaz, primero tenemos que entrar en esa opción mediante el comando interface seguido de la interfaz. Se puede usar el nombre largo o el nombre corto(int), que se muestra al tener un cable conectado. El nombre NO es sensible a mayúsculas:
Router(config)#interface gig0/0 Router(config-if)#exit Router(config)#int gigabitEthernet 0/0 Router(config-if)#
Las dos formas entran en el mismo interfaz, gig0/0 o gigabitEthernet 0/0 (se puede omitir el espacio entre el nombre y el número dentro del interfaz). Vemos que cambia el prompt a (config-if).
Ahora, asignamos la ip principal, con su máscara de red:
Router(config-if)# ip address 192.168.1.1 255.255.255.0 Router(config-if)#
Si todo ha ido correcto, no muestra ningún error.
Después de asignar la ip, conviene decirle al dispositivo que levante la interfaz, que por defecto está bajado. Esto se hace con el comando no shutdown. Veremos mensajes relativos al cambio de estado de la interfaz, si estuviera bajada:
Router(config-if)#no shutdown Router(config-if)# %LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up
Se pueden asignar más de una ip a la misma interfaz, haciendo lo mismo, pero añadiendo al final secondary.
Cuando hay que configurar múltiples ip para distintas VLAN, hay que encapsular. Para ello, procedemos de la siguiente forma:
no ip address. Opcionalmente, la levantamos con no shutdown..<VLAN>. Es decir, para la interfaz gig0/0 y la VLAN 10, sería interface gig0/0.10. Debería levantarse inmediatamente.encapsulation dot1Q 10.ip address <ip> <mask>.no shutdown. Debería levantar todas las subinterfaces.Router(config)#int gig0/0 Router(config-if)#no ip address Router(config-if)#no shutdown Router(config-if)#int gig0/0.10 Router(config-subif)#encapsulation dot1Q 10 Router(config-subif)#ip address 192.168.1.1 255.255.255.0 Router(config-subif)#int gig0/0.20 Router(config-subif)#encapsulation dot1Q 20 Router(config-subif)#exit
Hay varios tipos de enrutado.
Consiste en decirle de forma explícita por dónde tiene que enrutar a una red de destino. La salida puede ser una ip o el interfaz local. No hay que entrar en ninguna interfaz:
Router(config)# ip route 0.0.0.0 0.0.0.0 Gig0/0 Router(config)# ip route 10.1.0.0 255.255.0.0 172.16.1.1
El enrutado por RIPv2 está basado en que en una red donde hay varios routers, se comunican y se anuncian las redes que cada cual conoce, para aprenderlas de forma dinámica. A pesar de que el router conozca sus redes, tiene que habilitar la opción que se va a comunicar con otros routers y decirles qué redes conoce.
Router(config)#router rip Router(config-router)#version 2 Router(config-router)#network 192.168.10.0
El enrutado eigrp se basa en crear un “Sistema autónomo” (AS), con una numeración única entre 1 y 65535. Cada AS anuncia las redes que tiene a los routers vecinos que lo requieran, siendo lo más habitual que cada router que quiera tener conocimiento de un AS, tiene que configurarse con ese AS y anunciar todas las rutas asociadas a sus interfaces. Se inicia con el comando router eigrp <AS> en modo configuración. No hay que asociarlo a ningún interfaz. Ejemplo básico:
Router(config)#router eigrp 10 Router(config-router)#network 192.168.10.64 0.0.0.31 Router(config-router)#network 192.168.10.132 0.0.0.3 Router(config-router)#network 192.168.10.136 0.0.0.3 Router(config-router)#no auto-summary
El segundo parámetro de network es la wildmask. La forma más simple de entenderlo es que es justo lo contrario de la máscara de subred, es decir, cada octeto es el resultado de restar a 255 el octeto de la máscara de subred. En firmware modernos, es posible que se acepte la máscara de subred directamente, y ya el firmware la traduce a una wildmask. Finalmente, conviene añadir siempre el comando no auto-summary. Esto impide que, en casos de subnetting, se unifiquen esas subredes en redes más amplias, ignorando la especificidad que se pudiera haber definido de forma explícita.
Desde el punto de vista de eigrp, sólo “conoce” las redes que, de forma explícita, se configuran dentro del AS. Esto quiere decir que, a pesar de conocer las rutas locales que tiene por asociar ip al interfaz, si no se incluyen de forma explícita, no se distribuyen por eigrp. Esto incluye la interfaz que puede conectar directamente dos routers.
En otro router, se inicia otra sección con el mismo AS, y cuando se dé de alta la interfaz común, se conectarán por eigrp y se compartirán las rutas anunciadas. Estas rutas podrán verse con el comando show ip route en modo administrativo (do show ip route en modo configuración).
R2(config)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
192.168.10.0/24 is variably subnetted, 9 subnets, 4 masks
D 192.168.10.0/26 [90/2172416] via 192.168.10.133, 00:05:05, Serial0/0/0
C 192.168.10.64/27 is directly connected, GigabitEthernet0/0.20
L 192.168.10.65/32 is directly connected, GigabitEthernet0/0.20
D 192.168.10.96/27 [90/2172416] via 192.168.10.138, 00:05:08, Serial0/0/1
D 192.168.10.128/30 [90/2172416] via 192.168.10.133, 00:05:05, Serial0/0/0
C 192.168.10.132/30 is directly connected, Serial0/0/0
L 192.168.10.134/32 is directly connected, Serial0/0/0
C 192.168.10.136/30 is directly connected, Serial0/0/1
L 192.168.10.137/32 is directly connected, Serial0/0/1
Las líneas que comienzan por D o EX son las 'heredadas' por eigrp de otros routers.
Para anunciar rutas entre distintos AS, tenemos el comando redistribute, que se ubica dentro de la configuración del AS. La sintaxis es:
redistribute eigrp <AS> metric <bandwith> <delay> <reliability> <load> <MTU>
10000. Ancho de banda (en kilobits por segundo) — se usa para calcular la velocidad del enlace.100. Retardo (en decenas de microsegundos). Ejemplo: 100 = 1 ms.255. Confiabilidad del enlace (1–255). 255 = 100% confiable.1. Carga actual (1–255). 1 = enlace sin congestión.1500. Tamaño máximo de unidad de transmisión (bytes). Solo se incluye para compatibilidad; EIGRP no lo usa en el cálculo.Cuando tenemos varios routers con distintos AS, el principio es parecido, pero con dos diferencias:
Router(config)#router eigrp 200 Router(config-router)#redistribute eigrp 100 metric 10000 100 255 1 1500 Router(config-router)#network 10.1.12.0 0.0.0.3 Router(config-router)#network 10.1.23.0 0.0.0.3 Router(config-router)#network 10.102.2.0 0.0.0.255
Router(config)#router eigrp 100 Router(config-router)#redistribute eigrp 200 metric 10000 100 255 1 1500 Router(config-router)#network 10.1.12.0 0.0.0.3
El enrutamiento OSPF (Open Shortest Path First) es un protocolo de enrutamiento dinámico. Calcula el camino más corto usando el algoritmo SPF (Dijkstra). El principio básico es que se parte de un área (la 0) y los routers del mismo área se comunican las rutas.
Cada router, en OSPF, tiene un router ID (RID). El RID es un identificador lógico único dentro del dominio OSPF, no del área.
Es un número de 32 bits con formato de dirección IP (por ejemplo, 1.1.1.1 o 192.168.255.1), pero no tiene por qué ser una IP real o asignada a ninguna interfaz.
Se puede configurar manualmente en un process ID. Usaremos el process ID 10 como ejemplo:
R1(config)#router ospf 10 R1(config-router)#router-id 1.1.1.1
router ospf <processID> sin tener ninguna interfaz configurada, ya que el packet tracer muestra error.
Si el RID no está configurado, usa la IP más alta de una interfaz Loopback (si existe).
Si no hay loopback, usa la IP más alta de las interfaces activas.
clear ip ospf process) para que se aplique.
Cuando hay varios routers en el mismo área, el que tenga el RID más alto, toma el rol de router designado (DR) y el siguiente menos alto es el backup del router designado (BDR). El resto de routers toman el rol DROTHER. El DR se encarga de recoger las rutas y, para no cargar el tráfico, es el que se encarga de repartir las rutas a los routers del mismo área. Si por algún motivo el DR no está disponible, el BDR se convierte en DR, y el DROTHER con RID siguiente se convierte en BDR.
OSPF tiene 2 modos: área única y multiárea.
Hay 2 formas de configurar el enrutamiento: usando ip ospf <processID> area <area> en cada interfaz, o definiendo las rutas explícitamente, de forma muy parecida a eigrp.
En cada interfaz:
R1(config)#interface GigabitEthernet 0/0/0 R1(config-if)#ip address 192.168.10.1 255.255.255.0 R1(config-if)#ip ospf 10 area 0 R1(config-if)#no shutdown R1(config-if)#interface GigabitEthernet 0/0/1 R1(config-if)#ip address 192.168.11.1 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#ip ospf 10 area 0
Opcionalmente, y siempre después de haber asignado direciones ip, asignamos el router-id:
R1(config)#router ospf 10 R1(config-router)#router-id 1.1.1.1
La otra forma, publicando manualmente las rutas, con wildmask y área:
R1(config)#router ospf 10 R1(config-router)#router-id 1.1.1.1 R1(config-router)#network 192.168.10.0 0.0.0.255 area 0 R1(config-router)#network 192.168.11.0 0.0.0.255 area 0 R1(config-router)#exit
Router(config-if)#ip ospf message-digest-key 1 md5 clavesecreta Router(config-if)#ip ospf authentication message-digest
donde clavesecreta es la clave en claro. No hay forma de ocultarla después al ver la configuración.
Mientras que en redes pequeñas es más sencillo usar un area única, cuando el tamaño de las redes crece, se hace más necesario, y a veces imprescindible, usar más de un área. Esto es por varios motivos:
Por ello, se establece un mecanismo donde haya varias áreas, y al dividir el trabajo, la carga y las responsabilidades, se reduce la cantidad de información que tiene que manejar cada router, y el resultado es una mayor eficacia.
En general, la implementación es muy parecida a la de área única. La diferencia principal es que se establece un área 0, que hace de intermediario entre todas las áreas.
Para configurar un router como servidor DHCP, el procedimiento consta de los siguientes pasos:
ip dhcp excluded-address <iporigen> [<ipfinal>].Router(config)#ip dhcp excluded-address 192.168.0.1 192.168.0.10 Router(config)#ip dhcp pool POOL Router(dhcp-config)#network 192.168.0.0 255.255.255.0 Router(dhcp-config)#default-router 192.168.0.1 Router(dhcp-config)#dns-server 192.168.1.5
Podemos definir múltiples pool. Una vez definidos, ya entran automáticamente a funcionar, sin aplicar a ninguna interfaz.
También se puede hacer DHCP relay a otro servidor DHCP que está en otro sitio. El servidor DHCP tiene que tener previamente configurados los pool correspondientes a las redes que va a recibir peticiones. En este caso, además de tener conexión con ese servidor, hay que hacer dos cosas:
ip helper-address <ipservidor>, poniendo la ip del servidor dhcp.NAT (Network Address Translation) es una técnica que consiste en reescribir o traducir una dirección (a veces también el puerto) en otra con la intención de que la dirección reescrita esté al alcance del siguiente salto. De esta forma, se permite comunicar redes sin tener que habilitar todas las rutas en todos los sentidos.
En este proceso, se distinguen cuatro conceptos:
| Inside Local (IL) | La dirección IP privada (RFC 1918) asignada a un host dentro de la red local (inside) que inicia la comunicación. Esta es la dirección real del dispositivo antes de cualquier traducción. |
| Inside Global (IG) | La dirección IP pública que representa al host de la red interna (inside) cuando se comunica con la red externa (Internet). Es la dirección después de que el router ha realizado la traducción. |
| Outside Local (OL) | La dirección IP del host de destino en la red externa (outside) vista por el host interno. En la práctica, suele ser la dirección IP real (pública) del host de destino. |
| Outside Global (OG) | La dirección IP del host de destino en la red externa (outside) vista por el resto de la red global. En la mayoría de los casos, la Outside Local y la Outside Global son idénticas (la IP pública del servidor web), ya que el dispositivo externo no necesita ser traducido por el NAT de su red. |
Desde el punto de vista de Cisco, hay tres tipo de NAT: estático, dinámico y con sobrecarga.
En un router, de forma general, hay que configurar el interfaz que comunica la red interna con ip nat inside, para traducir el tráfico que le llega desde el interior con destino al exterior. Por otro lado, el interfaz que comunica con el exterior, hay que configurarlo con ip nat outside, para recoger el tráfico que proviene del exterior y hacer la traducción que coresponda, así como enviar el tráfico traducido hacia el exterior. El interfaz con ip nat inside gestiona las “Local”, y el interfaz con ip nat outside gestiona las “Global”, según su tabla de direcciones NAT.
Se puede ver la tabla de traducciones con [do] show ip nat translation.
El NAT estático está diseñado principalmente para el mapeo bidireccional entre una dirección IP privada y una IP pública.
Su uso más común es recibir tráfico del exterior. El tráfico que llega a una IP pública específica (IG) se traduce a una IP privada interna fija (IL), generalmente para publicar un servidor o servicio.
El mismo host interno, al generar tráfico saliente al exterior, utiliza su IP privada (IL), y el router la traduce a la misma IP pública fija (IG).
IMPORTANTE: Normalmente, el router nunca tendrá asignadas ni la IL ni la IG, pero sí tiene que hacer referencia a ambas para la tabla de NAT.
Ejemplo: Un servidor en la red que tiene la ip 192.168.10.254 (IL), se le quiere asociar con la ip pública 209.165.201.5 (IG). Para ello, en el router R2, que es el que hace de frontera (border), y que tiene enrutamiento hacia el servidor (aunque esté en otra subred). En la interfaz de R2 que comunica con el interior, tiene que configurarse con el siguiente salto, que será un dispositivo del ISP.
R2(config)# ip nat inside source static 192.168.10.254 209.165.201.5 R2(config)# R2(config)# interface serial 0/1/0 R2(config-if)# ip address 192.168.1.2 255.255.255.252 R2(config-if)# ip nat inside R2(config-if)# exit R2(config)# interface serial 0/1/1 R2(config-if)# ip address 209.165.200.1 255.255.255.252 R2(config-if)# ip nat outside
También se puede usar el NAT estático para redirigir de una IP pública y un puerto a una IP privada y un puerto privado (conocido también como Port Forwarding). El formato es:
ip nat inside source static tcp <IP_privada> <puerto_interno> <IP_pública> <puerto_externo>
Ejemplo:
R2(config)#ip nat inside source static tcp 192.168.1.100 80 203.0.113.5 8080
Esto redirige el tráfico que llega al puerto 8080 de la IP pública 203.0.113.5 hacia el puerto 80 del servidor interno 192.168.1.100. Pero para ello, hay que configurar el NAT en las interfaces:
R2(config)#interface GigabitEthernet0/0 R2(config-if)#ip address 192.168.1.1 255.255.255.0 R2(config-if)#ip nat inside R2(config-if)#exit R2(config)#interface GigabitEthernet0/1 R2(config-if)#ip address 203.0.113.1 255.255.255.0 R2(config-if)#ip nat outside
El NAT dinámico es básicamente igual que el estático, pero en lugar de tener una única ip pública, se tiene un pool de direcciones ip públicas. La diferencia es que está orientado al tráfico de salida más que el de entrada. Se asigna una ip del pool (mientras haya libres), y cuando éstas se agotan, no hay nuevas asignaciones hasta que haya un timeout por inactividad en alguna, y libere esa asignación.
Para la configuración, hay que definir el pool de ips públicas, y el pool o lista de ips locales. Luego se hace el mismo NAT, con la diferencia de que en lugar de hacer una asignación estática (static) se hace al pool definido.
Ejemplo: Hay un pool de direciones asignadas por el ISP que van desde la 209.165.200.226 hasta la 209.165.200.240, para proporcionar salida al exterior a un rango de equipos.
R2(config)# ip nat pool NAT-POOL1 209.165.200.225 209.165.200.254 netmask 255.255.255.224 R2(config)# access-list 1 permit 192.168.0.0 0.0.0.255 R2(config)# ip nat inside source list 1 pool NAT-POOL1 R2(config)# interface serial 0/1/0 R2(config-if)# ip nat inside R2(config-if)# interface serial 0/1/1 R2(config-if)# ip nat outside
El PAT (Port Address Translation) se utiliza para eliminar la restricción que supone usar una asignación 1:1 entre equipo e ip pública. En este caso, al llegar al router, éste traduce la dirección a origen junto a un puerto, de tal manera que esa combinación, junto con lo mismo para una ip pública, permite tener más “canales” de comunicación.
El escenario más sencillo es que el border traduzca las direcciones al salir por su interfaz exterior. Esto hace que nos despreocupemos de la IG, y nos centremos en la red local. Al final, después de la lista, añadimos el interfaz y la palabra clave overload.
R2(config)#ip nat inside source list 1 interface serial 0/1/1 overload R2(config)#access-list 1 permit 192.168.0.0 0.0.255.255 R2(config)#interface serial0/1/0 R2(config-if)#ip nat inside R2(config-if)#exit R2(config)#interface Serial0/1/1 R2(config-if)#ip nat outside
Otro escenario, en lugar de tener una única ip, es tener un pool de ips. Aplicamos lo ya visto en el dinámico y aplicamos overload:
R2(config)#ip nat pool NAT-POOL1 209.165.200.225 209.165.200.254 netmask 255.255.255.224 R2(config)#access-list 1 permit 192.168.0.0 0.0.255.255 R2(config)#ip nat inside source list 1 NAT-POOL1 overload R2(config)#interface serial0/1/0 R2(config-if)#ip nat inside R2(config-if)#exit R2(config)#interface Serial0/1/1 R2(config-if)#ip nat outside
Usamos por defecto el modelo 2960, que tiene dos interfaces gigabit y 24 fast ethernet.
Tenemos el modo comando con enable. Ahí tenemos múltiples comandos, siendo quizá el más interesante show vlan brief:
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
Al igual que con los router, entramos a configurar con configure terminal.
Para crear una VLAN, simplemente usamos el comando vlan <num>, donde <num> es un número entre 1 y 4094:
Switch(config)#vlan 10
Opcionalmente, podemos darle un nombre:
Switch(config)#vlan 10 Switch(config-vlan)#name VENTAS
Si no ponemos nombre, le asigna el número de VLAN con 4 dígitos, precedido de VLAN. En el ejemplo, sería VLAN0010.
En modo configuración, podemos entrar en una interfaz, o en un rango:
Switch(config)#int gig0/1 Switch(config-if)# Switch(config-if)#exit Switch(config)#int range gig0/1-2 Switch(config-if-range)#
Después, configuramos la vlan correspondiente, o el modo trunk.
Para configurar una interfaz o rango para que pueda acceder una única vlan, una vez dentro, tenemos que combinar dos comandos:
Switch(config)#int range fa0/1-24 Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 10
Cualquier otro escenario donde tenga que pasar tráfico de más de una VLAN por una interfaz, hay que poner la interfaz en modo trunk.
La configuración básica de una interfaz en modo trunk es muy sencilla, ya que con una línea es suficiente:
Switch(config)#int range gig0/1-2 Switch(config-if-range)#switchport mode trunk
vlan 10, y ya está.
También podemos restringir las VLAN que pueden pasar por un interfaz en modo trunk:
Switch(config)#int g1/0/22 Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk allowed vlan 1,99
En este caso, sólo pasarán las VLAN 1 y 99, y la 10 (si existe), no pasará.
Por último, hay casos donde hay que etiquetar una interfaz trunk con una VLAN nativa (“native”). Si en el extremo del interfaz hay un dispositivo que, por sí mismo, no etiqueta el tráfico, este tráfico llegará a la interfaz y usará la vlan nativa por defecto, que es la 1, en lugar de la correspondiente a la ip del dispositivo. Para conseguir que ese dispositivo que no etiqueta, cuando envíe tráfico por el switch, este tráfico salga con la etiqueta correspondiente a la vlan (por ejemplo, la 20), hay que usar la siguiente técnica:
Switch(config)#int g1/0/22 Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk native vlan 20
De esta forma, le llega todo el tráfico. Si no tiene etiqueta, se asigna a la vlan 20.
Lo que hemos visto es para switch de capa 2, donde nos limitamos a esa capa (direcciones MAC) y no usamos enrutamiento a nivel ip (capa 3). Para esto, existen los switches L3, que combinan el número elevado de puertos (para poder conectar muchos dispositivos) con las capacidades de enrutamiento, combinando un switch “tradicional” con un router “tradicional”. Esto quiere decir que las funcionalidades básicas de un router (enrutamiento, dhcp, etc) las puede realizar exactamente de la misma forma que un router.
Para proporcionar enrutamiento entre VLAN, los switches L3 utilizan
SVIs. Los SVIs se configuran utilizando el mismo comando interface
vlan vlan-id utilizado para crear el SVI de administración en un switch de capa
2. Se debe crear un SVI de Capa 3 para cada una de las VLAN enrutables.
En principio, la gestión de los puertos a nivel de capa 2 no supone ninguna diferencia respecto a un switch de capa 2. La diferencia surge cuando configuramos el switch L3 como un router. En packet tracer hay 2 modelos: el 3560-24PS y el 3650-24PS. La diferencia es que el primero tiene la mayoría de puertos FastEthernet, mientras que el segundo tiene mayoría de puertos GigabitEthernet (aunque siempre hay al menos un par de puertos gigabit).
El switch L3 tiene por defecto la misma configuración que uno L2, es decir, que por defecto asume que los puertos van a ser “tipo switch”. Si queremos asignar una dirección ip a un puerto, procederemos de la siguiente forma:
Sw3(config)#int g0/1 Sw3(config-if)#no switchport Sw3(config-if)#ip address 192.168.10.1 255.255.255.0 ...
Y ya ese interfaz está en “modo router”.
Aunque la primera parte es igual que en L2 (es decir, tener todas las VLAN definidas en la base de datos del switch), hay diferencias en la gestión de VLAN. Si queremos asignar un ip al switch para que gestione la VLAN 10, se la asignamos al SVI:
Sw3(config)#int vlan 10 Sw3(config-if)#no shutdown Sw3(config-if)#ip address 192.168.10.1 255.255.255.0 ...
Aquí podemos definir un enrutado ospf o cualquier otra cosa relacionada con el enrutamiento que se hace en el interfaz de un router.
ip ospf X area Y en el SVI, pero no se persisten los cambios. Por ello, para que sean permanentes las redes definidas en el SVI, hay que poner las network <wildmask> correspondientes en la sección router ospf X.
ip routing para que entren en funcionamiento.
Las listas de control de acceso (ACL) sirven para permitir o denegar el tráfico por una interfaz de un dispositivo. Valen tanto para routers como para switches.
Por defecto, sin ninguna ACL todo el tráfico está permitido. Sin embargo, cuando se crea una ACL, al final de la misma, lleva implícita una denegación de todo el tráfico que pase por la interfaz en que se aplica, por lo que previamente hay que combinar todas las reglas para que el resultado sea el esperado.
Las ACL pueden tener un número o un nombre. Cada ACL es un conjunto de ACEs (Access Control Entry) que permiten (permit) o deniegan (deny). También pueden tener un comentario (remark). Cada ACE se evalúa en el orden que se ha introducido, y cuando una ACE se cumple, el resto se ignoran. La ACE usa una wildmask para indicar la máscara de subred, y también puede usar la palabra host para indicar una única ip en lugar de la wildmask 0.0.0.0.
Las ACL numéricas pueden crearse de dos formas:
access-list X <permit|deny> <args>.ip access-list <tipo> <num|nombre>, y después de pulsar enter, se entra en modo configuración de la ACL. Ahí se ponen las claúsulas permit o deny hasta que se pone exit para indicar que ya no hay mas ACEs y terminar la ACL. IMPORTANTE: En caso de usar un nombre, éste es sensible a mayúsculas.Una ACL estándar puede usarse cuando únicamente depende del origen.
Una ACL estándar númerica tiene el rango de 1 a 99 o de 1300 a 1999. Ejemplo:
Switch(config)#access-list 10 permit 192.168.10.0 0.0.0.255 Switch(config)#
o
Switch(config)#ip access-list standard 10 Switch(config-std-nacl)#permit 192.168.10.0 0.0.0.255 Switch(config-std-nacl)#exit Switch(config)#
También se puede crear una ACL estándar con un nombre con ip access-list standard <nombre>. El resto es igual que con un número.
Una ACL extendida permite tener ACEs complejas, con origen, destino, protocolo, puerto, etc. En su formato numérico, tiene el rango de 100 a 199, o de 2000 a 2699.
Router(config)#access-list 110 permit ...
o lo que es lo mismo
Router(config)#ip access-list extended 110 Router(config-ext-nacl)#permit ... Router(config-ext-nacl)#exit
Para crear una extendida con nombre, es ip access-list extended <nombre>.
La sintaxis de cada línea es:
permit|deny <proto> <origen> <destino> [eq <puerto>|established]
Donde:
udp: para udptcp: para tcpip: para cualquier protocoloicmp: para icmp.any: para cualquier origenhost seguido de la ip, la ip de origenwww para el 80. El protocolo tiene que ser tcp o udp.established. Para protocolo tcp o udp. Permite que el tráfico interno salga de la red privada interna y permite que el tráfico de respuesta devuelta entre en la red privada interna. Se deniega el tráfico TCP generado por un host externo e intentando comunicarse con un host interno.
Las ACL se definen a nivel global, pero no entran en funcionamiento hasta que se aplican a un interfaz. Esto permite tener múltiples ACLs inactivas, para pruebas. Las ACL existentes se pueden ver con [do] show access-lists, y también con la configuración global.
Para aplicar una ACL, tenemos que entrar primero en la interfaz que vaya a aplicarla.:
Router(config)#int gig0/0 Router(config-if)#ip access-group 110 in Router(config-if)#exit Router(config)#
Usamos ip access-group <nombre|num> [in|out], donde se indica si se va a aplicar con tráfico entrante (in) o saliente (out). Lo normal es a la entrada.
in|out)
Para usar la telefonía IP, tenemos que tener en cuenta 2 prerrequisitos:
Vamos a configurar primero el switch:
Switch(config)#int gig0/1 Switch(config-if)#switchport mode trunk Switch(config-if)#int range fa0/1-3 Switch(config-if)#switchport voice vlan 2
Opcionalmente, podemos dar nombre a la vlan 2.
Vamos a configurar el router. Lo primero, vamos a configurarlo como servidor DHCP para la red de telefonía.
Router(config)#ip dhcp excluded-address 192.168.0.1 Router(config)#ip dhcp pool VOZ Router(dhcp-config)#network 192.168.0.0 255.255.255.0 Router(dhcp-config)#default-router 192.168.0.1 Router(dhcp-config)#option 150 ip 192.168.0.1 Router(dhcp-config)#exit
Asignamos la ip para la vlan 2:
Router(config)#int fa0/0 Router(config-if)#no ip address Router(config-if)#no shutdown Router(config-if)#int fa0/0.2 Router(config-if)#encapsulation dot1Q 2 Router(config-if)#ip address 192.168.0.1 255.255.255.0 Router(config-if)#exit
Hasta ahora, nada nuevo que no pudiéramos hacer en cualquier otro router. Ahora tenemos que configurar:
max-dn)max-ephones)Vamos a usar 2 terminales de ejemplo:
Router(config)#telephony-service Router(config-telephony)#max-dn 2 Router(config-telephony)#max-ephones 2 Router(config-telephony)#ip source-address 192.168.0.1 port 2000 Router(config-telephony)#auto assign 1 to 2 Router(config-telephony)#exit
Ahora tenemos que configurar las extensiones de los terminales. Vamos a poner que son la 501 y la 502.
Router(config)#ephone-dn 1 Router(config-ephone-dn)#number 501 Router(config-ephone-dn)#ephone-dn 2 Router(config-ephone-dn)#number 502 Router(config-ephone-dn)#exit Router(config)#
Ya está. Para probarlo, tenemos que conectar dos IP Phone a las bocas del switch que tengan la vlan de voz. Hay que poner el cable de corriente, esperar a que cojan ip y salga el número de la extensión en el terminal. Entonces podemos descolgar y marcar el número del otro terminal, y ver que parpadea.
Lo anterior vale para una centralita que tiene su rango de números, pero también podemos comunicar dos centralitas diferentes. Una vez configurada cada centralita individualmente, hay que añadir una sección en cada router para poder comunicarse con otra centralita. Hay que definir los siguientes parámetros:
destination-pattern seguido de la plantilla, donde hay que poner un punto (.) por cada carácter comodín que represente las extensiones de la otra centralita. El valor 2... indica que empiezan por 2 y pueden tener cualquier dígito, es decir, de 2000 a 2999.session target ipv4:ip.Ejemplo de dos centralitas. La centralita del router 1 (10.10.10.1) gestiona las extensiones de 1000 a 1999, y la del router 2 (10.10.10.2), de 2000 a 2999.
ROUTER 1:
Router1(config)#dial-peer voice 1 voip Router1(config-dial-peer)#destination-pattern 2... Router1(config-dial-peer)#session target ipv4:10.10.10.2 Router1(config-dial-peer)#codec g711ulaw
ROUTER 2
Router2(config)#dial-peer voice 1 voip Router2(config-dial-peer)#destination-pattern 1... Router2(config-dial-peer)#session target ipv4:10.10.10.1 Router2(config-dial-peer)#codec g711ulaw
Dentro de lo que soporta packet tracer, tenemos dos opciones:
Las dos opciones tienen en común el cifrado mediante IPSec, pero difieren en la estructura, su complejidad y facilidad para gestionarlas. Por el uso que se hace de ambas en la realidad, además de permitir no redundar en explicaciones, las veremos en orden inverso.
La conexión a través de túnel exige que previamente esté funcionando la conexión WAN, y sobre este funcionamiento, sin supeditarlo, se añade una conexión punto a punto con el otro extremo. Simplemente necesitamos asignar una red /30 a la conexión punto a punto en un rango privado, y establecer la comunicación a través de esta conexión. Esta conexión se genera a través de una interfaz virtual llamada tunnel X, y que puede manejarse básicamente como cualquier interfaz.
En un extremo:
interface Tunnel0 ip address 10.10.10.2 255.255.255.252 tunnel source 64.100.13.2 tunnel destination 209.165.118.2 tunnel mode gre ip
y en el otro
interface Tunnel0 ip address 10.10.10.1 255.255.255.252 tunnel source 209.165.118.2 tunnel destination 64.100.13.2 tunnel mode gre ip
tunnel source se puede sustituir la ip del interfaz por el nombre de la interfaz.
Después, se puede usar una ruta estática apuntando a la red remota y el otro extremo del túnel como gateway:
En el primer extremo (siendo la red remota 192.168.30.0/24):
ip route 192.168.30.0 255.255.255.0 10.10.10.1
Y en el segundo, para acceder a la 192.168.10.0/24:
ip route 192.168.10.0 255.255.255.0 10.10.10.2
Una vez hecho esto, desde cualquiera de las redes de ambos lados se puede acceder al otro lado.
El cifrado IPSec requiere que el router (básicamente la serie 29xx) pueda incorporar el módulo de seguridad securityk9. Esto podemos verlo con el comando show version en modo admin:
R1#show version ---------------------------------------------------------------- Technology Technology-package Technology-package Current Type Next reboot ----------------------------------------------------------------- ipbase ipbasek9 Permanent ipbasek9 security None None None uc None None None data None None None
Para activar el módulo hay que seguir estos pasos:
R1(config)# license boot module c2900 technology-package securityk9 R1(config)# end R1# copy running-config startup-config R1# reload
Después de reiniciar, volvemos a comprobar con show version.
R1#show version ---------------------------------------------------------------- Technology Technology-package Technology-package Current Type Next reboot ----------------------------------------------------------------- ipbase ipbasek9 Permanent ipbasek9 security securityk9 Evaluation securityk9 uc None None None data None None None
Estos pasos hay que repetirlos con cada router que vaya a usar el cifrado.
Ahora, tenemos los routers R1 y R2.
Primero tenemos que crear una ACL para el “tráfico interesante” (el que será cifrado):
R1(config)# access-list 110 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
R2(config)# access-list 110 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
A continuación, los parámetros en fase 1 para cada router:
R1(config)# crypto isakmp policy 10 R1(config-isakmp)# encryption aes R1(config-isakmp)# authentication pre-share R1(config-isakmp)# group 2 R1(config-isakmp)# exit R1(config)# crypto isakmp key cisco address 209.165.118.2