igmpproxy.conf(5)
π igmpproxy.conf(5) β File Formats Manual π
okay so bestie, this is the File Formats Manual page for igmpproxy.conf(5) β the config file for the igmpproxy(8) multicast daemon. Itβs literally the map that tells the routing daemon which network interfaces are doing what, and weβre keeping every single detail intact. π
πΈ NAME πΈ
igmpproxy.conf β Configuration file for igmpproxy(8) multicast daemon. Iconic, honestly.
π DESCRIPTION π
igmpproxy.conf contains the configuration for the igmpproxy multicast daemon. It defines which network interfaces should be used by the routing daemon. Each interface must be given one of the following roles: upstream, downstream, or disabled.
The upstream network interface is the outgoing interface which is responsible for communicating to available multicast data sources. There can only be one upstream interface. Main character energy, but only one.
Downstream network interfaces are the distribution interfaces to the destination networks, where multicast clients can join groups and receive multicast data. One or more downstream interfaces must be configured.
On disabled network interfaces all IGMP or multicast traffic is ignored altogether. If multiple IP addresses are used on one single interface (ae. eth0:1 ...), all interface aliases not in use should be configured as disabled.
Any line in the configuration file starting with # is treated as a comment. Keywords and parameters can be distributed over many lines. The configuration file has four main keywords:
chroot directoryβ Changes the apparent root directory to the given path after startup, thus denyingigmpproxyaccess to files and commands outside that environmental directory tree.user usernameβ Specifies the userid to whichigmpproxywill change after startup.igmpproxymust be started as root, but it will drop root privileges to the specified user.quickleaveβ Enables quickleave mode. In this mode the daemon will send a Leave IGMP message upstream as soon as it receives a Leave message for any downstream interface. The daemon will then ask for Membership reports on the downstream interfaces, and if a report is received the group is joined again upstream. Normally this is not noticed at all by clients on the downstream networks. If itβs vital that the daemon should act exactly as a real multicast client on the upstream interface, this function should not be used. Disabling this function increases the risk of bandwidth saturation.phyint interface role [ ratelimit limit ] [ threshold ttl ] [ altnet networkaddr ... ]β Defines the state and settings of a network interface.
β¨ PHYINT OPTIONS β¨
interfaceβ The name of the interface the settings are for. This option is required forphyintsettings.roleβ The role of the interface. This should be eitherupstream(only one interface),downstream(one or more interfaces) ordisabled. This option is required.ratelimit limitβ Defines a ratelimit for the network interface. Ifratelimitis set to0(default), no ratelimit will be applied. This setting is optional.threshold ttlβ Defines the TTL threshold for the network interface. Packets with a lower TTL than the threshold value will be ignored. This setting is optional, and by default the threshold is1.altnet networkaddr ...β Defines alternate sources for multicasting and IGMP data. The network address must be on the following format'a.b.c.d/n'. By default the router will accept data from sources on the same network as configured on an interface. If the multicast source lies on a remote network, one must define from where traffic should be accepted.
This is especially useful for the upstream interface, since the source for multicast traffic is often from a remote location. Any number of altnet parameters can be specified.
whitelist networkaddrβ Defines a whitelist for multicast groups. The network address must be in the following format'a.b.c.d/n'. If you want to allow one single group use a network mask of/32, i.e.'a.b.c.d/32'.
By default all multicast groups are allowed on any downstream interface. If at least one whitelist entry is defined, all igmp membership reports for not explicitly whitelisted multicast groups will be ignored and therefore not be served by igmpproxy. This is especially useful, if your provider does only allow a predefined set of multicast groups. These whitelists are only obeyed by igmpproxy itself, they won't prevent any other igmp client running on the same machine as igmpproxy from requesting 'unallowed' multicast groups.
You may specify as many whitelist entries as needed. Although you should keep it as simple as possible, as this list is parsed for every membership report and therefore this increases igmp response times. Often used or large groups should be defined first, as parsing ends as soon as a group matches an entry.
You may also specify whitelist entries for the upstream interface. Only igmp membership reports for explicitly whitelisted multicast groups will be sent out on the upstream interface. This is useful if you want to use multicast groups only between your downstream interfaces, like SSDP from a UPnP server.
This option can be combined with blacklist for fine-grained control.
blacklist networkaddrβ Defines a blacklist for multicast groups. Similar towhitelistexcept that if a blacklist entry is defined, all igmp membership reports for that multicast group will be ignored and therefore not be served byigmpproxy.
Each time a multicast group is forwarded or requested, whitelist and blacklist entries are evaluated in sequential order, from first to last. The last matching entry decides what action is taken; if no entry matches the multicast group, the default action is to serve. Note that, if at least one whitelist entry is defined before any blacklist entry, all igmp membership reports for not explicitly whitelisted multicast groups will be ignored.
π EXAMPLE π
Hereβs the example, copied exactly because details are sacred:
## Enable quickleave quickleave
## Define settings for eth0 (upstream)
phyint eth0 upstream
altnet 10.0.0.0/8
## Disable alternate IP on eth0 (eth0:0)
phyint eth0:0 disabled
## Define settings for eth1 (downstream)
phyint eth1 downstream ratelimit 0 threshold 1
## Define settings for eth2 (also downstream)
phyint eth2 downstream
slay. Thatβs the whole example, no cap. π
π₯ SEE ALSO π₯
π AUTHOR π
Originally written by Johnny Egeland <johnny@rlo.org>.
π cute sign-off: source/version is igmpproxy 0.4, page is igmpproxy.conf(5), and the original footer doesnβt show a date β so Iβm not inventing one, bestie. periodt. π«Ά
π¦ where this page comes from
- alpine 3.22: igmpproxy-doc 0.4-r1 Β· GPL-2.0-or-later
- alpine 3.23: igmpproxy-doc 0.4-r1 Β· GPL-2.0-or-later
- alpine 3.24: igmpproxy-doc 0.4-r1 Β· GPL-2.0-or-later
- arch rolling: igmpproxy 0.4-2 Β· GPL
- nixos 26.05: igmpproxy 0.4
- nixpkgs unstable: igmpproxy 0.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms