PG1X WIKI

My Knowledge Base

User Tools

Site Tools


tech:network:cisco:multicast:routing:pim:pim-sm:auto-rp:config:config

WIP: Multicast PIM-SM: Auto-RP Configuration

Terms

  • Auto-RP
  • RP Candidate
    • RP-Announce Message every 60 sec
    • 224.0.1.39 (Cisco-RP-Announce)
  • RP Mapping Agent
    • Receive RP-Announce Message
    • Decide RP address each multicast address
    • Send the RP address to all PIM routers 224.0.1.40 (Cisco-RP-Discovery).
    • Cisco router join Cisco-RP-Discovery multicast group to learn RP address dynamically by default.
    • Largest IP address can be RP.
    • One router can be configured as both a RP Candidate and a RP Mapping Agent.
  • RP Mapping Agent redundancy
    • just multiple router same role.
    • same RP election logic
    • multiple RP-Discovery Message
    • PIM router update received RP-Discovery Message.
  • RP Candidate can be defined multiple router for RP redundancy.
  • Scenario 1: RP Candidate failure
    • If RP Mapping Agent receive RP Announce Message in 180 sec., RP Mapping Agent will remove the failure RP mapping information.
    • RP Mapping Agent send a new Cisco-RP-Discovery.
  • Auto-RP needs multicast routing for 224.0.1.39 (Cisco-RP-Announce), 224.0.1.40 (Cisco-RP-Discovery), but PIM-SM must have RP.
    • interface level configuration: sparse-dense-mode
      • RP not identified multicast traffic will flood by Dense Mode.
      • RP identified multicast traffic will forward by Sparse Mode.
    • global configuration: ip pim autorp listener Auto-RP Listener feature
      • 224.0.1.39 (Cisco-RP-Announce), 224.0.1.40 (Cisco-RP-Discover) only flood with Dense Mode.
    • nonsense: Static RP: It's require configuration to all PIM routers, and fault tolerance consideration.

Lab 1: PIM-SM Auto-RP 23caf050-7c23-4f12-b484-d5738505467f

  • (S,G) = (10.1.1.100,239.0.1.1)
  • (*,G) = (*,239.0.1.1)
23caf050-7c23-4f12-b484-d5738505467f
network-infrastructure.multicast.pim.pim-sm.auto-rp.23caf050
  1. Dependent Custom Images(This lab require following custom images!!)

Common Configuration Snippet

R1

R2

R3

px-ubuntu-nw-0

px-ubuntu-nw-1

Configure PIM-SM Auto-RP with Sparse-Dense Mode 358a681c-1a33-4c88-aa03-9e4231eeaae9

  • R1
configure terminal
!
ip multicast-routing
!
interface Loopback0
 ip pim sparse-dense-mode
interface GigabitEthernet0/0
 ip pim sparse-dense-mode
interface GigabitEthernet0/1
 ip pim sparse-dense-mode
interface GigabitEthernet0/2
 ip pim sparse-dense-mode
!
ip pim send-rp-discovery Loopback0 scope 16
!
end
  • R2
configure terminal
!
ip multicast-routing
!
interface Loopback0
 ip pim sparse-dense-mode
interface GigabitEthernet0/0
 ip pim sparse-dense-mode
interface GigabitEthernet0/1
 ip pim sparse-dense-mode
!
access-list 1 permit host 239.0.1.1
!
ip pim send-rp-announce Loopback0 scope 16 group-list 1
!
end
  • R3
configure terminal
!
ip multicast-routing
!
interface GigabitEthernet0/0
 ip pim sparse-dense-mode
interface GigabitEthernet0/1
 ip pim sparse-dense-mode
interface GigabitEthernet0/2
 ip pim sparse-dense-mode
!
end

Configure PIM-SM Auto-RP with Auto-RP Listener 99d56883-2232-453e-b2f0-722836df18ec

  • R1
configure terminal
!
ip multicast-routing
!
interface GigabitEthernet0/0
 ip pim sparse-mode
interface GigabitEthernet0/1
 ip pim sparse-mode
interface GigabitEthernet0/2
 ip pim sparse-mode
!
ip pim autorp listener
!
end
  • R2
configure terminal
!
ip multicast-routing
!
interface GigabitEthernet0/0
 ip pim sparse-mode
interface GigabitEthernet0/1
 ip pim sparse-mode
!
ip pim autorp listener
!
end
  • R3
configure terminal
!
ip multicast-routing
!
interface GigabitEthernet0/0
 ip pim sparse-mode
interface GigabitEthernet0/1
 ip pim sparse-mode
interface GigabitEthernet0/2
 ip pim sparse-mode
!
ip pim autorp listener
!
end

Configure PIM-SM Auto-RP RP-Announce Message Filtering

Example 1: Receive RP-Announce from 172.16.2.2 and multicast group 239.0.1.1

  • R1 (RP Mapping Agent)
configure terminal
!
access-list 1 permit 172.16.2.2
access-list 2 permit 239.0.1.1
!
ip pim rp-announce-filter rp-list 1 group-list 2
!
end

Example 2: Receive RP-Announce except private scope multicast group

  • R1 (RP Mapping Agent)
