miércoles, 11 de febrero de 2009

IS-IS Integrado: Conceptos básicos y configuración.

Desde que me lo nombraron me llamó la atención:


Era muy raro, los grandes ISP lo usan y a pesar de eso no se da en el CCNA... algo extraño tenía que tener...

La cuestión es que ahora que lo estoy estudiando en profundidad entiendo por qué no se encuentra en el plan de estudio del CCNA: a pesar de que su configuración es bastante sencilla, hay un montón de cabos sueltos dando vueltas y como no se encapsula en IP sino directamente en la capa de enlace de datos, tiene muchas cosas raras que podrían desorientar hasta al más aplicado estudiante de CCNA.

El protocolo se basa en el algoritmo de Dijkstra y es un protocolo de estado enlace tal cual como OSPF. De hecho, fueron lanzados en la misma época y dicen que ambos grupos de desarrollos se robaban ideas del otro al momento de crearlos.

El nombre significa Sistema Intermedio - Sistema Intermedio y viene dado que (como se ve en la teoría de CCNA1) los equipos de usuario fuinal (PC, impresoras, servers, etc) son denominados Sistema Inicial o Sistema Final (End Sistem) porque ahí se origina o se destina el tráfico que pasa por los Sistemas Intermedios (Intermediate Systems) que son los routers.

Por esto podemos intuír que hay un proceso entre ES - IS (Host a Router) y un IS-IS (Router a Router):




La definición más clara que describe a IS-IS (para los que saben de OSPF) es
IS-IS es como usar OSPF multiárea donde todas las áreas que no son backbone son Totalmente Stub.

Este protocolo usa el Connection Less Network Service (CLNS) que mal y pronto vendría a ser como la contra del TCP/IP que desarrolló OSI y nunca llegó a prevalecer ante el archifamoso TCP/IP.

Ahora, el gobierno de EEUU dispuso que cada sistema operado por ellos debería ser capaz de usar OSI, lo que produjo que IS-IS se prepare para pasar también rutas de IP (de ahí viene el nombre IS-IS integrado) y por eso es que aún este protocolo sigue vivo.

¿Cómo es que se preparó para pasar prefijos IP?


Muy facil: gracias a los TLV que son los encabezados de las PDU que transportan los datos de este protocolo. La sigla TLV significa TipoLargoValor (TypeLengthValue en inglés) y viene dado en que no existen campos fijos en el header salvo esos 3,


Este formato es muy versátil, ya que por ejemplo si queremos transmitir información de autenticación, llenamos la PDU con TIPO=10, el LARGO apropiado y el VALOR que hay que enviar; si queremos mandar información de IP ponemos TIPO=128, y así sucesivamente.

Gracias a esto, cuando sale un protocolo nuevo que queremos integrar en IS-IS, sólo hace falta crear un TIPO nuevo de TLV. En el caso de IPv6 IS-IS se adaptó muy rápido mientras que OSPF tuvo que sacar una versión totalmente nueva (la 3).

¿Cómo calcula la métrica este IGP?

Según la documentación, este protocolo analiza 4 variables para calcular la métrica:



  • Variable Default (asignada por el administrador).


  • Variable  Delay (Retraso).


  • Variable Expense (Costo monetario del enlace).


  • Variable Error (Tasa de error del enlace).


Ahora, la verdad de la milanesa es que Cisco sólo soporta la variable Default. O sea, nosotros pondremos arbitrariamente el costo de cada enlace.

No importa qué cálculo hagamos para especificarla, como por ejemplo:



  • Ancho de banda teórico del enlace/Ancho de banda real.


  • Latencia máxima.


  • Largo del patchcord.


  • Número al azar que se nos ocurrió a la mañana.


En cualquier caso vas a tener que poner un costo a la interfase del router que esté usándose en IS-IS. En caso de no ponerlo, el costo será de 10 por defecto.

Ahora, vas a tener que conocer el sistema de Direccionamiento CLNS, porque la network que vas a insertar dentro del modo de configuración de enrutamiento va a ser utilizando el esquema antes mencionado (y por lo tanto no va a ser el (w.x.y.z) tradicional de IP.

De nuevo y según la documentación, la dirección única de cada router va a tener la forma:




Vamos a ver cada parte de la dirección que está en el ejemplo:

Siempre usen algo como:

49.%numero hexa de 1 byte%.%direccion mac completada con 0 a la izq.%.00

En donde:
  • 49 siempre va al principio porque significa numeración privada.
  • %numero hexa de 1 byte% es el número de Area (tal cual como el area 15 de OSPF).
  • %direccion mac completada con ceros a la izquierda% es el ID del router dentro de esa Area.
  • 00 va siempre al final porque significa que es un router.

Todos los routers que pertenezcan al mismo Level1 (Area) deben tener el mismo Area ID. A su vez, todos los routers deben tener IDs de router distintos (obviamente).

¿Qué es Level1 y Level2?


Fácilmente lo podemos entender teniendo en cuenta que toooodos los routers que estén en la misma área van a ser Level1 (tal cual como los routers internos de OSPF que comparten la misma área que no sea la backbone).

Level2 son los routers de backbone, (El área 0 de OSPF) en donde se intercambia el tráfico destinado a distintos Level1.

Level1-2 son los símiles de los ABR de OSPF, o sea es un equipo que tiene al menos una interface en un Level2 y otra en un Level1.

Veamos un ejemplo más claro:




Lo interesante es que todos los Level1 reciben solamente una ruta por defecto desde el Level1/2 más cercano, y conocen las rutas que les pasan los Level1 adyacentes. Esto hace tablas de enrutamiento muy chicas.

A su vez, en cada L1/L2 podemos configurar sumarización hacia el backbone para agregar todas las rutas internas L1 al que ese equipo pertenezca.

Ahora vamos a ver las configuraciones para poner a andar la siguiente red:





Estos son los pasos a seguir:
  1. Determinar las áreas a las que pertenece cada equipo y las interfaces donde IS-IS va a ser habilitado.
  2. Activar el proceso de IS-IS mediante el comando router isis.
  3. Configurar la Net de cada equipo mediante el comando net.
  4. Activar ISIS en las interfaces correspondientes con el comando ip router isis. Debe notarse que deben habilitarse las interfaces de tránsito así como también las que estén conectadas a redes STUB.

Bien, ahora que nos ponemos a configurar:

Neuquen:


interface FastEthernet0/0
 ip address 192.168.10.1 255.255.255.0
 ip router isis

!
interface GigabitEthernet1/0
 description Enlace a Rosario
 ip address 172.16.1.2 255.255.255.0
 ip router isis
!
router isis
 net 49.000a.ca07.0b1c.001c.00
 log-adjacency-changes
!

Cordoba:


interface GigabitEthernet1/0
 description Enlace a Neuquen
 ip address 172.16.1.1 255.255.255.252
 ip router isis
 isis circuit-type level-1
!
interface GigabitEthernet2/0
 description Enlace a Rosario
 ip address 172.16.1.6 255.255.255.252
 ip router isis
isis circuit-type level-2-only
!
router isis
 net 49.000a.ca0a.0b1c.001c.00
 log-adjacency-changes

 summary-address 192.168.0.0 255.255.240.0
!

Rosario:


interface FastEthernet0/0
 ip address 192.168.16.1 255.255.240.0
 ip router isis

!
interface GigabitEthernet1/0
 description Enlace a Cordoba
 ip address 172.16.1.5 255.255.255.252
 ip router isis
!
interface GigabitEthernet2/0
 description Enlace a Pinamar
 ip address 172.16.1.9 255.255.255.252
 ip router isis
!
router isis
 net 49.000b.ca09.0d78.001c.00
 is-type level-2-only
 log-adjacency-changes
 summary-address 192.168.16.0 255.255.240.0
!

Pinamar:


interface GigabitEthernet1/0
 description Enlace a Rosario
 ip address 172.16.1.10 255.255.255.252
 ip router isis
 isis circuit-type level-2-only
!
interface GigabitEthernet2/0
 description Enlace a Carilo
 ip address 172.16.1.13 255.255.255.252
 ip router isis
 isis circuit-type level-1
!
router isis
 net 49.000c.ca0b.0d78.001c.00
 log-adjacency-changes
 summary-address 192.168.32.0 255.255.240.0
! 

Carilo:


 interface FastEthernet0/0
 ip address 192.168.32.1 255.255.255.240
 ip router isis

!
interface GigabitEthernet1/0
 description Enlace a Pinamar
 ip address 172.16.1.14 255.255.255.252
 ip router isis
!
router isis
 net 49.000c.ca08.0eac.001c.00
 is-type level-1
 log-adjacency-changes
!

Podemos ver que en Rosario pusimos el comando is-type level-2-only para no tener que poner el comando de level-2 en cada una de las interfaces. También podemos ver que en Rosario, Cordoba y Pinamar sumarizamos con el comando summary-address.

Ahora veamos las tablas de enrutamiento de cada equipo:

Neuquen:


Neuquen#show ip route
Codes: 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
       i - IS-IS, su - IS-IS summary, 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 172.16.1.1 to network 0.0.0.0

C    192.168.10.0/24 is directly connected, FastEthernet0/0
     172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
i L1    172.16.1.0/30 [115/20] via 172.16.1.1, GigabitEthernet1/0
C       172.16.1.0/24 is directly connected, GigabitEthernet1/0
i*L1 0.0.0.0/0 [115/10] via 172.16.1.1, GigabitEthernet1/0

Cordoba:


Cordoba#show ip route
Codes: 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
       i - IS-IS, su - IS-IS summary, 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

i L1 192.168.10.0/24 [115/20] via 172.16.1.2, GigabitEthernet1/0
     172.16.0.0/16 is variably subnetted, 5 subnets, 2 masks
i L2    172.16.1.12/30 [115/30] via 172.16.1.5, GigabitEthernet2/0
i L2    172.16.1.8/30 [115/20] via 172.16.1.5, GigabitEthernet2/0
C       172.16.1.4/30 is directly connected, GigabitEthernet2/0
C       172.16.1.0/30 is directly connected, GigabitEthernet1/0
i L1    172.16.1.0/24 [115/20] via 172.16.1.2, GigabitEthernet1/0
i su 192.168.0.0/20 [115/20] via 0.0.0.0, Null0
i L2 192.168.16.0/20 [115/20] via 172.16.1.5, GigabitEthernet2/0
i L2 192.168.32.0/20 [115/40] via 172.16.1.5, GigabitEthernet2/0

Rosario:


Rosario#show ip route
Codes: 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
       i - IS-IS, su - IS-IS summary, 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

     172.16.0.0/16 is variably subnetted, 5 subnets, 2 masks
i L2    172.16.1.12/30 [115/20] via 172.16.1.10, GigabitEthernet2/0
C       172.16.1.8/30 is directly connected, GigabitEthernet2/0
C       172.16.1.4/30 is directly connected, GigabitEthernet1/0
i L2    172.16.1.0/30 [115/20] via 172.16.1.6, GigabitEthernet1/0
i L2    172.16.1.0/24 [115/30] via 172.16.1.6, GigabitEthernet1/0
i L2 192.168.0.0/20 [115/30] via 172.16.1.6, GigabitEthernet1/0
C    192.168.16.0/20 is directly connected, FastEthernet0/0
i L2 192.168.32.0/20 [115/30] via 172.16.1.10, GigabitEthernet2/0

Pinamar:


 Pinamar#show ip route
Codes: 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
       i - IS-IS, su - IS-IS summary, 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

     172.16.0.0/16 is variably subnetted, 5 subnets, 2 masks
C       172.16.1.12/30 is directly connected, GigabitEthernet2/0
C       172.16.1.8/30 is directly connected, GigabitEthernet1/0
i L2    172.16.1.4/30 [115/20] via 172.16.1.9, GigabitEthernet1/0
i L2    172.16.1.0/30 [115/30] via 172.16.1.9, GigabitEthernet1/0
i L2    172.16.1.0/24 [115/40] via 172.16.1.9, GigabitEthernet1/0
     192.168.32.0/28 is subnetted, 1 subnets
i L1    192.168.32.0 [115/20] via 172.16.1.14, GigabitEthernet2/0
i L2 192.168.0.0/20 [115/40] via 172.16.1.9, GigabitEthernet1/0
i L2 192.168.16.0/20 [115/20] via 172.16.1.9, GigabitEthernet1/0
i su 192.168.32.0/20 [115/20] via 0.0.0.0, Null0

Carilo:


 Carilo#show ip route
Codes: 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
       i - IS-IS, su - IS-IS summary, 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 172.16.1.13 to network 0.0.0.0

     172.16.0.0/30 is subnetted, 1 subnets
C       172.16.1.12 is directly connected, GigabitEthernet1/0
     192.168.32.0/28 is subnetted, 1 subnets
C       192.168.32.0 is directly connected, FastEthernet0/0
i*L1 0.0.0.0/0 [115/10] via 172.16.1.13, GigabitEthernet1/0

Vemos como aparecen las rutas por defecto en los equipos Level1 y las sumarizadas en los Level2. Todo funciona correctamente y en muy pocos pasos.

Si tuviésemos que configurar esto mismo en OSPF seguramente nos llevaría unos cuantos comandos de más.

Piensen que sin ahondar en la teoría básica este hubiese sido un post demasiado corto, ya que los comandos para resolver el problema que presentamos son muy breves y concisos.

Espero que haya servido y empiecen a usar esta maravilla de protocolo.

7 comentarios:

fede dijo...

Hola Ariel,
tus claras explicaciones me ayudan a preparar mi CCNA :D
RIPv3 Y OSPFv3 se crearon exclusivamente para IPv6, verdad?? no crees que la evolucion(RIP y OSPF) de estos dos protocolos es similar??

Tengo una duda sobre OSPF que me gustaria me aclarases, es sobre hacer que un router determinado sea el DR:
he leido que las IP asignadas a las interfaces loopback definen el DR/BDR, pero no entiendo por que. Solo interviene la IP de la interfaz, independientemente del tipo de interfaz(lo,Fa,S),¿me lo puedes aclarar?

Gracias de nuavo Ariel:D

Ariel Weher dijo...

Formalmente RIPv3 no existe, sino que se llama RIPng -Nueva Generación-. Y está definido en el RFC2080 que puedes ver aquí.
Tanto RIPng como OSPFv3 tuvieron que volver a nacer como un protocolo nuevo para transportar prefijos de IPv6, aunque conservan todas las características que los diferenciaban en sus versiones anteriores.

En cuanto a tu pregunta de OSPF, en breve voy a publicar un artículo que aclare esto.

Gracias por la sugerencia y por seguir leyendo el blog.

Saludos

victor dijo...

Hola Ariel,

Muchas gracias por poner esta info en la Web, está muy buena... Quisiera saber si posees alguna direccion o algo en el cual obtener la teoria y conceptos de este Protocolo, tengo entendido que esa es la parte mas complicada de ISIS pero es necesario tambien saberlo ya que preparo una prueba de CCNP y entra configuración y teoria.

Muchas Gracias por tu ayuda.

Ariel Weher dijo...

Me imagino que estás por rendir el BSCI y como nos pasó a todos en algún momento, cuando debemos estudiar IS-IS nos encontramos en "otro mundo". Existe otro esquema de direccionamiento, otras reglas de asignación de direcciones y sobre todo otra terminología para referirse a las mismas cosas que tratamos en OSPF. Para dejarte un poco tranquilo, los grupos que crearon IS-IS y OSPF trabajaron a la par y dicen por ahí que unos les robaban las ideas a los otros, por lo que te vas a encontrar con muchas similitudes a la hora de estudiar IS-IS con respecto de lo que es OSPF multiárea.

Al momento de rendir mi BSCI me basé fundamentalmente en el libro CCNP BCSI Official Exam Certification Guide (4a edición) y en algunos tutoriales de Chrys Briant que encontré con google.

Lo importante que tenés que saber es que no te sirve leer de materiales que no sean de Cisco. Esto se debe a que el protocolo tiene muchas cosas que Cisco no implementa en el IOS, y por ende no te van a tomar en el exámen.
Obviamente eso no quita que no aprendas bien como funciona este bonito protocolo en entornos No-Cisco más adelante.

Saludos!

Jose Luis dijo...

Hola Ariel

Muchas gracias por la explicación, la verdad me quedo mas claro este protocolo, porque como lo comentaban antes estoy estudiando para el BSCI y en este capitulo me encontre con "otro mundo", le queria preguntar que tan importante es este tema en el examen, algo asi como el numero de preguntas y si existen preguntas de simulación, con el mismo. gracias y saludos.

Ariel Weher dijo...

Habiendo pasado más de un año desde que rendí el BSCI la verdad no te se decir cuántas preguntas hay sobre IS-IS. Lo claro es que está en el temario y teniendo en cuenta que uno no tiene contacto habitual con este protocolo, se vuelve muy necesario llegar al exámen con mucha práctica.

Saludos

kis dijo...

Hola, yo estoy configurando en un kernel nuevo: NETKIT.
con Zebra.
No puedo hacer que mis routers hagan ping.

Estan en la misma area, los routers se ven, pero no puedo utilizar el comando; sh ip route.

Me sale un error: closing connection to zebra because of an I/O.

ayundenme por fis.

mi correo: lisandra_82@hotmail.com

Publicar un comentario