IS-IS en MikroTik RouterOS v7

¿Qué es IS-IS?

El protocolo de enrutamiento dinámico IS-IS, que significa Intermediate System to Intermediate System, es un protocolo de enrutamiento utilizado en redes de computadoras. IS-IS se define en el estándar internacional ISO 10589, que es parte de la familia de protocolos de red OSI (Open Systems Interconnection).

A continuación, se proporciona una explicación detallada del protocolo IS-IS:

Estructura del Protocolo IS-IS:

  1. Jerarquía de Nodos:
    • Nodos Intermedios (Intermediate Systems – IS): Estos son los dispositivos de red, como routers, que participan en el enrutamiento.
    • Nodos de Extremo (End Systems – ES): Son los dispositivos finales que no participan directamente en el enrutamiento, como estaciones de trabajo.
  2. Áreas y Dominios:
    • Áreas: La red se divide en áreas lógicas para facilitar la administración y reducir la complejidad. Cada área tiene un identificador único.
    • Dominios: Conjunto de áreas que comparten información. Un dominio IS-IS puede tener una o más áreas.
  3. Protocolo de Enrutamiento:
    • IS-IS utiliza un algoritmo de estado de enlace (link-state) para construir y mantener la base de datos de enrutamiento. Cada nodo tiene una vista completa de la topología de red.
  4. Adyacencias:
    • Los nodos IS-IS establecen relaciones de adyacencia con sus vecinos para intercambiar información de enrutamiento. Esto se hace a través de Protocolo de Estado de Enlace de Nivel 1 (L1) y Protocolo de Estado de Enlace de Nivel 2 (L2), que son dos niveles jerárquicos en IS-IS.
  5. Enrutamiento Multinivel:
    • IS-IS admite enrutamiento multinivel, lo que significa que puede haber áreas de nivel 1 que se conectan a áreas de nivel 2.
  6. Tipos de PDUs (Protocol Data Units):
    • IS-IS utiliza Protocol Data Units para el intercambio de información. Los tipos principales son Hello, Database Description, Link State Request, Link State Update y Link State Acknowledgment.

Referencias RFC:

Aunque IS-IS fue desarrollado originalmente por la ISO, su especificación técnica se ha documentado en varios RFCs de la IETF (Internet Engineering Task Force). La referencia principal es:

RFC 1142: «OSI IS-IS Intra-domain Routing Protocol».

Además, existen otros RFCs que tratan aspectos específicos o extensiones de IS-IS:

RFC 1195: «Use of OSI IS-IS for routing in TCP/IP and dual environments.»

RFC 2763: «Dynamic Hostname Exchange Mechanism for IS-IS.»

RFC 2966: «Domain-wide Prefix Distribution with Two-Level IS-IS.»

RFC 3567: «Intermediate System to Intermediate System (IS-IS) Cryptographic Authentication.»

RFC 5305: «IS-IS Extensions for Traffic Engineering.»

RFC 5308: «Routing IPv6 with IS-IS.»

RFC 6232: «Purges for the IS-IS Routing Protocol.»

RFC 6549: «OSI-IGP Routing Protocol (IS-IS) Extensions for Traffic Engineering.»

RFC 7176: «Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS.»

En resumen, IS-IS es un protocolo de enrutamiento dinámico que opera en el nivel 2 del modelo OSI y es utilizado en redes de área extensa (WAN) para facilitar el intercambio eficiente de información de enrutamiento entre nodos intermedios.

Descripción

MikroTik desde la version de RouterOS 7.13beta1 ha implementado el protocolo IS-IS en su stack de protocolos. Cabe recordar que es una actualización reciente y que no ha sido testada lo suficiente por lo que no es recomendable poner en producción aún.

Descripción del Laboratorio

En este laboratorio, prepararemos un escenario donde configuraremos 3 routers que funcionen con el protocolo IS-IS

Objetivos de la práctica

  • Conocer el funcionamiento de IS-IS
  • Establecer una conexión entre 3 enrutadores.
  • Verificar la configuración realizada.

Configuración paso a paso

1. Actualizar los equipos a la versión adecuada

Necesitamos la versión de RouterOS v7.13beta1 o superior. Instalamos en todos nuestros routers la última actualización eligiendo la rama testing. Nos cercioramos que nuestros equipos tienen conexión a internet y son capaces de resolver DNS.

[admin@RouterOS] > /system/package/update set channel=testing
[admin@RouterOS] > /system/package/check-for-updates
[admin@RouterOS] > /system/package/install

2. Conexión entre routers

Ahora configuraremos las interfaces, tanto ethernet como loopback en cada uno de los routers. Para que nos aparezcan las interfaces de loopback, utilizamos la técnica de crear un bridge vacío.

[admin@R1] > /interface/bridge/add name=lo0
[admin@R1] > /ip/address/add address=10.0.0.1 interface=lo0
[admin@R1] > /ip/address/add address=10.0.12.1/24 interface=ether1

[admin@R2] > /interface/bridge/add name=lo0
[admin@R2] > /ip/address/add address=10.0.0.2 interface=lo0
[admin@R2] > /ip/address/add address=10.0.12.2/24 interface=ether1
[admin@R2] > /ip/address/add address=192.168.32.1/24 interface=ether5

