Multicast frustration.

21 01 2009

Ugh!   Just been doing some testing with PIM sparse mode and run up against what is probably a code issue.

The situation – two routers connected together over ethernet.  R1 has ‘ip igmp join-group 230.0.0.1’ on its ethernet interface – this makes it a listener for that group.   R2 is a PIM bootstrap router (BSR) and rendezvous point (RP).   Now, I should be able to ping 230.0.0.1 from R2 and receive a response, but I wasn’t getting anything.

I knew that R1 had joined the group because if I type ‘show ip igmp group’ I can see that R1 has registered:

<pre>R1#sh ip igmp g
IGMP Connected Group Membership
Group Address    Interface                Uptime    Expires   Last Reporter
230.0.0.1        FastEthernet1/0          00:16:15  00:02:40  192.168.1.6
224.0.1.40       Loopback0                00:16:37  00:02:43  1.1.1.1
R1#</pre>

So… R1 knows there’s a listener for 230.0.0.1 on fa1/0.  However, if I type ‘show ip mroute’, it shows the outgoing interface list as being null:

<pre>R1#sh ip mrout
IP Multicast Routing Table
Flags: D – Dense, S – Sparse, B – Bidir Group, s – SSM Group, C – Connected,
L – Local, P – Pruned, R – RP-bit set, F – Register flag,
T – SPT-bit set, J – Join SPT, M – MSDP created entry,
X – Proxy Join Timer Running, A – Candidate for MSDP Advertisement,
U – URD, I – Received Source Specific Host Report,
Z – Multicast Tunnel, z – MDT-data group sender,
Y – Joined MDT-data group, y – Sending to MDT-data group
Outgoing interface flags: H – Hardware switched, A – Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 230.0.0.1), 00:02:02/00:02:52, RP 1.1.1.1, flags: SJC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet1/0, Forward/Dense, 00:02:02/00:00:00

(*, 224.0.1.40), 00:02:43/00:02:52, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Loopback0, Forward/Sparse, 00:02:43/00:02:52
</pre>

And of course, debug messages seem to reflect the same – the ‘olist’ is null:

<pre>*Mar  1 00:18:57.327: IP(0): s=192.168.1.254 (FastEthernet1/0) d=230.0.0.1 id=3, ttl=254, prot=1, len=114(100), mroute olist null
*Mar  1 00:38:35.679: IP(0): s=1.1.1.1 (Loopback0) d=230.0.0.1 (FastEthernet1/0) id=10, ttl=254, prot=1, len=100(100), mforward.
</pre>

So – the listening router is a 7206VXR, running 12.2(25)S9.  I decided to take the config off, and replace it with a 3725 on 12.4(5c) – the only difference being the IP address ends in .8 instead of .6.    For some reason, I started getting ping responses, but the output interface is still null:

<pre>R1#p 230.0.0.1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 230.0.0.1, timeout is 2 seconds:

*Mar  1 00:26:41.891: IP(0): s=192.168.1.254 (FastEthernet1/0) d=230.0.0.1 id=6, ttl=254, prot=1, len=114(100), mroute olist null
*Mar  1 00:26:41.895: IP(0): s=1.1.1.1 (Loopback0) d=230.0.0.1 (FastEthernet1/0) id=6, ttl=254, prot=1, len=100(100), mforward
Reply to request 0 from 192.168.1.8, 20 ms
Reply to request 0 from 192.168.1.8, 24 ms
R1#</pre>

Hmm  – after writing this up, I am thinking that the olist being ‘null’ for fa1/0 is probably OK.   Since this is the ethernet connection going to the other router, there’s no need to have an olist – the standard routing table takes care of which interface to send the packet out of.   For the second ping that was sourced from 1.1.1.1 (lo0), there *is* a need to have an entry on the outgoing interface list – presumably this tells the router which interface it has received a ‘join’ message on, and therefore needs to have the multicast stream sent out of.

Oddly, I can’t get any output from ‘debug ip mpacket’ on the listening router – either the 7206 or the 3725.   I’ve looked at this for so long (and boiled it down to basics from something more complex) that I think I’ll go to bed with a headache now!   Another day, maybe I’ll understand what the hell is going on…

Advertisements

Actions

Information

4 responses

12 02 2009
shivlu jain

i have face the same issue but after restarting the customer pc the oil list started working.

regards
shivlu jain

22 10 2009
vsaltao

Regarding the debug ip mpacket’ output, you need to disable cef on that interface to be able to see anything

11 04 2010
Roland

To see all mpackets: (config-if)#no ip mroute-cache and no ip route-cache AND deb mpacket

I can try to help. Is R2 seen as RP from R1?
Can you post complete configs?

25 04 2010
DataPlumber

Hi – thanks for the info… This problem was a while back, but I should’ve tried those commands you recommend.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: