Cómo solucionar problemas con reglas de firewall en FortiGate que utilizan múltiples IP pools para SNAT

Este artículo aborda un problema común en FortiGate relacionado con la asignación de NAT de salida (SNAT) cuando se configuran múltiples grupos de direcciones IP. Comprender cómo FortiGate maneja la sincronización y configuración de SNAT es esencial para garantizar una conectividad y un rendimiento óptimos de la red. A continuación, se proporcionarán soluciones y configuraciones recomendadas para resolver este problema.

Descripción del problema

FortiGate permite la configuración de múltiples grupos de direcciones IP en una regla de firewall. Esto es útil cuando se utilizan dos o más interfaces como interfaces de salida. Sin embargo, por defecto, FortiOS no elige el grupo de IP en función de la interfaz de salida, lo que puede complicar la configuración y generar problemas de conectividad. Este comportamiento solo se manifestará cuando el grupo de IP tenga el parámetro ‘set associated-interface <portx>’.

Alcance

Este artículo es aplicable a las versiones de FortiOS 5.x, 6.x y 7.x.

Diagnóstico paso a paso

Para diagnosticar problemas relacionados con SNAT y múltiples grupos de IP, asegúrate de realizar las siguientes configuraciones:

config firewall ippool
    edit "IPpool_1"
        set startip 192.168.0.99
        set endip 192.168.0.99
        set associated-interface "wan1"
    next
    edit "IPpool_2"
        set startip 192.168.0.100
        set endip 192.168.0.100
        set associated-interface "wan2"
    next
end

La regla de firewall debe estar configurada de la siguiente manera:

config firewall policy
       edit 1
           set name "main_rule"
           set uuid acf88a98-0d3a-51ee-354f-82a9c50a0cf2
           set srcintf "lan"
           set dstintf "wan1" "wan2"
           set action accept
           set srcaddr "all"
           set dstaddr "all"
           set schedule "always"
           set service "ALL"
           set logtraffic all
           set nat enable
           set ippool enable
           set poolname "IPpool_1" "IPpool_2"
       next
end

En este escenario, FortiGate realizará SNAT utilizando IPpool_1 cuando la interfaz de salida sea WAN1 y IPpool_2 cuando la interfaz de salida sea WAN2.

Artículos relacionados  Cómo resolver el problema de uso de ancho de banda de la política de firewall en el servidor Syslog en FortiGate

Solución recomendada

Si no se utiliza el parámetro de configuración ‘set associated interface <portx>’, FortiOS seleccionará el grupo de IP en función de la dirección IP de origen. Esto se determina exclusivamente por la dirección IP de origen y no por la interfaz de salida.

Ejemplo de configuración sin el parámetro asociado:

config firewall ippool
     edit "IPpool_1"
        set startip 192.168.0.99
        set endip 192.168.0.99
    next
    edit "IPpool_2"
        set startip 192.168.0.100
        set endip 192.168.0.100
    next
end

En este caso, la interfaz ‘wan1’ se comporta como principal y ‘wan2’ como reserva. FortiGate utilizará únicamente ‘wan1’ como interfaz de salida. La red 192.168.1.0/24 se encuentra detrás de la interfaz ‘lan’.

Comandos CLI utilizados

Los siguientes comandos son útiles para configurar y verificar el estado del SNAT:

  • config firewall ippool – Para crear y gestionar grupos de IP.
  • config firewall policy – Para definir políticas de firewall que utilizan estos grupos.

Buenas prácticas y recomendaciones

Es recomendable:

  • Asignar grupos de IP específicamente a las interfaces de salida utilizando set associated-interface.
  • Verificar la conectividad después de cada configuración a través de comandos de diagnóstico.
  • Documentar adecuadamente las configuraciones realizadas para facilitar el mantenimiento futuro.

Notas adicionales

El cálculo de la dirección IP mapeada se realiza utilizando la siguiente fórmula:

Used_IP_Pool = valor_decimal_IP |mod| direcciones_IP_Usables

Esto es crucial para entender cuál grupo de IP FortiGate elegirá en función de las direcciones IP de origen. Cada operación |mod| calcula el residuo cuando un número es dividido por otro.

Ejemplo de utilización de la fórmula:

Used_IP_Pool = 3232235898 |mod| 2 = 0

En este caso, el resultado ‘0’ significa que FortiOS seleccionará el primer grupo de IP, es decir, IPpool_1.

Artículos relacionados  Cómo solucionar el alto consumo de CPU del daemon 'node' al tener múltiples administradores conectados en la GUI de Fortinet

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

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