Jump to content

This is the support site for Andrews & Arnold Ltd, a UK Internet provider. Information on these pages is generally for our customers but may be useful to others, enjoy!

Multicast: Difference between revisions

181 bytes added ,  29 August 2022
m
 
(4 intermediate revisions by the same user not shown)
=== Relaying the stream ===
 
It may happen that the computer hosting PPPoE is in an inconvenient location for watching and that other networked devices should receive copies of the stream. [http://troglobit.github.io/smcroute smcroute] lets one forward multicast statically at first and can even work where programs do not understand IGMP or in some situations even multicast, which can be aided with DNAT rules and/or use of -j REDIRECT on targets
 
FurtherIt workmay isbe possible later to have other programs listen for for IGMP internally/MLD and then "manage" smcroute, due to a possible linux limitation of only allowing one userspace program manage kernel mrouting at a time, to have maximum flexibility in upstreams and downstreams including internal sources.
 
Other software that may be useful is [https://manpages.debian.org/stable/igmpproxy igmpproxy] and [https://unfix.org/projects/ecmh/ ecmh]
 
For testing and usage, smcroute can reflect the multicast to other attached networks. The oldsmcroute SMCroute2.4.4 as found in Debian 11, would not configure the interface without an IP address on it, however the very latest smcroute allows 0.0.0.0 to be used to originate the IGMP3 joins, this needed the upgrade from ip_mreq to ip_mreqn in the smcroute code.
 
Additionally the sysctl rp_filter is disabled on $DEVICE and "all" to allow the incoming multicast without a matching outgoing route, also desirable. iptables and/or nftables would still be used to filter.
 
smcroute requires the source address, this was found with wireshark or tcpdump, and could be subject to change, <var>int0</var> and <var>ext0</var> are example devices to copy multicast packets to, these could be internal vlans on a home network:
 
smcroutectl add $DEVICE 109.159.247.194 234.81.131.194 <var>int0 ext0</var>
smcroutectl add $DEVICE 109.159.247.216 234.81.132.216 <var>int0 ext0</var>
 
To actually start, substituting for the other addresses beginning 234. above for the other channels.
To actually start:
 
smcroutectl join $DEVICE 234.81.131.194
48

edits