Saturday, 10 November 2012

Multicast: Sparse-Mode: Configuring Auto RP – Part -I


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