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.