Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

Multicast configuration EcoRouter Documentation / Multicast configuration

Without multicast broadcasting, for successful data transmission to users, traffic on the network must be duplicated at each node site. This duplication leads to inefficient use of network resources. Multicast-applications are much more efficient, since they transmit only one copy of the traffic. Its duplication usually occurs only in L3-devices located closer to consumers. To solve the tasks of delivering / receiving multicast data, EcoRouterOS supports the following protocols:

  • IGMPv1/v2/v3,
  • PIM-SM,
  • PIM-SSM. 

Instructions for protocol configuring are available in the documentation. This document contains brief descriptions of several specific technologies that are supported by the router to fine-tune the multicast domain in the absence of the desired functionality in equipment from other manufacturers:

  • IGMP SSM Mapping for delivering / receiving multicast streams from a specific server with IGMPv2;
  • IGMP proxy for IGMP domain between L2/L3 devices creating and the router operating as a multicast group client;
  • PIM-DM support of an earlier multicast routing protocol;
  • PIM-SDM mixed operation mode.

IGMP

IGMP is an Internet Group Management Protocol which serves for multicast management in IP networks. IGMP is used by the client computer and the local multicast router. EcoRouter supports IGMP v1 and v3.

The list of commands used to configure the IGMP protocol in EcoRouter is presented in the table below.

Command

Mode

Description

ip igmp access-group <access list number>
(config-if)#

Filter access to certain multicast groups using access lists

ip igmp immediate-leave group-list <filter list number>
(config-if)#

Reduce the time for the last client to unsubscribe from the group / groups specified in the filter list

ip igmp join-group <ip address>
(config-if)#

Add router's interface into multicast group

ip igmp last-member-query-count <2-7> 
(config-if)#

Specify the number of IGMP query messages sent in response to a leave message. Default value is 2

ip igmp last-member-query-interval <1000-25500>
(config-if)#

Specify the interval for sending IGMP query messages. Default value is 1000 ms

ip igmp limit <1-2097152>
(config)#

Specify the limit of multicast routes number

ip igmp mroute-proxy <interface name>
(config-if)#

Enable proxying for multicast routes for another interface

ip igmp proxy unsolicited-report-interval <1000-25500>
(config-if)#

Specify the delay value between two IGMP join messages. Default value is 1000 ms

ip igmp proxy-service
(config-if)#

Enable IGMP proxy mode

ip igmp querier-timeout <60-300>
(config-if)#

Specify the time to re-select the querier router in the segment in seconds

ip igmp query-interval <1-18000>
(config-if)#

Specify the frequency of General Query sending in seconds. Default value is 125 s

ip igmp query-max-response-time <1-240>
(config-if)#

Specify the maximum response time for the IGMP query in seconds. Default value is 10 s

ip igmp robustness-variable <2-7>
(config-if)#

Specify the robustness value for fine-tuning IGMP messages. Default value is 2

ip igmp startup-query-count <2-10>
(config-if)#

Specify the number of query messages. Default value is 2

ip igmp startup-query-interval <1-18000>
(config-if)#

Specify the interval for sending IGMP query messages. Default value is 31 s

ip igmp static-group <ip-адрес>
(config-if)#

Assign the interface to listen to a specific multicast group

ip igmp version <1-3>
(config-if)#

Specify the IGMP version

ip igmp ssm-map {enable | static <access list number>}
(config)#

Enable the SSM mapping. Specify a static SSM using an access list

ip igmp tos-check
(config)#

Check the TOS filed value. Default value is enable

ip igmp vrf <virtual router name> {limit <1-2097152> | ssm-map enable | ssm-map static <access list number>}
(config)#

Configuration commands to perform on a virtual router

p igmp ra-option 
(config-if)#

Enable option checking in incoming IGMP packages

Configuring IGMP in a segment with a configured PIM is to enable IGMP on the router interface closest to the user. Use the ip igmp version <1-3> command to enable IGMP on a configured downstream interface.

Step 1. Enable multicast general support.

ecorouter(config)#ip multicast-routing

Step 2. Configure router's interfaces.

ecorouter(config)#interface e10
ecorouter(config-if)#ip address 10.10.10.1/24
ecorouter(config)#port te0
ecorouter(config-port)#service-instance 10
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e10

Step 3. Enable IGMP on a downstream interface.

ecorouter(config-if)#ip igmp version 2

When turning PIM on the interface on, IGMPv3 turns on automatically.

