Rozhuk Ivan
2021-04-03 04:30:39 UTC
On Fri, 7 Aug 2020 15:25:25 +0200
http://netlab.dhis.org/wiki/ru:software:freebsd:igmpproxy_on_netgraph
https://lists.freebsd.org/pipermail/freebsd-net/2011-December/030643.html
Hello,
I have discovered that I had a multicast issue for years I did not
know about. I use a FreeBSD (opnsense) setup as router for my home
network and have igmpproxy for IPTV. Somehow everything seems to
work, until I realized that my ISP was making a DoS with multicast.
https://forum.netgate.com/topic/62591/igmp-issues-causing-isp-to-perform-multicast-dos-on-my-pfsense/7.
But the solution of not using FreeBSD seem weird. So dug a lot
learning about Multicast IGMPv{2,3} etc in the process. Here is an
igmpproxy is performing "correctly" in that it will act upon to
IGMPv2 Join request from the TV box by joining the multicast groups
correctly. When the TV Box sends an IGMPv2 Leave request, igmpproxy
will remove the source IP from the multicast table on the interface
(the code is here
https://github.com/pali/igmpproxy/blob/b7940fc75b36d5bcc3a07654fc1af76f179302a9/src/mcgroup.c#L58-L60
this same call is used for joining and leaving).
You can drop all this and just forward (bridge) all multicast:I have discovered that I had a multicast issue for years I did not
know about. I use a FreeBSD (opnsense) setup as router for my home
network and have igmpproxy for IPTV. Somehow everything seems to
work, until I realized that my ISP was making a DoS with multicast.
https://forum.netgate.com/topic/62591/igmp-issues-causing-isp-to-perform-multicast-dos-on-my-pfsense/7.
But the solution of not using FreeBSD seem weird. So dug a lot
learning about Multicast IGMPv{2,3} etc in the process. Here is an
igmpproxy is performing "correctly" in that it will act upon to
IGMPv2 Join request from the TV box by joining the multicast groups
correctly. When the TV Box sends an IGMPv2 Leave request, igmpproxy
will remove the source IP from the multicast table on the interface
(the code is here
https://github.com/pali/igmpproxy/blob/b7940fc75b36d5bcc3a07654fc1af76f179302a9/src/mcgroup.c#L58-L60
this same call is used for joining and leaving).
http://netlab.dhis.org/wiki/ru:software:freebsd:igmpproxy_on_netgraph
https://lists.freebsd.org/pipermail/freebsd-net/2011-December/030643.html