Multicast over IPsec VPN without PIM

Facebooktwittergoogle_plusredditpinterestlinkedinFacebooktwittergoogle_plusredditpinterestlinkedin

This recipe allows transparent multicast communication between two networks located behind FortiGates connected via IPsec VPN.  Multicast is configured to send traffic across the IPsec tunnel without the use PIM or other multicast routing protocol.  Two hosts are used to send and receive a multicast stream between the two sites.  The Fortigate with the multicast streaming server is referred to as “HQ”, the Fortigate with the Multicast client is referred to as “Branch.”

1. Configure the HQ IPsec VPN

On the HQ FortiGate, go to VPN > IPsec Wizard.

Select the Site to Site template, and select FortiGate.

 

In the Authentication step, set IP Address to the IP of the Branch FortiGate (in the example, 172.31.1.65). After you enter the gateway, an available interface will be assigned as the Outgoing Interface.  Set a secure Pre-shared Key.

 

In the Policy & Routing step, set the Local Interface. The Local Subnets will be added automatically. Set Remote Subnets to the Branch FortiGate’s local subnet (10.1.2.0/24)

 

A summary page shows the configuration created by the wizard.

 

2. Configure the Branch IPsec VPN

On the Branch FortiGate, go to VPN > IPsec Wizard.

Select the Site to Site template, and select FortiGate.

 

In the Authentication step, set IP Address to the IP of the HQ FortiGate (in the example, 172.31.1.64). After you enter the gateway, an available interface will be assigned as the Outgoing Interface.

Set the same Pre-shared Key that was used for HQ’s VPN.

 

In the Policy & Routing step, set the Local Interface. The Local Subnets will be added automatically. Set Remote Subnets to the HQ FortiGate’s local subnet (in the example, 10.1.1.0/24).

 

A summary page shows the configuration created by the wizard, including firewall addresses, firewall address groups, a static route, and security policies.

 

On either FortiGate, go to Monitor > IPsec Monitor to verify the status of the VPN tunnel. Right-click under Status and select Bring Up.

 

At this point in the configuration, the multicast server behind the HQ FortiGate should be able to ping the client at Branch.   If you need to generate traffic to test the connection, ping the Branch FortiGate’s internal interface from the HQ’s internal network.

3. Configure the HQ multicast policy and phase 2 settings

On the HQ FortiGate, go to Policy & Objects > Multicast Policy.  (If multicast policy is not available, go to System > Feature Visibility and enable the feature).

Create a new policy and allow the multicast traffic from the source interface to the tunnel.

 

 

Create another multicast policy that allows multicast traffic from the tunnel to the LAN interface of the multicast server.

 

Add a phase 2 selector to the VPN tunnel by going to VPN > IPsec Tunnels and editing the tunnel.  Add a phase 2 selector with 10.1.1.0/24 as the local address and 239.0.0.0/8 as the remote address.

 

Enable multicast forwarding

At the CLI prompt, enter:

config system settings
       set multicast-forward enable
end

 

4. Configure Branch multicast policy and phase 2 settings

On the Branch FortiGate, go to Policy & Objects > Multicast Policy.  (If multicast policy is not available, go to System > Feature Visibility and enable the feature).

 

Create a new policy and allow the multicast traffic from the source interface to the tunnel.

 

 

Create another multicast policy that allows multicast traffic from the tunnel to the LAN interface of the multicast server.

 

Add a phase 2 selector to the VPN tunnel by going to VPN > IPsec Tunnels and editing the tunnel.  Add a phase 2 selector with 239.0.0.0/8 as the local address and 10.1.1.0/24 as the remote address.

 

Enable multicast forwarding

At the CLI prompt, enter:

config system settings
    set multicast-forward enable
end

 

5. Results

Multicast traffic should now flow from the multicast server to the client.  Start the multicast stream and make note the of the address being used.  In this configuration, all multicast traffic that matches 239.0.0.0/8 should flow from the HQ to the Branch.

Multicast traffic flow can be verified by issuing the “diag sys mcast-session list” command on the branch Fortigate.

In the example above, we see the multicast group sourcing from the HQ server and transmitting on multicast group address 239.1.1.100:1234.  The multicast receiver application on the branch host should now be able to receive this multicast traffic.

Tony Russi

Tony Russi

Systems Engineer at Fortinet
Tony Russi is a Systems Engineer working for the Enterprise SE team. An Air Force veteran, he has over 25 years experience in networking and security.Look for more articles coming up!
Tony Russi

Latest posts by Tony Russi (see all)

  • Was this helpful?
  • Yes   No