Step 4. Configure protocol timers: the frequency of sending requests by the device and the waiting time for replies.

      ecorouter(config-if)#ip igmp query-interval 100
    
      ecorouter(config-if)#
      ip igmp query-max-response-time 20
    

Step 5. Disable the ToS field valie check in the IGMP messages in order to correct functioning with the entire spectrum of the OS.

ecorouter(config)#no ip igmp tos-check 

IGMP SSM Mapping

The IGMP functionality required to support the SSM, but not all network equipment supports all versions of this protocol. The EcoRouterOS allows to perform multicast traffic routing from a specific source to clients which support only the IGMPv2. The example of configuration is shown below:

Step 1. Configure ports, interfaces and service instances.

ecorouter(config)#interface e1
ecorouter(config-if)#ip address 10.12.0.2/16
ecorouter(config)#interface e2
ecorouter(config-if)#ip address 10.23.0.2/16
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2

Step 2. Specify the policy-filter-list for specific group.

ecorouter(config)#policy-filter-list 2 permit 235.7.7.7

Step 3. Enable SSM-mapping for a specific group.

ecorouter(config)#ip igmp ssm-map enable
ecorouter(config)#ip igmp ssm-map static 2 1.1.1.1
ecorouter(config)#ip pim ssm default

Step 4. Configure PIM-SM.

ecorouter(config)#ip pim rp-address 10.12.0.2
ecorouter(config)#interface e1
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config-if)#interface e2
ecorouter(config-if)#ip pim sparse-mode 

The IP address 10.12.0.1/16 is configured on the fa0/0 interface of the other router. Now if the client requests the group 235.7.7.7 and simultaneously sends multicast traffic from the server and from the router to this group, the following result can be seen on the router:

Ecorouter#show ip mroute 
IP Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed   
B - BIDIR
Timers: Uptime/Stat Expiry Interface State: Interface (TTL)

(1.1.1.1, 235.7.7.7), uptime 00:04:24, stat expires 00:03:29
Owner PIM, Flags: TF
  Incoming interface: e1
  Outgoing interface list:
    e2 (1)

(10.12.0.1, 235.7.7.7), uptime 00:04:24, stat expires 00:00:09
Owner PIM, Flags: TF
 
Incoming interface: e1
  Outgoing interface list:

From the example above it is seen that there are no interfaces in the outgoing list for the 10.12.0.1 server. When enabling PIM protocol on the interface by the ip pim sparse-mode command, the IGMPv3 is turned on by default. So the IGMPv3 could be enabled simply by the ip igmp version 3 command. Use the show ip igmp ssm-map <ip-address> command to display static mapping information.

ecorouter#show ip igmp ssm-map 235.7.7.7
Group address: 235.7.7.7
Database     : Static
Source list  : 1.1.1.1

Proxy-IGMP

The use of this technology allows to avoid dependence on the multicast routing protocol used and to reduce the size of service traffic in the network. The router acts as a client and transmits information in form of IGMP Report messages towards the PIM domain. PIM-neighbors in this case are not needed. The device stores information about the requested groups, obtained through the downstream interfaces, in the database. The proxy service itself works on the upstream interfaces, transmitting requests from clients. Tee example of topology and configuration of the IGMP Proxy service in EcoRouterOS is shown below.

Configuration

Step 1. Specify the device name and enable multicast routing.

(config)#hostname ECO-2
(config)#ip multicast-routing

Step 2. Configure ports, interfaces, and service instances.

(config)#interface e1
(config-if)#ip address 10.23.0.2/16
(config-if)#ip igmp version 2
(config)#interface e2
(config-if)#ip address 10.24.0.2/16
(config-if)#ip igmp version 2
(config)#port ge1
(config-port)#service-instance ge1/e1
(config-service-instance)#encapsulation untagged
(config-service-instance)#connect ip interface e1
(config)#port ge2
(config-port)#service-instance ge2/e2
(config-service-instance)#encapsulation untagged
(config-service-instance)#connect ip interface e2

Step 3. Enable IGMP Proxy.

(config)#interface e2
(config-if)#ip igmp proxy-service
(config)#interface e1
(config-if)#ip igmp mrouter-proxy e2

The proxy service works with any version of IGMP. Use the show ip igmp proxy and show ip igmp proxy groups commands to check the status of the service and view the requested groups. If the service is up and running, the group's status should be "Active".

