You are on page 1of 17

1

Backbone rutado con OSPF YMPLS

Bueno, me he decidido a redactar este manual para hacer más fácil la implementación
de este tipo de soluciones a los miembros del foro. Muchos tienen aún redes bridgeadas
y necesitarán un sistema más sólido de backbone para cuando empiecen a crecer.

Por supuesto, lo que expongo es una implementación básica, pero completamente
funcional, que construye un backbone con el que se puede trabajar en explotación a
diario. Obviamente el ejemplo que se configura no se adapta a las redes de todos. Pero
tiene las situaciones más usuales que se nos pueden presentar.

Objetivo:

Vamos a crear un backbone ruteado sólido para nuestra red. Estudiaremos cómo
configurar los routers y enlaces para conseguir una conectividad IP completa en toda la
red, minimizando el dominio de broadcast y permitiendo rutas redundantes que nos
salven el pellejo en caso de caída de algún enlace.
Observando este esquema:






2
Como vemos, de un router central CORE ROUTER parten enlaces hacia dos zonas: la
zona 0 y la zona 1. Las zonas 2 y 3 se conectan a la central a través de la torre de la zona
0.
Además, hay un enlace entre las zonas 0 y 1.
Nuestras zonas pueden estar unidas por diferentes enlaces que nos proporcionarán
redundancia y resistencia a caídas. Construiremos un BACKBONE sólido sobre el
que hacer crecer nuestra red con estabilidad.

Para qué todo esto

La gracia de proceder así, está en que al final del trabajo, todos los equipos de la red
tendrán conectividad IP completa con todos los demás. Podrás hacer ping desde el
domicilio de un cliente en la ZONA1 y llegar al de otro en la ZONA3 o a internet.

Los routers calcularán el camino óptimo para que el tráfico dé los menos saltos
posibles, además de optar por rutas activas alternativas si uno de los enlaces se ha
caído. Por ejemplo, si cae el enlace entre el CORE ROUTER y la ZONA0, OSPF
detectará esta situación y en unos segundos encaminará automáticamente los paquetes a
través de la ZONA1 sin intervención del administrador.
Cuando el enlace se restablezca, el camino se volverá a optimizar también
automáticamente.

Añadir routers nuevos es tremendamente fácil y permite ampliar en segundos.

Cada domicilio recibirá IP directamente desde el CORE router gracias a DHCP-Relay y
navegará con el NAT del router principal.

Fantástico, ¿verdad?

Para esto, emplearemos un protocolo de enrutamiento dinámico llamado OSPF
(Open shortest path first). Este protocolo se encarga de que los routers compartan la
información sobre las rutas y enlaces de nuestra red, reaccionando dinámicamente ante
cambios. Para más información, google o un buen libro.
Vamos a verlo poco a poco.

Aunque pueda parecer muy largo, ten en cuenta que se están configurando cinco routers
desde cero. Cada uno apenas tiene 15-20 líneas de configuración.











3
Direccionamiento:

La estructura de direcciones IP empleada es la siguiente.

Para los enlaces punto a punto entre los routers, se han empleado los siguientes
rangos /24:
 Enlace CORE-ZONA0: 172.26.1.0/24
 Enlace CORE-ZONA1: 172.26.2.0/24
 Enlace ZONA0-ZONA1: 172.26.3.0/24
 Enlace ZONA0-ZONA2: 172.26.4.0/24
 Enlace ZONA2-ZONA3: 172.26.5.0/24

Dado que son enlaces punto a punto, mucha gente suele usar rangos /30, que solo
admiten dos equipos. Sin embargo, usando /24, podemos numerar en el mismo rango
los bridges y otros dispositivos intermedios que hayan sido necesarios, y los podremos
encontrar más intuitivamente para su mantenimiento.

Para servicio a los clientes en las diferentes zonas se usan rangos diferentes en /16,
aunque podría utilizarse sin problema /8 o cualquier otra máscara, según el número de
clientes previsto:
 ZONA0: 10.0.0.0/16
 ZONA1: 10.1.0.0/16
 ZONA2: 10.2.0.0/16
 ZONA3: 10.3.0.0/16
Es importante que cada zona tenga un rango de red independiente de los demás.

Para la identificación de los routers, usamos una IP en una interfaz de loopback.
 CORE: 10.255.255.254
 ZONA0: 10.255.255.100
 ZONA1: 10.255.255.1
 ZONA2: 10.255.255.2
 ZONA3: 10.255.255.3










4
Implementándolo en RouterOS

Proceso General:

