miércoles, 1 de octubre de 2014

IS-IS:ISIS level 1 y level 2:

A la hora de diseñar una red con IS-IS hay una serie de diferencias importantes respecto a como se suele hacer con OSPF, y una de las más importantes es el concepto de áreas.

El concepto de área en OSPF era un concepto que se aplicaba a nivel de interfaz, y un router podía estar en una o varias áreas de OSPF en base a las distintas áreas a las que pertenezcan sus interfaces.

En ISIS un router solo puede pertenecer a un único área, por otro lado un router con ospf no tiene problema alguno para establecer adyacencia con un router que no esté en su mismo área.

En ISIS por el contrario tenemos dos tipos de adyacencias, IS-IS level 1, e IS-IS level 2. IS-IS L2 es una adyacenc ia que se establece entre dos equipos que pertenecen al mismo o a diferente área. ISIS L1 en cambio solo se establece cuando dos routers pertenecen a la misma área, en caso contrario no hay adyacencia.

En OSPF teníamos el backbone que estaba formado por el área 0, y de ella colgaban las demás áreas. 

En el caso de ISIS el backbone de la red está formado por los routers que forman adyacencias de L2, en cambio las adyacencias de L1 son partes de la red que en caso de no encontrar ruta para llegar a un destino enviarán los paquetes al router que tenga una adyacencia de L2 más cercano.

Esto nos da como resultado tres tipos de routers:

Routers L2, que solo forman parte del core de la red.
Routers L1, que están en un nivel jerárquico inferior, y que tienen un conocimiento de la red parcial.
Routers L1-L2 que son los que permiten a áreas de L1 alcanzar el “mundo exterior”.

El motivo por el que se divide ISIS de esta manera es para generar un mecanismo que permita que los routers que no son de Backbone evitar realizar cálculos de SPF por eventos sucedidos en el core, y por otro lado permite controlar la inyección de rutas entre L2 y L1(route leaking).


Por defecto dos routers con isis habilitado en la interfaz establece tanto L1 como L2, pero hay que recordar que  las adyacencias de L1 solo se pueden realizar entre routers del mismo área.

Configuración de niveles en ISIS


Se puede configurar a nivel de router completo para hacer un router L1  o L2, pero también se puede hacer a nivel de interfaz para los routers L1-L2.

Router completo:

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#router isis
R3(config-router)#is-type ?
  level-1       Act as a station router only
  level-1-2     Act as both a station router and an area router
  level-2-only  Act as an area router only

R3(config-router)#is-type lev
R3(config-router)#is-type level-1

Nivel de interfaz:

R3(config)#int e0/0.34
R3(config-subif)#isis circuit-type ?
  level-1       Level-1 only adjacencies are formed
  level-1-2     Level-1-2 adjacencies are formed
  level-2-only  Level-2 only adjacencies are formed
  <cr>

R3(config-subif)#isis circuit-type

 

lunes, 22 de septiembre de 2014

ISIS IPV6 Cisco IOS-XR



En el anterior artículo configuramos ISIS para IPv6 sobre routers o switches con IOS, en este artículo se abordará la configuración de ISIS para IPv6 con IOS-XR.
Configurar ISIS para IPv6 es bastante parecido a hacerlo en IPv4, simplemente se necesitan dos pasos.
1 – Habilitar el address family de IPv6 dentro del proceso de ISIS.
2 – Habilitar el address family de IPv6 dentro de la interfaz, y a su vez esta dentro de ISIS.
Usando el mismo ejemplo que hemos usado para IPv6 en IOS tenemos la siguiente topología:



Y la configuración de R1:



RP/0/0/CPU0:R1#show run        
Fri Sep 12 20:03:51.738 SGT
Building configuration...
!! IOS XR Configuration 0.0.0
!
hostname R1
logging console debugging
!
interface GigabitEthernet0/0/0/2
 mtu 1514
 ipv4 address 192.168.15.1 255.255.255.0
 ipv6 address 5000:192:168:15::1/64
!router isis 1
 net 49.0001.0000.0000.1111.00
 address-family ipv4 unicast
  metric-style wide
 !
 address-family ipv6 unicast
  single-topology
 !
 interface GigabitEthernet0/0/0/2
  address-family ipv4 unicast
  !
  address-family ipv6 unicast
end

Si has estado atento a la config te habrás percatado del detallito de single-topology, pero eso es algo que abordaremos en el próximo artículo.

Si miramos la tabla de rutas podemos ver que tenemos la red que hay entre R6 y R5.



RP/0/0/CPU0:R1#show route ipv6
Fri Sep 12 20:10:08.016 SGT