PIM-SM/SSM

Fine configuring of multicast routing protocols is rather complicated and is not considered in this document. For basic setup perform the commands state below:

Step 1. Enable the multicast routing using the ip multicast-routing command in configuration mode.

Step 2. Enable the multicast routing protocol on the required interfaces using the ip pim sparse-mode command in context mode. When this command is entered, IGMPv3 is automatically enabled on the interface.

Step 3. Statically specify the meeting point of trees from the source and clients (Rendezvous Point, further - RP) using the ip pim rp-address <IP> [<POLICY-FILTER-LIST>] [override] command. The <POLICY-FILTER-LIST> parameter associates an RP with a specific multicast group, and the [override] parameter raises the priority of the static RP entry compared to the received dynamic path. The dynamic path is described below.

These steps are sufficient for the successful delivery of multicast traffic from the server to the clients, but if the RP fails, all clients will stop receiving the requested data.

Therefore, the bootstrap protocol which dynamically informs multicast domain participants about RP is more preferable to use.

Thus, on the step 4, to inform PIM neighbors about RP, it is necessary to configure the candidate for this role using the ip pim rp-candidate <interface name> [priority <0-255>] [group-list <POLICY-FILTER-LIST> ] [Interval <1-16383>] command in configuration mode. The command parameters are described in the table below.

Parameter

Description

<interface name>

The candidate interface name. The interface must be created in advance

priority

The priority value, used when there is a number of candidates. The smaller parameter value the higher candidate's priority. Value range is from 0 to 255. Default value is 192

group-list <POLICY-FILTER-LIST>

Groups which recieve advertisement about a candidate

interval

The interval of message sending in seconds. Value range is from 1 to 16383

Next the advertising agents that will send information about the RP, so-called BSR, must be configured. Use the ip pim bsr-candidate <interface name> [<0-32>][<0-255>] command in configuration mode. The command parameters are described in the table below.

Parameter

Description

<interface name>

The interface assigned to be advertizing agent (BSR). The interface must be created in advance

<0-32>

The length of the hash mask for calculating the hash value of RP. Valid range is from 0 to 32. Default value is 10

<0-255>

The BSR priority, if there are multiple agents on the network. The higher the value of this parameter, the higher the priority of the candidate. Valid range is from 0 to 255. The default value is 64

The example of scheme and routers configuration is shown below. Primarly when the Multicast-1 server does multicast broadcasting the route will be ECO-3 – ECO-2 – ECO-4 – PC1. Then after the nearest router to the client receives information about the server, there an SPT switchover will occure - the route will be changed to ECO -3 - ECO-4 - PC1.

Step 1. Specify the device name and enable multicast broadcasting.

ecorouter(config)#hostname ECO-2
ecorouter(config)#ip multicast-routing

Step 2. Configure ports, interfaces and service instances.

ecorouter(config)#interface e3
ecorouter(config-if)#ip address 10.23.0.3/16
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e4
ecorouter(config-if)#ip address 10.24.0.2/16
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge3
ecorouter(config-port)#service-instance ge3/e3
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e3
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4

Step 3. Enable routing.

ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00
ecorouter(config-router)#exit
ecorouter(config)#interface e3
ecorouter(config-int)#ip router isis
ecorouter(config-int)#interface e4
ecorouter(config-int)#ip router isis
ecorouter(config-int)#exit

Step 4. Specify the RP information and enable SPT-switchover function.

ecorouter(config)#ip pim bsr-candidate e3
ecorouter(config)#ip pim rp-candidate e3 priority 20
ecorouter(config)#ip pim spt-treshold

Configuring the remaining routers will be similar.

ecorouter(config)#hostname ECO-3
ecorouter(config)#ip multicast-routing
ecorouter(config)#interface e1
ecorouter(config-if)#ip address 10.13.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e2
ecorouter(config-if)#ip address 10.23.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e4
ecorouter(config-if)#ip address 10.34.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge1
ecorouter(config-port)#service-instance ge1/e1
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e1
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4
ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00
 
ecorouter(config)#hostname ECO-4
ecorouter(config)#ip multicast-routing
ecorouter(config)#ip pim spt-treshold
ecorouter(config)#ip pim bsr-candidate e3
ecorouter(config)#ip pim rp-candidate e3 priority 40
ecorouter(config)#interface e1
ecorouter(config-if)#ip address 10.14.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config-if)#ip igmp version 2
ecorouter(config)#interface e2
ecorouter(config-if)#ip address 10.24.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e3
ecorouter(config-if)#ip address 10.34.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4
ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00

Read more about IGMP in the corresponding section.

Use the additional ip pim ssm {default | range} <policy-filter-list number> command to enable Source-Specific-Multicast, where default means apply to all groups, range and policy-filter-list number allows to select specific groups SSM will be used for. Read more about SSM mapping configuring and polici-filter-list in the corresponding sections.

Additional configuring commands

Command

Mode

Description

ip pim accept-register <policy-filter-list>
(conf)#

Make RP to recieve REgister messages from the specific sources

ip pim cisco-register-checksum
(conf)#

Option to cheksum evaluating in Register messages. Is used for compatibility with the older Cisco IOS versions

ip pim ignore-rp-set-priority
(conf)#

Allows to ignore RP priority, only hash-algorithm matters

ip pim jp-timer <1-65535>
(conf)#

Timer for Join and Prune messages sending

ip pim register-rate-limit <1-65535>
(conf)#

Specify the number of Register message to be send

ip pim register-rp-reachability
(conf)#

Enable RP reachability check on the router (by default is in configuration)

ip pim register-source <address>
(conf)#

Specify address in REgister messages

ip pim register-suppression <1-65535>
(conf)#

Specify RP-keepalive-timer in case the ip pim rp-register-kat command is not used

ip pim rp-register-kat <1-65535>
(conf)#

Specify timers for Register messages monitoring

ip pim dr-priority
(conf-int)#

Set the router priotiry for DR select

ip pim bsr-border
(conf-int)#

Mark the interface as border for bootstrap transmit/recieve cancel

ip pim exclude-genid
(conf-int)#

Exclude generated ID option

ip pim hello-holdtime <1-65535>
(conf-int)#

Set the holdtime timer for hello massages

ip pim hello-interval <1-18724>
(conf-int)#

Set the interval timer for hello messages

ip pim neighbor-filter <policy-filter-list>
(conf-int)#

Configure neighborhood for specific routers

ip pim propagation-delay <1000-5000>
(conf-int)#

Specify message propagation delay

ip pim unicast-bsm
(conf-int)#

Enable unicast bootstrap messages. Is used for compatibility with the older Cisco IOS versions

ip pim sparse-mode passive
(conf-int)#

Enable passive mode

ip multicast ttl-threshold <1-255>
(conf-int)#

Enable multicast domain TTL-scope

ip mroute <subnet address> <rpf neighbor>
(conf)#

Static record of the subnet in which the source of the multicast is located

Show commands

Command

Description

show ip mroute

Display the multicast routing table

show ip mvif

Display information about multicast supporting virtual interfaces

show ip rpf <source address>

Display RPF information about source

show ip pim bsr-router

Display information of BSR routers in the domain

show ip pim interface

Display information about interfaces where multicast routing enabled

show ip pim local-members

Display local information about the requested groups

show ip pim mroute [detail]

Display detailed information about multicast routing

show ip pim neighbor

Display neighborhood information

show ip pim nexthop

Display information about RP, multicast sources, interfaces through which data is received

show ip pim rp mapping

Display RP information in the domain

show ip pim rp-hash <group address>

Display specific group RP information

show ip mroute count

Display statistics

Data dropdown commands

clear ip mroute statistics <*/group address>
clear ip mroute <*/аgroup address>
clear ip pim sparse-mode bsr rp-set *

PIM-DM and mixed Sparse-Dense mode

The EcoRouterOS supports the earlier multicast routing protocol PIM-DM. The mechanism of its work implies the excessive filling of the domain with multicast traffic, so network engineers need to think carefully about the way the packets flow through the network. It may be necessary to separate the domains of unicast routing from multicast. In this case it is necessary to use a static route record to the source. To enable the functionality on the router, use the ip pim dense-mod command in the interface configuration mode.

In the EcoRouterOS, there is an extension which allows to specify a mixed Sparse-Dense mode on the interface. In this mode, the traffic for the group with the Dense mode will be processed according to the PIM-DM rules, and the traffic for the group with the Sparse mode will be processed according to the PIM-SM rules. Use the ip pim sparse-dense-mode command in the interface configuration mode to enable mixed Sparse-dense mode.

For certain groups, the traffic handling only with PIM-DM logic can be configured. For this purpose use the ip pim dense-group <group address> command.