Il problema: PIM-SM e il singolo RP

In PIM Sparse Mode ogni gruppo multicast è ancorato a un Rendezvous Point (RP): le sorgenti si registrano verso l’RP con un messaggio PIM Register, i receiver costruiscono lo shared tree (RPT) verso lo stesso RP. Un RP unico è un single point of failure e non consente load sharing: tutte le registrazioni convergono su un solo router. Serve un design che offra sia ridondanza sia distribuzione del carico, con failover rapido e trasparente.

Anycast RP: un indirizzo, più RP

Anycast RP consiste nel configurare lo stesso indirizzo IP di RP (tipicamente una Loopback /32) su due o più router, annunciandolo nell’IGP (OSPF/EIGRP). Grazie all’unicast routing, ogni sorgente e ogni receiver raggiunge l’RP più vicino con quell’indirizzo condiviso.

Vantaggi immediati:

  • Load sharing: le sorgenti si registrano sull’RP topologicamente più vicino, distribuendo lo stato (S,G).
  • Failover a velocità IGP: se un RP cade, l’IGP riconverge e l’indirizzo anycast viene servito dal secondo RP. Nessun cambio di configurazione, nessuna rielezione di protocollo — failover sub-secondo e trasparente per gli host.

C’è però un problema di sincronizzazione dello stato: l’RP1 conosce solo le sorgenti registrate su di sé, l’RP2 solo le proprie. Un receiver ancorato a RP2 non saprebbe nulla di una sorgente registrata su RP1. Qui entra MSDP.

MSDP: sincronizzare le Source-Active

Il Multicast Source Discovery Protocol (MSDP) — nato per il multicast inter-dominio — viene riutilizzato intra-dominio per collegare fra loro gli RP anycast. Ogni RP che riceve un Register origina un messaggio Source-Active (SA) contenente (Source, Group, RP-originator) e lo propaga ai peer MSDP. Così tutti gli RP conoscono tutte le sorgenti attive: RP2 apprende via SA le sorgenti registrate su RP1 e può costruire lo shared tree correttamente.

Peering, RPF e mesh group

  • I peer MSDP non devono usare l’indirizzo anycast: serve una loopback unica per il peering (connect-source / originator-id), altrimenti il peer-RPF check sugli SA fallisce.
  • Fra gli RP anycast (peer full-mesh) si configura un MSDP mesh-group: gli SA ricevuti da un membro non vengono ri-inoltrati agli altri membri e il peer-RPF viene bypassato, evitando loop e duplicazioni.
! RP1 (RP2 speculare)
interface Loopback0
 ip address 10.0.0.1 255.255.255.255   ! anycast RP (condiviso)
interface Loopback1
 ip address 10.1.1.1 255.255.255.255   ! indirizzo MSDP unico
ip pim rp-address 10.0.0.1
ip msdp peer 10.1.1.2 connect-source Loopback1
ip msdp originator-id Loopback1
ip msdp mesh-group ANYCAST 10.1.1.2

Anycast RP vs Auto-RP vs BSR

Aspetto Auto-RP BSR Anycast RP + MSDP
Natura Cisco proprietario (224.0.1.39/.40, Mapping Agent) Standard PIMv2 (RFC 5059, flooding hop-by-hop) Indirizzo condiviso + IGP
Ridondanza Sì, ma active/standby per group range (vince l’RP con IP più alto) Sì, ma active/standby per gruppo via hash deterministico Attivo/attivo su tutti gli RP
Load sharing No (un RP attivo per range) No (un RP per gruppo) , per prossimità della sorgente
Velocità failover Legata ai timer del Mapping Agent Legata al timeout BSR IGP, sub-secondo
Distribuzione mapping Automatica Automatica Serve comunque un metodo (static, Auto-RP o BSR)

Punto chiave d’esame: Auto-RP e BSR forniscono ridondanza ma non load sharing e il failover dipende dai timer di protocollo. Anycast RP offre ridondanza + load sharing con failover a velocità IGP, ed è complementare agli altri: l’indirizzo anycast può essere distribuito proprio via static, Auto-RP o BSR.

Design guideline (ENSLD)

Scegli Anycast RP + MSDP quando i requisiti sono alta disponibilità dell’RP e distribuzione del carico in un dominio enterprise. Posiziona gli RP nel core/distribution, usa loopback dedicate e assicura che l’indirizzo anycast sia raggiungibile in modo simmetrico dall’IGP.

Trappole tipiche d’esame

  • Anycast RP senza peering MSDP → gli RP non si scambiano gli SA: i receiver ancorati a un RP non ricevono le sorgenti registrate sull’altro e il failover non è trasparente (stato (S,G) non sincronizzato). Risposta: manca il peering MSDP.
  • Peer MSDP configurati sull’indirizzo anycast → il peer-RPF check fallisce e gli SA vengono scartati. Risposta: usare una loopback unica con connect-source/originator-id.
  • SA duplicati o loop tra RP full-mesh → manca il mesh-group. Risposta: configurare ip msdp mesh-group.
  • Scenario che chiede load sharing degli RP: Auto-RP e BSR non lo forniscono (sono active/standby). Risposta corretta: Anycast RP.
  • Scenario che chiede il failover più rapido possibile dell’RP: non affidarsi ai timer di Auto-RP/BSR ma all’IGPAnycast RP.