This article describes how to forward Multicast traffic from one managed FortiAP to another managed FortiAP in tunnel mode.
FortiGate managing 2 FortiAPs. The FortiAPs have SSID: ‘tunnel’ in Tunnel mode with PC1: 10.233.0.3 connected to FAP1 and PC2: 10.233.0.4 connected to FAP2.
PC1 is generating MultiCast traffic (10.233.0.3 –> 126.96.36.199) and PC2 is expected to receive the traffic. Although both the PCs are connected to the same SSID however, PC2 does not receive the multicast traffic.
The reason is the FortiAP SSID: ‘tunnel’ is in tunnel mode and will forward all traffic to the FortiGate. In FortiGate, the MultiCast policies do not allow the source and destination interface to be the same.
Step 1: The tunnel SSID needs to be added under a Software switch interface as a software switch will copy the MultiCast traffic and forward it back to all the FortiAPs.
Step 2: Create a tunnel mode SSID. Follow the link below to create one: FortiGate / FortiOS 5.4.0 > Cookbook > Setting up WiFi with a FortiAP
Once created make sure the IPV4 info is -> 0.0.0.0/0 and the DHCP server is disabled
Step 3: On the Tunnel SSID, enable IGMP SNOOPING and disable broadcast suppression or disable multicast enhance:
# config wireless-controller vap edit "tunnel" set ssid "MultiCast" set multicast-enhance disable set igmp-snooping enable unset broadcast-suppression next end
Step 4: Now add the tunnel SSID into a Software switch. Follow the article below to achieve the same: FortiGate / FortiOS 6.2.12 > Cookbook > Software switch
Step 5: Once added, assign the desired IPV4 address to the interface of the software switch and enable the DHCP server on the Software switch interface.
Step 6: Create a Multicast address with the destination IP/ IP range of Multicast addresses needed:
# config firewall multicast-address edit "MultiCastObject" set start-ip 188.8.131.52 set end-ip 184.108.40.206 next end
Step 7: Create a MultiCast Policy and make sure to reference the MultiCast object inside the policy as it will be an ‘any to any’ policy and it is best practice to restrict the MultiCast addresses that are required:
# config firewall multicast-policy edit 1 set srcintf "any" set dstintf "any" set srcaddr "all" set dstaddr "MultiCastObject" next end
Step 8: Now generate the MultiCast traffic from PC1 and PC2 on FAP2 should receive the traffic.
Verify it by running a sniffer for the interesting MultiCast traffic.
# diag sniffer packet any 'host 220.127.116.11' 4 0 1 tunnel in 10.233.0.3.8910 -> 18.104.22.168.8910: udp 32 <---- Enter the tunnel SSID from FAP 1. tunneltest in 10.233.0.3.8910 -> 22.214.171.124.8910: udp 32 <----- Enter the Software Switch. wqtn.60.tunnel out 10.233.0.3.8910 -> 126.96.36.199.8910: udp 32 tunnel out 10.233.0.3.8910 -> 188.8.131.52.8910: udp 32 <------ Exits out via FAP1. wqtn.60.tunnel out 10.233.0.3.8910 -> 184.108.40.206.8910: udp 32 tunnel out 10.233.0.3.8910 -> 220.127.116.11.8910: udp 32 <------ Exits out via FAP2. tunnel out 10.233.0.3.8910 -> 18.104.22.168.8910: udp 32 havdlink0 in 10.233.0.3.8910 -> 22.214.171.124.8910: udp 32