Você pode ter redundância para o ponto de encontro (RP) executando protocolos como RP automático e Bootstrap. No entanto, em caso de fracasso, a sua convergência não é tão rápida. Há um conceito de RP Anycast em que o mesmo endereço IP (endereço-rp) é configurado em dois ou mais roteadores que você deseja servir 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 unir ao roteador 1 atuando como um RP, e poucos podem se unir ao roteador 2 atuando como um RP. Esses roteadores não teriam informações completas de todas as fontes e o multicast seria quebrado. 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:
Multicast Source Discovery Protocol (MSDP)
PIM
O MSDP está por aí há algum tempo. As mensagens de origem ativa 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, essa melhoria só está disponível 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 RP. O endereço RP deve ser 10.1.1.1. O loopback 7 está em ambas as caixas Nexus que têm esse IP configurado. Esse loopback é anunciado no OSPF (Open Shortest Path First) para que diferentes roteadores na rede acessem 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. Esse é 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 ser observada aqui é que você precisa definir seu próprio IP, assim como no conjunto RP. Portanto, ambos os comandos precisam ser colocados em ambas as caixas Nexus.
Uma vez definido o conjunto RP, 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 RP definido. O IP de 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 o pacote multicast destinado a 239.1.1.1 para Nexus-1, o Nexus-1 primeiro registra essa origem como RP e envia uma mensagem de registro para o 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 na tabela mroute. Agora, o RP Nexus-1 e o Nexus-2 conhecem essa fonte. A mensagem de registro que foi enviada do Nexus-1 para o Nexus-2 tinha o IP de origem 192.168.1.1 e o IP destino 192.168.2.2 como definido no conjunto RP.
Entradas de rota em ambas as caixas 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 tirada 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 esse filtro para capturar pacotes PIM na inband do Nexus:
ethanalyzer local interface inband capture-filter "ip proto 103" limit-captured-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 devem ser 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 do PIM: http://tools.ietf.org/rfc/rfc4610.txt
Consulte também Configurando PIM e PIM6 para obter mais informações.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
07-Nov-2012 |
Versão inicial |