FortiGateGuías técnicas

Fortilink auto-discovery

Este post pretende clarificar el funcionamiento de Fortilink y el modo automático en que FortiGate detecta los FSW y los convierte en managed mode.

En ciertos casos es posible que por diseño se desee que ciertos switches sean gestionados por Fortilink mientras que otros se mantengan en modo standalone.

Este post clarifica los pasos necesarios para conseguir una configuración en la que se dispone de FortiGate, Core SW y Access SW.  La configuración objetivo es que los Core SW sean gestionados por Fortilink, mientras que los Access SW sean standalone.

Empecemos por el prinicpio: conceptos básicos de AUTO-ISL y FORTILINK-AUTO-DISCOVERY

 

LLDP Profile

Es el perfil de autodescubrimiento (teléfonos IP, CDP, fortilink, …)

  • Existen por defecto dos perfiles:
    • Default: con auto-isl disable
    • Default-auto-isl:forma trunks automáticamente cuando el otro extremo es Fortinet
S108DVX7FVAVSC1A # conf switch lldp profile

S108DVX7FVAVSC1A (profile) # edit default 

S108DVX7FVAVSC1A (default) # get

name                : default 

802.1-tlvs          : 

802.3-tlvs          : 

auto-isl            : disable 

auto-isl-hello-timer: 3

auto-isl-port-group : 0

 

S108DVX7FVAVSC1A (profile) # edit default-auto-isl 

S108DVX7FVAVSC1A (default-auto-isl) # get

name                : default-auto-isl 

802.1-tlvs          : 

802.3-tlvs          : 

auto-isl            : enable 

auto-isl-hello-timer: 3

auto-isl-port-group : 0

 

Los LLDP profiles se aplican a los puertos físicos (config switch physical-port) y NO a los interfaces (config switch interface)

S108DVX7FVAVSC1A # conf switch physical-port 

S108DVX7FVAVSC1A (physical-port) # edit port2

S108DVX7FVAVSC1A (port2) # show

config switch physical-port

    edit “port2”

        set lldp-profile “default-auto-isl

        set speed auto

    next

end

 

Cuando se aplica a un puerto el LLDP profile default-auto-isl y al otro extremo hay un switch fortinet, automáticamente se forma un trunk gracias al auto-isl (inter switch link)

S108DVX7FVAVSC1A # get switch lldp auto-isl-status

_______________________________________________________________

Local port: port1

No auto-isl peer has been detected

_______________________________________________________________

Local port: port2

  Peer            : S108DV-ZTR7TOQ66

  Peer Port       : port2

  Peer Port group  : 0

  in-trunk        : Yes

  trunk                 : 8DV-ZTR7TOQ66-0

rx-timeouts           : 0

valid-rx-pkts         : 245

all-rx-pkts           : 361

 

Vemos que se crea el trunk

S108DVX7FVAVSC1A # show switch trunk

config switch trunk

edit “8DV-ZTR7TOQ66-0”

set mode lacp-active

set auto-isl 1

set members “port2”             

next

end

 

Cuando se forma un trunk automático, desaparece la interfaz y en su lugar aparece una nueva interfaz trunk con el serial del otro extremo

S108DVX7FVAVSC1A # conf switch interface 

S108DVX7FVAVSC1A (interface) # show

config switch interface

 edit “port1”

  set auto-discovery-fortilink enable

  set snmp-index 1

 next

—————— port2 no aparece -> trunk automatico

 edit “port3”

  set auto-discovery-fortilink enable

  set snmp-index 3

 next

    edit “8DV-ZTR7TOQ66-0”

  set native-vlan 4094

  set edge-port disabled

  set igmps-flood-reports enable

  set igmps-flood-traffic enable

  set snmp-index 12

 next

end

Fortilink auto-discovery

  • oSe puede configurar a tres niveles:
    • En config system global:
    • En config switch global:manda sobre la config especifica de una interfaz
    • En config switch interfaces:cuando se activa “set auto-discovery-fortilink enable” sucede lo siguiente:
  1. El puerto físico asociado a la interfaz cambia automáticamente de lldp-profile a “default-auto-isl
config switch physical-port

    edit “port2”

set lldp-profile “default-auto-isl”

 

  1. Automáticamente se forma un ISL -> un Trunk entre Core y el Switch
  2. Desaparece la interfaz “port2” y aparece la interfaz trunk “8DV-ZTR7TOQ66-0” (el nombre se calcula según el serial del peer)
  3. La interfaz trunk como tal tiene fortilink autodiscovery desactivado con lo que se respetará lo que diga config switch global
    1. Si en config switch global, foritlink autodiscovery está disable: no se formará el fortilink
    2. Si en config switch global, fortilink autodiscovery está enable: Sí que se forma fortilink

PROCESO PARA ELIMINAR UN SWITCH DE FORTILINK CORRECTAMENTE Y QUE NO VUELVA A APARCER

Punto de partida:

  • Config switch physical-port -> edit port2 ->está en set lldp-profile “defult-auto-isl”
  • Config switch global ->está en set auto-fortilink-discovery enable
  • Existe un trunk si se hace show switch trunk o diagnose switch trunk summary
  • El switch está conectado a fortilink

  • El Fortigate tiene registrados tanto el SW core (S108DV-ZTR7TOQ66) como el de acceso (S108DVX7FVAVSC1A)
SDWAN-HUB #

SDWAN-HUB # conf switch-controller managed-switch

SDWAN-HUB (managed-switch) # get

== [ S108DV-ZTR7TOQ66 ]

switch-id: S108DV-ZTR7TOQ66

== [ S108DVX7FVAVSC1A

switch-id: S108DVX7FVAVSC1A

 

S108DVX7FVAVSC1A # get system global | grep fortilink

switch-mgmt-mode    : fortilink

PASO 1

En el SW 108 de acceso, cambiar el LLDP profile a default (sin auto-isl)

S108DVX7FVAVSC1A # conf switch physical-port

S108DVX7FVAVSC1A (physical-port) # edit port2

S108DVX7FVAVSC1A (port2) # show

config switch physical-port

 edit “port2”

  set lldp-profile “default-auto-isl”

  set speed auto

 next

end

S108DVX7FVAVSC1A (port2) # set lldp-profile default

S108DVX7FVAVSC1A (port2) # end

PASO 2

Verificar que aún existe el trunk (no se descubren nuevos trunks, pero si se mantienen los existentes)

S108DVX7FVAVSC1A #

S108DVX7FVAVSC1A # show switch trunk

config switch trunk

edit “8DV-ZTR7TOQ66-0”

  set mode lacp-active

  set auto-isl 1

  set members “port2”

 next

end

PASO 3

Borramos el trunk en caso de que no se borre automaticamente

S108DVX7FVAVSC1A # conf switch trunk

S108DVX7FVAVSC1A (trunk) # delete 8DV-ZTR7TOQ66-0

S108DVX7FVAVSC1A (trunk) # end

S108DVX7FVAVSC1A # show sw trunk

PASO 4

Desautorizamos y borramos el switch desde GUI de fortigate

PASO 5

Convertimos el switch en modo standalone

S108DVX7FVAVSC1A # conf system global

S108DVX7FVAVSC1A (global) # set switch-mgmt-mode local

S108DVX7FVAVSC1A (global) # end

S108DVX7FVAVSC1A #

 

El switch se reiniciará automáticamente borrando la configuración

PASO 6

Al arrancar de nuevo (aun estando en standalone), el switch volverá a detectarse desde FortiGate.

La diferencia es que ahora el switch está en modo local y se puede cambiar el comportamiento

S108DVX7FVAVSC1A # get system global | grep local

switch-mgmt-mode    : local

PASO 7: OPCION A

Desactivamos el Fortilink autodiscovery a nivel global (config switch global)

S108DVX7FVAVSC1A # config switch global

S108DVX7FVAVSC1A (global) # set auto-fortilink-discovery disable

S108DVX7FVAVSC1A (global) # end

S108DVX7FVAVSC1A #

 

El switch no volverá a aparecer

PASO 7: OPCION B:

Deshabilitamos auto-isl en el Puerto uplink:

S108DVX7FVAVSC1A # conf switch physical-port

S108DVX7FVAVSC1A (physical-port) # edit port2

S108DVX7FVAVSC1A (port2) # set lldp-profile default

S108DVX7FVAVSC1A (port2) # end

 

Eliminamos el trunk

S108DVX7FVAVSC1A # show switch trunk

config switch trunk

edit “8DV-ZTR7TOQ66-0”

  set mode lacp-active

  set auto-isl 1

  set members “port2”

 next

end

S108DVX7FVAVSC1A #

S108DVX7FVAVSC1A # conf switch trunk

S108DVX7FVAVSC1A (trunk) # delete 8DV-ZTR7TOQ66-0

S108DVX7FVAVSC1A (trunk) # end

 

Bloqueamos fortilink autodiscovery en el puerto en lugar de hacerlo de forma global

S108DVX7FVAVSC1A # conf switch interface

S108DVX7FVAVSC1A (interface) # edit port2

S108DVX7FVAVSC1A (port2) # set auto-discovery-fortilink disable

S108DVX7FVAVSC1A (port2) # end

 

Y el switch ya no Vuelve a aparecer

ANALISIS Y CONCLUSIONES

ESTADO FINAL OPCION A

  • Se deshabilita auto-discovery-fortilink a nivel global (en config switch global)
  • Es posible tener auto-isl activado y trunks automáticos entre Core y Acceso pero sin fortilink
S108DVX7FVAVSC1A # conf switch global

S108DVX7FVAVSC1A (global) # set auto-fortilink-discovery disable

S108DVX7FVAVSC1A (global) # end

S108DVX7FVAVSC1A # show switch trunk

config switch trunk

edit “8DV-ZTR7TOQ66-0”

  set mode lacp-active

  set auto-isl 1

 set members “port2”

 next

end

ESTADO FINAL OPCIÓN B

  • El puerto tiene auto-discovery-fortilink disable y perfil lldp sin auto-isl
  • No es posible tener trunk auto-isl entre el switch y core
  • Se puede tener un trunk manual normal
Config switch interface -> port2 -> auto-discovery-fortilink: disable

 

S108DVX7FVAVSC1A # conf switch physical-port

S108DVX7FVAVSC1A (physical-port) # edit port2

S108DVX7FVAVSC1A (port2) # show

config switch physical-port

edit “port2”

  set lldp-profile “default”

  set speed auto

 next

end

 

En ambos casos, el switch no vuelve a intentar unirse a Fortilink

Tags

Contenidos relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *