PIMv6
VyOS supports IPv6 multicast routing through PIMv6 and MLD versions 1 and 2.
PIMv6 operates similarly to its IPv4 counterpart: it uses the existing unicast IPv6 routing table for path decisions, and traffic from multicast sources is forwarded toward a RP. IPv6 multicast receivers use MLD to signal their local router which groups they want to receive, and the router uses PIMv6 to pull that traffic from the RP via a shared distribution tree.
A working PIMv6 deployment requires:
PIMv6 enabled on every interface participating in IPv6 multicast forwarding.
The location of the Rendezvous Point (RP) declared identically on every router in the PIMv6 domain.
MLD enabled on interfaces facing multicast receivers.
Basic commands
Use the following commands for a basic PIMv6 setup.
Enable PIMv6 on the specified PIMv6 interface.
This command also enables MLD, allowing the router to process MLD queries and reports from IPv6 multicast receivers.
Example:
set protocols pim6 interface eth0
Disable MLD on the specified PIMv6 interface.
This command turns off MLD processing on the interface while keeping PIMv6 enabled.
Example:
set protocols pim6 interface eth0 mld disable
Tuning commands
You can also tune multicast with the following commands.
Configure the MLD Query Interval, in seconds, on the specified interface.
This setting determines how often the router sends MLD queries to discover which IPv6 multicast groups have active listeners on the attached network.
The default value is 125 seconds.
Example:
set protocols pim6 interface eth0 mld interval 100
Configure the interface to join a specific IPv6 multicast group.
Example:
set protocols pim6 interface eth0 mld join ff0e::db8:0:1234
Configure the interface to join a specific (S,G) channel.
A channel is identified by the combination of a source IPv6 address (S) and a multicast IPv6 address (G).
Example:
set protocols pim6 interface eth0 mld join ff3e::1234 source 2001:db8::1
Configure the number of MLD Last Listener Queries the router sends on the specified interface after a listener leaves a multicast group.
The default value is 2.
Example:
set protocols pim6 interface eth0 mld last-member-query-count 3
Configure the MLD Last Listener Query Interval, in milliseconds, on the specified interface.
This setting determines how long the router waits between Last Listener Queries.
The default value is 1000 milliseconds.
Example:
set protocols pim6 interface eth0 mld last-member-query-interval 500
Configure the MLD maximum response delay, in milliseconds, on the specified interface.
This value is inserted in MLD queries and specifies the maximum time hosts have to respond with a membership report. If no report is received within the specified window, PIMv6 assumes there are no longer any active local receivers and may time out the associated (*,G) or (S,G) state.
Example:
set protocols pim6 interface eth0 mld max-response-time 5000
Configure the MLD version on the specified interface.
The default version is 2.
Example:
set protocols pim6 interface eth0 mld version 1
Configuration example
To enable PIMv6 on interfaces eth0 and eth1 (which also enables MLD automatically, allowing the router to process MLD queries and reports from connected IPv6 multicast listeners):
set protocols pim6 interface eth0
set protocols pim6 interface eth1
The following configuration explicitly joins the IPv6 multicast group ff0e::db8:0:1234 on interface eth0, and the (S,G) channel (2001:db8::1, ff3e::5678) on interface eth1:
set protocols pim6 interface eth0 mld join ff0e::db8:0:1234
set protocols pim6 interface eth1 mld join ff3e::5678 source 2001:db8::1