1.1 MBGP
O MBGP permite distinguir quais prefixos de rotas serão usados para a verificação do RPF multicast. A verificação do RPF é um mecanismo fundamental que o roteador utilize para determiner os caminhos da árvore multicast para entregar os pacotes multicasts da origem para os seus destinos.
O MBGP foi escrito na RFC 2283 e é uma extensão Multiprotocol do BGP-4. Como ele é estruturado em cima do BGP , ele possui os recursos que o BGP possui para ambientes entre AS, como ferramentas de filtros, route-maps, etc..
Dois atributos de Path, MP_REACH_NLRI e MP_UNREACH_NLRI, são introduzidos no BGP4. Esses novos atributos cria um jeito simples de carregar dois tipos de informação de roteamento – uma de unicast e outra para multicast.
2 Cenário
2.1 Objetivo
Seis roteadores (R1, R2, R3, R4, R5 e R6) são conectados fisicamente R1-R2-R3-R4-R5-R6 e deverá ser implementado um serviço de multicast utilizando os critérios abaixo:
• A rede é dividida em 2 AS onde os roteadores R1, R2 e R3 fazem parte do AS 123 e os roteadores R4, R5 e R6 do AS 456.
• O roteamento IGP entre R1, R2 e R3 deverá ser o OSPF na área 0 em todas as interfaces;
• O roteamento IGP entre R4, R5 e R6 deverá ser o ISIS level-2 em todas as interfaces;
• Deve existir uma conexão iBGP e iMBGP multicast entre R1 e R2 e entre R2 e R3. O R2 deve ser o Router Reflector para iBGP e MBGP.
• Deve existir uma conexão iBGP e iMBGP multicast entre R4 e R5 e entre R5 e R6. O R5 deve ser o Router Reflector para iBGP e MBGP.
• Deve existir um eBGP e eMBGP entre R3 e R4 com filtro de redistristribuição de loopbacks:
· O R3 deve redistribuir as loopbacks do R1 e do R2;
· O R4 deve redistribuir as loopbacks do R5 e do R6.
• O R2 deverá ser RP estático para o R1 e R3 e o R5 deverá ser RP estático para o R4 e R6;
• Deverá existir uma conexão MSDP entre o R2 e o R5 pelo IP de loopback para troca de source e grupo de multicast utilizando filtro para os grupos 239.1.1.1 e 239.6.6.6;
• O R1 é fonte do grupo 239.1.1.1 e receptor do grupo 239.6.6.6;
• O R6 é fonte do grupo 239.6.6.6 e receptor do grupo 239.1.1.1 e 239.4.4.4;
• A conectividade com os hosts deverá ser IGMPv2;
• Nos roteadores R3 e R4 deverá existir um filtro de proteção de borda para multicast bloqueando os grupos multicasts do Auto-RP e SSM.
2.2 Topologia
Figure-01: Topologia
2.3 IOS utilizados
• R1, R2, R3, R4, R5 E R6 – c7200-k91p-mz.122-25.S15.bin
2.4 Configuração dos Roteadores
2.4.1 Configurações do OSPF
Para o OSPF a configuração é feita pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
area ”. Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.
2.4.2 Configurações do PIM
Antes de configurar o PIM é necessário configurar o roteamento multicast no roteador com o comando “ip multicast-routing”. No PIM a configuração de RP estática é feita com o comando “ip pim rp-address
”.
”.
A configuração da conexão MSDP é feita entre os RPs com o comando “ip msdp peer ” . Pode ser configurada a interface loopback para fechar a conexão MSDP, basta configura-la como source. O comando “ip msdp cache-sa-state” mantém em cache os grupos e fontes conhecidas.
Configura-se o comando “ip msdp rpf rfc3618” para utilizar os recursos da RFC 3618 do MSDP.
Para configurar um filtro de AS no MSDP usa-se o comando “ip msdp sa-filter in|out list ” a ACL tem que ser extendida. Existem recomendações da Cisco para o uso do filtro de AS que são descritas em documentação.
A Cisco recomenda o uso de filtros multicast nos limites do backbone com o comando “ip multicast boundary ” , onde a ACL devem ser os grupos multicasts de Auto-RP (224.0.1.39 e 224.0.1.40) e o bloco do SSM 232.0.0.0/24.
2.4.3 Configurações do BGP
No BGP configura-se em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ” , onde se o for igual ao AS do roteador a conexão é IBGP, se for diferente será EBGP.
Para ser feita a conexão BGP na loopback, configura-se a origem com as loopback na conexão BGP com o comando “neighbor update-source loopback0”.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id ” . Para divulgar rede no BGP é necessário que a rede exista na tabela de roteamento interna e ou adicionar o comando “network mask ” ou redistribuindo rotas para o BGP com o comando “redistribute ” , que pode ser vinculado à um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para o BGP.
Os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, pois o BGP só divulga para um vizinho as rotas aprendidas por EBGP, ou seja, rotas externas. Para isso, ou faz-se o full-mesh de conexão BGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client” .
Como o BGP usa o IGP (OSPF, ISIS, etc.) para conhecer o IP do next-hop, para rotas externas pode ser que um roteador interno não conheça o IP de destino, então usa-se o comando “neighbor next-hop-self” para informar que o roteador será responsável de encaminhar o pacote ao destino.
2.4.4 Configurações do Multiprotocol BGP
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family ipv4 multicast”. Após isso, os vizinhos unicast ficam separados dos vizinhos multicast. Para que um vizinho seja multicast, ativa-se-o dentro da família multicast com o comando “neighbor active” .
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família multicast para manipular ou resolver problemas de roteamento.
2.4.5 Configurações do IGMP
Nesse exemplo é pode-se utilizar o comando “ip igmp join-group ” para enviar uma solicitação de join no grupo multicast.
2.5 Observações e Bugs
O roteamento MBGP é utilizado na RPF conforme pode ser visto no comando “show ip bgp ipv4 multicast”. Note a necessidade da divulgação das loopbacks do R2 e R5 para fechar a conexão MSDP e das loopbacks do R1 e R6 para que esteja na tabela de roteamento unicast o IP de Source Multicast.
Note que o trafego partindo do R1 para o grupo 239.4.4.4 não funciona devido aos filtros no MSDP.
Documentação:
2.6 Comandos Importantes de Verificação
R2#sh ip msdp summary
MSDP Peer Status Summary
Peer Address AS State Uptime/ Reset SA Peer Name
Downtime Count Count
5.5.5.5 456 Up 00:22:06 0 1 ?
R3#show ip bgp ipv4 multicast summary
BGP router identifier 3.3.3.3, local AS number 123
BGP table version is 5, main routing table version 5
4 network entries using 452 bytes of memory
4 path entries using 192 bytes of memory
5/4 BGP path/bestpath attribute entries using 540 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1208 total bytes of memory
BGP activity 8/0 prefixes, 8/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
23.23.23.2 4 123 35 34 5 0 0 00:23:45 0
34.34.34.4 4 456 29 30 5 0 0 00:23:38 2
R5#sh ip mroute 239.1.1.1
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.1.1.1), 00:24:10/stopped, RP 5.5.5.5, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:24:10/00:03:05
(1.1.1.1, 239.1.1.1), 00:00:10/00:03:23, flags: MT
Incoming interface: FastEthernet1/0, RPF nbr 45.45.45.4, Mbgp
Outgoing interface list:
FastEthernet0/0, Forward/Sparse, 00:00:10/00:03:19
3 Configuração
3.1 R1
!
ip multicast-routing
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip pim sparse-mode
ip igmp join-group 239.6.6.6
!
interface FastEthernet0/0
ip address 12.12.12.1 255.255.255.0
ip pim sparse-mode
!
router ospf 1
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 12.12.12.1 0.0.0.0 area 0
!
router bgp 123
bgp router-id 1.1.1.1
neighbor 12.12.12.2 remote-as 123
!
address-family ipv4
neighbor 12.12.12.2 activate
!
address-family ipv4 multicast
neighbor 12.12.12.2 activate
!
!
ip pim rp-address 2.2.2.2
!
3.2 R2
!
ip multicast-routing
!
interface Loopback0
ip address 2.2.2.2 255.255.255.255
ip pim sparse-mode
!
interface FastEthernet0/0
ip address 23.23.23.2 255.255.255.0
ip pim sparse-mode
!
interface FastEthernet1/0
ip address 12.12.12.2 255.255.255.0
ip pim sparse-mode
!
!
router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 12.12.12.2 0.0.0.0 area 0
network 23.23.23.2 0.0.0.0 area 0
!
router bgp 123
bgp router-id 2.2.2.2
neighbor 12.12.12.1 remote-as 123
neighbor 23.23.23.3 remote-as 123
!
address-family ipv4
neighbor 12.12.12.1 activate
neighbor 12.12.12.1 route-reflector-client
neighbor 23.23.23.3 activate
neighbor 23.23.23.3 route-reflector-client
!
address-family ipv4 multicast
neighbor 12.12.12.1 activate
neighbor 12.12.12.1 route-reflector-client
neighbor 23.23.23.3 activate
neighbor 23.23.23.3 route-reflector-client
!
!
ip pim rp-address 2.2.2.2
ip msdp peer 5.5.5.5 connect-source Loopback0
ip msdp sa-filter in 5.5.5.5 list 101
ip msdp sa-filter out 5.5.5.5 list 101
ip msdp cache-sa-state
ip msdp rpf rfc3618
!
!
access-list 101 permit ip any host 239.1.1.1
access-list 101 permit ip any host 239.6.6.6
!
3.3 R3
!
ip multicast-routing
!
!
!
interface Loopback0
ip address 3.3.3.3 255.255.255.255
ip pim sparse-mode
!
!
access-list 2 deny 224.0.1.39
access-list 2 deny 224.0.1.40
access-list 2 deny 232.0.0.0 0.255.255.255
access-list 2 permit any
!
interface FastEthernet0/0
ip address 34.34.34.3 255.255.255.0
ip pim sparse-mode
ip multicast boundary 2
!
interface FastEthernet1/0
ip address 23.23.23.3 255.255.255.0
ip pim sparse-mode
!
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 23.23.23.3 0.0.0.0 area 0
!
router bgp 123
bgp router-id 3.3.3.3
neighbor 23.23.23.2 remote-as 123
neighbor 34.34.34.4 remote-as 456
!
address-family ipv4
redistribute ospf 1 route-map RP-SOURCE
neighbor 23.23.23.2 activate
neighbor 23.23.23.2 next-hop-self
neighbor 34.34.34.4 activate
!
address-family ipv4 multicast
redistribute ospf 1 route-map RP-SOURCE
neighbor 23.23.23.2 activate
neighbor 23.23.23.2 next-hop-self
neighbor 34.34.34.4 activate
!
!
ip pim rp-address 2.2.2.2
!
!
access-list 1 permit 1.1.1.1
access-list 1 permit 2.2.2.2
!
route-map RP-SOURCE permit 10
match ip address 1
!
3.4 R4
!
ip multicast-routing
!
!
interface Loopback0
ip pim sparse-mode
ip router isis
!
access-list 2 deny 224.0.1.39
access-list 2 deny 224.0.1.40
access-list 2 deny 232.0.0.0 0.255.255.255
access-list 2 permit any
!
interface FastEthernet0/0
ip pim sparse-mode
ip multicast boundary 2
ip router isis
!
interface FastEthernet1/0
ip pim sparse-mode
!
router isis
net 49.0001.4444.4444.4444.00
is-type level-2-only
!
router bgp 456
bgp router-id 4.4.4.4
neighbor 34.34.34.3 remote-as 123
neighbor 45.45.45.5 remote-as 456
!
address-family ipv4
redistribute isis level-2 route-map RP-SOURCE
neighbor 34.34.34.3 activate
neighbor 45.45.45.5 activate
neighbor 45.45.45.5 next-hop-self
!
address-family ipv4 multicast
redistribute isis level-2 route-map RP-SOURCE
neighbor 34.34.34.3 activate
neighbor 45.45.45.5 activate
neighbor 45.45.45.5 next-hop-self
!
ip pim rp-address 5.5.5.5
!
!
!
!
access-list 1 permit 5.5.5.5
access-list 1 permit 6.6.6.6
!
route-map RP-SOURCE permit 10
match ip address 1
!
3.5 R5
!
ip multicast-routing
!
!
interface Loopback0
ip pim sparse-mode
!
interface FastEthernet0/0
ip pim sparse-mode
ip router isis
!
interface FastEthernet1/0
ip pim sparse-mode
ip router isis
!
router isis
net 49.0001.5555.5555.5555.00
is-type level-2-only
!
router bgp 456
bgp router-id 5.5.5.5
neighbor 45.45.45.4 remote-as 456
neighbor 56.56.56.6 remote-as 456
!
address-family ipv4
neighbor 45.45.45.4 activate
neighbor 45.45.45.4 route-reflector-client
neighbor 56.56.56.6 activate
neighbor 56.56.56.6 route-reflector-client
!
address-family ipv4 multicast
neighbor 45.45.45.4 activate
neighbor 45.45.45.4 route-reflector-client
neighbor 56.56.56.6 activate
neighbor 56.56.56.6 route-reflector-client
!
ip pim rp-address 5.5.5.5
ip msdp peer 2.2.2.2 connect-source Loopback0
ip msdp sa-filter in 2.2.2.2 list 101
ip msdp sa-filter out 2.2.2.2 list 101
ip msdp cache-sa-state
ip msdp rpf rfc3618
!
!
access-list 101 permit ip any host 239.1.1.1
access-list 101 permit ip any host 239.6.6.6
!
3.6 R6
!
ip multicast-routing
!
!
interface Loopback0
ip pim sparse-mode
ip router isis
ip igmp join-group 239.4.4.4
ip igmp join-group 239.1.1.1
!
interface FastEthernet1/0
ip pim sparse-mode
ip router isis
!
router isis
net 49.0001.6666.6666.6666.00
is-type level-2-only
!
router bgp 456
bgp router-id 6.6.6.6
neighbor 56.56.56.5 remote-as 456
!
address-family ipv4
neighbor 56.56.56.5 activate
!
address-family ipv4 multicast
neighbor 56.56.56.5 activate
!
ip pim rp-address 5.5.5.5
!
Nenhum comentário:
Postar um comentário