El proceso a seguir en cada router es sencillo, consiste en los siguientes pasos:

1. Nombrar el router
2. Crear interfaz loopback
3. Configurar las direcciones IP
4. Nombrar las interfaces
5. Configurar servidores DNS
6. Activar NAT y ruta por defecto en el CORE ROUTER
7. Configurar los servidores DHCP en el CORE ROUTER
8. Configurar los servidores DHCP-Relay en las zonas
9. Configurar las Instancias OSPF
10. Configurar los Interfaces OSPF
11. Configurar las Redes OSPF
12. Configurar los Neighbors / NBMA neighbors

Los pasos 6 y 7 sólo son necesarios en el CORE ROUTER. El resto, los realizaremos en
todos los routers.

CORE ROUTER

Nombrando el router
/system identity set name=CORE

Crear interfaz loopback
Sólo es un bridge, sin puertos asociados
/interface bridge add name=loopback

Configurando las direcciones IP
/ip address
add address=192.168.0.2/24 interface=ether1
add address=172.26.1.1/24 interface=ether2
add address=172.26.2.1/24 interface=ether3
add address=10.255.255.254 interface=loopback

Esta IP de loopback identificará al router independientemente de la boca por la que se
accede a él.





5
Nombrando las interfaces
/interface ethernet
set ether1 name=WAN
set ether2 name=ZONA0
set ether3 name=ZONA1
Ponemos nombres que nos ayuden más adelante a saber qué hay conectado a cada boca
de nuestro routerboard

Configurando DNS
/ip dns
set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-
udp-packet-size=512 servers=192.168.0.1,8.8.8.8

Como vemos, es la configuración habitual para server DNS.

Creando la regla Masquerade y ruta por defecto.

Con esta regla, enmascaramos la red interna y hacemos que todos naveguen por
internet.
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=WAN
/ip route add gateway=192.168.0.1

Configurando los servidores DHCP

Creamos los rangos IP que el CORE ROUTER servirá a los clientes finales. Así todo
queda centralizado en este router.
/ip pool
add name=ZONA0 ranges=10.0.0.51-10.0.254.254
add name=ZONA1 ranges=10.1.0.51-10.1.254.254
add name=ZONA2 ranges=10.2.0.51-10.2.254.254
add name=ZONA3 ranges=10.3.0.51-10.3.254.254

Hemos dejado libres las primaras 50 direcciones de cada zona para numerar
equipamiento manualmente.
/ip dhcp-server network
add address=10.0.0.0/16 comment="Pool ZONA0" dhcp-option="" dns-
server=10.0.0.1,8.8.8.8 gateway=10.0.0.1 netmask=16
add address=10.1.0.0/16 comment="Pool ZONA1" dhcp-option="" dns-
server=10.1.0.1,8.8.8.8 gateway=10.1.0.1 netmask=16
add address=10.2.0.0/16 comment="Pool ZONA2" dhcp-option="" dns-
server=10.2.0.1,8.8.8.8 gateway=10.2.0.1 netmask=16
add address=10.3.0.0/16 comment="Pool ZONA3" dhcp-option="" dns-
server=10.3.0.1,8.8.8.8 gateway=10.3.0.1 netmask=16




6
Hemos creado las redes que se servirán por dhcp a los CPE de los clientes finales. Por
último y a continuación creamos los servidores DHCP indicando que tendrán un relay.

/ip dhcp-server
add add-arp=yes address-pool=ZONA0 authoritative=after-10sec-delay
bootp-support=static disabled=no interface=ZONA0 lease-time=3d
name=DHCP_ZONA0-RELAY relay=10.0.0.1
add add-arp=yes address-pool=ZONA1 authoritative=after-10sec-delay
bootp-support=static disabled=no interface=ZONA0 lease-time=3d
name=DHCP_ZONA1-RELAY relay=10.1.0.1
add add-arp=yes address-pool=ZONA2 authoritative=after-10sec-delay
bootp-support=static disabled=no interface=ZONA0 lease-time=3d
name=DHCP_ZONA2-RELAY relay=10.2.0.1
add add-arp=yes address-pool=ZONA3 authoritative=after-10sec-delay
bootp-support=static disabled=no interface=ZONA0 lease-time=3d
name=DHCP_ZONA2-RELAY relay=10.3.0.1

Configurando la instancia OSPF
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=if-installed-
as-type-1 in-filter=ospf-in metric-bgp=auto metric-connected=20
metric-default=1 metric-other-ospf=auto metric-rip=20 metric-static=20
name=default out-filter=ospf-out redistribute-bgp=no redistribute-
connected=as-type-1 redistribute-other-ospf=no redistribute-rip=no
redistribute-static=as-type-1 router-id=10.255.255.254

Bien, aquí hay mucho que comentar. Lo primero es que estamos usando una instancia
que viene por defecto creada en routerOS, llamada “default”. Estamos colocando como
identificador del router la IP de loopback que configuramos antes.

Le indicamos que debe distribuir la ruta 0.0.0.0/0 (o sea, la salida a internet o “Default
Route”) siempre que la tenga instalada. De esa forma los demás routers sabrán que él les
da ese acceso. Este “Redistribute Default Route” sólo debe activarse en el router
que está conectado a internet.

Escogemos también distribuir las rutas conectadas y las estáticas (las que hemos puesto
a mano), así como sus métricas.

Configurando las interfaces OSPF

Debemos añadir aquí todas las interfaces que participarán en OSPF
/routing ospf interface
add instance-id=0 interface=ZONA0 network-type=nbma disabled=no
add instance-id=0 interface=ZONA1 network-type=nbma disabled=no





7
Como network-type escogemos NBMA por el motivo de que se trata de un enlace
wireless. He tenido muchos problemas con esto, ya que anteriormente seleccionaba
“Point to Point” para indicar que se trata de un enlace punto a punto, y no de una red de
distribución. Pero ese método “Point to Point” usa para funcionar paquetes broadcast y
multicast, que pueden perderse en los enlaces inalámbricos (incluso con WDS). Al
configurar el enlace como NBMA se evita ese tráfico y el enlace wifi se hace estable.
Como contrapartida, tenemos que configurar manualmente a los vecinos, pero es cosa
de un par de líneas, como veremos un poquito más abajo.

Configurando las Redes OSPF

Debemos añadir las redes que participarán en OSPF.
/routing ospf network
add area=backbone disabled=no network=172.26.1.0/24
add area=backbone disabled=no network=172.26.2.0/24

En nuestra configuración estamos usando solamente el área Backbone, que viene creada
por defecto. Con estas líneas le hemos dicho al sistema qué redes tenemos conectadas
para funcionar con OSPF. Como vemos, al no participar la red 192.168.0.0/24 en el
sistema, no es necesario anunciarla. No tiene vecinos OSPF con los que tratar.

Configurando los NBMA neighbors

Dado que hemos escogido el sistema NBMA para dar estabilidad a nuestro backbone
wifi, debemos inscribir manualmente a los vecinos:
/routing ospf nbma-neighbor
add address=172.26.1.2 disabled=no instance=default poll-interval=2m
priority=0
add address=172.26.2.2 disabled=no instance=default poll-interval=2m
priority=0

El parámetro “priority” hace que uno de los routers se convierta en principal en cada
enlace. Es imperativo que haya un y sólo un router principal en cada enlace nbma. Por
eso en un extremo pondremos 0 y en el otro, 1.

Con esto, la configuración del core router está completa. Vamos por el siguiente.








8
ZONA 0

Nombrando el router
/system identity set name=ZONA0

Crear interfaz loopback
/interface bridge add name=loopback

Configurando las direcciones IP
/ip address
add address=172.26.1.2/24 interface=ether1
add address=172.26.3.2/24 interface=ether2
add address=172.26.4.1/24 interface=ether3
add address=10.0.0.1/16 interface=ether4

Nombrando las interfaces
/interface ethernet
set ether1 name=CORE
set ether2 name=ZONA1
set ether3 name=ZONA2
set ether4 name=LAN

Configurando DNS
/ip dns
set allow-remote-requests=yes servers=10.255.255.254,8.8.8.8

Como vemos, es la configuración habitual para server DNS. Activándolo para su zona,
eliminamos tráfico hacia la central y aceleramos las consultas.

Configurando los servidores DHCP-RELAY

Haremos que entregue las direcciones IP que preparamos en el core router.
/ip dhcp-relay
add delay-threshold=none dhcp-server=172.26.1.1 disabled=no
interface=LAN local-address=10.0.0.1 name="Relay_de_CORE"







9
Configurando la instancia OSPF
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=never in-
filter=ospf-in metric-bgp=auto metric-connected=20 metric-default=1
metric-other-ospf=auto metric-rip=20 metric-static=20 name=default
out-filter=ospf-out redistribute-bgp=no redistribute-connected=as-
type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-
static=no router-id=10.255.255.100

De nuevo usamos la instancia “default”. Le indicamos que NO debe distribuir nunca la
ruta 0.0.0.0/0 (o sea, la salida a internet o “Default Route”) ya que no tiene acceso
directo a internet. Este “Redistribute Default Route” sólo debe activarse en el router
que está conectado a internet, NO EN ESTE.

Configurando las interfaces OSPF

Debemos añadir aquí todas las interfaces que participarán en OSPF
/routing ospf interface
add instance-id=0 interface=CORE network-type=nbma disabled=no
add instance-id=0 interface=ZONA1 network-type=nbma disabled=no
add instance-id=0 interface=LAN network-type=broadcast disabled=no
La red que da servicio a los clientes es de tipo “broadcast”.

Configurando las Redes OSPF

Debemos añadir las redes que participarán en OSPF.
/routing ospf network
add area=backbone disabled=no network=172.26.1.0/24
add area=backbone disabled=no network=172.26.3.0/24
add area=backbone disabled=no network=172.26.4.0/24
add area=backbone disabled=no network=10.0.0.0/16
Además de los tres enlaces, debemos publicar la red LAN para hacerla accesible al resto
de vecinos.

Configurando los NBMA neighbors

Dado que hemos escogido el sistema NBMA para dar estabilidad a nuestro backbone
wifi, debemos inscribir manualmente a los vecinos:
/routing ospf nbma-neighbor
add address=172.26.1.1 disabled=no instance=default poll-interval=2m
priority=1
add address=172.26.3.1 disabled=no instance=default poll-interval=2m
priority=0
add address=172.26.4.2 disabled=no instance=default poll-interval=2m
priority=
Al vecino CORE le asignamos prioridad=1, ya que cuando hicimos esto en él,
asignamos priority=0 al router ZONA0

Con esto, la configuración del router ZONA0 está completa.



10
ZONA1

Nombrando el router
/system identity set name=ZONA1

Crear interfaz loopback
/interface bridge add name=loopback

Configurando las direcciones IP
/ip address
add address=172.26.2.2/24 interface=ether1
add address=172.26.3.1/24 interface=ether2
add address=10.1.0.1/16 interface=ether4

Nombrando las interfaces
/interface ethernet
set ether1 name=CORE
set ether2 name=ZONA0
set ether4 name=LAN

Configurando DNS
/ip dns
set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-
udp-packet-size=512 servers=10.255.255.254,8.8.8.8

Configurando los servidores DHCP-RELAY

Haremos que entregue las direcciones IP que preparamos en el core router.
/ip dhcp-relay
add delay-threshold=none dhcp-server=172.26.2.1 disabled=no
interface=LAN local-address=10.1.0.1 name="Relay_de_CORE"

Configurando la instancia OSPF
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=never in-
filter=ospf-in metric-bgp=auto metric-connected=20 metric-default=1
metric-other-ospf=auto metric-rip=20 metric-static=20 name=default
out-filter=ospf-out redistribute-bgp=no redistribute-connected=as-
type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-
static=no router-id=10.255.255.1
Igual que el anterior, cambiando sólo el router-id




11
Configurando las interfaces OSPF

Debemos añadir aquí todas las interfaces que participarán en OSPF
/routing ospf interface
add instance-id=0 interface=CORE network-type=nbma disabled=no
add instance-id=0 interface=ZONA0 network-type=nbma disabled=no
add instance-id=0 interface=LAN network-type=broadcast disabled=no

Configurando las Redes OSPF

Debemos añadir las redes que participarán en OSPF.

/routing ospf network
add area=backbone disabled=no network=172.26.2.0/24
add area=backbone disabled=no network=172.26.3.0/24
add area=backbone disabled=no network=10.1.0.0/16

Configurando los NBMA neighbors
/routing ospf nbma-neighbor
add address=172.26.2.1 disabled=no instance=default poll-interval=2m
priority=1
add address=172.26.3.2 disabled=no instance=default poll-interval=2m
priority=1

¡Ojo a las prioridades!

Con esto, la configuración de ZONA1 está completa.

















12
ZONA2

Iremos un poco más rápido:

Nombre, interfaces y direcciones IP
/system identity set name=ZONA2
/interface bridge add name=loopback
/ip address
add address=172.26.4.2/24 interface=ether1
add address=172.26.5.1/24 interface=ether2
add address=10.2.0.1/16 interface=ether4
/interface ethernet
set ether1 name=ZONA0
set ether2 name=ZONA3
set ether4 name=LAN
/ip dns
set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-
udp-packet-size=512 servers=10.255.255.254,8.8.8.8
/ip dhcp-relay
add delay-threshold=none dhcp-server=172.26.4.2 disabled=no
interface=LAN local-address=10.2.0.1 name="Relay_de_CORE"

Configurando OSPF
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=never in-
filter=ospf-in metric-bgp=auto metric-connected=20 metric-default=1
metric-other-ospf=auto metric-rip=20 metric-static=20 name=default
out-filter=ospf-out redistribute-bgp=no redistribute-connected=as-
type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-
static=no router-id=10.255.255.2
/routing ospf interface
add instance-id=0 interface=ZONA0 network-type=nbma disabled=no
add instance-id=0 interface=ZONA3 network-type=nbma disabled=no
add instance-id=0 interface=LAN network-type=broadcast disabled=no
/routing ospf network
add area=backbone disabled=no network=172.26.4.0/24
add area=backbone disabled=no network=172.26.5.0/24
add area=backbone disabled=no network=10.2.0.0/16
/routing ospf nbma-neighbor
add address=172.26.4.1 disabled=no instance=default poll-interval=2m
priority=1
add address=172.26.5.2 disabled=no instance=default poll-interval=2m
priority=0

Con esto, la configuración de ZONA2 está completa.







13
ZONA3

Todo en un bloque:
/system identity set name=ZONA3
/interface bridge add name=loopback
/ip address
add address=172.26.5.2/24 interface=ether1
add address=10.3.0.1/16 interface=ether4
/interface ethernet
set ether1 name=ZONA2
set ether4 name=LAN
/ip dns
set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-
udp-packet-size=512 servers=10.255.255.254,8.8.8.8
/ip dhcp-relay
add delay-threshold=none dhcp-server=172.26.5.2 disabled=no
interface=LAN local-address=10.3.0.1 name="Relay_de_CORE"
/routing ospf instance
set [ find default=yes ] disabled=no distribute-default=never in-
filter=ospf-in metric-bgp=auto metric-connected=20 metric-default=1
metric-other-ospf=auto metric-rip=20 metric-static=20 name=default
out-filter=ospf-out redistribute-bgp=no redistribute-connected=as-
type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-
static=no router-id=10.255.255.3
/routing ospf interface
add instance-id=0 interface=ZONA2 network-type=nbma disabled=no
add instance-id=0 interface=LAN network-type=broadcast disabled=no
/routing ospf network
add area=backbone disabled=no network=172.26.5.2/24
add area=backbone disabled=no network=10.3.0.0/16
/routing ospf nbma-neighbor
add address=172.26.5.1 disabled=no instance=default poll-interval=2m
priority=1














14
Testeo

La forma principal de testear el sistema es comprobar la conectividad IP en toda la red, que
debe ser completa. En laboratorio, se puede hacer caer cualquier enlace y observar como, de
haber ruta alternativa, se tomará automáticamente.

En particular, a la hora de mantener el sistema, es útil verificar periódicamente el tiempo de
adyacencia de los routers. En Winbox, en la ventana OSPF>Neighbors podemos ver qué
vecinos están correctamente detectados. Si activamos la visualización de la columna
“Adjacency”, verificaremos el tiempo que llevan comunicándose y podremos monitorizar el
enlace.

También para monitorear y comprobar las configuraciones tenemos algunos codigos para
visualizar los servicios:
TABLA DE RUTEO

Con este comando podremos observar nuestra tabla de ruteo, con las rutas aprendidas
con el protocolo de enrutamiento utilizado OSPF, y también nos muestra las rutas
estáticas y directamente conectadas con su respectivo Gateway.
En esta tabla nos debe aparecer todas las redes que tenemos interconectadas en la misma
area.






15
RUTA QUE TOMA EL PAQUETE

Con un traceroute podemos visualizar el camino que me esta tomando la comunicación
entre dos routers, en este ejemplo podremos probar que ruta esta tomando la
comunicación entre el ROUTER CORE Y ROUTER ZONA 3, luego podemos probrar
que toma otro camino dependiendo del enlace redundante que tengan entre ellos
desconectando uno de los link por el cual se comunican actualmente.






































16
MPLS
Después de aplicar y configurar MPLS en nuestra red, podemos visualizar las etiquetas
que este router ha asignado a las rutas y los vecinos a los que ha distribuido esta
etiqueta, esto demuestra que Router CORE ha distribuido etiquetas para todas sus rutas
a ambos de sus vecinos ZONA 0 Y ZONA 1

















17
Este comando nos muestra las etiquetas que se asignan para las rutas por los routers
vecinos y se anuncian a este router.