[admin@R3] > /interface/bridge/add name=lo0
[admin@R3] > /ip/address/add address=10.0.0.3 interface=lo0
[admin@R3] > /ip/address/add address=192.168.32.2/24 interface=ether1

3. Configuración IS-IS

A continuación procederemos a configurar IS-IS para que se produzca la adyacencia entre ellos.

[admin@R1] > /routing/isis/instance add afi=ip areas=49.0001 name=1 system-id=0000.0000.0001
[admin@R1] > /routing/isis/interface-template add instance=1 interfaces=ether1,lo0 levels=l1

[admin@R2] > /routing/isis/instance add afi=ip areas=49.0001 name=1 system-id=0000.0000.0002
[admin@R2] > /routing/isis/interface-template add instance=1 interfaces=ether1,ether5,lo0 levels=l1,l2

[admin@R3] > /routing/isis/instance add afi=ip areas=49.0001 name=1 system-id=0000.0000.0003
[admin@R3] > /routing/isis/interface-template add instance=1 interfaces=ether1,lo0 levels=l2

3. Comprobación de la vecindad

Comprobamos la vecindad en R2

[admin@R2] > /routing/isis/neighbor/print
0 instance=1 interface=ether1 level-type=l1 snpa=48:A9:8A:48:38:8B
  srcid="0000.0000.0001" state=up

1 instance=1 interface=ether5 level-type=l2 snpa=4C:5E:0C:14:4C:68
  srcid="0000.0000.0003" state=up

4. Anuncio y aprendizaje de rutas

Ahora vamos a añadir unas interfaces, que tendrán configuradas sus respectivas IPs, a las interface-templates del IS-IS para comprobar que funcionan los anuncios y aprendizajes de rutas. Utilizamos la técnica del bridge vacío para crear interfaces.

[admin@R1] > /interface/bridge/add name=lo1
[admin@R1] > /ip/address/add address=192.168.100.1/24 interface=lo1
[admin@R1] > /routing/isis/interface-template add instance=1 interfaces=lo1 levels=l1

[admin@R2] > /interface/bridge/add name=lo1
[admin@R2] > /ip/address/add address=192.168.12.1/24 interface=lo1
[admin@R1] > /routing/isis/interface-template add instance=1 interfaces=lo1 levels=l1,l2

[admin@R3] > /interface/bridge/add name=lo1
[admin@R3] > /interface/bridge/add name=lo2
[admin@R3] > /ip/address/add address=192.168.200.1/24 interface=lo1
[admin@R3] > /ip/address/add address=1.2.3.1/24 interface=lo2
[admin@R3] > /ip/address/add address=1.2.4.1/24 interface=lo2
[admin@R3] > /ip/address/add address=1.2.5.1/24 interface=lo2
[admin@R3] > /ip/address/add address=1.2.6.1/24 interface=lo2
[admin@R3] > /routing/isis/interface-template add instance=1 interfaces=lo1,lo2 levels=l2

5. Comprobación de las tablas de rutas

A continuación procederemos a comprobar las tablas de rutas de R2

[admin@R2] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, i - IS-IS, d - DHCP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
    DST-ADDRESS      GATEWAY             DISTANCE
DAd 0.0.0.0/0        172.16.77.1         1 
DAi 1.2.3.0/24       192.168.32.2%ether5 115
DAi 1.2.4.0/24       192.168.32.2%ether5 115 
DAi 1.2.5.0/24       192.168.32.2%ether5 115
DAi 1.2.6.0/24       192.168.32.2%ether5 115
DAi 10.0.0.1/32      10.0.12.1%ether1    115 
DAc 10.0.0.2/32      lo0                 0
D i 10.0.12.0/24     10.0.12.1%ether1    115 
DAc 10.0.12.0/24     ether1              0 
DAc 172.16.77.0/24   wlan1               0 
DAc 192.168.12.0/24  lo1                 0 
D i 192.168.32.0/24  192.168.32.2%ether5 115 
DAc 192.168.32.0/24  ether5              0 
DAi 192.168.100.0/24 10.0.12.1%ether1    115 
DAi 192.168.200.0/24 192.168.32.2%ether5 115 

6. Comprobación de los Link-State PDU

Una vez configurado y funcionando, comprobamos las bases de datos creadas con los LSP en R2

[admin@R2] /routing/isis/lsp/print

 

Este laboratorio es una prueba de concepto acerca de este protocolo y enseñar una funcionalidad adicional introducida por MikroTik en esta nueva release. Simplemente se ha hecho para comprobar la facilidad de configuración y el cumplimiento de los estándares. En caso de querer realizar estas configuraciones en producción, aún está demasiado reciente y no es recomendable su implementación.

En el Máster en Arquitectura de Redes de Operadores de Telecomunicaciones, y en las certificaciones oficiales de MikroTik impartidas en loopback0 (MTCRE), explicamos en profundidad los diferentes tipos de configuraciones de enrutamiento dinámico y a partir de ahora explicaremos IS-IS en profundidad.