Why do mapping agents need to be connected to all PIM routers in NBMA?

July 29, 2008 at 2:51 pm | Posted in Multicast | Leave a comment

This is required because of the way multicast dense mode works. When a
router receive a mpacket, it floods the multicast packet out to all
other interface, except the interface it is received on.

Let’s look at the example provided at the link below,

http://www.cisco.com/en/US/docs/ios/solutions_docs/ip_multicast/White_papers/frm_rlay.html

If MA is placed under a spoke router R2, then RP discovery message sent via 224.0.1.40
can be propogated to R2, then to Hub R1, and further to any router
behind R1, but not to other spoke. This is because, when R1 receives
this “RP discovery message”, it floods out all other interface(s), but
not S0.1

If you do sh ip mroute on R1, you will see that the interface S0.1 is
not in the OIL (outgoing interface list) for the group 224.0.1.40.

Similar candidate RP and mapping agent should be communicatable via
224.0.1.39. If they are both spokes, can only be reachable via a hub,

then the MA cannot not event see the RP presence.

If we place MA on a spoke router, we can get multicast working by adding a tunnel between the spokes. The things we should look for are RPF check, and how you route traffic between R2 and R4. It has to be routed via the tunnel interface. This is done via manupulating IGP metric.

R1#sh run

!
ip multicast-routing
!
!
interface Loopback0
ip address 1.1.1.1 255.255.255.0
ip pim sparse-dense-mode
!
!
interface Serial1/0
no ip address
encapsulation frame-relay
serial restart-delay 0
!
interface Serial1/0.1 multipoint
ip address 123.0.0.1 255.255.255.0
ip pim nbma-mode
ip pim sparse-dense-mode
no ip split-horizon eigrp 100
frame-relay map ip 123.0.0.2 102 broadcast
frame-relay map ip 123.0.0.3 103 broadcast
!
!
router eigrp 100
network 0.0.0.0
no auto-summary
!

ip pim send-rp-announce Loopback0 scope 10 interval 5
!
!

R2#sh run

ip multicast-routing
!
!

!
interface Loopback0
ip address 2.2.2.2 255.255.255.0
ip pim sparse-dense-mode
ip igmp join-group 232.0.0.2
!
interface Tunnel23
bandwidth 10000000
ip address 23.0.0.2 255.255.255.0
ip pim sparse-dense-mode
delay 1
tunnel source 123.0.0.2
tunnel destination 123.0.0.3
!

!
interface Serial1/0
no ip address
encapsulation frame-relay
serial restart-delay 0
!
interface Serial1/0.1 point-to-point
ip address 123.0.0.2 255.255.255.0
ip pim sparse-dense-mode
frame-relay interface-dlci 201
!

!
router eigrp 100
network 0.0.0.0
no auto-summary
!

!
!
end

R2#

R3#sh run

hostname R3
!

ip multicast-routing
!
!

!
!
!
interface Loopback0
ip address 3.3.3.3 255.255.255.0
ip pim sparse-dense-mode
!
interface Tunnel23
bandwidth 10000000
ip address 23.0.0.3 255.255.255.0
ip pim sparse-dense-mode
delay 1
tunnel source 123.0.0.3
tunnel destination 123.0.0.2
!

!
interface Serial1/0
no ip address
encapsulation frame-relay
serial restart-delay 0
!
interface Serial1/0.1 point-to-point
ip address 123.0.0.3 255.255.255.0
ip pim sparse-dense-mode
frame-relay interface-dlci 301
!
interface Serial1/1
no ip address
encapsulation frame-relay
serial restart-delay 0
!
interface Serial1/1.1 point-to-point
ip address 34.0.0.3 255.255.255.0
ip pim sparse-dense-mode
frame-relay interface-dlci 314
!

!
router eigrp 100
network 0.0.0.0
no auto-summary
!
!
!
ip pim send-rp-discovery Loopback0 scope 10 interval 5
ip mroute 1.1.1.1 255.255.255.255 Tunnel23
!
!
!
!
end

R4#sh run
Building configuration…

Current configuration : 1573 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R4
!

!
!
interface Loopback0
ip address 4.4.4.4 255.255.255.0
ip pim sparse-dense-mode
!

!
interface Serial1/0
no ip address
encapsulation frame-relay
serial restart-delay 0
!
interface Serial1/0.1 point-to-point
ip address 34.0.0.4 255.255.255.0
ip pim sparse-dense-mode
frame-relay interface-dlci 413
!

!
router eigrp 100
network 0.0.0.0
no auto-summary
!

R3#sh ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route

Gateway of last resort is not set

34.0.0.0/24 is subnetted, 1 subnets
C       34.0.0.0 is directly connected, Serial1/1.1
1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/2297856] via 123.0.0.1, 00:18:05, Serial1/0.1
2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/128512] via 23.0.0.2, 00:18:05, Tunnel23
3.0.0.0/24 is subnetted, 1 subnets
C       3.3.3.0 is directly connected, Loopback0
4.0.0.0/24 is subnetted, 1 subnets
D       4.4.4.0 [90/2297856] via 34.0.0.4, 00:17:32, Serial1/1.1
23.0.0.0/24 is subnetted, 1 subnets
C       23.0.0.0 is directly connected, Tunnel23
123.0.0.0/24 is subnetted, 1 subnets
C       123.0.0.0 is directly connected, Serial1/0.1

R3#sh ip mroute 232.0.0.2
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

(*, 232.0.0.2), 00:28:20/stopped, RP 1.1.1.1, flags: SPF
Incoming interface: Tunnel23, RPF nbr 23.0.0.2, Mroute
Outgoing interface list: Null

(4.4.4.4, 232.0.0.2), 00:23:07/00:02:56, flags: T
Incoming interface: Serial1/1.1, RPF nbr 34.0.0.4
Outgoing interface list:
Tunnel23, Forward/Sparse-Dense, 00:18:14/00:02:35

(34.0.0.4, 232.0.0.2), 00:28:20/00:03:02, flags: FT
Incoming interface: Serial1/1.1, RPF nbr 0.0.0.0
Outgoing interface list:
Tunnel23, Forward/Sparse-Dense, 00:18:14/00:02:36

R4#ping ip
Target IP address: 232.0.0.2
Repeat count [1]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Interface [All]: Serial1/0.1
Time to live [255]:
Source address: 34.0.0.4
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 232.0.0.2, timeout is 2 seconds:
Packet sent with a source address of 34.0.0.4

Reply to request 0 from 23.0.0.2, 180 ms

Advertisements

Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

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

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: