2 salidas a internet, 2 rutas por defecto

Todo esto viene a cuento de un error que nos empezó a dar … «reverse path check fail, drop» al hacer una publicación desde una ip de la «segunda salida a Internet».

Hasta este momento teníamos puesta una ruta por defecto hacia la salida principal y rutas por origen desde algunas ips hacia la secundaria.

10.10.10.10 ->0.0.0.0 -> gateway de la segunda linea.

El caso es que necesitábamos publicar una ip del rango de la linea secundaria y fallaba.

Lo raro del tema es que no aparecía nada en el log.

El caso es que, según la documentación de FG.

«If the FortiGate is running in NAT mode, verify that all desired routes are in the routing table : local subnets, default routes, specific static routes, dynamic routing protocol.
The Fortigate will drop packets in case of RPF check failure (see related article at the end of this page Details about RPF (Reverse Path Forwarding), also called Anti Spoofing, on FortiOS )»

Y ademas …

«The FortiGate implements a mechanism called RPF (Reverse Path Forwarding), or Anti Spoofing, which prevents an IP packet to be forwarded if its Source IP does not either:
belong to a locally attached subnet (local interface), or be in the routing of the FortiGate from another source (static route, RIP, OSPF, BGP) If those conditions are not met, the FortiGate will silently drop the packet.».

Vamos que tira el paquete y encima se calla como una P***.

Que haga drop vale… pero que se calle … en fin.

A esta conclusión llegamos después de:

– poner el sniifer en la pata de Internet-2 y ver que el paquete llegaba.
– poner el sniffer en la pata interna y ver que el paquete no pasaba por allí, así que estaba claro que el FG se lo estaba comiendo.
– poner en sniffer de flows para ver que estaba pasando …

Y a partir de ahí …

Pusimos una ruta para llegar a la ip publica desde la que estábamos haciendo la prueba. Esto funcionó, pero no nos valía (porque tenia que estar visible desde Internet). Asi que, pusimos una ruta por defecto hacia ese segundo interface y todo empezó a funcionar.

Entonces la cosa queda así:

– Ruta por defecto hacia el interface Internet 1 (que es como estaba antes)
– Rutas por origen para maquinas que tienen que salir por internet 2 (solo nats de salida)
– Ruta por defecto hacia el interface Internet 2 (para que funcione el NAT de entrada desde Inet2).

Raro … raro. Pero funciona

Actualizo el post … aunque ahora debería de llamarse … 3 salidas a Internet, 3 rutas por defecto. Todo sigue siendo valido … pero ahora hay que añadir que cada ruta por defecto tiene que tener un peso distinto …

La de verdad peso 0, y las nuevas 3 y 6. Si pones dos con el mismo peso se vuelve medio loco y empieza a tirar el trafico por el puñetero «Reverse Path Forwarding». y, por supuesto … el log calladito … para verlo hay que tirar de sniffer.

http://www.securelinks.net/1376/fortinet-fortigate-multi-wan-basic-setup-and-tips/ un articulo en el que hablan de algo parecido … en nuestro caso no hacemos balanceo … solo routing a demanda de los usuarios.