Publicado en

Configuración de BGP sobre VPN Site-to-Site en FortiGate

Cuando se despliega una VPN Site-to-Site entre sedes, lo habitual es empezar utilizando rutas estáticas. Es una solución sencilla y funcional, pero que se complica a medida que se añaden más ubicaciones o cambian las redes.

En este escenario partimos de una infraestructura ya operativa:

  • VPN Site-to-Site entre un HUB y dos Spokes.
  • Conectividad funcionando correctamente.
  • SD-WAN desplegado en los Spokes.

El objetivo es sustituir las rutas estáticas por BGP, manteniendo la conectividad y simplificando la gestión de rutas.


Problema a resolver

En un entorno con varias sedes, gestionar rutas estáticas implica:

  • Configurar rutas manualmente en cada equipo.
  • Mantenerlas actualizadas ante cualquier cambio.
  • Riesgo de inconsistencias entre dispositivos.

Además, si se añaden más enlaces, como puede ser una segunda VPN, la complejidad aumenta rápidamente.


Enfoque

La idea es sencilla:

  • Establecer una sesión BGP entre el HUB y cada Spoke.
  • Anunciar las redes locales de cada sede.
  • Permitir que el HUB centralice el intercambio de rutas.

De esta forma, se evita la gestión manual y se prepara el entorno para crecer.


Escenario

El entorno está formado por:

  • Un HUB.
  • Spoke 1.
  • Spoke 2.
  • VPN IPsec entre el HUB y cada Spoke.

Configuración mediante GUI

La configuración de BGP se realiza desde:

  • Network > BGP

En caso de que esta opción no esté disponible, tendremos que ir a System > Feature Visibility para activarla:

Esta opción habilitará, dentro del menú Network, las características de BGP y Routing Objects.


HUB

En el HUB se configura el AS local y se añaden los vecinos correspondientes a cada Spoke.

Parámetros principales:

  • Local AS: 65002.
  • Router ID: 10.100.1.1.

Spoke 1:

  • Local AS: 65002.
  • Vecino: 10.100.1.2.

Spoke 2:

  • Local AS: 65002.
  • Vecino: 10.100.1.3.

Configuración

Antes de comenzar con la configuración de BGP, será necesario crear dos objetos que vamos a utilizar. Primeramente mostraremos la creación mediante la CLI y seguidamente mediante la GUI de FortiGate:

HUB:

En este escenario se utilizan Route-Maps y Prefix-Lists para controlar qué rutas pueden anunciarse mediante BGP.

  • ROUTE MAP:

Un Route-Map permite aplicar filtros o modificaciones sobre las rutas antes de anunciarlas.

En este caso se utiliza para:

  • Permitir determinadas interfaces.
  • Evitar anunciar rutas provenientes de la WAN.
  • Filtrar tráfico no deseado.
config router route-map
    edit "OVERLAY_OUT"
        config rule
            edit 1
                set match-interface "Mgmt_Loopback"
                unset set-ip-prefsrc
            next
            edit 2
                set action deny
                set match-interface "port1"
                unset set-ip-prefsrc
            next
            edit 3
                set match-ip-address "BGP_OUT"
                unset set-ip-prefsrc
            next
        end
    next
end
  • PREFIX LIST:

Las Prefix-Lists permiten filtrar prefijos IP específicos.

En este laboratorio se utilizan para impedir el aprendizaje o anuncio de determinadas rutas mediante BGP.

config router prefix-list
    edit "BGP_OUT"
    next
end

Una vez creados los objetos, comenzamos con la configuración básica:

  • BGP:
config router bgp
    set as 65502
    set router-id 10.100.1.1
    set keepalive-timer 5
    set holdtime-timer 30
    set ibgp-multipath enable
    set additional-path enable
    set graceful-restart enable
    config neighbor-group
        edit "INET1_Overlay"
            set next-hop-self enable
            set remote-as 65502
        next
    end
    config neighbor-range
        edit 1
            set prefix 192.168.216.0 255.255.255.0
            set neighbor-group "INET1_Overlay"
        next
    end
    config redistribute "connected"
        set status enable
        set route-map "OVERLAY_OUT"
    end
    config redistribute "rip"
    end
    config redistribute "ospf"
    end
    config redistribute "static"
        set status enable
        set route-map "OVERLAY_OUT"
    end
    config redistribute "isis"
    end
    config redistribute6 "connected"
    end
    config redistribute6 "rip"
    end
    config redistribute6 "ospf"
    end
    config redistribute6 "static"
    end
    config redistribute6 "isis"
    end
end
  • BGP:
  • Neighbors:
  • Neighbor Groups:

FortiGate permite agrupar vecinos BGP mediante Neighbor Groups.

Esto resulta especialmente útil cuando existen múltiples vecinos con configuraciones similares, evitando repetir parámetros manualmente.

  • Neighbor Ranges:

Por otro lado, Neighbor Range permite aceptar automáticamente vecinos dentro de un rango determinado de IPs, asociándolos al grupo correspondiente.

Este enfoque simplifica la configuración y facilita la escalabilidad en entornos HUB & Spoke.

  • Networks:
  • IPv4 Redistribute:
  • Dampening:
  • Graceful Restart:
  • Advanced Options:
  • Best Path Selection:

En la configuración anterior se han utilizado varios parámetros adicionales que conviene explicar:

  • set keepalive-timer 5: Define cada cuántos segundos se envían mensajes Keepalive entre vecinos BGP para comprobar que la sesión sigue activa.
  • set holdtime-timer 30: Tiempo máximo que se esperará sin recibir Keepalives antes de considerar caída la sesión BGP.
  • set ibgp-multipath enable: Permite instalar múltiples rutas BGP hacia el mismo destino cuando tienen el mismo coste.
  • set additional-path enable: Permite anunciar múltiples rutas para un mismo prefijo, mejorando escenarios con varios caminos disponibles.
  • set graceful-restart enable: Ayuda a mantener las rutas temporalmente durante reinicios del proceso BGP, reduciendo cortes de tráfico.
  • set next-hop-self enable: Hace que el FortiGate anuncie su propia IP como siguiente salto (next-hop) hacia otros vecinos BGP.
  • set soft-reconfiguration enable: Permite refrescar políticas BGP sin necesidad de reiniciar completamente la sesión.
  • set update-source «VPN_INET1»: Fuerza a utilizar la interfaz indicada como origen de la sesión BGP.

Spoke 1:

  • ROUTE MAP:
config router route-map
    edit "DENEGAR_WAN"
        config rule
            edit 1
                set match-interface "Mgmt_Loopback"
                unset set-ip-prefsrc
            next
            edit 2
                set action deny
                set match-interface "port1"
                unset set-ip-prefsrc
            next
        end
    next
end
  • PREFIX LIST:
config router prefix-list
    edit "DENEGAR_BGP"
        config rule
            edit 1
                set action deny
                set prefix any
                unset ge
                unset le
            next
        end
    next
end
  • BGP:
config router bgp
    set as 65502
    set router-id 10.100.1.2
    set keepalive-timer 5
    set holdtime-timer 30
    set ibgp-multipath enable
    set additional-path enable
    config neighbor
        edit "192.168.216.1"
            set next-hop-self enable
            set soft-reconfiguration enable
            set interface "VPN_INET1"
            set prefix-list-in "DENEGAR_BGP"
            set remote-as 65502
            set update-source "VPN_INET1"
        next
    end
    config redistribute "connected"
        set status enable
        set route-map "DENEGAR_WAN"
    end
    config redistribute "rip"
    end
    config redistribute "ospf"
    end
    config redistribute "static"
    end
    config redistribute "isis"
    end
    config redistribute6 "connected"
    end
    config redistribute6 "rip"
    end
    config redistribute6 "ospf"
    end
    config redistribute6 "static"
    end
    config redistribute6 "isis"
    end
end
  • BGP:
  • Neighbors:
  • Neightbor Groups:
  • Neighbor Ranges:
  • Networks:
  • IPv4 Redistribute:
  • Dampening:
  • Graceful Restart:
  • Advanced Options:
  • Best Path Selection:

Spoke 2:

  • ROUTE MAP:
config router route-map
    edit "DENEGAR_WAN"
        config rule
            edit 1
                set match-interface "Mgmt_Loopback"
                unset set-ip-prefsrc
            next
            edit 2
                set action deny
                set match-interface "port1"
                unset set-ip-prefsrc
            next
        end
    next
end
  • PREFIX LIST:
config router prefix-list
    edit "DENEGAR_BGP"
        config rule
            edit 1
                set action deny
                set prefix any
                unset ge
                unset le
            next
        end
    next
end
  • BGP:
config router bgp
    set as 65502
    set router-id 10.100.1.3
    set keepalive-timer 5
    set holdtime-timer 30
    set ibgp-multipath enable
    set additional-path enable
    config neighbor
        edit "192.168.216.1"
            set next-hop-self enable
            set soft-reconfiguration enable
            set interface "VPN_INET1"
            set prefix-list-in "DENEGAR_BGP"
            set remote-as 65502
            set update-source "VPN_INET1"
        next
    end
    config redistribute "connected"
        set status enable
        set route-map "DENEGAR_WAN"
    end
    config redistribute "rip"
    end
    config redistribute "ospf"
    end
    config redistribute "static"
    end
    config redistribute "isis"
    end
    config redistribute6 "connected"
    end
    config redistribute6 "rip"
    end
    config redistribute6 "ospf"
    end
    config redistribute6 "static"
    end
    config redistribute6 "isis"
    end
end

Verificación

Una vez aplicada la configuración, se debe comprobar que las sesiones están establecidas:

get router info bgp summary

Y revisar las rutas aprendidas:

get router info routing-table bgp

Eliminación de rutas estáticas

Una vez validado el funcionamiento de BGP:

  • Eliminar rutas estáticas.
  • Verificar que el tráfico sigue funcionando.

Es recomendable hacerlo de forma progresiva.


Consideraciones

Antes de aplicar cambios en producción:

  • Verificar conectividad entre vecinos BGP.
  • Revisar que las redes anunciadas existen.
  • Evitar solapamientos de direccionamiento.
  • Validar primero en un subconjunto de equipos.

Integración con SD-WAN

En este caso, los Spokes ya disponen de SD-WAN.

Esto permite, en un futuro:

  • Añadir una segunda VPN.
  • Establecer múltiples sesiones BGP.
  • Utilizar SD-WAN para seleccionar el mejor camino.

Problemas típicos

  • BGP no levanta → falta de conectividad o puerto TCP/179 bloqueado.
  • Sesión establecida pero sin rutas → falta network.
  • Rutas no se instalan → conflicto con rutas estáticas.
  • Spokes no se ven entre sí → el HUB no anuncia correctamente.

Conclusión

El uso de BGP sobre una VPN Site-to-Site permite simplificar la gestión de rutas en entornos con múltiples sedes.

Frente a un enfoque basado en rutas estáticas, el enrutamiento dinámico facilita la escalabilidad y reduce la carga operativa.

Ingeniero informático enfocado principalmente en sistemas, redes y ciberseguridad. Actualmente compagino mi actividad profesional con la docencia y la investigación en Machine Learning sobre arquitecturas serverless. Me gusta diseñar soluciones eficientes y explorar nuevas formas de desplegar infraestructuras en cloud.

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

WordPress Appliance - Powered by TurnKey Linux