IGMP Querier mit Managed FortiSwitch

Will man auf managed FortiSwitches einen IGMP Querier konfigurieren, findet man in der Dokumentation wenig bis nichts. Werden die Switches im Standalone Modus betrieben, lässt sich die IP Adresse des Queriers angeben.

Im Falle der managed FortiSwitches ist es aber relativ einfach, wenn man einmal weiss wie. In dem Fall ist das Interface der FortiGate der Querier. Die ganze Konfigurationen macht man auf dem CLI.

Zuerst aktiviert man Multicast Routing auf einem Interface. So wird das konfigurierte Interface automatisch zum Querier. Diese Lösung verwendet man nur, wenn Multicast Streams über die Firewall gesendet werden.

config router multicast
    set multicast-routing enable
    config interface
        edit "v0009_av"
            set pim-mode sparse-mode
            set passive enable
            config igmp
                set access-group "v0009-mcast-router"
            end
        next
    end
end

In dem Fall, mit “set passive enable“, sendet die FortiGate keine PIM Informationen ins Netz. Das heisst, sie nimmt IGMP Meldungen entgegen und sendet auch welche. Routing Informationen werden aber nicht gesendet.

# get router info multicast igmp interface 
Interface v0009_av (Index 54)
 IGMP Enabled, Active, Querier, Configured for version 3
 Internet address is 10.200.9.254
 IGMP query interval is 125 seconds
 IGMP querier timeout is 255 seconds
 IGMP max query response time is 10 seconds
 Last member query response interval is 1000 milliseconds
 Group Membership interval is 260 seconds
 Router Alert options not required in IGMP packets

Aktiviert man Multicast Routing, registriert sich die FortiGate gleichzeitig für die gefundenen IGMP Gruppen.

# get router info multicast igmp groups 
IGMP Connected Group Membership
Group Address    Interface            Uptime   Expires          Last Reporter
224.0.1.129      v0009_av             02:00:08 00:03:27         0.0.0.0
239.255.255.250  v0009_av             02:00:08 00:03:27         0.0.0.0
239.255.255.255  v0009_av             02:00:08 00:03:27         0.0.0.0

Ich will aber nicht in jedem Fall alle Multicast Streams (oder IGMP Gruppen) erhalten. Dafür konfiguriere ich eine “access-group” in der Multicast Router Konfiguration. Diese Access Gruppe ist eine Router Access List. Damit bestimme ich, welche Gruppen ich will und welche nicht.

config router access-list
    edit "v0009-mcast-router"
        config rule
            edit 1
                set action deny
                set prefix 239.2.0.0 255.255.0.0
            next
        end
    next
end

Das heisst, alle join requests für die Gruppen im Bereich 239.2.0.0/255.255.0.0 werden abgelehnt.

Mein IGMP Querier ist nun konfiguriert.

Jetzt kommt der Teil IGMP Snooping. Also Multicast soll nur auf den Interfaces gesendet werden, auf denen ein Receiver vorhanden ist. Dazu brauchen wir IGMP snooping. Das wird auf dem Interface konfiguriert.

config system interface
    edit "v0009_av"
        set vdom "root"
        set ip 10.200.9.254 255.255.255.0
        set allowaccess ping
        set switch-controller-igmp-snooping enable
        set switch-controller-igmp-snooping-proxy enable
        set switch-controller-igmp-snooping-fast-leave enable
        set interface "fl"
        set vlanid 9
    next
end

IGMP Snooping wird eingeschaltet, “Fast Leave” wird eingeschaltet und weil wir eine Switch Konfiguration mit MCLAG haben, braucht es auch noch den IGMP Proxy.

Wir haben jetzt sichergestellt, dass IGMP Querier und IGMP Snooping funktionieren.

Jetzt müssen wir noch sicherstellen, dass unbekannte Multicast Streams unser Netzwerk nicht fluten.

Das geschieht mit “Storm Control”

config switch-controller storm-control
    set rate 100
    set unknown-unicast enable
    set unknown-multicast enable
    set broadcast enable
end

Die FortiGate hat per default Multicast forward eingeschaltet. Es gilt die Faustregel, entweder Multicast forward oder Multicast Router. In diesem Fall schalten wir Multicast forward aus.

config system settings
    set multicast-forward disable
end

Will ich wissen, auf welchen Ports auf den Switches welche Multicast Adressen aktiv sind:

# diagnose switch-controller switch-info igmp-snooping group 

...

S124EN5918006393:

IGMP-SNOOPING mcast-groups:
Max Entries: 1022

Number of groups: 1

port		 VLAN	 GROUP				 Age-timeout	  IGMP-Version
_FlInK1_MLAG0_	 7   	 querier			 95		  --
port3         	 7   	 239.255.255.250 		 233		  IGMPv3

So erhalte ich eine Übersicht über alle Switches.