Multicast group memberships lost if eth0 brought down and up

Ted Kaczmarek tedkaz at optonline.net
Sun Oct 3 12:02:52 UTC 2004


On Sun, 2004-10-03 at 06:23 -0500, Brian Fahrlander wrote:
>     OK, I've been working a lot a sleeping a little; I think my head is
> now clear enough to respond to this:
> 
> 
> On Sat, 2004-10-02 at 06:49, Ted Kaczmarek wrote:
> > On Fri, 2004-10-01 at 12:25 -0400, Deron Meranda wrote:
> > > Is this the correct behavior, or a bug?  (seeing this in both FC2
> > > as well as EL3)
> > > 
> > > I wrote an application which registers itself in a couple IPv6
> > > multicast groups on an ethernet interface.  A "netstat -A inet6 -g"
> > > then shows the group membership, such as
> > > 
> > > IPv6/IPv4 Group Memberships
> > > Interface       RefCnt Group
> > > --------------- ------ ---------------------
> > > lo              1      ff02::1
> > > eth0            1      ff02::eb42:8740
> > > eth0            1      ff02::f6b6:d980
> > > eth0            1      ff02::1:ff13:7276
> > > eth0            1      ff02::1
> > > 
> > > If I then leave the application running, but do
> > > an "ifdown eth0" then "ifup eth0", I get this,
> > > 
> > > IPv6/IPv4 Group Memberships
> > > Interface       RefCnt Group
> > > --------------- ------ ---------------------
> > > lo              1      ff02::1
> > > eth0            1      ff02::1:ff13:7276
> > > eth0            1      ff02::1
> > > 
> > > Are group memberships supposed to be preserved across
> > > up/down cycling?  If not, then what's the proper way for an
> > > application to detect that this has occurred so it can re-register?
> > > Note that the app can still successfully SEND packets to the
> > > group, but obviously, it no longer receives any packets.
> > > 
> 
> > up/down cycling of what?
> > Most switches will and should flush all tables on a port state change.
> > I am assuming you are in a switch that is doing igmp snooping as well.
> > What you probably need is for your app to detect link loss and send a
> > new join when the link comes back. I have seen what I consider many
> > broken applications that have this same issue. You may want to read up
> > on how igmp and Pim work, and how the network equipment you are using
> > implements it. Some vendors allow for you to manually join a group, this
> > will force that port to always get the multicast data for that group.
> > 
> > Also if come up with a good negative ack model , which is really the
> > proper approach, it should recover in a relatively fast time on any
> > up/down cycling assuming the network gear is set up right and working
> > properly.
> 
> 
>      CAUGHT YA!  You're using Multicast on Linux.  After all these
> years, I've finally found the 'one guy' actually using what, to me, is
> the coolest feature of Linux: multicast with no artificial limitations.
> 
>     1. What are ya using it for? (Hope it's not just NTP)
> 
>     2. How can I get involved?
> 
>     3. Why does the topic seem all-but-dead?
> 
>     4. Does any software really _work_ with multicast other than NTP?

Vlc, squid, quagga and probably many more.

One of the coolest things I set up was vlc streaming video through a
quagga box using htb qdisc to add priority to the video stream. Add some
queues for some other flows and watch the qdisc do its job. I did
extensive testing of qos on many vendors products, the Linux qos was by
far the most robust.


Ted




More information about the fedora-list mailing list