[c-nsp] More weird IPv6 multicast problems
Bernhard Schmidt
berni at birkenwald.de
Sat Mar 12 16:14:53 EST 2005
Hi,
it looks like I've hit another bug in the IPv6 multicast implementation
of Cisco IOS.
Basic setup:
|
| Tunnel Upstream
|
| Ethernet Tunnel Tunnel Peer1
RB1 -------------- RB2 -------------- RA1 --------------------
| | | Tunnel Peer2
+-------+----------+ +----------------------
| | Tunnel Downstream
Host +----------------------
The host joins the multicast group FF3E:20:2001:660::BEAC which is the
group of the m6bone multicast beacon at Renater. There are about 15
sources in this group, two behind Peer1, one behind Peer2 and the rest
behind the Upstream. On the ethernet segment with the host BR is the
PIM DR and RB1 is MLD querying router.
When the group is joined RB1 forwards the traffic towards the direct
link to RB2 which sends it into the segment (due to being DR as I
assume). The interface to the host's segment on RB1 is in Null state.
RB1:
(2001:610:408:2::5, FF3E:20:2001:660::BEAC), 3d17h/00:02:59, flags: ST
Incoming interface: Tunnel302
RPF nbr: FE80::2A0:A5FF:FE28:1174
Immediate Outgoing interface list:
GigabitEthernet0/3, Forward, 1d12h/00:02:59
GigabitEthernet0/1.15, Null, 3d17h/never
RB2:
(2001:610:408:2::5, FF3E:20:2001:660::BEAC), 1d12h/00:03:23, flags: ST
Incoming interface: GigabitEthernet0/3
RPF nbr: FE80::20C:86FF:FE9A:2819
Immediate Outgoing interface list:
Tunnel396, Forward, 1d12h/00:03:23
Inherited Outgoing interface list:
GigabitEthernet0/2.15, Forward, 00:00:05/never
Gi0/3 is between RB1 and RB2, RB1 Tun302 is upstream, RB2 Tun396 is to
RA1, Gi0/x.15 is to the host. There is a receiver for that group behind
RA1 so the state is actually there since a long time.
After some seconds to minutes there comes an assert message from RB1
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
GigabitEthernet0/1.15 Processing timers
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
Send [20/20] Assert on GigabitEthernet0/1.15
which RB2 reacts on and stops sending that source to the interface
because RB1 has a better path to the source.
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
Received [20/20] Assert from FE80::20C:86FF:FE9A:281B on
GigabitEthernet0/2.15
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
Assert processing message wins
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
GigabitEthernet0/2.15 Start assert timer (winner
FE80::20C:86FF:FE9A:281B)
Mar 12 21:02:49: IPv6 PIM: (2001:610:408:2::5,FF3E:20:2001:660::BEAC)
GigabitEthernet0/2.15 FWD state change from Forward to Prune
but, unfortunately, backbone1 does not start sending on Gi0/1.15, so
effectively the Host does not receive traffic at all anymore
RB1:
(2001:610:408:2::5, FF3E:20:2001:660::BEAC), 3d18h/00:02:58, flags: ST
Incoming interface: Tunnel302
RPF nbr: FE80::2A0:A5FF:FE28:1174
Immediate Outgoing interface list:
GigabitEthernet0/3, Forward, 1d12h/00:02:58
GigabitEthernet0/1.15, Null, 3d18h/never
RB2:
(2001:610:408:2::5, FF3E:20:2001:660::BEAC), 1d12h/00:02:42, flags: ST
Incoming interface: GigabitEthernet0/3
RPF nbr: FE80::20C:86FF:FE9A:2819
Immediate Outgoing interface list:
GigabitEthernet0/2.15, Null, 00:04:08/never
Tunnel396, Forward, 1d12h/00:02:42
funny thing is, there are still six sources in that group no assert
messages were sent for and thus are continuing to be forwarded. Two of
them are behind RA1 Peer1, one behind RA1 Peer2 and three on upstream,
so it is apparently not only related to the source (altough all sources
through RA1 come through, prolly because the assert message was "turn
down" due to better path).
RB1 and RB2 are NPE-G1 running 12.2(25)S3, RA1 is NPE-400 running
12.3(8)T6. Anyone having any ideas how to solve that without
singlehoming the host's segment?
Bernhard
More information about the cisco-nsp
mailing list