Subject: Re: multicast vlans
To: Patrick Welche <prlw1@newn.cam.ac.uk>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-net
Date: 06/01/2005 15:59:10
Patrick Welche <prlw1@newn.cam.ac.uk> writes:

> I am receiving igmp reports, eg on vlan1 (ghost server):
> 
> 19:40:52.378290
>   IP (tos 0x0, ttl   1, id 2510, offset 0, flags [none], length: 32,
>       optlength: 4 ( RA ))
>      sql-re > 224.77.0.0: igmp v2 report 224.77.0.0
> 19:40:53.661934
>   IP (tos 0x0, ttl   1, id 2517, offset 0, flags [none], length: 32,
>       optlength: 4 ( RA ))
>      sql-re > 229.55.150.208: igmp v2 report 229.55.150.208


Without a complete set of information (tcpdump of multicast queries,
report and data on both interfaces, and mrouted routing table dump and
netstat -g at the same time), it's really hard to tell what's going
on.  (Also, do everything with -n, to remove confusion from incorrect
DNS and enable seeing if the addresses belong on the nets they are
on.)  But if mrouted doesn't list the group as joined, it isn't going
to forward it, and that seems to be the problem.

It might help to understand how ghost works before continuing, as it's
harder to debug multicast routing if you don't know why the
application is doing what it is doing.  I would expect a well-known
address/port to be joined on the server, and the client to send to it
to start the process.

To proceed, I would suggest two things

a) Run mrouted under gdb, and trace the processing of igmp reports.
As I pointed out earlier, vifs are found from the address of reports,
not the ifindex of the arriving interface.  This shouldn't case you
trouble, but you haven't posted enough information to be sure. (The IP
address of the client must fall within the prefix configured on the
vlan.)

Or, turn on debugging; see accept_group_membership in
/usr/src/usr.sbin/mrouted.vif.c

b) Set up a machine with two real interfaces on ethernet ports on a
switch on the vlans and configure multicast routing on it.





> vlan3 (ghost client):
> 
> 19:42:55.057616
>   IP (tos 0x0, ttl   1, id 10688, offset 0, flags [none], length: 32,
>       optlength: 4 ( RA ))
>      test150 > 239.255.255.250: igmp v2 report 239.255.255.250
> 19:48:21.563604
>   IP (tos 0x0, ttl   1, id 10689, offset 0, flags [none], length: 32,
>       optlength: 4 ( RA ))
>      test150 > ALL-ROUTERS.MCAST.NET: igmp leave 239.255.255.250
> 20:01:48.297676
>   IP (tos 0x0, ttl   2, id 3, offset 0, flags [none], length: 288)
>      test150.1025 > 224.77.0.0.6666: UDP, length: 260
> 20:01:49.285590
>   IP (tos 0x0, ttl   2, id 4, offset 0, flags [none], length: 288)
>      test150.1025 > 224.77.0.0.6666: UDP, length: 260
> 
> 
> .. and after the above, mrouted had:
> 
> Multicast Routing Cache Table (1 entries)
>  Origin             Mcast-group     CTmr  Age Ptmr IVif Forwvifs
>  192.168.192/20     224.77.0.0        5m 114s    -  3   
> >192.168.204.227    <- this is test150, the client

-- 
        Greg Troxel <gdt@ir.bbn.com>