troglobit / smcroute

Static multicast routing for UNIX
https://troglobit.com/projects/smcroute/
GNU General Public License v2.0
243 stars 63 forks source link

Multicast daemon #7

Closed macfreek closed 9 years ago

macfreek commented 10 years ago

This is not a bugreport, it is a support request. Feel free to ignore and close it.

I am trying to find a daemon that is both able to forward multicast traffic as well as handle the multicast signalling (IGMP v2 report/join and leave messages, optionally IGMP v3). I don't need/want it to talk any of the multicast routing protocols (DVMRP, PIM-SM, PIM-DM, CBT, MOSPF, MSDP, BGMP, ...).

Does such daemon exist?

Background: At home, I have a triple-play service: Internet, TV and telephony. The custom setup my ISP recommends is a setup with three networks: one for telephony, one for all Internet devices, and one for all TV set-top boxes. Each network connects to a different port on my modem. Now, I like to merge the Internet and IPTV network. For most parts this works, but not yet for the multicast part.

Custom setup

                              IGMP ->      |
set-top box -------------------------------------------- IP TV server
                          <- multicast     |
                                           |
            home network                   |         ISP network

My desired setup:

               IGMP ->                     | IGMP ->
set-top box ------------- FreeBSD router -------------- IP TV server
            <- multicast                   | <- multicast
                                           |
            home network                   |         ISP network

For good measure, I was just able to use nemesis to inject the correct IGMP packet and start and stop the correct IPTV streams. smcroute did forward them correctly, and I received them OK on my set-top box. Fun! Too bad it was also completely overflowing the rest of my network (I had to physically disconnect the upstream cable before I could get the command in to kill smcroute...)

I may still go with some more mundane approach like two VLANs, but I just liked this better. (The main reason is that I don't want a managed switch in my bedroom, where the TV now has a computer to stream from my NAS, and I like to add a set-top box there too. The natural solution of adding a second UTP cable failed because of narrow pipes in the walls. Watching streams over wifi is bad IMHO).

troglobit commented 10 years ago

I think you just described most dynamic multicast routing protocol daemons :smirk:

I was first about to propose the mrouted in FreeBSD, it talks IGMPv2 on layer-2, but then I realized that in your case that probably won't work since the IP TV server doesn't talk DVMRP. So maybe the odd and possibly too Linux centrix igmpproxy could work better for you? It listens to IGMP reports and sets up multicast routes accordingly. Basically a poor mans mutlicast router.

Dunno if the SourceForge link is active anymore, found a few clones here on GitHub though:

Good Luck and do tell if you figure out a way to solve your problem! :)

bombadil commented 9 years ago

@troglobit, no feedback since a year. Can we close this "issue"?

troglobit commented 9 years ago

@bombadil Good idea, lets!

macfreek commented 9 years ago

I'll close this. It was more of a question than anything else (feature request).

FYI, in the end, I used multiple VLANs, and basically bypassed my router, so I no longer needed a multicast router at this router. The reason for going with a different VLAN was to allow better traffic engineering (i.e. making sure multicast traffic for IP TV was not forwarded to non-TV equipment on low bandwidth links).