Sunteți pe pagina 1din 17

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:

Backbone rutado con OSPF YMPLS Bueno, me he decidido a redactar este manual para hacer más
1
1

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.

2
2

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

3
3

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.

4
4

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

5
5

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

6
6

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.

7
7

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"

8
8

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.

9
9

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

10
10

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.

11
11

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.

12
12

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

13
13

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.

Testeo La forma principal de testear el sistema es comprobar la conectividad IP en toda la
14
14

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.

RUTA QUE TOMA EL PAQUETE Con un traceroute podemos visualizar el camino que me esta tomando
15
15

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

16
16

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

17
17