Multicast: Sparse-Mode:
Configuring Auto RP – Part -I
·
Sparse
mode is basically PULL technology
·
Explicit
join
·
That
means, Server and client must discover dynamically each other.
·
This
is done using RP, Rendezvous Point.
·
RP
can be configured manually or can be discovered automatically.
·
For
source registration, PIM DR will send Unicast Registration towards RP.
·
For
client registration, PIM DR will send multicast registration towards RP.
·
In
this post, let me configure auto RP.
·
Auto
RP is Cisco proprietary.
·
It mainly uses 2 multicast groups; 224.0.0.39 is used by RPs to announce
RP messages and 224.0.0.40 is used by Mapping Agents to send group-to-RP
mapping messages.
·
If
a router wants to learn about RP, it must join 224.0.0.39 & 224.0.0.40 and
if a router wants to join 224.0.0.39 & 224.0.0.40, it must know RP!
·
This
is like an egg-chicken problem!
·
There are 2 solutions for
this problem:
·
First solution is to use sparse-dense-mode
·
In
this mode, router uses sparse-mode for the groups which has an RP and it uses
dense-mode for the groups which doesn’t have an RP.
·
224.0.0.39
and 224.0.0.40 works in dense mode, to solve the above mentioned issue.
·
But,
main problem in this mode is, it works like dense-mode if there no RP for a
particular multicast group.
·
Second solution is to use Auto-RP listener command.
·
This
command was introduced in 12.2(7).
·
When
we use Auto-RP listener, it uses dense-mode only for 224.0.0.39 and 224.0.0.40
and sparse-mode for all other groups.
·
Let
me configure these 2 options now and see:
·
Let
me take a basic 3-router topology:
R1---fa0/0-----fa0/0---R2----fa0/1--------fa0/1-----R3
·
R1-R2:
10.1.12.0/24
·
R2-R3:
10.1.23.0/24
·
OSPF
is configured between these 3 routers and they are able to reach all loopback
interfaces.
·
Let
me configure R2’s loopback 2.2.2.2 as RP
·
And
R1 will be the Mapping Agent
·
We
need to enable ip pim sparse-mode under loopback0 interface in R2.
·
We
need to enable ip pim sparse-mode under loopback0 interface in he Mapping Agent
R1 also.
·
R1
is acting as multicast server and R3’s loopback0 is acting as receiver.
1.
Configuration
using Auto-RP Listener:
R1#show
run int fa0/0
Building configuration...
Current configuration : 114 bytes
!
interface FastEthernet0/0
ip address
10.1.12.1 255.255.255.0
ip pim
sparse-mode
duplex auto
speed auto
end
R2#show
run int fa0/0
Building configuration...
Current configuration : 114 bytes
!
interface FastEthernet0/0
ip address
10.1.12.2 255.255.255.0
ip pim
sparse-mode
duplex auto
speed auto
end
R2#show
run int fa0/1
Building configuration...
Current configuration : 114 bytes
!
interface FastEthernet0/1
ip address
10.1.23.2 255.255.255.0
ip pim
sparse-mode
duplex auto
speed auto
end
R2#show
run int loop0
Building configuration...
Current configuration : 83 bytes
!
interface Loopback0
ip address
2.2.2.2 255.255.255.255
ip pim
sparse-mode
end
R2#
R3#show
run int fa0/1
Building configuration...
Current configuration : 114 bytes
!
interface FastEthernet0/1
ip address
10.1.23.3 255.255.255.0
ip pim
sparse-mode
duplex auto
speed auto
end
R3#show
run int loop0
Building configuration...
Current configuration : 151 bytes
!
interface Loopback0
ip address
3.3.3.3 255.255.255.255
ip pim
sparse-mode
ip igmp
join-group 227.27.27.27
ipv6 address
2002:303:303:1::3/64
end
Configuring
RP:
On
RP:
R2(config)#ip
pim send-rp-announce loopback 0 scope 255
On Mapping
Agent:
R1(config)#int
loop0
R1(config-if)#ip
pim sparse-mode
R1(config-if)#exit
R1(config)#ip
pim send-rp-discovery loopback 0 scope 255
R1(config)#
Configuring
Auto-RP Listener:
R1(config)#ip
pim autorp listener
R1(config)#
R2(config)#ip
pim autorp listener
R2(config)#
R3(config)#ip
pim autorp listener
R3(config)#
Verification:
R1#show ip pim rp mapping
PIM
Group-to-RP Mappings
This system is an RP-mapping agent
(Loopback0)
Group(s)
224.0.0.0/4
RP 2.2.2.2 (?), v2v1
Info source: 2.2.2.2 (?), elected via Auto-RP
Uptime: 00:02:59, expires: 00:01:59
R1#
R2#show ip pim rp mapping
PIM
Group-to-RP Mappings
This system is an RP (Auto-RP)
Group(s)
224.0.0.0/4
RP 2.2.2.2 (?), v2v1
Info source: 1.1.1.1 (?), elected via Auto-RP
Uptime: 00:03:05, expires: 00:02:52
R2#
R3#show ip pim rp mapping
PIM
Group-to-RP Mappings
Group(s)
224.0.0.0/4
RP 2.2.2.2 (?), v2v1
Info source: 1.1.1.1 (?), elected via Auto-RP
Uptime: 00:03:12, expires: 00:01:45
R3#
Observation:
·
R2’s
loopback0, 2.2.2.2 is RP
·
R1’s
loopback0, 1.1.1.1 is Mapping Agent
·
Let me see some
Auto-RP debugs:
R1#debug ip pim auto-rp
PIM
Auto-RP debugging is on
R1#
*Mar 1 17:34:51.139: Auto-RP(0): Received RP-announce packet of length 48, from
2.2.2.2, RP_cnt 1, ht 181
*Mar 1 17:34:51.143: Auto-RP(0): Update
(224.0.0.0/4, RP:2.2.2.2), PIMv2 v1
*Mar 1 17:34:51.143: Auto-RP(0): Received
RP-announce packet of length 48, from 2.2.2.2, RP_cnt 1, ht 181
*Mar 1 17:34:51.143: Auto-RP(0): Update (224.0.0.0/4, RP:2.2.2.2), PIMv2 v1
R1#
*Mar 1 17:35:28.095: Auto-RP(0): Build RP-Discovery packet
*Mar 1 17:35:28.099: Auto-RP: Build mapping (224.0.0.0/4, RP:2.2.2.2),
PIMv2 v1,
*Mar 1 17:35:28.099: Auto-RP(0): Send RP-discovery packet of length 48 on
FastEthernet0/0 (1 RP entries)
*Mar 1 17:35:28.099: Auto-RP(0): Send RP-discovery
packet of length 48 on Loopback0(*) (1 RP entries)
R1#u
all
All
possible debugging has been turned off
R1#
R2#debug ip pim auto-rp
PIM
Auto-RP debugging is on
R2#
*Mar 1 17:34:51.023: Auto-RP(0): Build RP-Announce for 2.2.2.2, PIMv2/v1, ttl 255,
ht 181
*Mar 1 17:34:51.023: Auto-RP(0): Build announce
entry for (224.0.0.0/4)
*Mar 1 17:34:51.027: Auto-RP(0): Send RP-Announce
packet of length 48 on FastEthernet0/0
*Mar 1 17:34:51.027: Auto-RP(0): Send RP-Announce
packet of length 48 on FastEthernet0/1
*Mar 1 17:34:51.027: Auto-RP(0): Send RP-Announce
packet of length 48 on Loopback0(*)
R2#
*Mar 1 17:35:28.031: Auto-RP(0): Received RP-discovery packet of length 48, from
1.1.1.1, RP_cnt 1, ht 181
*Mar 1 17:35:28.035: Auto-RP(0): Update (224.0.0.0/4, RP:2.2.2.2), PIMv2 v1
R2#
R3#debug ip pim auto-rp
R3(config)#
*Mar 1 17:34:55.423: Auto-RP(0): Received RP-discovery packet of length 48, from
1.1.1.1, RP_cnt 1, ht 181
*Mar 1 17:34:55.427: Auto-RP(0): Update (224.0.0.0/4, RP:2.2.2.2), PIMv2 v1
R3(config)#
·
Now, let me verify
Multicast working, by pinging 227.27.27.27 from R1:
R1#ping
227.27.27.27
Type
escape sequence to abort.
Sending
1, 100-byte ICMP Echos to 227.27.27.27, timeout is 2 seconds:
Reply to request 0 from 10.1.23.3, 76
ms
R1#
Observation:
·
Multicast
functionality is working fine.
·
Now, let me see
the multicast routing tables:
R1#show ip
mroute
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
(*,
227.27.27.27), 00:00:18/stopped, RP 2.2.2.2, flags: SPF
Incoming interface: FastEthernet0/0, RPF nbr
10.1.12.2
Outgoing interface list: Null
(1.1.1.1, 227.27.27.27),
00:00:18/00:03:20, flags: FT
Incoming interface: Loopback0, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:00:18/00:03:11
(*,
224.0.1.39), 00:13:18/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Loopback0, Forward/Sparse,
00:13:18/00:00:00
FastEthernet0/0, Forward/Sparse,
00:13:18/00:00:00
(2.2.2.2, 224.0.1.39),
00:12:47/00:02:15, flags: LT
Incoming interface: FastEthernet0/0, RPF nbr 10.1.12.2
Outgoing interface list:
Loopback0, Forward/Sparse, 00:12:47/00:00:00
(*,
224.0.1.40), 00:13:19/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Loopback0, Forward/Sparse,
00:13:19/00:00:00
FastEthernet0/0, Forward/Sparse,
00:13:19/00:00:00
(1.1.1.1,
224.0.1.40), 00:13:06/00:02:48, flags: LT
Incoming interface: Loopback0, RPF nbr
0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse,
00:13:06/00:00:00
R1#
R2#show ip
mroute
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
(*,
227.27.27.27), 00:19:27/stopped, RP 2.2.2.2, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:13:12/00:02:32
(1.1.1.1, 227.27.27.27),
00:00:25/00:03:08, flags: T
Incoming interface: FastEthernet0/0, RPF nbr
10.1.12.1
Outgoing interface list:
FastEthernet0/1, Forward/Sparse, 00:00:25/00:03:04
(*,
224.0.1.39), 00:12:54/stopped, RP 0.0.0.0, flags: DC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:12:54/00:00:00
FastEthernet0/0, Forward/Sparse,
00:12:54/00:00:00
(2.2.2.2, 224.0.1.39),
00:12:54/00:02:06, flags: T
Incoming interface: Loopback0, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:12:55/00:00:00
FastEthernet0/1, Prune/Sparse, 00:01:54/00:01:09
(*,
224.0.1.40), 00:13:19/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:13:19/00:00:00
FastEthernet0/0, Forward/Sparse,
00:13:19/00:00:00
(1.1.1.1,
224.0.1.40), 00:13:13/00:02:43, flags: LT
Incoming interface: FastEthernet0/0, RPF nbr
10.1.12.1
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:13:13/00:00:00
R2#
R3#show ip
mroute
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
(*,
227.27.27.27), 03:15:49/stopped, RP 2.2.2.2, flags: SJCL
Incoming interface: FastEthernet0/1, RPF nbr
10.1.23.2
Outgoing interface list:
Loopback0, Forward/Sparse,
03:15:49/00:02:57
(1.1.1.1, 227.27.27.27),
00:00:31/00:02:29, flags: LJT
Incoming interface: FastEthernet0/1, RPF nbr 10.1.23.2
Outgoing interface list:
Loopback0, Forward/Sparse, 00:00:31/00:02:57
(*,
224.0.1.39), 00:13:00/stopped, RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:13:00/00:00:00
(2.2.2.2,
224.0.1.39), 00:01:59/00:01:00, flags: PT
Incoming interface: FastEthernet0/1, RPF nbr
10.1.23.2
Outgoing interface list: Null
(*,
224.0.1.40), 00:13:21/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse,
00:13:21/00:00:00
(1.1.1.1,
224.0.1.40), 00:13:19/00:02:35, flags: PLTX
Incoming interface: FastEthernet0/1, RPF nbr
10.1.23.2
Outgoing interface list: Null
R3#
·
We will see how to configure sparse-dense mode in the next post…
No comments:
Post a Comment