Distribución de rutas entre dispositivos basados en RouterOS usando OSPF

Leinier Cruz Salfran
IPv4, IPv6, OSPF, RouterOS, Tutoriales
23-jul-2020

Tabla de contenidos

Introducción

Abrir el Camino más Corto Primero, o de sus siglas en inglés OSPF (Open Shortest Path First), es un protocolo de red que se encarga de distribuir las rutas de red para el enrutamiento jerárquico y está en la categoría de Protocolo de Pasarela Interior, o de sus siglas en inglés, IGP (Interior Gateway Protocol). OSPF fue diseñado para operar en sistemas autónomos, tales como las redes locales, usa el algoritmo Dijkstra, también conocido como el algoritmo del camino más corto primero, para calcular la ruta más corta entre dos nodos. Este protocolo de red es, probablemente, el más usado para distribuir rutas internas en grandes redes y es, además, el sucesor natural de RIP. OSPF ha evolucionado al nivel de soportar Ipv6 y Multidifusión en su versión 3 (OSPFv3). RouterOS implementa las versiones 1 y 2 en la sección OSPF y la versión 3 en la sección OSPFv3.

Este tutorial trata de como configurar, de forma básica, los enrutadarores basados en RouterOS para distribuir las rutas, en sus versiones 4 y 6, de una red compuesta por varias subredes, haciendo posible que cada miembro de cada subred pueda comunicarse directamente con los miembros de las otras subredes.

Diagrama de red

Para la exposición de este tutorial se utilizará un laboratorio compuesto por 2 dispositivos RouterOS conectados entre si, distribuyendo las rutas internas a través de OSPF, y un miembro en cada una de las subredes, todos, con direcciones IPv4 e IPv6 según se muestra en el siguiente diagrama:

RouterOS #1

IPv4

/ip address
add interface=ether1 address=192.168.1.1/24
add interface=ether2 address=192.168.10.1/30
/routing ospf instance
set [ find default=yes ] distribute-default=if-installed-as-type-1 \
    redistribute-connected=as-type-2 redistribute-static=as-type-2
/routing ospf network
add area=backbone

IPv6

/ipv6 address
add interface=ether1 address=fd01::1/64 advertise=no
add interface=ether2 address=fdff::1/64 advertise=no
/routing ospf-v3 instance
set [ find default=yes ] distribute-default=if-installed-as-type-1 \
    redistribute-connected=as-type-2 redistribute-static=as-type-2
/routing ospf-v3 interface
add area=backbone

RouterOS #2

IPv4

/ip address
add interface=ether1 address=192.168.2.1/24
add interface=ether2 address=192.168.10.2/30
/routing ospf instance
set [ find default=yes ] distribute-default=if-installed-as-type-1 \
    redistribute-connected=as-type-2 redistribute-static=as-type-2
/routing ospf network
add area=backbone

IPv6

/ipv6 address
add interface=ether1 address=fd02::1/64 advertise=no
add interface=ether2 address=fdff::2/64 advertise=no
/routing ospf-v3 instance
set [ find default=yes ] distribute-default=if-installed-as-type-1 \
    redistribute-connected=as-type-2 redistribute-static=as-type-2
/routing ospf-v3 interface
add area=backbone

Comprobaciones

RouterOS #1

[admin@RouterOS1] > ip route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADC  192.168.1.0/24     192.168.1.1     ether1                    0
 1 ADo  192.168.2.0/24                     192.168.10.2            110
 2 ADC  192.168.10.0/30    192.168.10.1    ether2                    0

[admin@RouterOS1] > ipv6 route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable 
 #      DST-ADDRESS              GATEWAY                  DISTANCE
 0 ADC  fd01::/64                ether1                          0
 1 ADo  fd02::/64                fe80::a00:27ff:fe33:3...      110
 2 ADC  fdff::/64                ether2                          0

RouterOS #2

[admin@RouterOS2] > ip route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADo  192.168.1.0/24                     192.168.10.1            110
 1 ADC  192.168.2.0/24     192.168.2.1     ether1                    0
 2 ADC  192.168.10.0/30    192.168.10.2    ether2                    0

[admin@RouterOS2] > ipv6 route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable 
 #      DST-ADDRESS              GATEWAY                  DISTANCE
 0 ADo  fd01::/64                fe80::a00:27ff:fef7:4...      110
 1 ADC  fd02::/64                ether1                          0
 2 ADC  fdff::/64                ether2                          0

Miembro #1-10

IPv4

leiniercs@miembro_1-10:~$ ping -c 3 192.168.2.10
PING 192.168.2.10 (192.168.2.10) 56(84) bytes of data.
64 bytes from 192.168.2.10: icmp_seq=1 ttl=62 time=3.35 ms
64 bytes from 192.168.2.10: icmp_seq=2 ttl=62 time=3.44 ms
64 bytes from 192.168.2.10: icmp_seq=3 ttl=62 time=3.98 ms

--- 192.168.2.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 3.353/3.595/3.989/0.289 ms

leiniercs@miembro_1-10:~$ traceroute 192.168.2.10
traceroute to 192.168.2.10 (192.168.2.10), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  0.716 ms  0.885 ms  1.109 ms
 2  192.168.10.2 (192.168.10.2)  5.284 ms  5.236 ms  5.158 ms
 3  192.168.2.10 (192.168.2.10)  5.031 ms  8.535 ms  8.438 ms

IPv6

leiniercs@miembro_1-10:~$ ping6 -c 3 fd02::a
PING fd02::a(fd02::a) 56 data bytes
64 bytes from fd02::a: icmp_seq=1 ttl=62 time=2.59 ms
64 bytes from fd02::a: icmp_seq=2 ttl=62 time=3.68 ms
64 bytes from fd02::a: icmp_seq=3 ttl=62 time=3.69 ms

--- fd02::a ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 2.590/3.320/3.691/0.520 ms

leiniercs@miembro_1-10:~$ traceroute6 fd02::a
traceroute to fd02::a (fd02::a) from fd01::a, 30 hops max, 24 byte packets
 1  fd01::1 (fd01::1)  0,811 ms  0,64 ms  0,671 ms
 2  fdff::2 (fdff::2)  1,007 ms  1,482 ms  0,88 ms
 3  fd02::a (fd02::a)  1,444 ms  1,67 ms  1,507 ms