Codes: C - connected, S - static, R - RIP, 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 - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
       U - per-user static route, o - ODR, L - local, G  - DAGR
       A - access/subscriber, (!) - FRR Backup path

Gateway of last resort is not set

C    5000:192:168:15::/64 is directly connected,
      00:12:37, GigabitEthernet0/0/0/2
L    5000:192:168:15::1/128 is directly connected,
      00:12:37, GigabitEthernet0/0/0/2
i L2 5000:192:168:56::/64
      [115/20] via fe80::a8bb:ccff:fe00:6900, 00:06:51, GigabitEthernet0/0/0/2

Si le hacemos un ping podemos ver que R6 es completamente accesible.


RP/0/0/CPU0:R1#pin 5000:192:168:56::6
Fri Sep 12 20:11:04.539 SGT
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5000:192:168:56::6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/15/42 ms

Al igual que en el artículo anterior, para comprobar si las adyacencias de ISIS también so a nivel de IPv6 lo podemos hacer con el show isis neighbor detail.

RP/0/0/CPU0:R1#show isis neighbors detail
Fri Sep 12 20:09:50.492 SGT

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R5             Gi0/0/0/2        aabb.cc00.6900 Up    8        L2   Capable
  Area Address(es): 49.0005
  IPv4 Address(es): 192.168.15.5*
  IPv6 Address(es): fe80::a8bb:ccff:fe00:6900*
  Topologies: 'IPv4 Unicast' 'IPv6 Unicast'
  Uptime: 00:06:37

Total neighbor count: 1


miércoles, 17 de septiembre de 2014

ISIS IPV6

Una de las cosas particulares que tiene ISIS es como trata cuando tienes configurado IPV4 e IPV6 en el mismo router, e incluso las mismas interfaces.

Con OSPF por poner un ejemplo claro hay que crear dos procesos diferenciados, un(o varios)  número de proceso OSPF para IPV4, y lo mismo para IPV6, de modo que cuando haces un clear ospf proc puedes hacer un clear de un único stack.

ISIS en este caso ofrece algunas opciones diferentes, como es el hecho de que integra ambos stack, el stack de IPV6 y el de IPV4 dentro del mismo proceso corriendo en el router.

A continuación se detalla cómo se configura ISIS para IPV6 en IOS.

Tomando como ejemplo el ejercicio anterior vamos a configurar direccionamiento de IPV6 en los tres routers y configuramos ISIS para IPV6 a parte de para IPV4 que ya teníamos antes.



R5

ipv6 unicast-routing
ipv6 cef
!
!
interface Ethernet0/0.15
 encapsulation dot1Q 15
 ip address 192.168.15.5 255.255.255.0
 ip router isis
 ipv6 address 5000:192:168:15::5/64
 ipv6 router isis
!
interface Ethernet0/0.56
 encapsulation dot1Q 56
 ip address 192.168.56.5 255.255.255.0
 ip router isis
 ipv6 address 5000:192:168:56::5/64
 ipv6 router isis
!

!
router isis
 net 49.0005.0000.0000.5555.00
 metric-style wide
!

R6

ipv6 unicast-routing
ipv6 cef
!
interface Ethernet0/0.56
 encapsulation dot1Q 56
 ip address 192.168.56.6 255.255.255.0
 ip router isis
 ipv6 address 5000:192:168:56::6/64
 ipv6 router isis
!

!
router isis
 net 49.0006.0000.0000.6666.00
 metric-style wide
!
Como se puede ver, en realidad solo hay que habilitar el routing para IPV6 a nivel global, y luego en las interfaces usar ipv6 router isis en lugar de ip router isis.

Vamos a comprobar si estamos aprendiendo la red entre R5 y R1.

R6#show ipv route
IPv6 Routing Table - default - 4 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, I1 - ISIS L1, I2 - ISIS L2
       IA - ISIS interarea, IS - ISIS summary, D - EIGRP, EX - EIGRP external
       ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
       l - LISP
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
I2  5000:192:168:15::/64 [115/20]
     via FE80::A8BB:CCFF:FE00:6900, Ethernet0/0.56
C   5000:192:168:56::/64 [0/0]
     via Ethernet0/0.56, directly connected
L   5000:192:168:56::6/128 [0/0]
     via Ethernet0/0.56, receive
L   FF00::/8 [0/0]
     via Null0, receive
Ahora vamos a hacer un ping  a R1, para ver si funciona correctamente..

R6#pin 5000:192:168:15::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5000:192:168:15::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/10/34 ms
¿Y como sabemos si estamos estableciendo adyacencia también a nivel de IPV6 y no solo de IPV4?
Pues con un show isis nei detail, y debería aparecer la ip de ipv6 del vecino.

R6#show isis neighbors  detail
System Id      Type Interface   IP Address      State Holdtime Circuit Id
R5             L2   Et0/0.56    192.168.56.5    UP    25       R6.01             
  Area Address(es): 49.0005
  SNPA: aabb.cc00.6900     
  IPv6 Address(es): FE80::A8BB:CCFF:FE00:6900
  State Changed: 00:29:04
  LAN Priority: 64
  Format: Phase V
  Remote TID: 0
  Local TID:  0
  Interface name: Ethernet0/0.56



lunes, 15 de septiembre de 2014

ISIS IOSXR

IOS-XR es un sistema operativo que llevan los equipos más potentes de Cisco enfocados al entorno Service Provider(CRS). En este artículo vamos a configurar IS-IS en un  equipo con IOS-XR.

A la hora de configurar un protocolo de routing en IOS-XR, independientemente de cual sea, una ventaja que tenemos es que la configuración queda más agrupada, y por tanto más fácil de leer.

En este caso vamos a configurar isis en un CRS(R1), que está conectado contra R5, y que a su vez conecta contra R6.


RP/0/0/CPU0:R1(config)#router isis 1
RP/0/0/CPU0:R1(config-isis)# net 49.0001.0000.0000.1111.00
P/0/0/CPU0:R1(config-isis)# address-family ipv4 unicast
RP/0/0/CPU0:R1(config-isis-af)#  metric-style wide
RP/0/0/CPU0:R1(config-isis)# interface GigabitEthernet0/0/0/2
RP/0/0/CPU0:R1(config-isis-if)#  address-family ipv4 unicast
RP/0/0/CPU0:R1(config-isis-if-af)#exit
RP/0/0/CPU0:R1(config-isis-if)#commit

Como se puede ver, lo que hacemos es configurar primero el protocolo de routing isis, con su NET , metric-style wide si corresponde, y luego lo que hacemos es decir que interfaces formarán parte de ISIS, y habilitar el address family de ipv4 dentro.

Por último tenemos el comando commit, que hasta que no lo introduzcamos no hará absolutamente nada, de este modo se evitan meteduras de pata al teclear, y cuando se aplica la configuración se aplica toda de golpe.

La configuración de este equipo ya configurado tiene este aspecto, que como se puede ver, es muy fácil de leer.

RP/0/0/CPU0:R1(config-isis-af)#do show run
Fri Sep 12 19:36:52.578 SGT
Building configuration...
!! IOS XR Configuration 0.0.0
!! Last configuration change at Fri Sep 12 19:32:04 2014 by UNKNOWN
hostname R1
logging console debugging
interface GigabitEthernet0/0/0/2
 mtu 1514
 ipv4 address 192.168.15.1 255.255.255.0
!
router isis 1
 net 49.0001.0000.0000.1111.00
 address-family ipv4 unicast
  metric-style wide
 !
 interface GigabitEthernet0/0/0/2
  address-family ipv4 unicast
end

Para comprobar si tenemos un vecino de ISIS tenemos el comando show isis neighbors.

RP/0/0/CPU0:R1#show isis neighbors Fri Sep 12 19:25:19.146 SGT

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R5             Gi0/0/0/2        aabb.cc00.6900 Up    8        L2   Capable

Total neighbor count: 1

Para ver la tabla de rutas, en lugar de show ip route, usaremos show route, o show route ipv4, en IOS-XR se han renombrado los comandos que incluían la palabra ip, y se ha sustituído por ipv4 o ipv6. Por tanto el show ip int brief se sustituye por show ipv4 int brief




RP/0/0/CPU0:R1#show route         
Fri Sep 12 19:25:24.854 SGT

Codes: C - connected, S - static, R - RIP, 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 - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
       U - per-user static route, o - ODR, L - local, G  - DAGR
       A - access/subscriber, (!) - FRR Backup path

Gateway of last resort is not set

C    192.168.15.0/24 is directly connected, 00:03:32, GigabitEthernet0/0/0/2
L    192.168.15.1/32 is directly connected, 00:03:32, GigabitEthernet0/0/0/2
i L2 192.168.56.0/24 [115/20] via 192.168.15.5, 00:00:43, GigabitEthernet0/0/0/2

Y lanzando el típico ping vemos que llegamos a nuestro objetivo.

RP/0/0/CPU0:R1#ping 192.168.56.6  
Fri Sep 12 19:25:28.324 SGT
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.56.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/3/3 ms