-
Notifications
You must be signed in to change notification settings - Fork 0
Multicast Routing
- Multicast Routing In Linux Kernel
- Multicast Routing With Spectrum Hardware
- Dynamic Routing
- Further Resources
Multicast routing configuration in Linux is done via the mroute
socket,
similarly to the BSD multicast routing API. Currently, there is no
netlink
interface nor standard command line interface for creating new
Multicast Forwarding Cache (MFC) entries, and users who are interested in adding
static MFC entries (other than dynamic entires inserted by a multicast routing
daemon) have to use the mroute
interface directly.
Using the mroute
socket, a user can add MFC entries, configure interfaces to
be multicast forwarding and get multicast notifications from the kernel.
Multicast router daemons use this interface to manipulate the kernel routing
table.
To list the current MFC entries in the kernel, the ip
tool can be used:
$ ip mroute
(0.0.0.0, 239.255.0.1) Iif: sw1p7 Oifs: sw1p7 t_br0 sw1p4 State: resolved offload
(192.168.1.1, 239.255.0.1) Iif: sw1p7 Oifs: sw1p6 sw1p4 sw1p2 State: resolved offload
For IPv6, this can be done in a similar manner by passing the -6
flag:
$ ip -6 mroute
(fe00:8000::1, ff05:0:dead:beef::) Iif: enp3s0np2 Oifs: enp3s0np4 State: resolved offload
As of Linux 4.15, the mlxsw
driver supports offloading of L3 IPv4
multicast routes to the Spectrum ASIC. As of Linux 4.17, it supports
the same for L3 IPv6 multicast routes. In a similar fashion to
unicast case, the ip
tool indicates whether an MFC
entry is currently offloaded or not using the offload
keyword.
If a failure is encountered (for example, due to lack of resources), the abort mechanism is invoked, all the MFC entries are evacuated from the hardware, and routing is performed by the kernel instead.
There are several daemons that implement specific multicast routing protocols.
Any daemon that uses the kernel IPv4 multicast routing mechanism can be used
with the mlxsw
driver, for example:
- pimd – a daemon implementing the PIM-SM protocol
- FRRouting (FRR) – IP routing protocol suite for Linux and Unix platforms which includes, among others, a daemon for the PIM-SM protocol
- mrouted – an implementation of the DVMRP protocol for Linux & BSD
- Multicast Routing Code in the Linux Kernel
- freeBSD multicast API man page
-
LNST - The Linux Network Stack Test (LNST) has a Python module for the
mroute
API.
Installation
System Maintenance
Network Interface Configuration
- Switch Port Configuration
- Persistent Configuration
- Quality of Service
- Queues Management
- Port Mirroring
- ACLs
- OVS
- Resource Management
Layer 2
Network Virtualization
Layer 3
- Static Routing
- Virtual Routing and Forwarding (VRF)
- Tunneling
- Multicast Routing
- Virtual Router Redundancy Protocol (VRRP)
Debugging