Sei sulla pagina 1di 6

Fortigate Infraestructure

@Routing

*Routing on fortigate
-Un fortigate en modo NAt actua como router capa 3
-Para cualquier sesion fortigate realiza un chequeo de la tabla de enrutamineto 2
veces: una para el primer paquete neviado por el originador y otra para el primer
paquete de respuesta enviado por el respondedor
-En base a esos dos chequeos el FG escribe en la tabla de sesion lainformacion de
enrutamiento para esos paquetes.
-los objetos del tipo IP/Netmask y FQDN pueden ser usados para rutas estaticas si
tienen encendida la configuracion "static routes configuration"
-En enrutamiento dinamico fortigate soporta: RIP, OSPF, BGP Y IS-IS (Configurable
desde CLI).
-Las rutas basadas en politicas configuradas como "Forward Traffic" tienen
precedencia sobre las rutas estaticas y dinamicas.
-Para que se valide una ruta basada en politica se devben cumplir todas las
especificaciones.
-Las rutas basadas en politicas pueden especificar protocolo, direccion de origen,
puertos de origen, puertos de destino y tipo de servicio.
-Las rutas basadas en politicas se almacenan en una tabla de enrutamiento a parte y
tienen precedencia sobre la tablade enrutamineto regular.
-Las rutas basadas en politicas pueden hacer dos acciones: Enviar el trafico si se
cumple, o dejar de revisarlo y pasarselo a la tabla de enrutamiento normal.
-La Internet Services Data Base (ISDB) de fortinet permite crear rutas estaticas
con servicios de internet de manera sencilla. Ya que contiene las IPs, protocolos y
puertos de los servicios de internetr mas populares.
-La politicas Basadas en ISDB tienen precedencia sobre las demas rutas en la tabla
de enrutamiento.
-Las configuraciones para ipv6 vienen desactivadas por defectos. Para usarlas en el
gui hay que activarlas en el feature visibility. esto permite hacer configuraciones
por GUI de IPv6 y crear rutas estaticas y politicas ipv6.

*Routing monitor and route attributes


-La opcion de routing monitor solo muestra las rutas activas.
-Las rutas basadas en politicas y ISDB se muestran en otra pesta�a en el mismo
routing monitor. "Policy"
-En el routing monitor se muestran las rutas estaticas, las rutas directamente
conectadas y las rutas dinamicas.
-Cuando se le asigna una subred a una interfaz del FG se agrega una ruta
directamente conectada a la tabla de enrutamiento.
-Para que se agrege la ruta directamente conectada debe haber conectividad a nivel
de capa 2, es decir que si la interface esta down no se agrega la ruta.
-El FG puede recibir rutas de otros routers mediante protocolos de enrutamiento
dinamico, en el routing monitor estas rutas aparecen con su respectivo nombre de
protocolo.
-Las rutas inactivas no son mostradas en el routing monitor. Si la interface esta
down y no hay conectividad a nivel de capa 2 se considera esa ruta como inactivay
no sera agregada a la tabla de enrutamiento.
-Las rutas basadas en politicas e ISDB son mostradas en otra tabla, policy route
monitor.
-Cada ruta en la tabla de enrutamiento tiene los siguientes atributos: network o
red de destino, gateway ip, interface que se va a usar para enviar el paquete,
distancia, metrica y prioridad.
-Por defecto la columna de la metrica esta oculta, se activa con click derecho.
-Para ver la tabla de enrutamiento en el CLI
get router info routing-table all
-La distancia se usa para priorizar rutas, menor distancia significa mayor
preferencia.
-Si existen varias rutas con el mismo destino, aquella con la menor distancia sera
la activa, minetras que las demas seran rutas inactivas y no son agregadas a la
tabla de enrutamiento.
-Las distancias de los protocolos dinamicos van a depender de que tan certero sean,
mientras mas certeros menor distancia.
-Las distancia spor defecto de las distintas rutas en fortigate son las siguientes:
-0 para las rutas directamente conectadas
-5 para los gateways DHCP
-20 para rutas BGP externas (EBGP)
-200 Para rutas BGP Internas (IBGP)
-110 para rutas OSPF
-120 para rutas RIP
-10 para rutas estaticas
-La metrica es utilizad por los protocolos de enrutamineto dinamicos para
determinar la mejor ruta hacia un destino.
-Si multiples rutas dinamicas tienen la misma distancia, se usa la metrica para
romper el empate. La menor metrica gana
-El calculo de la metrica varia entre protocolos. por ejemplo RIP usa saltos y OSPF
usa costo.
-La prioridad es utilizada por rutas estaticas cuando la distancia es la misma
-Si multiples rutas estaticas a un mismo destino tienen la misma distancia, todas
se consideran activas en la tabla de enrutamiento. Pero solo aquella con la menor
prioridad es considerada como la mejor ruta.
-Por defecto todas las rutas estaticas tienen una prioridad de 0
-La prioridad es solo aplicable a las rutas estaticas
-Enetendiendo las rutas en CLI

0.0.0.0 [10 / 0] via 172.25.176.1, portx


[25 / 0]
------- ----------- -------- --------------
--------- -------
red distancia metrica gateway o ruta
prioridad Peso

*Equal Cost Multipath (ECMP) Routing


-ECMP sucede cuando multiples rutas estaticas, rutas OSPF o BGP tienen los mismos
atributos y todas son activas, y lo que sucede es que el FG distribuye el trafico
entre ellas.
-Para que las rutas sean consideradas para ECMP deben coincidir en los siguientes
valores: Subred de destino, distancia, metrica y prioridad.
-ECMP tiene varios metodos:
-IP de origen: Este es el metodo por defecto. Consiste en que las sesiones
provenientes de la misma IP orige usan la misma ruta.
-IP origen-destino: Las sesiones con la misma ip de origen y destino utilizan
la misma ruta
-Peso: Las sesiones son dristribuidas en base a la ruta o peso de las
interfaces. Para elegir una ruta el fortigate genera numeros aleatorios
correspondiente a las rutas,Las rutas con mayor peso tendran mas posiblidades
para ser elegidas.
-Uso(Spillover):Se utiliza una ruta hasta que el umbral de volumen para dicha
ruta esalcanzado, luego se usa la ruta que sigue.
-Si una de las rutas ECMP falla o es removida de la tabla de enrutamiento, el
trafico sera enrutado por las rutas restantes. No se necesita una configuraion
especifica para failover.
-Para elegir que metodo de ECMP utilizar se hace mediante el CLI de la siguuiente
manera:
#config system settings
#set v4-ecmp-mode [source-ip-based | weight-based | usage-based | source-
dest-ip-based ]
#end
-Para el metodo basado en peso, el peso puede ser configurada por interfaces o por
rutas mediante el CLI:
#config system interface
#edit <interface name>
#set weight <0 to 255>
#end

#config router estatic


#edit <id>
#set weight <0 to 255>
#end
-Para el metodo de spillover, los umbrales son configurados via CLI:
#config system interface
#edit <interface name>
#set spillover-threshold <0 to 16776000>
end
-ECMP permite tener multiples enlaces a un mismo destino como una forma de failover
intrinseco
-Ademas de failover, permite aprovechar el ancho de banda, ya que puede balancear
la carga mediante las distintos enlaces.
-Para load balancing con ECMP en las politicas hayq ue permitir el trafico de los
paquetes mediante los distintos enlaces
-Aunque ECMP se puede usar para mantener multiples enlaces a internet, es mas
eficiente usar SD-WAN para los enlaces WAN
-ECMP es mejor para recursos internos

*Reverse Path Forwarding(RPF)


-RPF protege contra ataques IP Spoofing
-Se chequea la direccion IP de origen en la tabla de enrutamiento en busca de un
camino de retorno
-RPF solamente se lleva a cabo en las suiguiente ocasiones;
-para el primer paquete de la sesion, no en la respuesta
-el proximo paquete en la direccion original luego de que una ruta cambia, en
en una respuesta
-RPF tiene dos metodos:
-Loose o flojo
-Strict:
-En el caso de que hayan 2 enlaces de salida hacia internet,para no fallar RPF es
recomendable hacer dos rutas estaticas por defectos por estos enlaces, deben tener
ambos la misma distancia para ser activos,pero con distintas prioridades para
evitar ECMP. Aquel con la prioridad menor sera considerado la mejor rutra.Esto se
hace Para evitar fallar el RPF.
-En el caso de los dos enlaces a internet, la mejor ruta sera utilizada para
trafico saliente. Pero ambos pueden recibir trafico entrante sin fallar el chequeo
RPF
-El metodo por defecto es el loose o flojo. Para camabiar entre metodos se utiliza
CLI:
#config system setting
#set strict-src-check [diable | enable]
#end
-RPF Loose: Solo revisa la existencia de al menos una ruta activa de regreso a la
fuente mediente la interfaz de llegada.
-RPF strict: chequea que la mejor ruta de regreso a la fuente es la que use la
interfaz interna. No basta con estar activa, debe ser la mejor.
-Hay dos maneras de desabilitar el chequeo RPF
-habilitando el routing asimetrico, lo que desabilita el RPF pero esto es un
riesgo de seguridad. antivirus y IPS quedan sin efecto.
-Descativando el chequo RPF a nivel de la interfaz
#config system interface
#edit <interface>
#set src-check [enable | disable]
#end
-Se recomienda usar loose RPF porque el estricto puede causar falsos positivos

*Best Practices
-Link Health Monitor -------> LHM
-Link Health Monitor es un mecanismo que detecta cuando un router esta abajo dentro
de una ruta. Esto lo hace probando periodicamente con un servidor detras del
gateway.
-Si el fortigate no recibe respuestas dentro del umbral de failover, todas las
rutasa estaticas que estan utilizando dicho gateway son removidas de la tabla de
enrutamiento. Si hay rutas de standby disponibles, el fortigate las activas y las
usa en vez de las caidas. Alternativamente se puede configurar el equipo para que
tumbe una interface, y de esa manera todas las rutas que utilicen dicha interfaz
sean removidas.
-Mientras una ruta monitoreada es removida, el fortigate va a continuar enviando
se�ales LHM, desde que el equipo reciba una respuesta de estas se�ales reactivara
las rutas asociadas.
-LHM es un metodo para failover cuando no se esta usando ECMP.
-Normalmente es utilizado cuando hay rutas redundantes como enlaces ISP duales.
-Manda periodicamente una senal de prueba a un servidor mediante el gateway, el
servidor puede ser cualquier host que normalmente sea alcanzado por la ruta.
-Es recomendable elegirpor cual protocolo el servidor va a responder a la se�al de
prueba. Por ejemplo debe ser un host que puedaser alcanzado por el ISP por ejemplo,
8.8.8.8
-Puede ser eficiente usar un servidor que no este exactemente atado al gateway,
sino uno o dos saltas luego. Esto ayuda a probar la disponibilidad no solo de ese
gateway sino de unos cuantos mas y garantizar con mayor eficencia la disponibilidad
del servicio.
-Para configurar LHM mediante CLI se hace lo siguiente:
#config system link-monitor
#edit <name>
#set srcintf <interface> (egress interface)
#set server <server ip>
#set gateway-ip <gateway ip>
#set protocol [ ping | tcp-echo | udp-echo | twamp | http ]
#set update-static-route [enable | disable] (remueve las rutas asociadas a
la srcintf si llegase a estar fuera de servicio, posibilitando failover)
#next
#end
-Se pueden configurar multiples LHM, por ejemplo, uno para cada enlace ISP
-En el caso en el que solo se quiera usar un ISP como emergencia, porque cobra
mucho por ejemplo (un ISP postpago), no se desea usar ECMP. Una opcion para
failover d eemergencia es usar LHM en conjunto con la distancia administrativa,
para que el segundo enlace solo trabaje en caso de que el primero no lo haga.
-Buena spracticas en el diseno de redes:
-Disenar redes contiguas, es decir usar mascaras. Ya que si no se hace asi
pueden solaprse las redes. Enfrentar redes discontiguas con rutas estaticas puede
ser un gran problema. Aveces se necesita NAT para permitir el flujo de trafico

-si existen multiples caminos hacia un solo destino asegurese de usar el