configure terminal
!
access-list 1 permit 172.16.2.2
access-list 2 deny 239.0.0.0 0.255.255.255
access-list 2 permit 224.0.0.0 15.255.255.255
!
ip pim rp-announce-filter rp-list 1 group-list 2
!
end

Configure PIM-SM Auto-RP multicast boundary

  • R(what)
configure terminal
!
access-list 1 deny host 224.0.1.39
access-list 1 deny host 224.0.1.40
access-list 1 permit 224.0.0.0 15.255.255.255
!
interface GigabitEthernet0/0
 ip multicast boundary 1
!
end

Verification 535211da-2055-4467-ad2e-d242f12dc12a

  • Sender
msend -g 239.0.1.1 -p 8888 -text "hello multicast world" -t 60
  • Receiver
mreceive -g 239.0.1.1 -p 8888
show ip route ospf | begin Gateway
show ip igmp groups
show ip pim interface
show ip pim neighbor
show ip pim rp mapping
show ip mroute
show ip mroute summary
show ip mroute | begin \(
show ip mroute summary | begin \(
show ip mroute 239.0.1.1 | begin \(
show ip rpf x.x.x.x
!
debug ip mpacket
debug ip pim
debug ip mrouting
!
debug ip mpacket 239.0.1.1
debug ip pim 239.0.1.1
debug ip mrouting 239.0.1.1
  • Wireshark Display Filter

Wireshark Filter Expression Cheat Sheet

!ospf && !igmp && (pim || (icmp && icmp.type != 3 ) || ip.addr  == 224.0.0.0/4)
!ospf && (pim || (icmp && icmp.type != 3 ) || igmp || ip.addr  == 224.0.0.0/4)
igmp || (udp.port == 8888 && ip.addr  == 224.0.0.0/4)
  • Capture Filter (BPF)

tcpdump

# Exclude LOOP protocol
not ether proto 9000
# Exclude CDP, LOOP, 0x6002(DEC DNA Remote Console) protocol
not (ether[20:2] == 0x2000 or ether proto (loopback or 0x6002))
# Exclude CDP, LOOP, 0x6002(DEC DNA Remote Console), OSPF protocol
not (ether[20:2] == 0x2000 or ether proto (loopback or 0x6002) or ip proto ospf)
# **NOT TESTED LLDP!!** Exclude CDP, LOOP, 0x6002(DEC DNA Remote Console), LLDP(0x88cc), OSPF protocol
not (ether[20:2] == 0x2000 or ether proto (loopback or 0x6002 or 0x88cc) or ip proto ospf)
network-infrastructure.multicast.pim.pim-sm.23caf050.14a32775.lab1.r1ge0-0_r2ge0-1.pcapng
network-infrastructure.multicast.pim.pim-sm.23caf050.14a32775.lab1.r2ge0-0_r3ge0-1.pcapng
network-infrastructure.multicast.pim.pim-sm.23caf050.14a32775.lab1.r1ge0-1_r3ge0-0.pcapng
network-infrastructure.multicast.pim.pim-sm.23caf050.14a32775.lab1.r3ge0-2_px-ubuntu-nw-1-ens2.pcapng

Default: SPT switchover feature enabled 14a32775-a33c-4544-b6d9-8e91d82b5329

Receiver Join

  • IGMPv2 Membership Report
  • PIM (*, 239.0.1.1) Join

Sender start send multicast packet

  • PIM (10.1.1.100, 239.0.1.1) Register to RP (172.16.2.2)
  • PIM (10.1.1.100, 239.0.1.1) Join to R1 from R2
  • And forwarding with (10.1.1.100, 239.0.1.1) and (*, 239.0.1.1)

R1 → R2

R2 → R3

R3 → Receiver

  • PIM (10.1.1.100, 239.0.1.1) Register-stop to RP (172.16.2.2)

R3 Fire SPT Switchover

  • PIM (10.1.1.100, 239.0.1.1) Join to R1 from R3
  • PIM (10.1.1.100, 239.0.1.1) RP-bit Prune to R2 from R3
  • PIM (10.1.1.100, 239.0.1.1) Prune to R2 from R1
  • Start forwarding with (10.1.1.100, 239.0.1.1) to Receiver via R1, R3 link.

R1 Log

R2 Log

R3 Log

Disable SPT switchover feature fa5360f4-bb7e-405a-ad53-1450af1d2e1e

  • R3 (LHR)
configure terminal
!
ip pim spt-threshold infinity
!
end

R1 Log

R2 Log

R3 Log

Notes

  1. PIM DR router sends PIM Join Message and PIM Register Message
  2. ip pim sparse-dense-mode or ip pim sparse-mode must be enabled all multicast packet path including Sender, Receiver connected interfaces.
  3. If an interface be enabled PIM, IGMPv2 enabled automatically. So, IGMP only enable/disable configuration not exist.
  4. Unicast routing is successfully operational is prerequisite.
  5. And RPF check must be successful.
  6. Typically, RP address will be used loopback interface from fault tolerance point of view.
    1. Multicast router must have IP reachablity.
  7. ip pim send-rp-discovery or ip pim send-rp-announce specified interface must be enabled PIM. So, above example enables PIM on Loopback0 respectively.

References

tech/network/cisco/multicast/routing/pim/pim-sm/auto-rp/config/config.txt · Last modified: 2021/09/03 14:55 by wnoguchi