|
Multicast PPP video streaming router
If you've made it this far, sit tight, this is gonna get real ugly... or bail now, your call!
So I've done quite a bit of googling on this over the last couple of days and it seems everyone who has hit this same setup/problem in the past has gotten nowhere. That, or they just never bothered posting the answer in the last ten years...
I have a server that streams multicast video to clients, and also acts as a PPPoE server to several clients that are constantly connecting/disconnecting. When a new client connects via PPP a new virtual interface is created for that connection as pppX (I'm sure you know this but it's important to remember for the problem that they are created on connection). I need to install an IGMP proxy on the server that will be able to handle PPP interfaces constantly coming up/down. igmpproxy was my first thought, but you need to specify all interfaces (up and down) prior to starting the server, so this is no good for my setup. Second I took a look at mrouted, but this fails from the same problem. Mrouted only looks for interfaces once (at startup) and never checks again to see if there have been added / removed interfaces.
Perhaps there is a way to do this without an igmp proxy, but none come to mind. Prior to learning about igmp proxies I tried to manually add multicast routes to my routing table for each client, but this caused a lot of problems. Mostly only one PPP client at a time could receive multicast packets to any group (even those groups to which the client was not subscribed). Seemed that this solution caused all packets to be routed to the same destination MAC address (as a wireshark capture proved).
I considered writing a few extra functions for mrouted to check the 'uvifs' array for changes against what the kernel reports as active interfaces, and reconfiguring 'uvifs' if the two disagree. However, I feel that solution is a bit extreme, and someone else must have found a solution by this point. Any help would be greatly appreciated.
|