atributo de distancia para asegurarse que solo una este activa
-cuidado, si se activa el enrutamiento asimetrico, se desactiva el stateful
inspection del fortigate
-El trafico asimetrico es un gran problema, este se refiere a cuando los
paquetes perteneciantes a una misma sesion, viajan por distintas ruutas para
alcanzar un destino.
-Otra buena practica es tratar de sumarizar las rutas de host hacia una superred.
Esto reducira los tiempos y esfuerzos en el route table lookup:
-En vez de tener varias rutas con subnet de mascara 32, sumarizar:
-ej: 10.4.0.100/32, 10.4.0.201/32, 10.4.0.69/32, 10.4.0.97/32 ---->
10.4.0.0./24
-ej: 10.4.0.29/32, 10.4.0.30/32 -----> 10.4.0.28/30
-Configurar policy routes como excepciones a la tabla de enrutamiento, ya que
muchas policy routes son dificiles de hacer trobleshooting. Ademas las policy
routes sobreescriben la tabla de enrutamiento.
-Si no es posinle el ECMP, usar LHM en conjunto con las distancia administrativas
-para verificar por que interfaz esta saliendo el trafico, en la seccion de log &
report, en foward traffic podemos fijarnos en la columna de interfaz de destino. De
no estar activa, se puede habilitar esta columna con click derecho. Cable aclarar
que si las politicas no generan logs, esta informacion no sera visible

*Diagnostics
-Para mostrar todas las rutas activas, se escribe lo siguiente en el CLI:
#get router info routing-table all
-Las rutas estaticas usan los siguientes atributos: distancia, prioridad, peso
-Las rutas dinamicas usan los siguientes atributos: distancia, mestrica
-Para mostrar todas las rutas activas e inactivas, se escribe lo siguiente en el
CLI:
#get router info routing-table database
-Las rutas que salen con *> en el CLI, corresponden a las rutas activas.
-Las policy routes no son mostradasn en la tabla de enrutamiento, sino que se
muestran en la tabla de policy routes. Para visualizar se usa el siguiente comando
en CLI:
#diagnose firewall proute list
-La captura de paquetes puede ser utilizada para verificar la ruta de ingreso o
salida de paquetes. Para realizar una captura se utiliza el siguiente comando en
CLI:
#diagnose sniffer packet
<interface>'<filter>'<verbosity><count><timestamp><frame size>
-<interface> puede ser cualquier interfaz o una en especifico, por ej puerto
1 o internal1
-<filter> sigue el formato tcpdump
-<level> especifica que tanta informaci�n se va a capturar
-<count> numero de paquetes a capturar
-<timestamp> imprime informacion timestamp
-a: imprime timestamp absoluto
-l: imprime timestamp local
-<frame size> especifica la longitud, hasta un maximo de 65K
-Desde el perfil de super admin se puede elegir "any" en la interface. Si se
usa any en la interfaz, el frame size se pone por defecto en 1600 bytes
-Nivel de Verbosity en las capturas de paquetres que tanta informacion se quiere
mostrar, los niveles son los siguientes:
1:IP Headers
2:IP Headers, packet payload
3:IP Headers, packet payload, internet headers
4:IP Headers, interface name (incoming and outgoing interface, ip adresses,
port numbers, type of packets)
5:IP Headers, packet payload, interface name
6:IP Headers, packet payload, internet headers, interface name
-los niveles mas comunes son:
-4: imprime las interfaces de entrada y de salida. Se puede verificar
como el trafico esta siendo enrutado, o si el FG esta dropiando paquetes
-3 o 6: imprime el payload de los paquetes. Estosnsniffer pueden
convertirse a archivos pcap para hacerse compatibles con analizadores de datos.
-Si no se especifica un nivel el sniffer utiliza el nivel 1 por defecto
-Ejemplo de captura por CLI:
#diagnose sniffer packet any 'port 443' 4 ----> todo el trafico desde o hacia
el puerto 443 con verbosidad 4. La informacion se muestra en una linea por paquete
#diagnose sniffer packet any 'host 192.168.1.254 and icmp' 3 ----> todo el
trafico ICMP desde o hacia 192.168.1.254 con verbosidad 3. Mas dificil de leer.
-Cuando se hacen las capturas por GUI se convierten automaticamente en archivos
compatibles con wiredshark.
-Captura por GUI solo esta disponible en equipos con almacenamiento interno
-

Potrebbero piacerti anche