summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/configuration/protocols/igmp-proxy.md159
1 files changed, 120 insertions, 39 deletions
diff --git a/docs/configuration/protocols/igmp-proxy.md b/docs/configuration/protocols/igmp-proxy.md
index 961f921b..3ec71c30 100644
--- a/docs/configuration/protocols/igmp-proxy.md
+++ b/docs/configuration/protocols/igmp-proxy.md
@@ -1,79 +1,160 @@
---
-lastproofread: '2023-11-13'
+myst:
+ html_meta:
+ description: |
+ The IGMP proxy enables routers to forward multicast traffic, such as
+ IPTV or video streams, between different networks like home networks
+ and ISPs.
+ keywords: igmp, igmp-proxy, multicast, iptv, quickleave, alt-subnet
---
(igmp-proxy)=
-# IGMP Proxy
+# IGMP proxy
-{abbr}`IGMP (Internet Group Management Protocol)` proxy sends IGMP host messages
-on behalf of a connected client. The configuration must define one, and only one
-upstream interface, and one or more downstream interfaces.
+The {abbr}`IGMP (Internet Group Management Protocol)` proxy enables routers to
+forward multicast traffic, such as IPTV or video streams, between different
+networks, such as home networks and ISPs. The IGMP proxy relies on an upstream
+interface that faces upstream multicast sources, and one or more downstream
+interfaces that face local networks or hosts and forward traffic to requesting
+clients.
+
+IGMP proxy configuration requires exactly one upstream interface and at least
+one downstream interface.
## Configuration
```{cfgcmd} set protocols igmp-proxy interface \<interface\> role \<upstream | downstream\>
-* **upstream:** 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.
+**Configure the operational role for the specified IGMP proxy interface.**
+
+- ``upstream``: Communicates with upstream multicast sources to retrieve the
+ multicast traffic. A valid configuration requires exactly one upstream
+ interface.
+- ``downstream``: Communicates with downstream local subnets or hosts to
+ distribute the requested traffic. A valid configuration requires at least
+ one downstream interface.
+```
+
+Example:
-* **downstream:** 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.
+```none
+set protocols igmp-proxy interface eth0 role upstream
+set protocols igmp-proxy interface eth1 role downstream
```
```{cfgcmd} set protocols igmp-proxy interface \<interface\> alt-subnet \<network\>
-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.
+**Configure an allowed remote subnet for incoming multicast traffic
+on the specified IGMP proxy interface**
+
+By default, the IGMP proxy accepts multicast traffic only from directly
+connected subnets. If a multicast source resides on a remote network, you
+must explicitly define the allowed remote subnet to permit the traffic.
-This is especially useful for the upstream interface, since the source for
-multicast traffic is often from a remote location.
+You can configure multiple remote subnets for an **upstream** IGMP proxy
+interface.
-This option can be supplied multiple times.
+Upstream interfaces frequently require this configuration because multicast
+sources typically reside on external subnets.
```
-```{cfgcmd} set protocols igmp-proxy disable-quickleave
+Example:
+
+```none
+set protocols igmp-proxy interface eth0 alt-subnet 10.0.0.0/8
+```
-Disables quickleave mode. In this mode the daemon will not send a Leave IGMP
-message upstream as soon as it receives a Leave message for any downstream
-interface. The daemon will not ask for Membership reports on the downstream
-interfaces, and if a report is received the group is not joined again the
-upstream.
+```{cfgcmd} set protocols igmp-proxy interface \<interface\> whitelist \<network\>
-If it's vital that the daemon should act exactly like a real multicast client
-on the upstream interface, this function should be enabled.
+**Configure a permitted destination network for multicast traffic requests
+on the specified IGMP proxy interface.**
-Enabling this function increases the risk of bandwidth saturation.
+By default, the IGMP proxy accepts requests for all multicast destination
+networks. When you define a whitelist, the IGMP proxy forwards requests only
+for the specified multicast networks.
+
+You can configure multiple whitelist entries per **downstream** IGMP proxy
+interface.
```
-```{cfgcmd} set protocols igmp-proxy disable
+Example:
-Disable this service.
+```none
+set protocols igmp-proxy interface eth1 whitelist 239.0.0.0/8
```
-(igmp-proxy-example)=
+```{cfgcmd} set protocols igmp-proxy interface \<interface\> threshold \<1-255\>
-### Example
+**Configure the Time-to-Live (TTL) threshold for the specified IGMP proxy
+interface.**
-Interface eth1 LAN is behind NAT. In order to subscribe 10.0.0.0/23 subnet
-multicast which is in eth0 WAN we need to configure igmp-proxy.
+The IGMP proxy drops any multicast packet with a TTL value lower than the
+configured threshold.
+```
+
+Example:
```none
-set protocols igmp-proxy interface eth0 role upstream
-set protocols igmp-proxy interface eth0 alt-subnet 10.0.0.0/23
-set protocols igmp-proxy interface eth1 role downstream
+set protocols igmp-proxy interface eth0 threshold 5
+```
+
+```{cfgcmd} set protocols igmp-proxy disable-quickleave
+
+**Disable quickleave mode for the IGMP proxy.**
+
+If disabled, the IGMP proxy does not send an upstream Leave message upon
+receiving a downstream Leave message, preventing the immediate termination
+of upstream multicast traffic. The IGMP proxy also stops querying downstream
+interfaces for membership reports. If a downstream client submits a new
+report, the IGMP proxy discards the message and does not resume the delivery
+of requested traffic.
```
+```{note}
+Disabling quickleave mode forces the IGMP proxy to act exactly like a
+standard multicast client on the upstream interface.
+```
+
+```{note}
+Disabling quickleave mode increases the risk of network bandwidth
+saturation.
+```
+
+Example:
+
+```none
+set protocols igmp-proxy disable-quickleave
+```
+
+```{cfgcmd} set protocols igmp-proxy disable
+
+**Disable the IGMP proxy on the router.**
+```
+
+Example:
+
+```none
+set protocols igmp-proxy disable
+```
## Operation
```{opcmd} restart igmp-proxy
Restart the IGMP proxy process.
-``` \ No newline at end of file
+```
+
+## Example
+
+In this example, the local LAN on interface eth1 operates behind NAT. To allow
+local clients to receive multicast traffic originating from the 198.51.100.0/24
+source network on the WAN interface (eth0), configure the IGMP proxy as
+follows:
+
+```none
+set protocols igmp-proxy interface eth0 role upstream
+set protocols igmp-proxy interface eth0 alt-subnet 198.51.100.0/24
+set protocols igmp-proxy interface eth1 role downstream
+```
+