Cuando empezamos a trabajar con redes, normalmente lo primero que aprendemos es switching: VLAN, puertos access y trunk, tablas MAC, STP... Hasta que llega el momento de conectar distintas redes y necesitamos que los paquetes puedan viajar de una subred a otra.

Ahí entra el routing.

Al principio resulta bastante sencillo. Configuramos direcciones IP en las interfaces del router y añadimos algunas rutas estáticas. Pero imaginemos una empresa con diez oficinas, varios enlaces redundantes y cientos de subredes. Mantener todas esas rutas manualmente puede convertirse en un trabajo considerable.

Para resolverlo existen los protocolos de enrutamiento dinámico.

En este artículo voy a trabajar con dos de los más utilizados: OSPF y BGP. Primero veremos para qué sirve cada uno y después montaremos tres laboratorios completos con routers Cisco:

  1. Una red corporativa utilizando únicamente OSPF.
  2. Tres sistemas autónomos intercambiando rutas mediante BGP.
  3. Una red empresarial que combina OSPF internamente y BGP para conectarse con un proveedor.

La idea es entender qué configuramos, por qué lo hacemos y cómo comprobar que funciona.

1. OSPF y BGP: dos maneras diferentes de trabajar

Aunque ambos protocolos permiten aprender rutas dinámicamente, no resuelven exactamente el mismo problema.

OSPF: conocer nuestra propia red

OSPF (Open Shortest Path First) es un protocolo IGP, diseñado para gestionar rutas dentro de un dominio de enrutamiento.

Podemos imaginarlo como un mapa de carreteras. Los routers intercambian información sobre sus enlaces y construyen una representación de la topología.

Con esa información, cada router utiliza el algoritmo SPF, basado en Dijkstra, para calcular los caminos de menor coste.

Por ejemplo, si una empresa tiene oficinas en Barcelona, Madrid y Valencia, OSPF puede calcular qué camino debe utilizar el tráfico entre ellas.

Si falla un enlace, recalcula las rutas utilizando los caminos que continúan disponibles.

OSPF trabaja con una métrica llamada coste. Normalmente está relacionada con el ancho de banda de las interfaces, aunque también podemos configurarla manualmente.

BGP: conectar redes independientes

BGP (Border Gateway Protocol) tiene otro enfoque.

En lugar de descubrir toda la topología de una organización, intercambia información sobre prefijos de red y los caminos disponibles para alcanzarlos.

Su principal aplicación es conectar sistemas autónomos, identificados mediante números ASN (Autonomous System Number).

Internet funciona gracias a miles de sistemas autónomos que intercambian rutas utilizando BGP.

A diferencia de OSPF, BGP permite aplicar políticas de enrutamiento bastante sofisticadas.

Por ejemplo, podemos preferir un proveedor de Internet para enviar tráfico y mantener otro como alternativa.

También podemos controlar qué redes anunciamos a nuestros vecinos y cuáles estamos dispuestos a aceptar.

Característica OSPF BGP
Tipo IGP Path-Vector, usado como EGP
Uso habitual Routing interno Intercambio de rutas entre AS
Selección de rutas Menor coste Atributos y políticas
Descubrimiento de vecinos Mensajes Hello Vecinos configurados
Transporte IP, protocolo 89 TCP, puerto 179
Organización Áreas Sistemas autónomos
Identificación Router ID Router ID y ASN

Esto no significa que BGP solo pueda utilizarse entre organizaciones. También existe iBGP, utilizado entre routers de un mismo AS, y encontramos diseños de datacenter donde BGP actúa como protocolo de enrutamiento interno.

En nuestros laboratorios utilizaremos eBGP, que establece sesiones entre sistemas autónomos diferentes.


2. Laboratorio 1: una red corporativa con OSPF

Vamos a montar una pequeña empresa con tres oficinas.

Cada oficina tendrá su router y su propia LAN. Además, conectaremos los tres routers formando un triángulo para disponer de caminos alternativos.

Topología

%%{init: {
  "theme": "base",
  "themeVariables": {
    "fontFamily": "sans-serif",
    "fontSize": "13px",
    "edgeLabelBackground": "#ffffff",
    "curve": "basis"
  }
} }%%
flowchart TB
    classDef router fill:#2b3e50,stroke:#1a252f,stroke-width:2px,color:#fff,rx:8,ry:8;
    classDef pc fill:#16a085,stroke:#117a65,stroke-width:2px,color:#fff,rx:8,ry:8;

    R1["<b>R1 — Barcelona</b><br/>LAN 192.168.10.0/24"]:::router
    R2["<b>R2 — Madrid</b><br/>LAN 192.168.20.0/24"]:::router
    R3["<b>R3 — Valencia</b><br/>LAN 192.168.30.0/24"]:::router

    P1["<b>PC1</b><br/>192.168.10.10"]:::pc
    P2["<b>PC2</b><br/>192.168.20.10"]:::pc
    P3["<b>PC3</b><br/>192.168.30.10"]:::pc

    R1 ---|"10.0.12.0/30"| R2
    R2 ---|"10.0.23.0/30"| R3
    R1 ---|"10.0.13.0/30"| R3

    R1 --- P1
    R2 --- P2
    R3 --- P3

    linkStyle default stroke:#7f8c8d,stroke-width:1.5px;

Direccionamiento

Router Interfaz IP
R1 Gi0/0 192.168.10.1/24
R1 Gi0/1 10.0.12.1/30
R1 Gi0/2 10.0.13.1/30
R2 Gi0/0 192.168.20.1/24
R2 Gi0/1 10.0.12.2/30
R2 Gi0/2 10.0.23.1/30
R3 Gi0/0 192.168.30.1/24
R3 Gi0/1 10.0.23.2/30
R3 Gi0/2 10.0.13.2/30

Los ordenadores tendrán las direcciones 192.168.10.10, 192.168.20.10 y 192.168.30.10, respectivamente, con máscara /24 y utilizando como gateway la IP LAN de su router.

Para conectar las LAN podemos utilizar switches de capa 2 con sus puertos de acceso en la VLAN predeterminada.

Todos los routers participarán en OSPF, área 0.

2.1. Configuración completa de R1

enable
configure terminal

hostname R1

! LAN Barcelona
interface GigabitEthernet0/0
 description LAN BARCELONA
 ip address 192.168.10.1 255.255.255.0
 no shutdown
 exit

! Enlace R1-R2
interface GigabitEthernet0/1
 description ENLACE R1-R2
 ip address 10.0.12.1 255.255.255.252
 no shutdown
 exit

! Enlace R1-R3
interface GigabitEthernet0/2
 description ENLACE R1-R3
 ip address 10.0.13.1 255.255.255.252
 ip ospf cost 100
 no shutdown
 exit

! OSPF
router ospf 10
 router-id 1.1.1.1
 passive-interface default
 no passive-interface GigabitEthernet0/1
 no passive-interface GigabitEthernet0/2
 network 192.168.10.0 0.0.0.255 area 0
 network 10.0.12.0 0.0.0.3 area 0
 network 10.0.13.0 0.0.0.3 area 0
 exit

end
write memory

Vamos a revisar los comandos específicos de OSPF.

router ospf 10 crea el proceso OSPF local. El número 10 identifica el proceso dentro del router; no necesita coincidir con el de otros equipos.

router-id 1.1.1.1 establece un identificador único para R1 dentro de OSPF. Tiene formato IPv4, pero no necesita ser una dirección configurada en una interfaz.

passive-interface default evita inicialmente que OSPF establezca vecinos a través de sus interfaces. Después utilizamos no passive-interface para permitir las vecindades en los enlaces hacia R2 y R3.

Esto permite anunciar la LAN sin enviar mensajes Hello a los ordenadores.

El comando:

network 192.168.10.0 0.0.0.255 area 0

Selecciona las interfaces cuyas direcciones coinciden con esa red y las incorpora a OSPF en el área 0.

El valor 0.0.0.255 es una máscara wildcard, la inversa de la máscara convencional 255.255.255.0.

Para enlaces /30 utilizamos 0.0.0.3.

Finalmente, ip ospf cost 100 asigna un coste elevado al enlace directo R1-R3. Lo haremos también en el otro extremo. Así podremos observar cómo OSPF prefiere inicialmente el camino que pasa por Madrid.

2.2. Configuración completa de R2

enable
configure terminal

hostname R2

interface GigabitEthernet0/0
 description LAN MADRID
 ip address 192.168.20.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE R2-R1
 ip address 10.0.12.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/2
 description ENLACE R2-R3
 ip address 10.0.23.1 255.255.255.252
 no shutdown
 exit

router ospf 10
 router-id 2.2.2.2
 passive-interface default
 no passive-interface GigabitEthernet0/1
 no passive-interface GigabitEthernet0/2
 network 192.168.20.0 0.0.0.255 area 0
 network 10.0.12.0 0.0.0.3 area 0
 network 10.0.23.0 0.0.0.3 area 0
 exit

end
write memory

R2 anuncia su LAN y participa en OSPF a través de los enlaces que lo conectan con Barcelona y Valencia.

2.3. Configuración completa de R3

enable
configure terminal

hostname R3

interface GigabitEthernet0/0
 description LAN VALENCIA
 ip address 192.168.30.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE R3-R2
 ip address 10.0.23.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/2
 description ENLACE R3-R1
 ip address 10.0.13.2 255.255.255.252
 ip ospf cost 100
 no shutdown
 exit

router ospf 10
 router-id 3.3.3.3
 passive-interface default
 no passive-interface GigabitEthernet0/1
 no passive-interface GigabitEthernet0/2
 network 192.168.30.0 0.0.0.255 area 0
 network 10.0.23.0 0.0.0.3 area 0
 network 10.0.13.0 0.0.0.3 area 0
 exit

end
write memory

En R3 también asignamos un coste OSPF de 100 al enlace directo hacia R1.

2.4. Comprobamos OSPF

Lo primero es verificar que las interfaces están activas:

show ip interface brief

Después consultamos los vecinos:

show ip ospf neighbor

Cada router debería mostrar dos vecinos OSPF y alcanzar el estado FULL.

Este estado indica que los routers vecinos han sincronizado correctamente sus bases de datos de estado de enlace.

Ahora consultamos las rutas aprendidas:

show ip route ospf

En R1 esperamos encontrar rutas hacia las LAN de Madrid y Valencia, identificadas con la letra O.

Podemos comprobar el recorrido hasta Valencia:

traceroute 192.168.30.1

Con los costes configurados, el camino preferido debería pasar por R2.

Simulamos una caída

Vamos a desactivar el enlace R2-R3.

En R2:

configure terminal
interface GigabitEthernet0/2
 shutdown
end

OSPF detectará la pérdida de conectividad y recalculará las rutas.

En R1 volvemos a ejecutar:

show ip route ospf
traceroute 192.168.30.1

Ahora el tráfico hacia la LAN de Valencia deberá utilizar el enlace directo R1-R3.

Aunque ese camino tiene un coste superior, continúa estando disponible.

Recuperamos la interfaz:

configure terminal
interface GigabitEthernet0/2
 no shutdown
end

Después de converger, OSPF volverá a seleccionar el camino de menor coste.

Ya tenemos nuestra primera red dinámica: los routers conocen las subredes internas y pueden reaccionar ante la caída de un enlace sin que tengamos que modificar manualmente las rutas.


3. Laboratorio 2: conectamos tres sistemas autónomos con BGP

Ahora vamos a cambiar el planteamiento.

En lugar de tres oficinas pertenecientes a la misma empresa, tendremos tres organizaciones independientes.

Cada una dispone de un sistema autónomo.

Para el laboratorio utilizaremos ASN privados:

  • R1: AS 65001.
  • R2: AS 65002.
  • R3: AS 65003.

R2 actuará como proveedor de tránsito entre R1 y R3.

3.1. Topología

%%{init: {
  "theme": "base",
  "themeVariables": {
    "fontFamily": "sans-serif",
    "fontSize": "13px",
    "edgeLabelBackground": "#ffffff",
    "curve": "basis"
  }
} }%%
flowchart LR
    classDef lan fill:#16a085,stroke:#117a65,stroke-width:2px,color:#fff,rx:8,ry:8;
    classDef router fill:#2b3e50,stroke:#1a252f,stroke-width:2px,color:#fff,rx:8,ry:8;

    P1["<b>LAN</b><br/>192.168.10.0/24"]:::lan
    R1["<b>R1</b><br/>AS 65001"]:::router
    R2["<b>R2</b><br/>AS 65002"]:::router
    R3["<b>R3</b><br/>AS 65003"]:::router
    P2["<b>LAN</b><br/>192.168.20.0/24"]:::lan
    P3["<b>LAN</b><br/>192.168.30.0/24"]:::lan

    P1 --- R1
    R1 <-->|"eBGP<br/>10.0.12.0/30"| R2
    R2 <-->|"eBGP<br/>10.0.23.0/30"| R3
    R2 --- P2
    R3 --- P3

    linkStyle default stroke:#7f8c8d,stroke-width:1.5px;

El direccionamiento será:

Router Interfaz IP
R1 Gi0/0 192.168.10.1/24
R1 Gi0/1 10.0.12.1/30
R2 Gi0/0 192.168.20.1/24
R2 Gi0/1 10.0.12.2/30
R2 Gi0/2 10.0.23.1/30
R3 Gi0/0 192.168.30.1/24
R3 Gi0/1 10.0.23.2/30

Los ordenadores conservan las direcciones LAN y gateways que utilizamos en el primer laboratorio.

3.2. Configuración completa de R1

enable
configure terminal

hostname R1

interface GigabitEthernet0/0
 description LAN AS65001
 ip address 192.168.10.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE eBGP CON R2
 ip address 10.0.12.1 255.255.255.252
 no shutdown
 exit

router bgp 65001
 bgp router-id 1.1.1.1
 neighbor 10.0.12.2 remote-as 65002
 network 192.168.10.0 mask 255.255.255.0
 exit

end
write memory

La configuración BGP es bastante corta, pero hay tres comandos que debemos entender.

router bgp 65001 inicia BGP indicando que nuestro router pertenece al AS 65001.

neighbor 10.0.12.2 remote-as 65002 configura un vecino BGP. Con esto le decimos a R1 que quiere establecer una sesión con la dirección 10.0.12.2, perteneciente al AS 65002.

BGP utiliza TCP, puerto 179, para mantener esta comunicación.

Finalmente:

network 192.168.10.0 mask 255.255.255.0

Indica qué prefijo queremos originar mediante BGP.

Aquí encontramos una diferencia respecto a OSPF: el comando **network** de BGP no activa el protocolo en una interfaz; sirve para originar un prefijo que exista exactamente en la tabla de enrutamiento.

Nuestra LAN está directamente conectada, así que cumple ese requisito.

3.3. Configuración completa de R2

enable
configure terminal

hostname R2

interface GigabitEthernet0/0
 description LAN AS65002
 ip address 192.168.20.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE eBGP CON R1
 ip address 10.0.12.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/2
 description ENLACE eBGP CON R3
 ip address 10.0.23.1 255.255.255.252
 no shutdown
 exit

router bgp 65002
 bgp router-id 2.2.2.2
 neighbor 10.0.12.1 remote-as 65001
 neighbor 10.0.23.2 remote-as 65003
 network 192.168.20.0 mask 255.255.255.0
 exit

end
write memory

R2 tiene dos vecinos BGP.

Recibe las rutas de R1 y R3 y puede anunciarlas al otro vecino según las reglas de BGP y las políticas aplicadas.

No necesitamos añadir las redes de R1 y R3 a los comandos network de R2 porque ya las aprende mediante BGP.

3.4. Configuración completa de R3

enable
configure terminal

hostname R3

interface GigabitEthernet0/0
 description LAN AS65003
 ip address 192.168.30.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE eBGP CON R2
 ip address 10.0.23.2 255.255.255.252
 no shutdown
 exit

router bgp 65003
 bgp router-id 3.3.3.3
 neighbor 10.0.23.1 remote-as 65002
 network 192.168.30.0 mask 255.255.255.0
 exit

end
write memory

R3 anuncia su LAN al AS 65002 y aprende las rutas que R2 le comunica.

3.5. Comprobamos las sesiones BGP

Desde R2:

show ip bgp summary

Deberíamos observar dos vecinos:

Neighbor        AS       State/PfxRcd
10.0.12.1       65001    1
10.0.23.2       65003    1

Cuando State/PfxRcd muestra un número, la sesión está establecida. Ese número indica los prefijos recibidos y aceptados.

Si vemos estados como Idle, Active o Connect, la sesión todavía no ha llegado a Established.

Ahora consultamos la información BGP de R1:

show ip bgp

Una salida simplificada sería:

Network             Next Hop       Path
*> 192.168.10.0/24   0.0.0.0        i
*> 192.168.20.0/24   10.0.12.2      65002 i
*> 192.168.30.0/24   10.0.12.2      65002 65003 i

Fijémonos en esta ruta:

192.168.30.0/24 → AS_PATH 65002 65003

R1 ha aprendido que para llegar a la red del AS 65003 debe utilizar un camino que pasa por el AS 65002.

Ese recorrido aparece en el atributo AS_PATH.

La tabla de rutas IP puede consultarse mediante:

show ip route bgp

Y podemos comprobar la conectividad:

ping 192.168.30.1
traceroute 192.168.30.1

También resulta útil comprobar qué está anunciando R2 hacia R1:

show ip bgp neighbors 10.0.12.1 advertised-routes

Probamos una caída

Desactivamos el enlace R2-R3:

configure terminal
interface GigabitEthernet0/2
 shutdown
end

La sesión BGP correspondiente dejará de estar establecida.

Cuando BGP retire las rutas afectadas, R1 perderá la ruta hacia 192.168.30.0/24.

En este caso no existe ningún camino alternativo, por lo que no podremos alcanzar esa LAN.

Recuperamos el enlace con no shutdown.

Con este laboratorio vemos cómo BGP intercambia rutas entre organizaciones diferentes y cómo utiliza los ASN para describir los caminos.


4. Laboratorio 3: OSPF y BGP trabajando juntos

Este es el escenario más parecido a una red empresarial con un proveedor externo.

Dentro de la empresa utilizaremos OSPF para distribuir las rutas internas.

En el router de borde utilizaremos BGP para intercambiar rutas con el proveedor.

La conexión entre los dos protocolos la realizaremos de forma controlada, anunciando mediante BGP únicamente las LAN corporativas y distribuyendo hacia OSPF una ruta por defecto.

4.1. Topología

