È possibile ottenere la ridondanza per Rendezvous Point (RP) eseguendo protocolli quali auto-RP e Bootstrap. Tuttavia, in caso di fallimento la loro convergenza non è così rapida. Esiste un concetto di RP Anycast in cui lo stesso indirizzo IP (indirizzo-rp) è configurato su due o più router che si desidera utilizzare come RP. Quindi, pubblicizzare questo IP in IGP. Gli altri router selezioneranno uno qualsiasi di questi router in base al miglior percorso per l'indirizzo RP. In caso di guasto, la convergenza è la stessa del protocollo IGP (Interior Gateway Protocol).
Con questo concetto sorge un problema. È necessario sincronizzare le informazioni tra i diversi RP perché pochi mittenti e riceventi potrebbero unirsi al router 1 che funge da RP, mentre pochi potrebbero unirsi al router 2 che funge da RP. I router non avrebbero a disposizione informazioni complete su tutte le sorgenti e il multicast sarebbe interrotto. Per risolvere questo problema, è necessario disporre di un meccanismo per sincronizzare le informazioni relative alle origini tra tutti i router che agiscono come server di reindirizzamento. A tale scopo, sono disponibili due protocolli:
Protocollo MSDP (Multicast Source Discovery Protocol)
PIM
MSDP è disponibile da un po'. I messaggi Source Active vengono inviati ad altri router ogni volta che un'origine si registra in un RP. In questo documento è descritto un miglioramento apportato a PIM. Attualmente, questo miglioramento è disponibile solo per Nexus.
Cisco raccomanda la conoscenza dei seguenti argomenti:
RP Anycast
PIM (Nexus)
Il documento può essere consultato per tutte le versioni software o hardware.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Questa è una topologia di esempio:
Mittente(172.16.1.1)—(9/3)Nexus-1(9/2)—(9/2)Nexus-2
Configurazione relativa a Nexus 1:
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 ip pim anycast-rp 10.1.1.1 192.168.1.1 ip pim anycast-rp 10.1.1.1 192.168.2.2 interface loopback1 ip address 192.168.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface loopback7 ip address 10.1.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/2 ip address 10.7.7.1/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/3 ip address 172.16.1.2/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode
Configurazione relativa a Nexus 2:
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 ip pim ssm range 232.0.0.0/8 ip pim anycast-rp 10.1.1.1 192.168.1.1 ip pim anycast-rp 10.1.1.1 192.168.2.2 interface loopback1 ip address 192.168.2.2/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface loopback7 ip address 10.1.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/2 ip address 10.7.7.2/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode
Sono disponibili due caselle Nexus: Nexus-1 e Nexus-2. Entrambi verranno utilizzati come RP. L'indirizzo RP deve essere 10.1.1.1. Il loopback 7 si trova su entrambe le caselle Nexus con questo IP configurato. Questo loopback viene quindi annunciato in Open Shortest Path First (OSPF) in modo che router diversi nella rete raggiungano Nexus-1 o Nexus-2 per l'RP. Dipende dalla metrica del percorso migliore.
In entrambi gli Nexus, 10.1.1.1 è definito come RP utilizzando questo comando:
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4
A questo punto è necessario definire qualcosa denominato insieme RP. Questo è l'insieme di tutti i router che agirebbero come RP. È necessario disporre di un loopback su ciascun router RP potenziale, che è diverso dal loopback utilizzato come indirizzo RP. Nell'esempio, il loopback 1 si trova su entrambi gli Nexus con indirizzo IP 192.168.1.1/32 e 192.168.2.2/32, rispettivamente. Questo loopback 1 viene utilizzato per definire l'insieme RP. A tal fine, eseguire il comando seguente:
ip pim anycast-rp <indirizzo-rp> <indirizzo-ip-di-potenziale-RP>
I comandi per entrambi gli Nexus per la configurazione sono:
ip pim anycast-rp 10.1.1.1 192.168.1.1
ip pim anycast-rp 10.1.1.1 192.168.2.2
Una cosa da notare è che è necessario definire il proprio IP, così come nel set RP. Pertanto, entrambi questi comandi devono essere inseriti in entrambe le caselle Nexus.
Una volta definito l'insieme RP, questo è l'output visualizzato per la mappatura RP:
Nexus-1# show ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None Anycast-RP 10.1.1.1 members: 192.168.1.1* 192.168.2.2 RP: 10.1.1.1*, (0), uptime: 00:00:58, expires: never, priority: 0, RP-source: (local), group ranges: 224.0.0.0/4 Nexus-2# show ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None Anycast-RP 10.1.1.1 members: 192.168.1.1 192.168.2.2* RP: 10.1.1.1*, (0), uptime: 02:46:54, expires: never, priority: 0, RP-source: (local), group ranges: 224.0.0.0/4
Ad esempio, si riceve un messaggio di registro su uno dei router che fa parte del set RP. Il router aggiungerà S,G per questa origine nella relativa tabella. Inoltre, il router invierà un messaggio di registro PIM a tutti gli altri membri del set di RP. L'IP di origine di questo messaggio di registro sarebbe l'indirizzo di questo router presente nel set di RP e la destinazione sarebbe l'indirizzo di ciascun router del set di RP.
In questo esempio, quando l'origine 172.16.1.1 invia un pacchetto multicast destinato a 239.1.1.1 a Nexus-1, Nexus-1 registra prima questa origine come RP e invia un messaggio di registro a Nexus-2 per l'origine 172.16.1.1 e il gruppo 239.1.1.1. Quando Nexus-2 riceve questo registro, aggiunge la voce S,G per 172.16.1.1, 239.1.1.1 nella tabella di route. Ora sia RP Nexus-1 che Nexus-2 conoscono questa fonte. Il messaggio di registro inviato da Nexus-1 a Nexus-2 ha origine IP 192.168.1.1 e destinazione IP 192.168.2.2 come definito nel set di RP.
Instrada le voci su entrambe le caselle Nexus dopo il processo di registrazione:
Nexus-1# sh ip mroute 239.1.1.1 IP Multicast Routing Table for VRF "default" (172.16.1.1/32, 239.1.1.1/32), uptime: 00:00:22, ip pim Incoming interface: Ethernet9/3, RPF nbr: 172.16.1.1, internal Outgoing interface list: (count: 0) Nexus-2# sh ip mroute 239.1.1.1 IP Multicast Routing Table for VRF "default" (172.16.1.1/32, 239.1.1.1/32), uptime: 00:00:17, pim ip Incoming interface: Ethernet9/2, RPF nbr: 10.7.7.1, internal Outgoing interface list: (count: 0)
Dump del pacchetto del messaggio del registro di configurazione creato su Nexus-2:
Ethernet II, Src: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41), Dst: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) Destination: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) Address: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41) Address: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 192.168.2.2 (192.168.2.2) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 128 Identification: 0x1b27 (6951) Flags: 0x00 0.. = Reserved bit: Not Set .0. = Don't fragment: Not Set ..0 = More fragments: Not Set Fragment offset: 0 Time to live: 254 Protocol: PIM (0x67) Header checksum: 0x9aea [correct] [Good: True] [Bad : False] Source: 192.168.1.1 (192.168.1.1) Destination: 192.168.2.2 (192.168.2.2) Protocol Independent Multicast Version: 2 Type: Register (1) Checksum: 0xdeff [correct] PIM parameters Flags: 0x00000000 0... .... .... .... .... .... .... .... = Not border .0.. .... .... .... .... .... .... .... = Not Null-Register Internet Protocol, Src: 172.16.1.1 (172.16.1.1), Dst: 239.1.1.1 (239.1.1.1) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 100 Identification: 0x0000 (0) Flags: 0x00 0.. = Reserved bit: Not Set .0. = Don't fragment: Not Set ..0 = More fragments: Not Set Fragment offset: 0 Time to live: 254 Protocol: ICMP (0x01) Header checksum: 0xa294 [correct] [Good: True] [Bad : False] Source: 172.16.1.1 (172.16.1.1) Destination: 239.1.1.1 (239.1.1.1) Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 () Checksum: 0x9484 [correct] Identifier: 0x0000 Sequence number: 0 (0x0000) Data (72 bytes) 0000 00 00 00 00 00 71 e9 54 ab cd ab cd ab cd ab cd .....q.T........ 0010 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0020 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0030 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0040 ab cd ab cd ab cd ab cd ........ Data: 000000000071E954ABCDABCDABCDABCDABCDABCDABCDABCD... [Length: 72]
È possibile utilizzare questo filtro per acquisire pacchetti PIM in banda nel Nexus:
ethanalyzer local interface inband capture-filter "ip proto 103" limit-capture-frames 0 write logflash: pim.pcap
L'acquisizione dei pacchetti PIM verrà avviata per un periodo di tempo indefinito finché non si preme cntrl+c. I pacchetti vengono visualizzati sullo schermo e vengono scritti nel file pim.pcap in logflash. È inoltre possibile includere l'indirizzo IP per acquisire i pacchetti da un determinato router adiacente PIM ("ip proto 103 and host <ip_address>").
Questi sono i due debug che sono utili per controllare il processo di registrazione su Nexus:
debug ip pim data-register send
debug ip pim data-register receive
Nexus 1
2012 Sep 20 12:25:52.537472 pim: [6405] (default-base) Received Register from 172.16.1.2 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.537656 pim: [6405] (default-base) Create route for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.537716 pim: [6405] (default-base) Add route (172.16.1.1/32, 239.1.1.1/32) to MRIB, multi-route TRUE 2012 Sep 20 12:25:52.537745 pim: [6405] (default-base) RP 10.1.1.1 is an Anycast-RP 2012 Sep 20 12:25:52.537771 pim: [6405] (default-base) Forward Register to Anycast-RP member 192.168.2.2 2012 Sep 20 12:25:52.537825 pim: [6405] (default-base) Send Register-Stop to 172.16.1.2 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.538591 pim: [6405] (default-base) Received Register-Stop from 10.1.1.1 for (172.16.1.1/32, 239.1.1.1/32)
Nexus 2
2012 Sep 20 12:26:36.367862 pim: [7189] (default-base) Received Register from 192.168.1.1 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:26:36.368093 pim: [7189] (default-base) Create route for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:26:36.368175 pim: [7189] (default-base) Add route (172.16.1.1/32, 239.1.1.1/32) to MRIB, multi-route FALSE 2012 Sep 20 12:26:36.368223 pim: [7189] (default-base) RP 10.1.1.1 is an Anycast-RP 2012 Sep 20 12:26:36.368240 pim: [7189] (default-base) Register received from Anycast-RP member 192.168.1.1
Questa RFC fornisce ulteriori informazioni sul processo di registrazione PIM: http://tools.ietf.org/rfc/rfc4610.txt
Inoltre, fare riferimento a Configurazione di PIM e PIM6 per ulteriori informazioni.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
07-Nov-2012 |
Versione iniziale |