Re: Multicast question
- From: Frank Kardel <kardel@xxxxxxx>
- Date: Sat, 01 Mar 2008 11:14:44 +0100
John Vossler wrote:
I have a new system running Solaris 10 set up as an NTP server. IT is synchronizing correctly but I cannot get it to multicast on any interface except the systems primary Ethernet interface, bge0. I need it to multicast on interfaces bge1-bge3 and ce0 - ce7.
Client systems reside on the network segments on these other interfaces.
Anyone have any suggestions on getting the server to multicast on these other interfaces?
This issue has been discussed on the newsgroup around 2007-02-23. At
that time I taught ntpd to find the multicast default interface. This
solution is only suffcient on system with a single interface. To
quote the analysis from Bug #785 (https://support.ntp.org/bugs/show_bug.cgi?id=785):
As it turns out the IPv4 mcast implementation will copy the multicast
packets to any interface where the respective multicast groups have been
joined. For that to happen on a multihomed host (one with several
multicast capable interfaces) you need to run mrouted, zebra or some other
multicast routing daemon.
So usually IPv4 MCAST will go via one interface. The kernel and/or
Multicast routing deamons then run the IGMP and other protocols to
find out which subscribers are connected on which interface and instruct
the kernel to do the respective packet replications.
On NetBSD (probably other BSDs too ans systems derived from that) my
setup is like this:
broadcast 126.96.36.199 ttl 5 autokey
I run mrouted.
and mrouted detects via IGMP my multicast clients. The multicast
routing table of the kernel is currently:
Virtual Interface Table
Vif Thresh Limit Local-Address Remote-Address Pkt_in Pkt_out
0 1 0 10.x.y.1 0 31
1 1 0 84.xxx.xxx.xxx 0 613
Multicast Forwarding Cache
Hash Origin Mcastgroup Traffic In-Vif Out-Vifs/Forw-ttl
38 84.xxx.xxx.xxx 188.8.131.52 613 1 0/1
Total no. of entries in cache: 1
This means for the Mcastgroup 184.108.40.206 (NTP.MCAST.NET) 613 packets
where sent via the interface Vif1 84.... These packets are replicated to
the interfaces Vif0 10... and Vif1 84.... for real output. You also
see that the interface Vif0 (10....) only sent 31 packets. This is
because I just started my notebook which is a multicast client.
As soon as ntpd on the notebook joined the Mcastgroup 220.127.116.11
pakets started flowing via the Vif0.
Solaris may or may not be needing a multicast routing daemon, but
I leave that research to someone else for now. But one thing to
note is that you may not see NTP Mcast traffic unless IGMP
messages are visible on the network segments (you can snoop for them).
So for debugging you need an ntpd on the interesting network segments
that listens for the multicast packets *before* you are likely to see
NTP multicast packets leaving the interface for that segment.
Usually Mcast packets are only send when necessary except for the
My current IGMP traffic looks like this (tcpdump -v -v -s 512 -i <iface> igmp):
11:06:39.860323 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 28) server > ALL-SYSTEMS.MCAST.NET: igmp query v2
11:06:39.860404 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32) server > DVMRP.MCAST.NET: igmp dvmrp Probe
11:06:45.498743 IP (tos 0x0, ttl 1, id 556, offset 0, flags [none], proto IGMP (2), length 28) client > NTP.MCAST.NET: igmp v2 report NTP.MCAST.NET
11:06:49.960402 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32) server > DVMRP.MCAST.NET: igmp dvmrp Probe
Note the igmp v2 report line. Here the client documents interest in
NTP.MCAST.NET multicast packets which leads to forwarding the packets
to that network segment.
Hope this helps a bit.
- Re: Multicast question
- From: Martin Burnicki
- Re: Multicast question