ip-maddress
Display or modify multicast addresses
TLDR
List multicast addresses and how many programs are subscribed to them
List device specific addresses
Join a multicast group statically
Leave a static multicast group
Display help
SYNOPSIS
ip maddr { add | del } dev STRING to IPADDR [ scope INTEGER ] [ metric INTEGER ]
ip maddr { show | flush } [ dev STRING ] [ to IPADDR ]
PARAMETERS
add
Add multicast address to interface
del
Delete multicast address from interface
show
Display current multicast addresses
flush
Remove matching multicast addresses
dev STRING
Target network device (e.g., eth0)
to IPADDR
Multicast group address (IPv4/IPv6)
scope INTEGER
Multicast scope (0-255, default 0)
metric INTEGER
Routing metric value (default 1)
DESCRIPTION
ip maddr (also invoked as ip maddress) is a command from the iproute2 suite for displaying, adding, deleting, and flushing IP multicast addresses bound to network interfaces. Multicast addresses enable efficient one-to-many communication, allowing interfaces to subscribe to specific multicast groups for protocols like IGMP/MLD, RTP streaming, or service discovery (e.g., mDNS, SSDP).
Kernel multicast filters track these subscriptions per device, directing relevant traffic. Use show to list current addresses, optionally filtered by device or group. add and del manipulate IPv4/IPv6 groups with optional scope (routing distance) and metric (preference). flush removes all or matching entries.
Requires root privileges via sudo or direct root access. Output includes interface, group address, scope, and metric. Essential for multicast-enabled networks, it replaces deprecated route multicast tools from net-tools. Supports both IPv4 (e.g., 239.0.0.1) and IPv6 (e.g., ff02::1) groups.
CAVEATS
Root privileges required. IPv6 needs kernel MLD support. Changes may not persist across reboots without persistent config (e.g., systemd-networkd). Flush affects all matching, use cautiously.
EXAMPLES
ip maddr show dev eth0 - List on eth0
ip maddr add dev eth0 to 239.1.2.3 - Subscribe eth0 to group
ip maddr del dev eth0 to ff02::1 - Remove IPv6 group
ip maddr flush dev lo - Clear loopback multicasts
OUTPUT FORMAT
Sample: eth0 inet6 ff02::1/96 scope link metric 1 (shows dev, family, group/prefix, scope, metric)
HISTORY
Part of iproute2 (since ~1999), developed by Alexey Kuznetsov for Linux 2.2+ advanced routing. Replaced net-tools (route); maintained by NetworkManager/iproute2 teams for modern kernels.
SEE ALSO
ip(8), ip-address(8), ip-neighbour(8), ss(8)


