Sunday, November 20, 2011

Cisco Multicast VPN Configuration Example

Cisco Multicast VPN Configuration
In this example we will do Cisco Multicast VPN Configuration.We will run Source Specific Multicast (SSM) on Internet Service Provider network which is transparent to Customer Edge Sites.Customer Edge sites will use PIM Sparse Mode with Static RP.
Here is the topology for this example:


Configurations of R1(CE-1)

ip multicast-routing
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip pim sparse-mode
 ip igmp join-group 224.1.1.2
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
 ip pim sparse-mode
ip route 0.0.0.0 0.0.0.0 192.168.12.2
ip pim rp-address 1.1.1.1

Configurations of R2(PE-1)

ip vrf a
 rd 1234:1
 route-target export 1234:1
 route-target import 1234:1
 mdt default 232.1.1.1
!
no ip domain lookup
ip multicast-routing
ip multicast-routing vrf a
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-mode
 ip ospf 1 area 0
!
interface FastEthernet0/0
 ip address 192.168.23.2 255.255.255.0
 ip pim sparse-mode
 no ip mroute-cache
 ip ospf network point-to-point
mpls ip
!
interface FastEthernet0/1
 ip vrf forwarding a
 ip address 192.168.12.2 255.255.255.0
 ip pim sparse-mode
router ospf 1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1234
 no synchronization
 bgp log-neighbor-changes
 neighbor 3.3.3.3 remote-as 1234
 neighbor 3.3.3.3 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 3.3.3.3 activate
  neighbor 3.3.3.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf a
  redistribute connected
  redistribute static
  no synchronization
 exit-address-family
!
ip route vrf a 1.1.1.1 255.255.255.255 192.168.12.1
!
ip pim ssm range 1
ip pim vrf a rp-address 1.1.1.1
!
access-list 1 permit 232.0.0.0 0.255.255.255

Configurations of R3(BGP Route-Reflector of ISP):

ip multicast-routing
!        
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip ospf 1 area 0
!
interface FastEthernet0/0
 ip address 192.168.23.3 255.255.255.0
 ip pim sparse-mode
 no ip mroute-cache
 ip ospf network point-to-point
mpls ip
!        
interface FastEthernet0/1
 ip address 192.168.34.3 255.255.255.0
 ip pim sparse-mode
 no ip mroute-cache
mpls ip
!
router ospf 1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1234
 no synchronization
 bgp log-neighbor-changes
 neighbor 2.2.2.2 remote-as 1234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 4.4.4.4 remote-as 1234
 neighbor 4.4.4.4 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 2.2.2.2 activate
  neighbor 2.2.2.2 send-community extended
  neighbor 2.2.2.2 route-reflector-client
  neighbor 4.4.4.4 activate
  neighbor 4.4.4.4 send-community extended
  neighbor 4.4.4.4 route-reflector-client
 exit-address-family
!
access-list 1 permit 232.0.0.0 0.255.255.255
!
mpls ldp router-id Loopback0 force
Configurations of R4(PE-2)

ip vrf a
 rd 1234:1
 route-target export 1234:1
 route-target import 1234:1
 mdt default 232.1.1.1
!
no ip domain lookup
ip multicast-routing
ip multicast-routing vrf a
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
 ip pim sparse-mode
 ip ospf 1 area 0
!
interface FastEthernet0/0
 ip address 192.168.34.4 255.255.255.0
 ip pim sparse-mode
mpls ip
!
interface FastEthernet0/1
 ip vrf forwarding a
 ip address 192.168.45.4 255.255.255.0
 ip pim sparse-mode
!
router ospf 1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1234
 no synchronization
 bgp log-neighbor-changes
 neighbor 3.3.3.3 remote-as 1234
 neighbor 3.3.3.3 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 3.3.3.3 activate
  neighbor 3.3.3.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf a
  redistribute connected
  no synchronization
 exit-address-family
!
ip pim ssm range 1
ip pim vrf a rp-address 1.1.1.1
!
access-list 1 permit 232.0.0.0 0.255.255.255
mpls ldp router-id Loopback0 force

Configuration of R5 (CE-2)
ip multicast-routing
!
interface FastEthernet0/1
 ip address 192.168.45.5 255.255.255.0
 ip pim sparse-mode
!
ip route 0.0.0.0 0.0.0.0 192.168.45.4
!
ip pim rp-address 1.1.1.1

Lets check the PIM neighborships and mroute tables:
R2#show ip pim vrf a neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
192.168.12.1      FastEthernet0/1          01:33:34/00:01:29 v2    1 / S
4.4.4.4           Tunnel0                  00:42:38/00:01:23 v2    1 / DR S
R2#show ip pim neighbor      
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
192.168.23.3      FastEthernet0/0          01:33:32/00:01:32 v2    1 / DR S
R2#show ip mroute vrf a      
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

(*, 224.1.1.1), 00:31:21/00:02:39, RP 1.1.1.1, flags: S
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.12.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:31:21/00:02:39

(*, 224.0.1.40), 01:34:17/00:02:34, RP 1.1.1.1, flags: SJCL
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.12.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:42:50/00:02:35

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

(2.2.2.2, 232.1.1.1), 00:44:02/00:03:27, flags: sT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:42:57/00:02:52

(4.4.4.4, 232.1.1.1), 00:44:09/00:02:57, flags: sTIZ
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.23.3
  Outgoing interface list:
    MVRF a, Forward/Sparse, 00:44:09/00:00:00

(*, 224.0.1.40), 01:34:24/00:02:45, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 01:34:24/00:00:00

R2#show ip pim vrf a rp mapping
PIM Group-to-RP Mappings

Group(s): 224.0.0.0/4, Static
    RP: 1.1.1.1 (?)

Route table of PE-1 for vrf a:
R2#show ip route vrf a
C    192.168.12.0/24 is directly connected, FastEthernet0/1
     1.0.0.0/32 is subnetted, 1 subnets
S       1.1.1.1 [1/0] via 192.168.12.1
B    192.168.45.0/24 [200/0] via 4.4.4.4, 01:28:55
Route table of PE-2 for vrf a:
R4#show ip route vrf a
B    192.168.12.0/24 [200/0] via 2.2.2.2, 01:29:30
     1.0.0.0/32 is subnetted, 1 subnets
B       1.1.1.1 [200/0] via 2.2.2.2, 01:29:31
C    192.168.45.0/24 is directly connected, FastEthernet0/1

Lets start multicast traffic from R5:
R5#ping
Protocol [ip]:
Target IP address: 224.1.1.2      
Repeat count [1]: 10
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: yes
Interface [All]: FastEthernet0/1
Time to live [255]:
Source address: 192.168.45.5   
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 10, 100-byte ICMP Echos to 224.1.1.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.45.5
Reply to request 2 from 192.168.12.1, 170 ms
Reply to request 3 from 192.168.12.1, 159 ms

We see that  multicast ICMP echo packets getting reply from CE-1(R1).
Lets check the mroute table counts of PE-1 again:
R2#sh ip mroute vrf a 224.1.1.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

(*, 224.1.1.2), 00:02:42/stopped, RP 1.1.1.1, flags: SP
  Incoming interface: FastEthernet0/1, RPF nbr 192.168.12.1
  Outgoing interface list: Null

(192.168.45.5, 224.1.1.2), 00:02:42/00:01:05, flags: T
  Incoming interface: Tunnel0, RPF nbr 4.4.4.4
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:02:42/00:02:48, A

R2#sh ip mroute vrf a 224.1.1.2 count
IP Multicast Statistics
3 routes using 1698 bytes of memory
2 groups, 0.50 average sources per group
Forwarding Counts: Pkt Count/Pkts(neg(-) = Drops) per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)

Group: 224.1.1.2, Source count: 1, Packets forwarded: 8, Packets received: 11
  RP-tree: Forwarding: 0/0/0/0, Other: 2/0/2
  Source: 192.168.45.5/32, Forwarding: 8/0/100/0, Other: 9/1/0
R2#show ip mroute 232.1.1.1
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

(2.2.2.2, 232.1.1.1), 00:53:05/00:03:15, flags: sT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:52:01/00:02:40

(4.4.4.4, 232.1.1.1), 00:53:12/00:02:55, flags: sTIZ
  Incoming interface: FastEthernet0/0, RPF nbr 192.168.23.3
  Outgoing interface list:
    MVRF a, Forward/Sparse, 00:53:12/00:00:00

R2#show ip mroute 232.1.1.1 count
IP Multicast Statistics
4 routes using 2040 bytes of memory
2 groups, 1.00 average sources per group
Forwarding Counts: Pkt Count/Pkts(neg(-) = Drops) per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)

Group: 232.1.1.1, Source count: 2, Packets forwarded: 479, Packets received: 483
  Source: 2.2.2.2/32, Forwarding: 190/0/70/0, Other: 194/0/4
  Source: 4.4.4.4/32, Forwarding: 289/0/94/0, Other: 289/0/0
We see that the multicast packets for this vrf is comming from Tunnel0 whic is automatically created for multicast traffic on PE routers.The multicast traffic goes along the ISP paths are GRE encapsulated.Tunnel source is loopback IP address BGP source address and destination is mdt default multicast address for this vrf which is 232.1.1.1 in this example.

R2# show interface tu0
Tunnel0 is up, line protocol is up
  Hardware is Tunnel
  Interface is unnumbered. Using address of Loopback0 (2.2.2.2)
  MTU 1514 bytes, BW 9 Kbit/sec, DLY 500000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel source 2.2.2.2 (Loopback0), destination 232.1.1.1
  Tunnel protocol/transport GRE/IP Multicast
    Key disabled, sequencing disabled
    Checksumming of packets disabled
  Tunnel TTL 255
  Fast tunneling enabled
  Tunnel transmit bandwidth 8000 (kbps)
  Tunnel receive bandwidth 8000 (kbps)
  Last input 00:00:01, output 00:00:27, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/0 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     306 packets input, 29232 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     350 packets output, 24418 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 unknown protocol drops
     0 output buffer failures, 0 output buffers swapped out

No comments:

Post a Comment