%%{init: {
  "theme": "base",
  "themeVariables": {
    "fontFamily": "sans-serif",
    "fontSize": "13px",
    "edgeLabelBackground": "#ffffff",
    "curve": "basis"
  }
} }%%
flowchart TB
    classDef isp fill:#d35400,stroke:#ba4a00,stroke-width:2px,color:#fff,rx:8,ry:8;
    classDef router fill:#2b3e50,stroke:#1a252f,stroke-width:2px,color:#fff,rx:8,ry:8;
    classDef lan fill:#16a085,stroke:#117a65,stroke-width:2px,color:#fff,rx:8,ry:8;

    subgraph ISP ["PROVEEDOR — AS 65100"]
        direction TB
        R4["<b>R4 — ISP</b><br/>172.16.14.2"]:::isp
        S["<b>Servidor externo</b><br/>203.0.113.10"]:::isp
        R4 --- S
    end

    subgraph EMP ["EMPRESA — AS 65010"]
        direction TB
        R1["<b>R1 — EDGE</b><br/>OSPF + BGP"]:::router
        R2["<b>R2 — CORE</b><br/>OSPF"]:::router
        R3["<b>R3 — OFICINA</b><br/>OSPF"]:::router
        
        P2["<b>LAN</b><br/>192.168.20.0/24"]:::lan
        P3["<b>LAN</b><br/>192.168.30.0/24"]:::lan

        R1 <-->|"OSPF<br/>10.10.12.0/30"| R2
        R2 <-->|"OSPF<br/>10.10.23.0/30"| R3
        R2 --- P2
        R3 --- P3
    end

    R1 <-->|"eBGP<br/>172.16.14.0/30"| R4

    linkStyle default stroke:#7f8c8d,stroke-width:1.5px;

Las direcciones serán:

Router Interfaz IP
R1 Gi0/0 10.10.12.1/30
R1 Gi0/1 172.16.14.1/30
R2 Gi0/0 10.10.12.2/30
R2 Gi0/1 192.168.20.1/24
R2 Gi0/2 10.10.23.1/30
R3 Gi0/0 10.10.23.2/30
R3 Gi0/1 192.168.30.1/24
R4 Gi0/0 172.16.14.2/30
R4 Gi0/1 203.0.113.1/24

La red 203.0.113.0/24 está reservada para documentación. Aquí la utilizamos exclusivamente para simular una red externa.

En la LAN de R2 colocamos un PC con dirección 192.168.20.10/24, gateway 192.168.20.1. En R3 otro con 192.168.30.10/24, gateway 192.168.30.1. El servidor externo utiliza 203.0.113.10/24, gateway 203.0.113.1.

4.2. Configuración completa de R1 — EDGE

enable
configure terminal

hostname R1

interface GigabitEthernet0/0
 description ENLACE OSPF CON R2
 ip address 10.10.12.1 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/1
 description ENLACE eBGP CON ISP
 ip address 172.16.14.1 255.255.255.252
 no shutdown
 exit

! OSPF INTERNO
router ospf 10
 router-id 1.1.1.1
 passive-interface default
 no passive-interface GigabitEthernet0/0
 network 10.10.12.0 0.0.0.3 area 0
 default-information originate
 exit

! BGP EXTERNO
router bgp 65010
 bgp router-id 1.1.1.1
 neighbor 172.16.14.2 remote-as 65100
 network 192.168.20.0 mask 255.255.255.0
 network 192.168.30.0 mask 255.255.255.0
 exit

end
write memory

Este router ejecuta los dos protocolos.

Con OSPF aprende las redes internas. Con BGP establece una sesión con el proveedor y anuncia nuestras LAN.

Hay dos detalles que merecen atención.

El primero es:

default-information originate

Cuando R1 tenga una ruta por defecto instalada, OSPF podrá anunciarla a los demás routers internos.

Es la manera de indicarles que R1 dispone de una salida hacia redes externas.

El segundo detalle son los comandos BGP:

network 192.168.20.0 mask 255.255.255.0
network 192.168.30.0 mask 255.255.255.0

Estas redes no están directamente conectadas a R1.

Las aprenderá mediante OSPF desde R2 y R3.

Como existirán rutas exactamente coincidentes en la tabla IP de R1, BGP podrá originar esos prefijos y anunciarlos al proveedor.

No necesitamos redistribuir todas las rutas OSPF hacia BGP.

4.3. Configuración completa de R2 — CORE

enable
configure terminal

hostname R2

interface GigabitEthernet0/0
 description ENLACE OSPF CON R1
 ip address 10.10.12.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/1
 description LAN CORE
 ip address 192.168.20.1 255.255.255.0
 no shutdown
 exit

interface GigabitEthernet0/2
 description ENLACE OSPF CON R3
 ip address 10.10.23.1 255.255.255.252
 no shutdown
 exit

router ospf 10
 router-id 2.2.2.2
 passive-interface default
 no passive-interface GigabitEthernet0/0
 no passive-interface GigabitEthernet0/2
 network 10.10.12.0 0.0.0.3 area 0
 network 10.10.23.0 0.0.0.3 area 0
 network 192.168.20.0 0.0.0.255 area 0
 exit

end
write memory

R2 solamente ejecuta OSPF.

Conoce las LAN internas y recibe desde R1 la ruta por defecto hacia el proveedor.

4.4. Configuración completa de R3 — Oficina

enable
configure terminal

hostname R3

interface GigabitEthernet0/0
 description ENLACE OSPF CON R2
 ip address 10.10.23.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/1
 description LAN OFICINA
 ip address 192.168.30.1 255.255.255.0
 no shutdown
 exit

router ospf 10
 router-id 3.3.3.3
 passive-interface default
 no passive-interface GigabitEthernet0/0
 network 10.10.23.0 0.0.0.3 area 0
 network 192.168.30.0 0.0.0.255 area 0
 exit

end
write memory

R3 no necesita conocer BGP.

Para comunicarse con una red externa utilizará la ruta por defecto aprendida mediante OSPF.

4.5. Configuración completa de R4 — ISP

enable
configure terminal

hostname R4

interface GigabitEthernet0/0
 description ENLACE eBGP CON R1
 ip address 172.16.14.2 255.255.255.252
 no shutdown
 exit

interface GigabitEthernet0/1
 description RED EXTERNA
 ip address 203.0.113.1 255.255.255.0
 no shutdown
 exit

router bgp 65100
 bgp router-id 4.4.4.4
 neighbor 172.16.14.1 remote-as 65010
 neighbor 172.16.14.1 default-originate
 network 203.0.113.0 mask 255.255.255.0
 exit

end
write memory

R4 anuncia su red externa y proporciona una ruta por defecto hacia R1.

El comando:

neighbor 172.16.14.1 default-originate

Hace que BGP anuncie 0.0.0.0/0 a ese vecino. En este laboratorio simulamos un ISP, por lo que nos resulta útil aunque R4 no tenga acceso real a Internet.

En una infraestructura de producción debemos asegurarnos de que el proveedor realmente dispone de la conectividad que anuncia.

4.6. ¿Cómo colaboran OSPF y BGP?

Imaginemos que el ordenador de la oficina quiere comunicarse con el servidor externo.

El destino es 203.0.113.10.

El recorrido será:

PC Oficina
192.168.30.10
     |
     v
R3 — OSPF
     |
     v
R2 — OSPF
     |
     v
R1 — OSPF + BGP
     |
     v
R4 — BGP
     |
     v
Servidor externo
203.0.113.10

R3 utiliza su ruta por defecto OSPF para enviar el tráfico hacia R2.

R2 reenvía los paquetes hacia R1.

R1 conoce la red externa mediante BGP y envía los paquetes a R4.

Finalmente, R4 entrega el tráfico al servidor.

El recorrido de vuelta también es importante. R4 ha aprendido por BGP las redes internas de la empresa, así que sabe cómo enviar las respuestas hacia R1.

Desde ese punto, la tabla de enrutamiento de R1 permite alcanzar la LAN de R3.

Comprobamos el funcionamiento

En R1:

show ip ospf neighbor
show ip route ospf
show ip bgp summary
show ip route bgp

En R2 y R3:

show ip route

Deberíamos encontrar una ruta por defecto OSPF similar a esta:

O*E2 0.0.0.0/0 via 10.10.12.1

El siguiente salto mostrado corresponde a R2. En R3, el siguiente salto hacia esa ruta por defecto será 10.10.23.1.

La identificación O*E2 indica que estamos utilizando una ruta externa OSPF de tipo 2 como ruta por defecto.

En R4:

show ip route bgp

Deberíamos encontrar las dos LAN corporativas:

192.168.20.0/24
192.168.30.0/24

Desde el PC de la oficina comprobamos la comunicación con el servidor 203.0.113.10 mediante ping.

¿Qué pasa si falla el enlace con el proveedor?

Desactivamos Gi0/1 de R1:

configure terminal
interface GigabitEthernet0/1
 shutdown
end

La sesión BGP con R4 se pierde.

R1 deja de recibir las rutas BGP de ese proveedor, incluida la ruta por defecto.

Como hemos configurado default-information originate sin always, OSPF deja de anunciar la ruta por defecto cuando R1 ya no dispone de ella.

Podemos comprobarlo desde R3:

show ip route

Después de la convergencia, la ruta O*E2 0.0.0.0/0 debería desaparecer.

La red corporativa continúa funcionando, pero pierde su salida externa.

Recuperamos el enlace:

configure terminal
interface GigabitEthernet0/1
 no shutdown
end

Una vez restablecida la sesión BGP y aprendida nuevamente la ruta por defecto, OSPF podrá volver a distribuirla por la red interna.


5. Comandos que utilizo para diagnosticar routing

Cuando una red dinámica no funciona como esperamos, prefiero comprobar primero la conectividad IP y después los protocolos.

Estos son algunos de los comandos que conviene tener a mano:

Comando Utilidad
show ip interface brief Estado de las interfaces y sus IP
show ip route Tabla completa de enrutamiento
show ip route ospf Rutas instaladas por OSPF
show ip ospf neighbor Vecinos OSPF
show ip ospf database Base de datos de estado de enlace
show ip ospf interface brief Interfaces y costes OSPF
show ip bgp summary Estado de las sesiones BGP
show ip bgp Prefijos y atributos BGP
show ip bgp neighbors Información de los vecinos BGP
show ip route bgp Rutas BGP instaladas
show ip protocols Protocolos de routing activos
ping Comprobación de conectividad
traceroute Recorrido hacia un destino

Hay algo que merece la pena tener presente: una ruta puede aparecer en la tabla BGP y no estar instalada en la tabla IP. Por eso conviene consultar ambas cuando analizamos problemas.

Y tampoco debemos olvidar la conectividad de retorno. Un router puede conocer perfectamente cómo llegar a un destino, pero si el equipo remoto no tiene una ruta de vuelta, la comunicación no funcionará correctamente.


6. ¿Cuál utilizaría en una red real?

Después de montar los tres laboratorios, la elección resulta más sencilla.

Si necesito conectar distintas redes dentro de una empresa, con routers redundantes y rutas que se adapten automáticamente a los cambios, OSPF es una opción muy razonable.

Si necesito intercambiar prefijos entre sistemas autónomos, trabajar con varios proveedores o aplicar políticas de enrutamiento, BGP ofrece las herramientas apropiadas.

Y cuando la infraestructura crece, ambos protocolos pueden trabajar perfectamente juntos.

Esto no significa que debamos configurar OSPF o BGP en cualquier red.

En una pequeña oficina con un router y dos conexiones de fibra, probablemente baste con rutas estáticas, seguimiento de conectividad y las funciones de failover del firewall.

La elección del protocolo debe responder a las necesidades de la topología, no a su complejidad aparente.

Para las prácticas he utilizado configuraciones IPv4 unicast con la sintaxis clásica de Cisco IOS. Dependiendo de la versión IOS XE, BGP puede configurarse dentro de address-family ipv4 unicast, y algunos equipos requieren activar los vecinos explícitamente mediante neighbor ... activate.

Los ejemplos utilizan ASN privados y redes de laboratorio. En una conexión BGP real a Internet también necesitaríamos políticas de filtrado, validación de rutas y controles adicionales de seguridad.