Showing posts with label multicast. Show all posts
Showing posts with label multicast. Show all posts

Wednesday, 14 November 2012

Multicast: Configuring tunnel:


Multicast: Configuring tunnel:

 

·         Tunnel configuring is required when we have to send multicast traffic through non-multicast enabled routers.

 

·         Let me take a small topology to configure this:

 

R3------R1--------R2-------R4

 

·         Multicast routing is enabled on R3 and R4

·         Multicast routing is not enabled on R1 and R2

·         R3 is the server and R4’s loopback is the client

·         Tunnel has to be created between R3 and R4 and enable spase-mode under tunnel interfaces.

 

R1#show run | i multicast

R1#

 

R2# show run | i multicast

R2#

 

R3#show run int tun1

Building configuration...

 

Current configuration : 123 bytes

!

interface Tunnel1

 ip unnumbered Loopback0

 ip pim sparse-mode

 tunnel source Loopback0

 tunnel destination 4.4.4.4

end

 

R3#show run int loop0

Building configuration...

 

Current configuration : 83 bytes

!

interface Loopback0

 ip address 3.3.3.3 255.255.255.255

 ip pim sparse-mode

end

 

R3#show run | i rp

ip pim rp-address 4.4.4.4

ip pim autorp listener

R3#

 

R4#show run int tun1

Building configuration...

 

Current configuration : 123 bytes

!

interface Tunnel1

 ip unnumbered Loopback0

 ip pim sparse-mode

 tunnel source Loopback0

 tunnel destination 3.3.3.3

end

 

R4#show run int loop0

Building configuration...

 

Current configuration : 116 bytes

!

interface Loopback0

 ip address 4.4.4.4 255.255.255.255

 ip pim sparse-mode

 ip igmp join-group 228.28.28.28

end

 

R4#show run | i rp

ip pim rp-address 4.4.4.4

ip pim autorp listener

R4#show run | i mroute

ip mroute 0.0.0.0 0.0.0.0 Tunnel1

R4#

 

Observation:

·         R1 and R2 are not running multicast routing

·         Tunnel has been created between R3 and R4

·         R4 has mroute pointing towards tunnel interface, because R3 is the course and RPF will fail without this mroute.

 

·         Now, I’m initiating ping form the server, R3

 

R3#ping 228.28.28.28

 

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 228.28.28.28, timeout is 2 seconds:

 

Reply to request 0 from 4.4.4.4, 104 ms

R3#

Observation:

·         Multicast functionality is fine; R4 is receiving multicast traffic from R3.

 

·         Now, let me see multicast routing tables:

 

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

 

(*, 228.28.28.28), 00:00:44/stopped, RP 4.4.4.4, flags: SPF

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list: Null

 

(3.3.3.3, 228.28.28.28), 00:00:44/00:02:45, flags: FT

  Incoming interface: Loopback0, RPF nbr 0.0.0.0, Registering

  Outgoing interface list:

    Tunnel1, Forward/Sparse, 00:00:44/00:02:45

 

(*, 224.0.1.40), 00:11:47/00:02:59, RP 0.0.0.0, flags: DCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Tunnel1, Forward/Sparse, 00:11:47/00:00:00

    Loopback0, Forward/Sparse, 00:11:47/00:00:00

 

R3#

 

R4#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

 

(*, 228.28.28.28), 09:14:25/stopped, RP 4.4.4.4, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0, Mroute

  Outgoing interface list:

    Loopback0, Forward/Sparse, 09:14:25/00:02:16

 

(3.3.3.3, 228.28.28.28), 00:00:48/00:02:16, flags: LJT

  Incoming interface: Tunnel1, RPF nbr 3.3.3.3, Mroute

  Outgoing interface list:

    Loopback0, Forward/Sparse, 00:00:48/00:02:16

 

(*, 224.0.1.40), 00:11:47/00:02:13, RP 0.0.0.0, flags: DCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Tunnel1, Forward/Sparse, 00:11:47/00:00:00

    Loopback0, Forward/Sparse, 00:11:47/00:00:00

 

R4#

Multicast: Configuring IGMP helper command:


Multicast: Configuring IGMP helper command:


·         When there is a stub router and it cannot be configured to process multicast messages, but still wants to receive multicast traffic, we can make use of IGMP helper command.

·         Let me take a topology of just 2 routers:

R1---—ser1/0-------------10.1.12.0--------ser1/0----R2


·         R1 is the stub router and doesn’t want to process multicast traffic

·         R2 is the server

·         Configuration is very simple:

 

R1#show run int ser1/0

Building configuration...

 

Current configuration : 140 bytes

!

interface Serial1/0

 ip address 10.1.12.1 255.255.255.0

 ip pim dense-mode

 ip igmp helper-address 10.1.12.2

 serial restart-delay 0

end

 

R1#show run int loop0

Building configuration...

 

Current configuration : 115 bytes

!

interface Loopback0

 ip address 1.1.1.1 255.255.255.255

 ip pim dense-mode

 ip igmp join-group 227.27.27.27

end

 

R1#

 

R2#show run int ser1/0

Building configuration...

 

Current configuration : 133 bytes

!

interface Serial1/0

 ip address 10.1.12.2 255.255.255.0

 ip pim neighbor-filter 12

 ip pim dense-mode

 serial restart-delay 0

end

 

R2#show run int loop0

Building configuration...

 

Current configuration : 82 bytes

!

interface Loopback0

 ip address 2.2.2.2 255.255.255.255

 ip pim dense-mode

end

 

R2#

 

Observation:

·         IGMP helper command is configure under R1’s Ser1/0

·         Since R1 doesn’t want to process multicast messages, PIM neighbor-relationship is blocked in R2’s Ser1/0 for R1’s ser1/0, 10.1.12.1

·         R1’s loopback0 has configured as client to receive 227.27.27.27

 

·         Now, I’m initiating ping form the server, R2’s loopback0

 

R2#ping 227.27.27.27 source 2.2.2.2

 

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 227.27.27.27, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

 

Reply to request 0 from 10.1.12.1, 84 ms

R2#

 

Observation:

·         Multicast functionality is fine, R1 is receiving multicast traffic from R2.

 

·         Now, let me see 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:11:33/stopped, RP 2.2.2.2, flags: SJCLF

  Incoming interface: Serial1/0, RPF nbr 10.1.12.2

  Outgoing interface list:

    Loopback0, Forward/Dense, 00:09:31/00:00:00

 

(2.2.2.2, 227.27.27.27), 00:00:18/00:02:43, flags: LJTA

  Incoming interface: Serial1/0, RPF nbr 10.1.12.2

  Outgoing interface list:

    Loopback0, Forward/Dense, 00:00:18/00:00:00

 

(*, 224.0.1.40), 10:53:50/00:02:54, RP 1.1.1.1, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/0, Forward/Dense, 00:15:51/00:00:00

    Serial1/1, Forward/Sparse, 05:16:20/00:02:54

 

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:00:36/stopped, RP 2.2.2.2, flags: SP

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list: Null

 

(2.2.2.2, 227.27.27.27), 00:00:36/00:02:23, flags: PTA

  Incoming interface: Loopback0, RPF nbr 0.0.0.0

  Outgoing interface list: Null

 

(*, 228.28.28.28), 08:42:46/00:02:41, RP 2.2.2.2, flags: S

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 08:42:46/00:02:41

 

(*, 224.0.1.40), 10:54:11/00:02:38, RP 2.2.2.2, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 05:14:42/00:02:38

 

R2#

 

 

 

Tuesday, 13 November 2012

Multicast: Configuring Inter-domain Multicast:


Multicast: Configuring Inter-domain Multicast:

·         Inter-domain multicast is needed when multicast source and receiver span across the ASs.

·         Generally each AS will have its own RP and we need to configure MSDP between the two RPs.

·         Let me take a small topology to configure this:

·         R1 is the RP for AS 100

·         R2 is the RP for AS 200

·         R1 and R2 are the BGP neighbors and we need to enable address-family multicast.

·         R3 is the multicast server

·         R4 is the receiver

 

R1#show run | sec router

router ospf 1

 router-id 1.1.1.1

 log-adjacency-changes

 network 1.1.1.1 0.0.0.0 area 0

 network 10.1.13.1 0.0.0.0 area 0

router bgp 100

 bgp router-id 1.1.1.1

 bgp log-neighbor-changes

 neighbor 10.1.12.2 remote-as 200

 neighbor 10.1.13.3 remote-as 100

 !

 address-family ipv4

  redistribute ospf 1 match internal

  neighbor 10.1.12.2 activate

  neighbor 10.1.13.3 activate

  no auto-summary

  no synchronization

 exit-address-family

 !

 address-family ipv4 multicast

  redistribute ospf 1

  neighbor 10.1.12.2 activate

  neighbor 10.1.13.3 activate

  neighbor 10.1.13.3 next-hop-self

  no auto-summary

  no synchronization

 exit-address-family

R1#

R1#show run | i rp

ip pim rp-address 1.1.1.1

ip pim rp-candidate Loopback0

R1#

R1#show run | i msdp

ip msdp peer 2.2.2.2 connect-source Loopback0

R1#

 

R2#show run | sec router

router ospf 1

 router-id 2.2.2.2

 log-adjacency-changes

 network 2.2.2.2 0.0.0.0 area 0

 network 10.1.24.2 0.0.0.0 area 0

router bgp 200

 bgp router-id 2.2.2.2

 bgp log-neighbor-changes

 neighbor 10.1.12.1 remote-as 100

 neighbor 10.1.24.4 remote-as 200

 !

 address-family ipv4

  redistribute ospf 1 match internal

  neighbor 10.1.12.1 activate

  neighbor 10.1.24.4 activate

  no auto-summary

  no synchronization

 exit-address-family

 !

 address-family ipv4 multicast

  redistribute ospf 1

  neighbor 10.1.12.1 activate

  neighbor 10.1.24.4 activate

  neighbor 10.1.24.4 next-hop-self

  no auto-summary

  no synchronization

 exit-address-family

R2#

R2#show run | i rp

ip pim rp-address 2.2.2.2

ip pim rp-candidate Loopback0

R2#

R2#show run | i msdp

ip msdp peer 1.1.1.1 connect-source Loopback0

R2#

 

R3#show run | sec router

router ospf 1

 router-id 3.3.3.3

 log-adjacency-changes

 network 3.3.3.3 0.0.0.0 area 0

 network 10.1.13.3 0.0.0.0 area 0

router bgp 100

 bgp router-id 3.3.3.3

 bgp log-neighbor-changes

 neighbor 10.1.13.1 remote-as 100

 !

 address-family ipv4

  neighbor 10.1.13.1 activate

  no auto-summary

  no synchronization

 exit-address-family

 !

 address-family ipv4 multicast

  neighbor 10.1.13.1 activate

  no auto-summary

  no synchronization

 exit-address-family

R3#

R3#

R3#show run | i rp

ip pim rp-address 1.1.1.1

R3#

 

 

R4#show run | sec router

router ospf 1

 router-id 4.4.4.4

 log-adjacency-changes

 network 4.4.4.4 0.0.0.0 area 0

 network 10.1.24.4 0.0.0.0 area 0

router bgp 200

 bgp router-id 4.4.4.4

 bgp log-neighbor-changes

 neighbor 10.1.24.2 remote-as 200

 !

 address-family ipv4

  neighbor 10.1.24.2 activate

  no auto-summary

  no synchronization

 exit-address-family

 !

 address-family ipv4 multicast

  neighbor 10.1.24.2 activate

  no auto-summary

  no synchronization

 exit-address-family

R4#

R4#show run | i rp

ip pim rp-address 2.2.2.2

R4#

 

R3#show ip pim rp mapping

PIM Group-to-RP Mappings

 

Group(s) 224.0.0.0/4

  RP 1.1.1.1 (?), v2

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

         Uptime: 03:12:26, expires: 00:02:07

Group(s): 224.0.0.0/4, Static

    RP: 1.1.1.1 (?)

R3#

 

R1#show ip pim rp mapping

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 1.1.1.1 (?), v2

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

         Uptime: 04:11:39, expires: 00:01:56

Group(s): 224.0.0.0/4, Static

    RP: 1.1.1.1 (?)

R1#

 

R2#show ip pim rp mapping

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: 05:36:05, expires: 00:01:46

Group(s): 224.0.0.0/4, Static

    RP: 2.2.2.2 (?)

R2#

 

R4#show ip pim rp mapping

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: 04:13:40, expires: 00:01:41

Group(s): 224.0.0.0/4, Static

    RP: 2.2.2.2 (?)

R4#

 

·         Now, let me add a client in R4’s loopback0:

 

R4#show run int loop0

Building configuration...

 

Current configuration : 116 bytes

!

interface Loopback0

 ip address 4.4.4.4 255.255.255.255

 ip pim sparse-mode

 ip igmp join-group 228.28.28.28

end

 

R4#

 

·         Now, let me test the multicast functionality by initiating a pin from the server, R3’s loopback 3.3.3.3:

 

R3#ping 228.28.28.28

 

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 228.28.28.28, timeout is 2 seconds:

 

Reply to request 0 from 10.1.24.4, 104 ms

Reply to request 0 from 10.1.24.4, 104 ms

R3#

 

Observation:

·         Multicast functionality is working fine.

 

·         Now, let me see multicast routing tables:

 

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

 

(*, 228.28.28.28), 00:08:39/stopped, RP 1.1.1.1, flags: SPF

  Incoming interface: Serial1/1, RPF nbr 10.1.13.1

  Outgoing interface list: Null

 

(3.3.3.3, 228.28.28.28), 00:00:34/00:03:20, flags: FT

  Incoming interface: Loopback0, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 00:00:24/00:03:05

 

(*, 224.0.1.40), 04:23:58/00:02:56, RP 1.1.1.1, flags: SJCL

  Incoming interface: Serial1/1, RPF nbr 10.1.13.1

  Outgoing interface list:

    Loopback0, Forward/Sparse, 03:23:48/00:02:56

 

R3#

 

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

 

(*, 228.28.28.28), 00:08:47/stopped, RP 1.1.1.1, flags: SP

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list: Null

 

(3.3.3.3, 228.28.28.28), 00:00:41/00:03:08, flags: TA

  Incoming interface: Serial1/1, RPF nbr 10.1.13.3

  Outgoing interface list:

    Serial1/0, Forward/Sparse, 00:00:32/00:02:57

 

(*, 224.0.1.40), 05:48:59/00:02:40, RP 1.1.1.1, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 00:11:29/00:02:49

    Loopback0, Forward/Sparse, 05:48:59/00:02:40

 

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

 

(*, 228.28.28.28), 03:37:40/stopped, RP 2.2.2.2, flags: S

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 03:37:40/00:02:42

 

(3.3.3.3, 228.28.28.28), 00:00:34/00:03:04, flags: MT

  Incoming interface: Serial1/0, RPF nbr 10.1.12.1, Mbgp

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 00:00:34/00:03:04

 

(*, 227.27.27.27), 05:41:29/00:02:20, RP 2.2.2.2, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Loopback0, Forward/Sparse, 05:41:29/00:02:20

 

(*, 224.0.1.40), 05:49:05/00:02:28, RP 2.2.2.2, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial1/1, Forward/Sparse, 00:09:36/00:02:48

    Loopback0, Forward/Sparse, 05:49:06/00:02:27

 

R2#

 

R4#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

 

(*, 228.28.28.28), 03:37:10/stopped, RP 2.2.2.2, flags: SJCL

  Incoming interface: Serial1/1, RPF nbr 10.1.24.2

  Outgoing interface list:

    Loopback0, Forward/Sparse, 03:37:10/00:02:25

 

(3.3.3.3, 228.28.28.28), 00:00:05/00:02:56, flags: LJT

  Incoming interface: Serial1/1, RPF nbr 10.1.24.2, Mbgp

  Outgoing interface list:

    Loopback0, Forward/Sparse, 00:00:05/00:02:54

 

(*, 224.0.1.40), 04:21:39/stopped, RP 2.2.2.2, flags: SJPCL

  Incoming interface: Serial1/1, RPF nbr 10.1.24.2

  Outgoing interface list: Null

 

R4#