Manual:Routing/Multicast
Applies to RouterOS: v3.x, v4.x
(needs editing)
Overview
Protocol Independent Multicast - Sparse Mode (PIM-SM or PIM) provides multicast and IGMP features to RouterOS.
PIM features:
- Rendezvous Point (RP) management
- Multicast Routing Information Base (MRIB) management
- Multicast distribution over the network
Requirements
Multicast is available on all architectures supported by RouterOS. Packages required:
- system
- routing
- multicast
Note: v3.x routing-test package conflicts with multicast package!
/routing pim
General PIM protcol settings.
- switch-to-spt (yes | no, default: yes) - whether to switch to Shortest Path Tree (SPT) phase if multicast data bandwidth threshold is reached. For routers upstream from RP, if this option is disabled, it means that the router will not proceed from protocol phase one (register encapsulation) to native multicast traffic flow. It is recommended to enable this option.
- switch-to-spt-bytes (integer, default: 0) - multicast data bandwidth threshold. If this threshold is reached in the specified time interval, switching to Shortest Path Tree (SPT) happens. If value 0 is configured, switching will happen immediately.
- switch-to-spt-interval (time, default: 100s) - time interval in which to account multicast data bandwidth, used in conjunction with switch-to-spt-bytes to determine if switching threshold is reached.
interface
Configuration of interface of the router that will participate in multicast network. Interfaces that are not configured here (or in IGMP-Proxy) will discard multicast packets.
- alternative-subnets (IP address/mask) : - if router can receive multicast streams over groups that are not in standard Class-D section then you have to set up this field, so these groups are recognised as multicast groups and will not be discarded.
- assert-override-interval () :
- assert-time () :
- comment (text) : - additional text information for the entry
- copy-from (number) : - use other, already configured entry as stencil for this new one
- disabled (yes|no) : - state of the entry
- dr-priority (integer) : - if for stream source more than one router with multicast support is available, then one with highest priority will become Designated router of that multicast stream and will handle stream delivery to RP. Higher value means higher priority.
- hello-holdtime (time) : - how long consider sender of hello packet received on interface in neighbour list. (usually 3.5 times of hello-period)
- hello-period (time) : - how often hellp packet will be sent over this interface.
- hello-trigerred-delay (time) : - when interface starts to participate in multicast cloud then this value is max time interface will wait before sending hello packet. That period of waiting is random from 0 to value set in this field.
- igmp-version (IGMPv1|IGMPv2|IGMPv3) : - what IGMP protocol version to support on the interface.
- interface (interface name) : - interface name that will participate in multicast cloud with these settings.
- join-prune-holdtime (time) :
- join-prune-period (time) :
- override-interval (integer in seconds) :
- propagation-delay (integer in seconds) :
- protocols (pim, igmp) : - what protocols to support on the interface
- require-hello (yes|no) :
- tracking-support () :
rp
Rendezvous point configuration. Rendezvous point (RP) is a distribution point for multicast group, source provides its data to it, and if there are any subscribers, then RP will provide data to client. Note, that RP will always receive data stream if that exists.
- comment (text) : add comment to static RP entry
- copy-from (number) : creates another RP just like one you pointed to with number you used.
- disabled (yes, no) : used to change status of RP entry effectively disabling or enabling it.
- group (IP address or ip address with subnet mask) : sets what group this RP will be assigned to. Values accepted are class D ip addresses with mask, thus effectively marking multiple groups to this RP entry e.g. 224.10.10.0/24 will add 256 groups starting with 224.10.10.0 till 224.10.10.255.
- hash-mask-length (number 4..32) : when multicast group have multiple RPs, and they are same scope and same priority, then this value is compared. and so you can load balance this way.
- priority (number) : if several RPs are available for multicast group, and they are both with same scope, then RP with highest priority is chosen. Smaller non-negative value is considered of higher priority. Exmaple: priority of 100 is higher than priority of 101.
- address (ip address) : at what address you have to look for RP for multicast group specified in group field. If group is set to one of routers interfaces, it should be reachable through whole multicast network, if it not, you will have to set up rules in MRIB (multicast routing information base).
rp-candidates
Rendezvous point candidate configuration, when RP is elected for mutlicast group
- comment (text) : - additional textual information about entry
- copy-from (number) : - create this entry using other entry as a stencil
- disabled (yes|no) : - state of entry
- group (multicast group address) : routes with will be chosen to be a group RP if no other RP will not participate with higher priority
- holdtime (time) : after what time next election will be initiated
- is-scope-zone (yes|no) :
- priority (number) : - value is used when RP is elected, lower value mean higher priority
- interface (interface) : to what interface to bind to if this router is elected as multicast groups RP
bsr-candidates
bootstrap router candidate configuration
- comment (text) : set text describing bsr-candidate list entry
- disabled (yes|no) : set state of the list entry
- hash-mask-length (number 4..32) : to how much first bits of multicast group should be hashed to reduce protocol overhead
- is-scope-zone (yes|no) : if set to yes, scope-zone setting is obeyed, if set to no, then scope-zone just represents range of groups that it will function as BSR
- priority (number) : priority of the router in bsr election
- scope-zone (IP address/mask) : multicast group range that this router will function as BSR
- interface (interface) : interface of the router that bsr-candidate will be attached to and if elected BSR
mrib
Multicast route information base - route information about where are what components of multicast cloud (sources, RPs)
- comment (text) : textual note to entry can be added to static entries only.
- copy-from (number) : use other entry as a template to create new one.
- destination (IP address/mask) : hosts that will be reachable through gateway
- disabled (yes|no) : status of entry
- metric (integer) : value of cost of the route. Route with least weight will be used if available.
- gateway (IP address) : address through where hosts listed in destination field will be reachable.
igmp-group
- interface () : group join request received/sent on this interface
- group () : igmp group of interest
- source () : source of igmp request
- state () : state of IGMP group mermbership
- version () : version of IGMP protocol used
- timeout () : time when entry will expire if not refreshed
neighbors
This menu only allows to see information about multicast routers that are reachable within one ethernet from all interfaces participating in multicast routing. This list is created and updated automatically according to state of multicast network.
- address (ip address) : - ip address of neighbour mutlticast router that router have received hello packet.
- interface (text) : - on what interface hello packet was received
- priority (number 1..255) : - priority of the neighbor router
- holdtime (time) : - how long entry will be held in neighbour list (configured in interface menu hello-holdtime)
- timeout (time) : - how much time left when entry will be dropped from list if no hello packets are received. Every time hello packet is received this entry will be refreshed.
bsr
Bootstrap router information
- zone-type () : type of the zone
- bsr-address () : address of BSR router
- scope-zone () : multicast group range this router is a BSR
- bsr-priority () : priority of BSR router
- local-address () : local BSR candidate address in scope zone
- local-priority () : local BSR candidate priority in scope zone
- state () : state of BSR router
- timeout () : timeout when this entry will be removed
- sz-timeout () : in what time when sope zone will time out.
mfc
Multicast forwarding cache - this section only provides information about current state of multicast cloud at given router, showing states of joins for multicast groups.
- group () : name of multicast group
- source () : source of multicast group data
- rp () : address of RP for that multicast group
- incoming-interface () : interface that is used to receive multicast data stream
- outgoing-interface () : interface that is used to transmit multicast data stream
join
Group join list of all the group joins that are registered by PIM-SM
- group (IP address) : multicast group that has at least one registered join request
- source (IP address) : data provider for that group
- rp () : rendezvous point for multicast group
- upstream-interface-source (interface) : router interface receives data stream of the multicast group
- upstream-interface-rp (interface) : router interface that is toward the rendezvous point
- upstream-mrib-nexthop () : address of the next router towards RP
- upstream-pim-nexthop () : address of next router towards RP according to PIM RP tree
- join-state () : state of this entry towards RP
- join-register-state () :
- timeout () : time-out when entry will be removed from the list.
- keepalive-timer (yes|no) :
- i-am-designated-router (interface name list) : interface name list on which router is chosen as designated router
- local-receivers () : interfaces where are cleints registered with (*.G) join
- joined-rp () : list of interfaces that have clients that originated (*,*,RP) join
- joined-wc () : list of interfaces that have clients that originated (*.G) join
- joined () : list of interfaces that are in joined state
- pruned () : list of interfaces that are in prune state
- prune-pending () : list of interfaces that are in prune-pending state
- assert-winner () : list of interfaces that are in assert-winner state
- assert-looser () : list of interfaces that are assert-lost state
- assert-winner-wc () : list of interfaces that have (*,G) join and have assert-winner state
- assert-looser-wc () : list of interfaces that have (*,G) join and have assert-lost state
- assert-tracking-wc () : list of interfaces that have (*,G) join and will track assert
- could-assert-wc () :list of interfaces that have (*,G) join and could trigger assert
- immediate-rp () : list of interfaces that are included in the immediate outgoing interfaces for the corresponding (*,*,RP) entry.
- immediate-wc () :list of interfaces that are included in the immediate outgoing interfaces for the corresponding (*,RP) entry.
- immediate-sg () :
- immediate-sg-rpt () :
- include-wc () :list of interfaces to which traffic might be forwarded because of hosts that are local members on that interface.