Fortinet white logo
Fortinet white logo

Administration Guide

Multicast routing and PIM support

Multicast routing and PIM support

Multicasting (also called IP multicasting) consists of using a single multicast source to send data to many receivers. Multicasting can be used to send data to many receivers simultaneously while conserving bandwidth and reducing network traffic. Multicasting can be used for one-way delivery of media streams to multiple receivers and for one-way data transmission for news feeds, financial information, and so on. Many dynamic routing protocols such as RIPv2, OSPF, and EIGRP use multicasting to share hello packets and routing information.

A FortiGate can operate as a Protocol Independent Multicast (PIM) version 2 router. FortiGates support PIM sparse mode (RFC 4601) and PIM dense mode (RFC 3973), and can service multicast servers or receivers on the network segment to which a FortiGate interface is connected. Groups are supported in the PIM join/prune messages. Multicast routing is not supported in transparent mode.

To support PIM communications, the sending and receiving applications, and all connecting PIM routers in between, must be enabled with PIM version 2. PIM can use static routes, RIP, OSPF, or BGP to forward multicast packets to their destinations. To enable source-to-destination packet delivery, sparse mode or dense mode must be enabled on the PIM router interfaces. Sparse mode routers cannot send multicast messages to dense mode routers. If the FortiGate is located between a source and a PIM router, between two PIM routers, or is connected directly to a receiver, you must manually create a multicast policy to pass encapsulated (multicast) packets or decapsulated data (IP traffic) between the source and destination.

PIM domains

A PIM domain is a logical area comprising a number of contiguous networks. The domain contains at least one bootstrap router (BSR), and if sparse mode is enabled, a number of rendezvous points (RPs) and designated routers (DRs). When PIM is enabled, the FortiGate can perform any of these functions at any time as configured.

A PIM domain can be configured in the GUI by going to Network > Multicast, or in the CLI using config router multicast. Note that PIM version 2 must be enabled on all participating routers between the source and receivers. Use config router multicast to set the global operating parameters.

When PIM is enabled, the FortiGate allocates memory to manage mapping information. The FortiGate communicates with neighboring PIM routers to acquire mapping information and, if required, processes the multicast traffic associated with specific multicast groups.

Instead of sending multiple copies of generated IP traffic to more than one specific IP destination address, PIM-enabled routers encapsulate the data and use a Class D multicast group address (224.0.0.0 to 239.255.255.255) to forward multicast packets to multiple destinations. A single stream of data can be sent because one destination address is used. Client applications receive multicast data by requesting that the traffic destined for a certain multicast group address be delivered to them.

PIM support for virtual routing and forwarding (VRF) NEW

PIM supports all VRFs and is aware of IPv4 multicast routing and forwarding over a single overlay, enhancing network scalability and flexibility compared to the previous VRF 0-only support. See Virtual routing and forwarding for more information.

Per-VRF commands are included for multicast routing, as follows:

config router multicast
    config pim-sm-global-vrf
        edit <vrf>
            set bsr-candidate {enable | disable}
            set bsr-interface <interface>
            set bsr-priority <0-255, default = 0>
            set bsr-hash <0-32, default = 10>
            set bsr-allow-quick-refresh {enable | disable}
            set cisco-crp-prefix {enable | disable}
            config rp-address
                edit <id>
                    set ip-address <RP router IP address>
                    set group <access list name>
                next
            end
        next
    end
end

VRF support is also included in the following diagnose, get, and execute commands:

diagnose ip multicast mfc-add
diagnose ip multicast mfc-del
diagnose vpn mr|mr6 add
diagnose vpn mr|mr6 del
get router info multicast igmp groups
get router info multicast igmp groups-detail
get router info multicast table
get router info multicast table-count
get router info multicast pim sparse-mode bsr-info
get router info multicast pim sparse-mode rp-mapping
get router info multicast pim sparse-mode next-hop
get router info multicast pim sparse-mode table
execute mrouter clear multicast-routes
execute mrouter clear sparse-mode-bsr
execute mrouter clear sparse-routes
execute mrouter clear statistics

Example

This example uses the following topology:

In this example, the multicast server:

  • Sends out multicast traffic 225.1.1.1 from 22.1.1.22 in VRF1.

  • Sends out multicast traffic 225.1.1.2 from 22.1.1.55 in VRF2.

To verify VRF in IPv4 multicast routing:
  1. Review the sniffer information:

    • The VRF1 client can receive 225.1.1.1 and cannot receive 225.1.1.2:

      24.872130 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
      25.872117 vd3-vlan33 out 22.1.1.22 -> 225.1.1.1: icmp: echo request
      25.872123 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
      26.872131 vd3-vlan33 out 22.1.1.22 -> 225.1.1.1: icmp: echo request
      26.872137 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
    • The VRF2 client can receive 225.1.1.2 and cannot receive 225.1.1.1:

      4.320988 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      4.320996 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
      5.320703 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      5.320717 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
      6.320671 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      6.320678 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
  2. Review the group information:

    # get router info multicast igmp groups
    IGMP Connected Group Membership
    VRF Group Address    Interface            Uptime   Expires          Last Reporter
    1   225.1.1.1        vd3-vlan33           00:15:16 stopped(static)  0.0.0.0
    2   225.1.1.2        vd3-vlan331          00:14:49 stopped(static)  0.0.0.0

Multicast routing and PIM support

Multicast routing and PIM support

