[Xorp-users] Multicast problem

Pavlin Radoslavov pavlin at icir.org
Thu Dec 14 16:14:59 PST 2006


> Here is my network configuration :
> 
> (A) 192.168.0.3/24 --------------- 192.168.0.2/24 (Router) 172.17.0.10 
> ----------- 172.17.0.1 (Source)
> 
> The flow should go from the Source (a VLC server) to A but it is not 
> send to the 192.168.0.0/24 network.
> 
> There is no firewall.
> We checked the ttl and it was set to 1, we set it to 10 but the flow is 
> still not going on the 192.168.0.2 interface of the router.
> No igmp packets are sent on this interface.
> 
> As you can see in the "show pim join" message, the group is not 
> "joined". I think that comes from the rp-static address. I set it to 
> 172.17.0.10 as the flow comes from this interface. Is it the right way 
> to configure it ?

It shouldn't matter which interface you choose for the rp-static
address.

Which is your test multicast group?
The "show pim join" information is about 224.2.127.254, but later
you mention that group 224.2.120.250 is not present in the
"show igmp group" output.

I will presume your test group is 224.2.120.250.
For multicast forwarding to work, the directly-connected receiver
must be detected by IGMP (i.e., it must be seen by "show igmp group").
Hence, it appears that the problem is that the receiver is not
detected by IGMP. To detect the problem, could you run a sniffer on
the receiver's interface (ath0) listening for IGMP packets. E.g.,

tcpdump -i ath0 -n -vvv -s 0 -x proto \\igmp

You should see periodic IGMP Query messages originated by XORP. When
the receiver joins, you should see an IGMP Report originated by the
receiver.
If you don't see the IGMP Report messages, then there is something
wrong with the IGMP packets delivery on that interfaces.
BTW, is ath0 a wireless interface? If yes, then probably there is
something odd with the IGMP packets on that interface, so this is
where you should concentrate your debugging effort. Some of the
things to check are:

 * Is the Linux "ip addr" command showing the MULTICAST flag for
   ath0?

 * Do you see the IGMP Report messages if you run the tcpdump
   command on the receiver?

 * Do you see the IGMP Report messages if you run the tcpdump
   command on XORP?

Note that there is some chance for "show igmp group" to show the
224.2.120.250 membership on ath0 _only_ when you are running tcpdump
on that interface. I don't want to get into detailed speculations
why you might see something like this (it might have to do something
with the PROMISC interface flag), but let me know if this is
the case. 

Regards,
Pavlin

