Monday, October 1, 2018

Anycast-MSDP small Lab

Anycast is used to define redundant and load-balanced RPs (Rendezvous Point)
the configuration involve using (MSDP) and (PIM)

Anycast-RP allows two or more RPs to share the load for source registration and to act as hot back-up routers for each other. Multicast Source Discovery Protocol (MSDP) is the protocol RPs to share information about active sources. With Anycast RP, the RPs are configured to establish MSDP peering sessions using a TCP connection. Group participants use the closest RP that is favored by the IP unicast route table, so if you are using IGP the router will choose the lowest metric to any of the RP's.

Let's do some configurations, first I'm going to list the steps

1. we need routing and I will use OSPF.
2. decide which routers will be used as RP and if its going to be static or auto-rp or standard
3. which router will be used to disseminate multicast information and which protocol is going to be used(the MA or the BSR)?
4. create an identical loopback on both RP's (same IP) that would be used for the RP information
for example: Loopback0 will be assigned the ip address of 23.23.23.23/32 on both RP's (R2 and R3)
5. advertise this loopback interface into the IGP to be reachable from other routers
6. configure the MSDP which is a TCP connection to connect both RP's together using Loopback interface that is unique between the two RP's and this interface will be Loopback1 (2.2.2.2/32 and 3.3.3.3/32)
7. the MSDP interface also must be advertised into IGP
8. Join the multicast group 239.1.1.1
9. test the multicast traffic send/receive

Topology:


 Configuration:

R1:
#enable
#conf ter
# router ospf 1
# network 0.0.0.0 255.255.255.255 area 0
#exit
#ip pim rp-address 23.23.23.23
#interface E0/0
#ip pim sparse

R2: (RP)
#enable
#conf ter
#ip multicast-routing
#Router ospf 1
#router-id 2.2.2.2
#network 0.0.0.0 255.255.255.255 area 0
#ip pim rp-address 23.23.23.23
#ip msdp peer 3.3.3.3 connect-source Loopback1
#ip msdp originator-id Loopback1
#interface range e0/0-1,lo0,lo1
#ip pim sparse

R3: (RP)
#ip multicast-routing
#router ospf 1
# router-id 3.3.3.3
# network 0.0.0.0 255.255.255.255 area 0
#ip pim rp-address 23.23.23.23
#ip msdp peer 2.2.2.2 connect-source Loopback1
#ip msdp originator-id Loopback1

#interface range e0/0-1,lo0,lo1
#ip pim sparse

R4:

#enable
#conf ter
#ip multicast-routing
#router ospf 1
#network 0.0.0.0 255.255.255.255 area 0
#ip pim rp-address 23.23.23.23
#interface range e0/0-1
#ip pim sparse

Multicast-Receiver:

#enable
#conf ter
# ip multicast-routing
#ip pim rp-address 23.23.23.23
#inter e0/1
#ip pim sparse
#ip igmp joing 239.1.1.1
#router ospf 1
#net 0.0.0.0 255.255.255.255 area 0

 ============================

Verification:

On R1>
R1#show ip pim rp map
PIM Group-to-RP Mappings

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

since the lowest metric RP to R1 is R2, then it would be the one selected.


on R2 (RP):
R2#show ip mroute | be VCD
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:04:31/stopped, RP 23.23.23.23, flags: SP
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list: Null

    (source, Group)
(16.0.0.6, 239.1.1.1), 00:00:21/00:02:38, flags: TA   \\this indicates Spt-bit and MSDP
  Incoming interface: Ethernet0/0, RPF nbr 12.0.0.1
  Outgoing interface list:
    Ethernet0/1, Forward/Sparse, 00:00:21/00:03:08




 R2#show ip msdp peer
MSDP Peer 3.3.3.3 (?), AS ?
  Connection status:
    State: Up, Resets: 0, Connection source: Loopback1 (2.2.2.2)
    Uptime(Downtime): 00:49:41, Messages sent/received: 53/50

 R2#show ip pim interface count

For switching state use "show ip mfib interface"
Address          Interface                Mpackets In/Out
23.23.23.23      Loopback0                0/0
2.2.2.2          Loopback1                0/0
12.0.0.2         Ethernet0/0              19/0  [incoming interface]
23.0.0.2         Ethernet0/1              0/19 [outgoing interface]




No comments:

Post a Comment

Python-Jinja template configuration generator for Cisco devices and printout configs to external text files

 In this post, I worked on collecting a code that works with Jinja template. the nice thing in working with Jinja is that you can have basel...