Multicasting (also called IP multicasting) consists of using a single multicast source to send data to many receivers. Multicasting can be used to send data to many receivers simultaneously while conserving bandwidth and reducing network traffic. Multicasting can be used for one-way delivery of media streams to multiple receivers and for one-way data transmission for news feeds, financial information, and so on. Many dynamic routing protocols such as RIPv2, OSPF, and EIGRP use multicasting to share hello packets and routing information.

A FortiGate can operate as a Protocol Independent Multicast (PIM) version 2 router. FortiGates support PIM sparse mode (RFC 4601) and PIM dense mode (RFC 3973), and can service multicast servers or receivers on the network segment to which a FortiGate interface is connected. Groups are supported in the PIM join/prune messages. Multicast routing is not supported in transparent mode.

To support PIM communications, the sending and receiving applications, and all connecting PIM routers in between, must be enabled with PIM version 2. PIM can use static routes, RIP, OSPF, or BGP to forward multicast packets to their destinations. To enable source-to-destination packet delivery, sparse mode or dense mode must be enabled on the PIM router interfaces. Sparse mode routers cannot send multicast messages to dense mode routers. If the FortiGate is located between a source and a PIM router, between two PIM routers, or is connected directly to a receiver, you must manually create a multicast policy to pass encapsulated (multicast) packets or decapsulated data (IP traffic) between the source and destination.

PIM domains

A PIM domain is a logical area comprising a number of contiguous networks. The domain contains at least one bootstrap router (BSR), and if sparse mode is enabled, a number of rendezvous points (RPs) and designated routers (DRs). When PIM is enabled, the FortiGate can perform any of these functions at any time as configured.

A PIM domain can be configured in the GUI by going to Network > Multicast, or in the CLI using config router multicast. Note that PIM version 2 must be enabled on all participating routers between the source and receivers. Use config router multicast to set the global operating parameters.

When PIM is enabled, the FortiGate allocates memory to manage mapping information. The FortiGate communicates with neighboring PIM routers to acquire mapping information and, if required, processes the multicast traffic associated with specific multicast groups.

Instead of sending multiple copies of generated IP traffic to more than one specific IP destination address, PIM-enabled routers encapsulate the data and use a Class D multicast group address (224.0.0.0 to 239.255.255.255) to forward multicast packets to multiple destinations. A single stream of data can be sent because one destination address is used. Client applications receive multicast data by requesting that the traffic destined for a certain multicast group address be delivered to them.

PIM support for virtual routing and forwarding (VRF) NEW

PIM supports all VRFs and is aware of IPv4 multicast routing and forwarding over a single overlay, enhancing network scalability and flexibility compared to the previous VRF 0-only support. See Virtual routing and forwarding for more information.

Per-VRF commands are included for multicast routing, as follows:

config router multicast
    config pim-sm-global-vrf
        edit <vrf>
            set bsr-candidate {enable | disable}
            set bsr-interface <interface>
            set bsr-priority <0-255, default = 0>
            set bsr-hash <0-32, default = 10>
            set bsr-allow-quick-refresh {enable | disable}
            set cisco-crp-prefix {enable | disable}
            config rp-address
                edit <id>
                    set ip-address <RP router IP address>
                    set group <access list name>
                next
            end
        next
    end
end

VRF support is also included in the following diagnose, get, and execute commands:

diagnose ip multicast mfc-add
diagnose ip multicast mfc-del
diagnose vpn mr|mr6 add
diagnose vpn mr|mr6 del
get router info multicast igmp groups
get router info multicast igmp groups-detail
get router info multicast table
get router info multicast table-count
get router info multicast pim sparse-mode bsr-info
get router info multicast pim sparse-mode rp-mapping
get router info multicast pim sparse-mode next-hop
get router info multicast pim sparse-mode table
execute mrouter clear multicast-routes
execute mrouter clear sparse-mode-bsr
execute mrouter clear sparse-routes
execute mrouter clear statistics

Example

This example uses the following topology:

In this example, the multicast server:

  • Sends out multicast traffic 225.1.1.1 from 22.1.1.22 in VRF1.

  • Sends out multicast traffic 225.1.1.2 from 22.1.1.55 in VRF2.

To verify VRF in IPv4 multicast routing:
  1. Review the sniffer information:

    • The VRF1 client can receive 225.1.1.1 and cannot receive 225.1.1.2:

      24.872130 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
      25.872117 vd3-vlan33 out 22.1.1.22 -> 225.1.1.1: icmp: echo request
      25.872123 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
      26.872131 vd3-vlan33 out 22.1.1.22 -> 225.1.1.1: icmp: echo request
      26.872137 vd33-vlan33 in 22.1.1.22 -> 225.1.1.1: icmp: echo request
    • The VRF2 client can receive 225.1.1.2 and cannot receive 225.1.1.1:

      4.320988 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      4.320996 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
      5.320703 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      5.320717 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
      6.320671 vd3-vlan331 out 22.1.1.55 -> 225.1.1.2: icmp: echo request
      6.320678 vd4-vlan331 in 22.1.1.55 -> 225.1.1.2: icmp: echo request
  2. Review the group information:

    # get router info multicast igmp groups
    IGMP Connected Group Membership
    VRF Group Address    Interface            Uptime   Expires          Last Reporter
    1   225.1.1.1        vd3-vlan33           00:15:16 stopped(static)  0.0.0.0
    2   225.1.1.2        vd3-vlan331          00:14:49 stopped(static)  0.0.0.0