Cómo solucionar el problema de preferencia de vecinos BGP por preferencias locales en Fortinet

Este artículo aborda cómo la configuración de FortiGate puede influir en la selección del vecino preferido cuando recibe el mismo prefijo de diferentes vecinos BGP mediante el uso de preferencias locales. Es crucial entender este comportamiento para optimizar la conectividad y el rendimiento de la red. A continuación, se presentará un diagnóstico detallado del problema y se recomendará una solución práctica.

Descripción del problema

Cuando un dispositivo FortiGate tiene múltiples vecinos BGP que proporcionan rutas con los mismos prefijos, puede ser complicado determinar cuál de estas rutas debe ser seleccionada para el enrutamiento. La utilización de preferencias locales permite a los administradores definir cuál vecino se debe preferir al recibir rutas redundantes.

Alcance

Este artículo se aplica a todas las versiones de FortiOS en dispositivos FortiGate.

Diagnóstico paso a paso

Para entender cómo FortiGate elige el vecino preferido, seguimos estos pasos:

  1. En este ejemplo, FortiGate tiene dos vecinos BGP:
  2. FortiGate-50E # get router info bgp summary
    BGP router identifier 192.168.138.1, local AS number 65001
    BGP table version is 5
    1 BGP AS-PATH entries
    0 BGP community entries
    
    Neighbor        V         AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
    192.168.138.3   4      65001    1656    1662        4    0    0 00:50:52        1
    192.168.138.5   4      65001      89     89        3    0    0 00:50:38         1
    
    Total number of neighbors 2
  3. Recibe la misma ruta 192.168.1.0 de ambos vecinos:
  4. FortiGate-50E # get router info bgp neighbors 192.168.138.3 received-route
    BGP table version is 5, local router ID is 192.168.138.1
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight RouteTag Path
    *>i192.168.1.0      192.168.138.3                100      0        0 i <-/->
    FortiGate-50E # get router info bgp neighbors 192.168.138.5 received-route
    BGP table version is 5, local router ID is 192.168.138.1
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight RouteTag Path
    *>i192.168.1.0      192.168.138.5                100      0        0 i <-/->
  5. FortiGate prefiere el vecino con el menor ID de router BGP: Si todos los atributos son iguales, FortiGate selecciona la ruta del vecino con el ID de router BGP más bajo. Por lo tanto, la ruta del vecino 192.168.138.3 será elegida y añadida a la tabla de enrutamiento activa.
  6. FortiGate-50E # get router info routing-table all
    Routing table for VRF=0
    Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
           O - OSPF, IA - OSPF inter area
           N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
           E1 - OSPF external type 1, E2 - OSPF external type 2
           i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
           * - candidate default
    
    S*      0.0.0.0/0 [10/0] via 10.9.15.254, wan1
    C       10.9.0.0/20 is directly connected, wan1
    C       169.254.1.0/24 is directly connected, fortilink
    C       172.16.1.0/24 is directly connected, lan
    B       192.168.1.0/24 [200/0] via 192.168.138.3, wan2, 00:00:29  
    C       192.168.138.0/24 is directly connected, wan2
  7. Si el usuario prefiere el vecino 192.168.138.5, la preferencia local en el mapa de rutas puede usarse para establecer vecinos preferidos. Es necesario configurar una preferencia local más alta para el vecino 192.168.138.5 en comparación a 192.168.138.3.
Artículos relacionados  Cómo resolver el tráfico auto-origen a través de un túnel IPsec sin usar Loopback en Fortinet

Solución recomendada

A continuación, se detallan los pasos para configurar las preferencias locales en FortiGate:

  1. Configurar la lista de prefijos:
  2. FortiGate-50E (prefix-list) # show
    config router prefix-list
        edit "prefix-test"
            config rule
                edit 1
                    set prefix 192.168.1.0 255.255.255.0
                    unset ge
                    unset le
                next
            end
        next
    end
  3. Configurar el mapa de rutas:
  4. FortiGate-50E (route-map) # show
    config router route-map
        edit "route-map-prefer-200"
            config rule
                edit 1
                    set match-ip-address "prefix-test"
                    set set-local-preference 200  
                next
            end
        next
        edit "route-map-prefer-100"
            config rule
                edit 1
                    set match-ip-address "prefix-test"
                    set set-local-preference 100   
                next
            end
        next
    end
  5. Configurar el mapa de rutas en BGP:
  6. FortiGate-50E (bgp) # sh
    config router bgp
        set as 65001
        set router-id 192.168.138.1
        set network-import-check disable
            config neighbor
                edit "192.168.138.3"
                    set soft-reconfiguration enable
                    set remote-as 65001
                    set route-map-in "route-map-prefer-100"  
                    set update-source "wan2"
                next
                edit "192.168.138.5"
                    set soft-reconfiguration enable
                    set remote-as 65001
                    set route-map-in "route-map-prefer-200"   
                    set update-source "wan2"
                next
            end
            config network
                edit 1
                    set prefix 192.168.20.0 255.255.255.0
                next
            end
    end
  7. Consulta la tabla de enrutamiento activa para confirmar los cambios:
  8. FortiGate-50E # get router info routing-table all
    Routing table for VRF=0
    Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
           O - OSPF, IA - OSPF inter area
           N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
           E1 - OSPF external type 1, E2 - OSPF external type 2
           i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
           * - candidate default
    
    S*      0.0.0.0/0 [10/0] via 10.9.15.254, wan1
    C       10.9.0.0/20 is directly connected, wan1
    C       169.254.1.0/24 is directly connected, fortilink
    C       172.16.1.0/24 is directly connected, lan
    B       192.168.1.0/24 [200/0] via 192.168.138.5, wan2, 00:00:09   
    C       192.168.138.0/24 is directly connected, wan2

Comandos CLI utilizados

Se han utilizado los siguientes comandos CLI a lo largo del proceso:

  • get router info bgp summary
  • get router info bgp neighbors received-route
  • get router info routing-table all
  • Comandos para configuraciones en prefix-list y route-map en BGP, como config router route-map y set.

Buenas prácticas y recomendaciones

Es recomendable realizar copias de seguridad de la configuración antes de realizar cambios significativos. Además, asegúrese de documentar todas las modificaciones realizadas en las políticas de enrutamiento para facilitar futuras referencias y auditorías. Mantenga un ambiente controlado de prueba antes de implementar cambios en el entorno de producción.

Notas adicionales

La utilización de preferencias locales puede ser una herramienta poderosa en la gestión de rutas BGP. Comprender cómo FortiGate toma decisiones y cómo se pueden influir estas decisiones mediante configuraciones administrativas es clave para una estrategia efectiva de enrutamiento.

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Your email address will not be published. Required fields are marked *