[Xorp-users] Well - I'm half working....

Pavlin Radoslavov pavlin@icir.org
Tue, 20 Jul 2004 21:07:30 -0700


> 	Following a local suggestion (Thanks Hefin), I've
> set up a multicast beacon client reporting to the JANET
> beacon monitoring system from my Sun (193.60.11.36).
> 
>   As far as I can tell, the monitoring
> system, and other sites are reporting seeing my multicast
> beacon packets being sent to 233.3.18.1

The reason that other sites are seeing your multicast beacon packets
is because your XORP multicast router is unicasting them
encapsulated within PIM Register packets. Those packets are sent
directly to the RP, and don't depend on any other multicast
routers [see below].

> I'm not quite sure what to expect as the output of the various
> xorp "show" commands, but there are a view cases where it
> says "UNKNOWN" for values of things and I wondered what the
> significance of that was.  For instance  if I issue
> 
> "show pim join all"

Typically, you need only the "show pim join" command.
The difference between the "show pim join" and
"show pim join all" is that the latter shows the (*,*,RP) entries
that were automatically created per RP (for implementation-specific
reasons).

> then I get lots of output, selecting just a bit, the output
> sections for the group 233.3.18.1 being used by the beacon
> are ...
> 
> =================================================
> 233.3.18.1      0.0.0.0         146.97.34.8     WC   
>     Upstream interface (RP):   rl3
>     Upstream MRIB next hop (RP): UNKNOWN
>     Upstream RPF'(*,G):        UNKNOWN
>     Upstream state:            Joined 
>     Join timer:                58
>     Local receiver include WC: ...O..
>     Joins RP:                  ......
>     Joins WC:                  ......
>     Join state:                ......
>     Prune state:               ......
>     Prune pending state:       ......
>     I am assert winner state:  ......
>     I am assert loser state:   ......
>     Assert winner WC:          ......
>     Assert lost WC:            ......
>     Assert tracking WC:        ...OO.
>     Could assert WC:           ...O..
>     I am DR:                   .OOO.O
>     Immediate olist RP:        ......
>     Immediate olist WC:        ...O..
>     Inherited olist SG:        ...O..
>     Inherited olist SG_RPT:    ...O..
>     PIM include WC:            ...O..
> ===================================================

The problem is that the RPF'(*,G) entry is UNKNOWN, therefore the
PIM Join messages aren't sent. This entry is
suppose to point to the next-hop router toward the RP (146.97.34.8).
>From your "show pim mrib" output it appears that the next-hop router
toward the RP should be 144.124.35.254. However, the
"show pim neighbors" output does not show a neighbor with such IP
address.
Therefore, it is question of finding why you don't have a PIM
neighbor with IP address of 144.124.35.254.
To debug the problem you can start with:

* Run tcpdump on the rl3 interface and look for PIM Hello messages
  from 144.124.35.254

* Enable the traceoptions debug messages and look for PIM-SM debug
  messages like:

[ 2004/07/20 20:54:24 TRACE test_pim PIM ] RX PIM_HELLO from
10.3.0.2 to 224.0.0.13 on vif dc1

BTW, does the upstream router 144.124.35.254 has more than one IP
addresses assigned on that interface?

Also, if tcpdump shows there are PIM Hello messages from
144.124.35.254, can you send the tcpdump of one of those messages.


> and also...
> 
> ==============================
> 233.3.18.1      193.60.11.36    146.97.34.8     SG SPT DirectlyConnectedS 
>     Upstream interface (S):    rl2
>     Upstream interface (RP):   rl3
>     Upstream MRIB next hop (RP): UNKNOWN
>     Upstream MRIB next hop (S):  UNKNOWN
>     Upstream RPF'(S,G):        UNKNOWN
>     Upstream state:            Joined 
>     Register state:            RegisterPrune RegisterCouldRegister 
>     Join timer:                57
>     Local receiver include WC: ...O..
>     Local receiver include SG: ......
>     Local receiver exclude SG: ......
>     Joins RP:                  ......
>     Joins WC:                  ......
>     Joins SG:                  ....O.
>     Join state:                ....O.
>     Prune state:               ......
>     Prune pending state:       ......
>     I am assert winner state:  ......
>     Assert winner WC:          ......
>     Assert winner SG:          ......
>     Assert lost WC:            ......
>     Assert lost SG:            ......
>     Assert lost SG_RPT:        ......
>     Assert tracking SG:        ...OO.
>     Could assert WC:           ...O..
>     Could assert SG:           ....O.
>     I am DR:                   .OOO.O
>     Immediate olist RP:        ......
>     Immediate olist WC:        ...O..
>     Immediate olist SG:        ....O.
>     Inherited olist SG:        ...OO.
>     Inherited olist SG_RPT:    ...O..
>     PIM include WC:            ...O..
>     PIM include SG:            ......
>     PIM exclude SG:            ......
> ==================================================
> 
> is this the correct sort of thing?  Are those "UNKNOWN"
> entries anything to worry about??

The UNKNOWN fields in the (*,G) entry are problematic, and the
reason you are not receiving the multicast traffic from the RP. The
UNKNOWN fields in the above (S,G) entry are OK, because this (S,G)
entry is for a directly connected source (in that case there is no
upstream PIM router toward the RP).

> What other output should I look at to try to debug this??  Any suggestions?
> 
> Xorp> show pim mrib  
> DestPrefix         NextHopRouter   VifName VifIndex MetricPref Metric
> 0.0.0.0/0          144.124.35.254  rl3     4                 1      1
> 144.124.32.0/22    144.124.34.30   rl3     4                 0      0
> 193.60.10.0/24     193.60.10.90    rl1     2                 0      0
> 193.60.11.0/24     193.60.11.33    rl2     3                 0      0
> 193.60.15.0/24     193.60.15.40    rl0     1                 0      0
> Xorp> 
> 
> Xorp> show pim neighbors  
> Interface    DRpriority NeighborAddr    V Mode   Holdtime Timeout
> rl3                none 144.124.35.252  2 Sparse      105      79
> rl3                none 144.124.35.253  2 Sparse      105      79
> Xorp> 
> 
> Note: there are actually two router engines in our
> upstream Cisco box.  As I understand it, they watch each other and
> one adopts 144.124.35.254  but they both have there own
> IP addresses too, hence perhaps the oddities above. Live
> failover is the plan I understand.
> 
> Xorp> show pim mfc
> Group           Source          RP             
> 233.3.18.1      193.60.11.36    146.97.34.8    
>     Incoming interface :      rl2
>     Outgoing interfaces:      ....O.
> Xorp> 
> 
> so that looks o.k. I guess? yes?  I presume the dots
> match to interfaces in which case I reckon the O
> matches to rl3 which is my route upstream.

The above MFC entry is OK. It is for your directly connected source
193.60.11.36. And yes, the "O" is set for the outgoing interfaces. I
guess in your case the only interface with "O" is the register_vif.
To confirm that, can you send the output of "show pim interface" and
"show mfea interface".

Regards,
Pavlin