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) | Sì, 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’IGP → Anycast RP.