Showing posts with label sparse-mode. Show all posts
Showing posts with label sparse-mode. Show all posts

Monday, 12 November 2012

Multicast: Configuring RP using BSR:


Multicast: Configuring RP using BSR:

 

·         BSR is the industry standard for configuring RP unlike Cisco proprietary Auto-RP

·         BSR doesn’t have dense-mode groups to announce and discovery like Auto-RP.

·         Let me take a 2 router topology to configure BSR:

 

 

R1—----S1/0-----------10.1.12.0/24----------s1/0-----R2

 

·         R2 is the BSR.

·         R2’s loopback 2.2.2.2 is the RP

 

R1(config-if)#ip multicast-routing

R1(config)#int loop0

R1(config-if)#ip pim sparse-mode

R1(config-if)#int ser1/0

R1(config-if)#ip pim sparse-mode

R1(config-if)#

 

R2(config)#ip multicast-routing

R2(config)#int loop0

R2(config-if)#ip pim sparse-mode

R2(config-if)#int ser1/0

R2(config-if)#ip pim sparse-mode

R2(config-if)#

 

R2(config)#ip pim bsr-candidate loopback 0

R2(config)#ip pim rp-candidate loopback 0

R2(config)#

 

R1# show ip pim rp mapp

PIM Group-to-RP Mappings

 

Group(s) 224.0.0.0/4

  RP 2.2.2.2 (?), v2

    Info source: 2.2.2.2 (?), via bootstrap, priority 0, holdtime 150

         Uptime: 00:01:02, expires: 00:01:39

R1#

 

R2(config)#do show ip pim rp mapp

PIM Group-to-RP Mappings

This system is a candidate RP (v2)

This system is the Bootstrap Router (v2)

 

Group(s) 224.0.0.0/4

  RP 2.2.2.2 (?), v2

    Info source: 2.2.2.2 (?), via bootstrap, priority 0, holdtime 150

         Uptime: 00:00:52, expires: 00:01:33

R2(config)#

 

R1#show ip pim bsr-router

PIMv2 Bootstrap information

  BSR address: 2.2.2.2 (?)

  Uptime:      00:08:15, BSR Priority: 0, Hash mask length: 0

  Expires:     00:01:54

R1#

 

R2#show ip pim bsr-router

PIMv2 Bootstrap information

This system is the Bootstrap Router (BSR)

  BSR address: 2.2.2.2 (?)

  Uptime:      00:08:22, BSR Priority: 0, Hash mask length: 0

  Next bootstrap message in 00:00:38

  Candidate RP: 2.2.2.2(Loopback0)

    Holdtime 150 seconds

    Advertisement interval 60 seconds

    Next advertisement in 00:00:24

R2#

 

·         Now, let me check the functionality by issuing the ping from the server to 227.27.27.27

 

R2(config)#int loop0

R2(config-if)#ip igmp join-group 227.27.27.27

R2(config-if)#

 

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.12.2, 76 ms

R1#

 

Observation:

·         Multicast functionality is working fine.

Multicast: Configuring Source Specific Multicast:


Multicast: Configuring Source Specific Multicast:

·         PIM-SSM is the protocol required for configuring Source Specific Multicast.
·         IGMPv3 is required to do source specific filtering
·         As per RFC 4607, IPv4 uses 232.0.0.0 to 232.255.255.255 for Source specific multicast destination addresses and are reserved for use by source-specific applications and protocols.
·         SSM configuration steps:
·         We need to enable SSM by using “ip pim ssm default”, that means it uses default range 232.0.0.0/8
·         If we want to specify a specific range, we can use “ip pim ssm range <ACL>” command
·         Then we need specify IGMPv3 under the client.
·         Let me take a small topology to configure SSM:
 
R1----Ser1/0--------10.1.12.0/24-------Ser1/0-----R2
 
·         Let me configure SSM with default range first:
 
R1(config)#ip multicast-routing
R1(config)#ip pim ssm default
R1(config)#
R1(config)#int loop0
R1(config-if)#ip pim sparse-dense-mode
R1(config-if)#ip igmp version 3
R1(config-if)#int ser1/0
R1(config-if)#ip pim sparse-dense-mode
R1(config-if)#
 
 
R2(config)#ip multicast-routing
R2(config)#ip pim ssm default
R2(config)#
R2(config)#int loop0
R2(config-if)#ip pim sparse-dense-mode
R2(config-if)#ip igmp version 3
R2(config-if)#ip igmp join-group 232.2.2.2 source 1.1.1.1
R2(config-if)#
R2(config-if)#int ser1/0
R2(config-if)#ip pim sparse-dense-mode
 
·         Now, let me verify multicast connectivity by initiating the ping from server 1.1.1.1:
 
R1#ping 232.2.2.2 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 232.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
 
Reply to request 0 from 10.1.12.2, 52 ms
Reply to request 0 from 10.1.12.2, 52 ms
R1#
 
Observation:
·         Multicast functionality is working fine.
 
·         Now, let me create SSM with acess-list:
 
R1#show run | i access-li
access-list 1 permit 231.3.3.3
access-list 1 permit 231.2.2.2
R1#
R1#show run | i ssm
ip pim ssm range 1
R1#
 
R2#show run | i access-li
access-list 1 permit 231.3.3.3
access-list 1 permit 231.2.2.2
R2#
R2#show run | i ssm
ip pim ssm range 1
R2#
R2#show run int loop0
Building configuration...
 
Current configuration : 372 bytes
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-mode
 ip igmp join-group 232.2.2.2 source 1.1.1.1
 ip igmp join-group 232.3.3.3 source 1.1.1.1
 ip igmp join-group 232.4.4.4 source 1.1.1.1
 ip igmp join-group 231.2.2.2 source 1.1.1.1
 ip igmp join-group 235.2.2.2 source 1.1.1.1
 ip igmp join-group 231.3.3.3 source 1.1.1.1
 ip igmp version 3
end
 
R2#
 
·         Now, let me verify multicast connectivity by initiating the ping from server 1.1.1.1:
 
R1#ping 231.2.2.2 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 231.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
 
Reply to request 0 from 10.1.12.2, 20 ms
Reply to request 0 from 10.1.12.2, 20 ms
R1#
R1#ping 231.3.3.3 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 231.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
 
Reply to request 0 from 10.1.12.2, 40 ms
Reply to request 0 from 10.1.12.2, 60 ms
R1#
 
Observation:
·         Multicast functionality is working fine for the source addresses that were matched with the access-list.
 
·         Now, let me try pining from the other addresses, that were not matched by the ACL:
 
R1#ping 232.2.2.2 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 232.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
.
R1#ping 232.3.3.3 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 232.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
.
R1#ping 235.2.2.2 source 1.1.1.1
 
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 235.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
.
R1#
 
Observation:
·         Multicast functionality is is failing for the source addresses that were not matched with the access-list.
 


Saturday, 10 November 2012

Multicast: Sparse-Mode: Configuring Auto RP-Announce-Filter:


Multicast: Sparse-Mode: Configuring Auto RP-Announce-Filter:

·         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 loopback0 as RP for all even number of groups and

·         R3’s loopback0 as RP for all odd number of groups

·         And R1 will be the Mapping Agent

·         We need to enable ip pim sparse-mode under loopback0 interface in R2 and R3.

·         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.

 

R2(config)#ip access-list standard EVEN

R2(config-std-nacl)#permit 224.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 226.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 228.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 230.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 232.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 234.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 236.0.0.0 0.255.255.255

R2(config-std-nacl)#permit 238.0.0.0 0.255.255.255

R2(config-std-nacl)#

R2(config-std-nacl)#exit

 

R2(config)# ip pim send-rp-announce loopback 0 scope 255 group-list EVEN interval 5

R2(config)#

 

R3(config)#ip access-list standard ODD

R3(config-std-nacl)#permit 225.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 227.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 229.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 231.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 233.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 235.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 237.0.0.0 0.255.255.255

R3(config-std-nacl)#permit 239.0.0.0 0.255.255.255

R3(config-std-nacl)#

R3(config)#ip pim send-rp-announce loopback 0 scope 255 group-list ODD interval 5

 

R1(config)#

R1(config)#ip access-list standard EVEN

R1(config-std-nacl)#permit 224.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 226.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 228.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 230.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 232.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 234.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 236.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 238.0.0.0 0.255.255.255

R1(config-std-nacl)#

R1(config-std-nacl)#

R1(config-std-nacl)#

R1(config-std-nacl)#ip access-list standard ODD

R1(config-std-nacl)#permit 225.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 227.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 229.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 231.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 233.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 235.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 237.0.0.0 0.255.255.255

R1(config-std-nacl)#permit 239.0.0.0 0.255.255.255

R1(config-std-nacl)#

R1(config-std-nacl)#

R1(config-std-nacl)#exit

R1(config)#

 

R1(config)#ip access-list standard R2-EVEN

R1(config-std-nacl)#permit 2.2.2.2

R1(config-std-nacl)#exit

R1(config)#ip access-list standard R3-ODD

R1(config-std-nacl)#permit 3.3.3.3

R1(config-std-nacl)#

 

R1(config)#ip pim send-rp-discovery scope 255

R1(config)#ip pim rp-announce-filter rp-list R2-EVEN group-list EVEN

R1(config)#ip pim rp-announce-filter rp-list R3-ODD group-list ODD

R1(config)#

 

·         Now, let me check RP mapping details:

R1#show ip pim rp mapping

PIM Group-to-RP Mappings

This system is an RP-mapping agent

 

Group(s) 224.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:34, expires: 00:00:11

Group(s) 225.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:31, expires: 00:00:12

Group(s) 226.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:34, expires: 00:00:11

Group(s) 227.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:31, expires: 00:00:12

Group(s) 228.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:34, expires: 00:00:11

Group(s) 229.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:11

Group(s) 230.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:35, expires: 00:00:10

Group(s) 231.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:11

Group(s) 232.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:35, expires: 00:00:11

Group(s) 233.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:11

Group(s) 234.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:35, expires: 00:00:10

Group(s) 235.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:11

Group(s) 236.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:36, expires: 00:00:15

Group(s) 237.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:11

Group(s) 238.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 2.2.2.2 (?), elected via Auto-RP

         Uptime: 00:00:36, expires: 00:00:15

Group(s) 239.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 3.3.3.3 (?), elected via Auto-RP

         Uptime: 00:00:32, expires: 00:00:10

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/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:43, expires: 00:02:20

Group(s) 225.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:40, expires: 00:02:16

Group(s) 226.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:43, expires: 00:02:19

Group(s) 227.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:40, expires: 00:02:19

Group(s) 228.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:43, expires: 00:02:17

Group(s) 229.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:40, expires: 00:02:15

Group(s) 230.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:44, expires: 00:02:17

Group(s) 231.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:40, expires: 00:02:14

Group(s) 232.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:44, expires: 00:02:19

Group(s) 233.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:40, expires: 00:02:18

Group(s) 234.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:44, expires: 00:02:18

Group(s) 235.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:41, expires: 00:02:15

Group(s) 236.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:44, expires: 00:02:19

Group(s) 237.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:41, expires: 00:02:16

Group(s) 238.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:44, expires: 00:02:17

Group(s) 239.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:41, expires: 00:02:18

R2#

 

R3#show ip pim rp mapping

PIM Group-to-RP Mappings

This system is an RP (Auto-RP)

 

Group(s) 224.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:51, expires: 00:02:10

Group(s) 225.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:47, expires: 00:02:12

Group(s) 226.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:51, expires: 00:02:09

Group(s) 227.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:47, expires: 00:02:12

Group(s) 228.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:51, expires: 00:02:12

Group(s) 229.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:12

Group(s) 230.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:52, expires: 00:02:10

Group(s) 231.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:09

Group(s) 232.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:52, expires: 00:02:12

Group(s) 233.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:11

Group(s) 234.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:52, expires: 00:02:12

Group(s) 235.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:10

Group(s) 236.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:52, expires: 00:02:10

Group(s) 237.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:11

Group(s) 238.0.0.0/8

  RP 2.2.2.2 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:52, expires: 00:02:08

Group(s) 239.0.0.0/8

  RP 3.3.3.3 (?), v2v1

    Info source: 10.1.12.1 (?), elected via Auto-RP

         Uptime: 00:00:48, expires: 00:02:07

R3#

 

Observation:

·         R2’s loopback0, 2.2.2.2 is RP for all even number groups

·         R3’s loopback0, 3.3.3.3 is RP for all odd number groups

·         R1’s loopback0 is the mapping agent