> When i start the multicast flow i get this from xorp log :
> 
> [ 2006/12/14 15:50:11 TRACE xorp_pimsm4 PIM ] TX PIM_HELLO from 
> 172.17.0.10 to 224.0.0.13 on vif eth0
> [ 2006/12/14 15:50:19 TRACE xorp_fea MFEA ] RX kernel signal: 
> message_type = 1 vif_index = 1 src = 172.17.0.1 dst = 224.2.120.250
> [ 2006/12/14 15:50:19 TRACE xorp_pimsm4 PIM ] RX NOCACHE signal from 
> MFEA_4: vif_index = 1 src = 172.17.0.1 dst = 224.2.120.250
> [ 2006/12/14 15:50:19 TRACE xorp_pimsm4 PIM ] Add MFC entry: 
> (172.17.0.1, 224.2.120.250) iif = 1 olist = ... olist_disable_wrongvif = OOO
> [ 2006/12/14 15:50:19 TRACE xorp_pimsm4 PIM ] Add dataflow monitor: 
> source = 172.17.0.1 group = 224.2.120.250 threshold_interval_sec = 210 
> threshold_interval_usec = 0 threshold_packets = 0 threshold_bytes = 0 
> is_threshold_in_packets = 1 is_threshold_in_bytes = 0 is_geq_upcall = 0 
> is_leq_upcall = 1
> [ 2006/12/14 15:50:19 TRACE xorp_fea MFEA ] Add MFC entry: (172.17.0.1, 
> 224.2.120.250) iif = 1 olist = ...
> 
> 
> Here is the show pim join (i deleted some entries) :
> 
> 
> root at localhost.localdomain> show pim join
> Group           Source          RP              Flags
> 224.2.127.254   0.0.0.0         172.17.0.10     WC
>     Upstream interface (RP):   register_vif
>     Upstream MRIB next hop (RP): UNKNOWN
>     Upstream RPF'(*,G):        UNKNOWN
>     Upstream state:            Joined
>     Join timer:                25
>     Local receiver include WC: .O.
>     Joins RP:                  ...
>     Joins WC:                  ...
>     Join state:                ...
>     Prune state:               ...
>     Prune pending state:       ...
>     I am assert winner state:  .O.
>     I am assert loser state:   ...
>     Assert winner WC:          .O.
>     Assert lost WC:            ...
>     Assert tracking WC:        .OO
>     Could assert WC:           .O.
>     I am DR:                   OOO
>     Immediate olist RP:        ...
>     Immediate olist WC:        .O.
>     Inherited olist SG:        .O.
>     Inherited olist SG_RPT:    .O.
>     PIM include WC:            .O.
> 239.195.255.255 0.0.0.0         172.17.0.10     WC
> ..........
> 239.249.165.76  0.0.0.0         172.17.0.10     WC
> ..........
> 239.255.255.250 0.0.0.0         172.17.0.10     WC
> ..........
> 239.255.255.255 0.0.0.0         172.17.0.10     WC
> ..........
> 224.2.120.250   172.17.0.1      172.17.0.10     SG DirectlyConnectedS
>     Upstream interface (S):    eth0
>     Upstream interface (RP):   register_vif
>     Upstream MRIB next hop (RP): UNKNOWN
>     Upstream MRIB next hop (S):  UNKNOWN
>     Upstream RPF'(S,G):        UNKNOWN
>     Upstream state:            NotJoined
>     Register state:            RegisterNoinfo RegisterNotCouldRegister
>     Join timer:                -1
>     KAT(S,G) running:          true
>     Local receiver include WC: ...
>     Local receiver include SG: ...
>     Local receiver exclude SG: ...
>     Joins RP:                  ...
>     Joins WC:                  ...
>     Joins SG:                  ...
>     Join state:                ...
>     Prune state:               ...
>     Prune pending state:       ...
>     I am assert winner state:  ...
>     I am assert loser state:   ...
>     Assert winner WC:          ...
>     Assert winner SG:          ...
>     Assert lost WC:            ...
>     Assert lost SG:            ...
>     Assert lost SG_RPT:        ...
>     Assert tracking SG:        ...
>     Could assert WC:           ...
>     Could assert SG:           ...
>     I am DR:                   OOO
>     Immediate olist RP:        ...
>     Immediate olist WC:        ...
>     Immediate olist SG:        ...
>     Inherited olist SG:        ...
>     Inherited olist SG_RPT:    ...
>     PIM include WC:            ...
>     PIM include SG:            ...
>     PIM exclude SG:            ...
> 224.2.127.254   172.17.0.1      172.17.0.10     SG SPT DirectlyConnectedS
> ..........
> 
> 
> 
> The show igmp group (the 224.2.120.250 is not present) :
> 
> root at localhost.localdomain> show igmp group
> Interface    Group           Source          LastReported Timeout V State
> ath0         224.0.0.2       0.0.0.0         192.168.0.2      185 2     E
> ath0         224.0.0.13      0.0.0.0         192.168.0.2      185 2     E
> ath0         224.0.0.22      0.0.0.0         192.168.0.2      185 2     E
> ath0         224.0.0.251     0.0.0.0         192.168.0.2      186 2     E
> eth0         224.0.0.2       0.0.0.0         172.17.0.10      185 2     E
> eth0         224.0.0.5       0.0.0.0         172.17.0.10      184 2     E
> eth0         224.0.0.6       0.0.0.0         172.17.0.10      194 2     E
> eth0         224.0.0.9       0.0.0.0         172.17.0.10      189 2     E
> eth0         224.0.0.13      0.0.0.0         172.17.0.10      189 2     E
> eth0         224.0.0.22      0.0.0.0         172.17.0.10      190 2     E
> eth0         224.0.0.251     0.0.0.0         172.17.0.10      185 2     E
> eth0         224.2.127.254   0.0.0.0         172.17.0.2       194 2     E
> eth0         239.195.255.255 0.0.0.0         172.17.0.2       189 2     E
> eth0         239.249.165.76  0.0.0.0         172.17.0.100     191 2     E
> eth0         239.255.255.250 0.0.0.0         172.17.0.4       185 2     E
> eth0         239.255.255.255 0.0.0.0         172.17.0.2       191 2     E
> 
> My config.boot :
> 
> interfaces {
>     interface eth0 {
>     description: "data interface"
>     disable: false
>     /* default-system-config */
>     vif eth0 {
>         disable: false
>         address 172.17.0.10 {
>         prefix-length: 24
>         broadcast: 172.17.0.255
>         disable: false
>         }
>     }
>     }
> 
>     interface ath0 {
>     description: "data interface"
>     disable: false
>     /* default-system-config */
>     vif ath0 {
>         disable: false
>         address 192.168.0.2 {
>         prefix-length: 24
>         broadcast: 192.168.0.255
>         disable: false
>         }
>     }
>     }
> }
> 
> plumbing {
>     mfea4 {
>     disable: false
>     interface eth0 {
>         vif eth0 {
>         disable: false
>         }
>     }
>     interface ath0 {
>         vif ath0 {
>         disable: false
>         }
>     }
>     interface register_vif {
>         vif register_vif {
>         disable: false
>         }
>     }
>     traceoptions {
>         flag all {
>         disable: false
>         }
>     }
>     }
> }
> 
> protocols {
>     igmp {
>     disable: false
>     interface eth0 {
>         vif eth0 {
>         disable: false
>         }
>     }
>     interface ath0 {
>         vif ath0 {
>         disable: false
>         }
>     }
>     traceoptions {
>         flag all {
>         disable: false
>         }
>     }
>     }
> }
> 
> protocols {
>     pimsm4 {
>     disable: false
>     interface eth0 {
>         vif eth0 {
>         disable: false
>         }
>     }
>     interface ath0 {
>         vif ath0 {
>         disable: false
>         }
>     }
>     interface register_vif {
>         vif register_vif {
>         /* Note: this vif should be always enabled */
>         disable: false
>         }
>     }
> 
>     static-rps {
>         rp 172.17.0.10 {
>         group-prefix 224.0.0.0/4 {
>             /* rp-priority: 192 */
>             /* hash-mask-len: 30 */
>         }
>         }
>     }
> 
>     traceoptions {
>         flag all {
>         disable: false
>         }
>     }
>     }
> }
> 
> protocols {
>     fib2mrib {
>     disable: false
>     }
> }
> 
> 
> Regards, Sebastien.
> 
> Pavlin Radoslavov a écrit :
> >> source------(R1)-------destination
> >>
> >> xorp is running on R1, pimsm, igmp, mfea4, fea and fib2mrib are enabled.
> >>
> >> I am using VLC to send a multicast traffic but nothing is forwarded to  
> >> the destination.
> >> Everything seems to be good in the configuration and IGMP Membership  
> >> Reports and PIM Hello are received in the xorp log messages.
> >>
> >> R1 is the RP, is this a problem ? (I configured it statically)
> >> Should I use another router for the RP ? I mean, as :
> >>
> >> source----(R1)------(R2=RP)-------destination
> >>     
> >
> > Static RP is fine and actually recommended for your setup.
> > And no, there is no need for a second router.
> >
> > Two of the most frequent issues are:
> >
> > 1. Is the TTL of the sender's data traffic large enough?
> >    By default the TTL is 1 so the data traffic won't be forwarded.
> >
> > 2. Are there any firewall rules that might affect the multicast
> >    forwrading in any way (e.g., rules that filter the IGMP messages,
> >    etc).
> >
> > If the issue is not one of those two, then please send your XORP
> > configuration and the output of the following xorpsh commands:
> >
> > show igmp group
> > show pim join
> >
> > Regards,
> > Pavlin
> >
> >   
> 
> _______________________________________________
> Xorp-users mailing list
> Xorp-users at xorp.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users



More information about the Xorp-users mailing list