Você pode ter redundância para o Ponto de reunião (RP) executando protocolos como o RP automático e o Bootstrap. No entanto, em caso de falha, sua convergência não é tão rápida. Há um conceito de RP Anycast em que o mesmo endereço IP (rp-address) é configurado em dois ou mais roteadores que você deseja que sirvam como RP. Em seguida, anuncie esse IP no IGP. Outros roteadores selecionarão qualquer um desses roteadores com base no melhor caminho para o endereço rp. Em caso de falha, a convergência é a mesma do Interior Gateway Protocol (IGP).
Com esse conceito, surge um problema. As informações precisam ser sincronizadas entre os diferentes RPs porque poucos remetentes e receptores podem se juntar ao roteador 1 que serve como um RP e poucos podem se juntar ao roteador 2 que serve como um RP. Esses roteadores não teriam informações completas de todas as fontes e o multicast seria interrompido. A solução para esse problema é ter um mecanismo para sincronizar informações com relação às fontes entre todos os roteadores que estão atuando como um RP. Há dois protocolos que podem servir a essa finalidade:
Protocolo MSDP (Multicast Source Discovery Protocol)
PIM
O MSDP já existe há algum tempo. As mensagens Ativas de Origem são enviadas a outros roteadores sempre que uma origem se registra em um RP. Há uma melhoria no PIM que é detalhada neste documento. Atualmente, esse aprimoramento está disponível apenas para o Nexus.
A Cisco recomenda que você tenha conhecimento destes tópicos:
RPs Anycast
PIM (Nexus)
Este documento não se restringe a versões de software e hardware específicas.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Este é um exemplo de topologia:
Remetente(172.16.1.1)-----------(9/3)Nexus-1(9/2)---------------(9/2)Nexus-2
Configuração relevante do 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
Configuração relevante do 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
Há duas caixas Nexus: Nexus-1 e Nexus-2. Ambos serão usados como o RP. O endereço RP deve ser 10.1.1.1. O loopback 7 está em ambas as caixas do Nexus que têm esse IP configurado. Esse loopback é anunciado no OSPF (Open Shortest Path First) para que roteadores diferentes na rede alcancem o Nexus-1 ou o Nexus-2 para o RP. Isso depende da melhor métrica de caminho.
Em ambos os Nexus, 10.1.1.1 é definido como o RP usando este comando:
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4
Agora você precisa definir algo chamado conjunto RP. Este é o conjunto de todos os roteadores que atuariam como RP. Você precisa ter um loopback em cada roteador RP potencial, que é diferente do loopback que está sendo usado como o endereço RP. Neste exemplo, o loopback 1 está em ambos os Nexus que têm o endereço IP 192.168.1.1/32 e 192.168.2.2/32, respectivamente. Esse loopback 1 é usado para definir o conjunto RP. O comando para fazer o mesmo é:
ip pim anycast-rp <rp-address> <ip-address-of-prospetive-RP>
Os comandos para ambos os Nexus para a configuração são:
ip pim anycast-rp 10.1.1.1 192.168.1.1
ip pim anycast-rp 10.1.1.1 192.168.2.2
Uma coisa a observar aqui é que você precisa definir seu próprio IP, bem como no conjunto RP. Portanto, ambos os comandos precisam ser colocados em ambas as caixas do Nexus.
Uma vez que o conjunto RP é definido, esta é a saída que você vê para o mapeamento 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
Por exemplo, você recebe uma mensagem de registro em um dos roteadores que faz parte do conjunto RP. Esse roteador adicionará S,G para essa origem em sua tabela. Além disso, o roteador enviará uma mensagem de registro PIM a todos os outros membros do conjunto RP. O IP origem dessa mensagem de registro seria o endereço desse roteador que está no conjunto RP e o destino seria o endereço de cada roteador no conjunto RP.
Neste exemplo, quando a origem 172.16.1.1 envia um pacote multicast destinado a 239.1.1.1 para o Nexus-1, o Nexus-1 registra primeiro essa origem como o RP e envia uma mensagem de registro ao Nexus-2 para a origem 172.16.1.1 e o grupo 239.1.1.1. Quando o Nexus-2 recebe esse registro, ele adiciona a entrada S,G para 172.16.1.1, 239.1.1.1 no tabela mroute. Agora, o RP Nexus-1 e o Nexus-2 conhecem essa fonte. A mensagem de registro enviada do Nexus-1 para o Nexus-2 tinha o IP de origem 192.168.1.1 e o IP de destino 192.168.2.2, conforme definido no conjunto RP.
Encaminhe as entradas em ambas as caixas do Nexus após o processo de registro:
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)
Despejo de pacote dessa mensagem de registro feita no 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]
Você pode usar este filtro para capturar pacotes PIM na banda do Nexus:
ethanalyzer local interface inband capture-filter "ip proto 103" limit-capture-frames 0 write logflash: pim.pcap
Isso iniciará a captura de pacotes PIM indefinidamente até que cntrl+c seja pressionado. Os pacotes são exibidos na tela e também são gravados no arquivo pim.pcap no logflash. Você também pode incluir o endereço IP para capturar pacotes de um vizinho PIM específico ("ip proto 103 and host <ip_address>").
Estas são as duas depurações que são úteis para verificar o processo de registro no 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
Este RFC fornece mais informações sobre o processo de registro PIM: http://tools.ietf.org/rfc/rfc4610.txt
Além disso, consulte Configuração de PIM e PIM6 para obter mais informações.
| Revisão | Data de publicação | Comentários |
|---|---|---|
1.0 |
25-Oct-2012
|
Versão inicial |