REDES MPLS BGP PROFESSOR: MARCOS A. A. GONDIM Roteiro Introdução ao BGP Sistema Autonômo Fundamentos do BGP Sessão BGP Cabeçalho BGP Mensagem BGP Tabelas BGP Estados do BGP Border Gateway Protocol (BGP) Desde 1994 o Border Gateway Protocol v.4 (BGP4 - RFC 4271) vem sendo utilizado como protocolo de roteamento da Internet. A Internet é conjunto de Sistemas autônomos. O BGP é utilizado para interconectar sistemas autônomos ou redes muito grandes. Border Gateway Protocol (BGP) Protocolos de roteamento podem ser classificados como: IGP (Interior Gateway Protocol): realiza a troca de informações de roteamento dentro de um mesmo sistema autônomo. Exemplos: RIP, IGRP, OSPF e EIGRP EGP (Exterior Gateway Protocol): realiza a troca de informações de roteamento entre sistemas autônomos. Exemplo: BGP O BGP pode ser usado em 2 cenários... EBGP: quando o BGP realiza a divulgação de rotas entre Sistemas Autônomos diferentes é chamado de Exterior BGP. IBGP: entretanto o BGP pode ser utilizado para a divulgação de rotas dentro de um mesmo Sistema Autônomo e é chamado de Interior BGP. É necessário expertise para configurar roteamento utilizando BGP. EBGP IBGP MULTIHOMING Border Gateway Protocol (BGP) BGP - Border Gateway Protocol BGP1: RFC 1105 BGP2: RFC 1163 BGP3: RFC 1267 BGP4: versão atual, com suporte a VLSM. O BGP é um protocolo de roteamento Path Vector (Protocolo Vetor Distância avançado). Path Vector O BGP envia para seus vizinhos informações de alcançabilidade das redes que compõem um AS. Informa os números AS que compõem o caminha até uma rede de destino e quais redes podem ser alcançadas por este caminho. Sistema Autônomo É definido por um conjunto de roteadores sob uma mesma política de roteamento e administração. Um dos roteadores é escolhido como o roteador que comunica-se com outros roteadores na Internet/MPLS e é capaz de enviar rotas corretas aos demais. O BGP associa redes com sistemas autonômos. Sistema Autônomo Sistema Autônomo Para diferir e identificar univocamente cada sistema autônomo (AS), este será associado a um número que o identifica mediante os demais sistemas. Esse número varia entre 1 e 65.535, sendo que a faixa entre 64.512 e 65.535 é destinada a uso privado. Sistema Autônomo IANA é a organização que gerencia globalmente a utilização de IPs e números dos Sist. Autônomos. As RIRs (Regional Internet Registry) gerenciam o uso de IPs e AS em uma região: American Registry for Internet Numbers (ARIN) realiza o controle nas Americas e algumas ilhas do Caribe. Réseaux IP Européens Network Coordination Center (RIPE NCC) administra número AS para Europa, Oriente Médio, Ásia Central. Asia Pacific Network Information Center (APNIC) administra os número AS da regíão do Pacífico. Latin American and Caribbean Internet Addresses Registry (LACNIC) é responsável pela América Latina. AfriNIC responsável pela África. Fundamentos do BGP Diferente dos IGPs (que ajustam suas rotas frequentemente) o BGP é definido para preferir rotas mais estáveis que não são constantemente alteradas. O BGP realiza a detecção de loops montando um “histórico” dos AS (Path Vector) pelos quais os pacotes passaram e rejeitam pacotes que já contenham o número do AS correspondente ao roteador. AS 25 3 /2 .0 25 54 7 .2 – 3 1 th 2. a 17 S P A 17 2 A . 31 S .2 P 54 at . h 0/ - 7 23 Detecção de loops AS 7 17 S 2.3 P 1 at .2 h 54 – .0 7 /2 25 3 19 AS Path rejeitado Contém AS 7 AS 19 AS 172 . Pa 31.2 th 5 – 7 4.0/ 25 23 19 69 A 172.31.254.0/23 172.31.254.0/23 AS Path - vazio AS 69 Fundamentos do BGP Roteadores vizinhos que rodam BGP são chamados peers. Os peers são descobertos através de configurações pré-definidas e não automaticamente. Políticas de Roteamento BGP Possíveis caminhos entre o AS 64512 e AS 64700 através do 64520. 64520 64600 64700; 64520 64600 64540 64550 64700; 64520 64540 64600 64700; 64520 64540 64550 64700. O AS 64512 enxerga somente o melhor caminho. Sessão BGP Antes do estabelecimento de uma sessão BGP, os roteadores vizinhos trocam mensagens entre si para entrar em acordo sobre quais serão os parâmetros da sessão. Não havendo discordância e nem erros durante a negociação dos parâmetros entre as partes, a sessão BGP é estabelecida. Caso contrário, serão enviadas mensagens de erro e a sessão não será aberta. Sessão BGP Quando a sessão é estabelecida entre os roteadores, são trocadas mensagens contendo todos os melhores caminhos previamente selecionados por cada roteador vizinho. Essa técnica mostrou-se um avanço no que se refere à diminuição da carga das CPUs dos roteadores e na economia da banda dos enlaces. Diferentemente de outros protocolos que ao comunicarem suas atualizações enviam periodicamente a totalidade de rotas instaladas em suas tabelas. Cabeçalho BGP As mensagens trocadas em sessões BGP têm o comprimento máximo de 4.096 bytes, e mínimo de 19 bytes. Campo Marcador Campo Comprimento Campo Tipo 16 bytes 2 bytes 1 byte Cabeçalho BGP Campo Marcador Verificar a autenticidade da mensagem recebida e se houve perda de sincronização entre os roteadores vizinhos BGP. Campo Comprimento Deve conter um número que representa o comprimento total da mensagem, incluindo o cabeçalho. Como pode haver mensagens que não possuem dados após o cabeçalho, a menor mensagem BGP enviada é de 19 bytes. Cabeçalho BGP Campo Tipo Contém um número que representa o código de um tipo de mensagem. Existem 4 tipos de mensagens BGP: Open; Keepalive; Update; Notification. Mensagens BGP A mensagem do tipo OPEN é enviada para se iniciar a abertura de uma sessão BGP entre os vizinhos BGP, através da porta TCP = 179. Version number: Indica qual a versão do BGP é utilizada (ex: BGP4). AS number: Indica o número do AS do roteador local. O peer verifca o valor do AS e caso não seja o valor esperado a sessão BGP é derrubada. Hold time: Indica o valor máximo de tempo em segundos utilizado entre mensagem keepalive ou update sucessivos. BGP router ID: campo de 32-bits que identifca o originador BGP. O BGP ID é um endereço IP que identifica o roteador. O BGP router ID é escolhido da mesma forma que no OSPF: ele é o maior endereço IP ativo existente e associado a uma interface (exceto IP de loopback). Caso haja um IP de loopback configurado ele terá a preferência com ID do BGP. Optional parameters: Indicam os parâmetros Type, Length, and Value (TLV) utilizados na autenticação BGP. Mensagens BGP A mensagem do tipo NOTIFICATION é enviada no caso da detecção de erros durante ou após o estabelecimento de uma sessão BGP, com o propósito de verificar se a comunicação entre os vizinhos está ativa. Mensagens BGP A mensagem do tipo KEEPALIVE é composta apenas de cabeçalho padrão das mensagens BGP, sem dados transmitidos após o cabeçalho. O tempo máximo permitido para o recebimento da mensagem KEEPALIVE é definido pelo hold time (60s por padrão). Mensagens BGP Por fim, a mensagem UPDATE é enviada quando há mudanças na rede. Essa mudança pode ser uma nova rede disponível e propagada através do BGP ou a necessidade de se remover uma rota que aponta para uma rede desativada. Mensagens BGP Uma mensagem UPDATE contém as informações abaixo: Rotas Retiradas (Withdrawn Routes): Indica quais os prefixos IP devem ser retirados da tabela de rotas por não estarem disponíveis. Atributos de Caminho (Path attributes): Fazem parte desde subcampo o caminho AS , AS de origem, dentre outros. Informação de disponibilidade (Network-layer reachability information): Este campo indica uma lista de endereços IP que são alcançáveis por um caminho. Tabelas BGP O BGP utiliza 3 tabelas em sua operação: Tabela de Vizinhos (Neighbor table). Tabela BGP. Tabela de roteamento IP. As rotas BGP são mantidas separadamente e apenas a melhor rota é inserida na tabela de roteamento IP. Estados dos BGP Para o estabelecimento do BGP são necessárias 5 etapas: Idle – Procurando por vizinhos. Connect – TCP handshake-triplo completo com vizinho. Open Sent – Enviada mensagem Open BGP. Open Confirm – Resposta recebida. Established – Relação de vizinhança BGP estabelecida. Estados dos BGP Enquanto a negociação está nas etapas: Idle, Connect, Open Sent, Open Confirm é exibido o status “active”. O status Established indica que a sessão está OK. Configurando BGP Habilitando o BGP Este comando identifica a qual AS o roteador pertence. Somente uma instância BGP pode ser criada por vez. Determinando Vizinhos Este comando ativa a sessão BGP com um vizinho. O endereço IP vizinho será utilizado para realização de atualizações. O valor do remote-as indica se será utilizado IBGP ou EBGP. IBGP = mesmo AS; EBGP = AS diferente. IBGP e EBGP Desativando uma sessão com um vizinho BGP Comando utilizado para realizar manutenção ou alternar o tráfego para outro link. IBGP Peering Qual IP deve-se utilizar para configuração do neighbor em uma sessão entre os roteadores A e D? Se o roteador D usar: neighbor 10.3.3.1 remote-as 65102, mas se o roteador A enviar pacotes BGP para o roteador D via roteador B, a sessão BGP será negada. Update Source Este comando ativa manualmente o IP de origem padrão que será utilizado pelos pacotes IP. Caso não se utilize o Update Source, o IP do pacote BGP será o da interface de saída dos pacotes e caso este seja diferente do IP configurado no roteador vizinho o pacote será descartado. IBGP Update Source Caso a configuração em C fosse: neighbor 10.1.1.1 remote-as 65101 e a interface correspondente ao IP 10.1.1.1 fosse para down a sessão BGP entre B e C não funcionaria. EBGP Peering Para o caso de utilização do EBGP, para o IP do neighbor pode-se usar o IP da interface diretamente conectada (não é a melhor configuração). Porém se uma interface de loopback for utilizada como IP do neighbor em uma sessão BGP, será necessário realizar uma configuração adicional. Habilitando neighbor EBGP Este comando permite a utilização de interfaces loopback como neighbors de sessões BGP. O menor valor do TTL deve ser 2 e caso não seja especificado o roteador adotará o valor de 255. EBGP Peering Algumas peculiaridades do BGP O BGP é um protocolo de roteamento AS-AS e não um protocolo de roteamento roteadorroteador. No BGP o próximo salto (next-hop) não significa o próximo roteador e sim o próximo endereço IP para se alcançar um AS. Algumas peculiaridades do BGP Roteador A anuncia a rede 172.16.0.0 para o roteador B (EBGP) com o next hop 10.10.10.3; O roteador B anuncia a rede 172.16.0.0 para o roteador C também com um next hop 10.10.10.3; Com isto o roteador C aprende que o next hop para alcançar 172.16.0.0 é 10.10.10.3, e não 172.20.10.1, como se poderia esperar. Algumas peculiaridades do BGP É importante que o roteador C saiba como alcançar a rede 10.10.10.0 seja por um IGP ou Rota Estática. Caso contrário o roteador C descartará os pacotes destinados à rede 172.16.0.0. O roteador B deve anunciar a rede 10.10.10.0/24 Comando BGP: neighbor next-hop-self O comando neighbor next-hop-self faz o BGP usar o endereço IP da interface por onde os pacotes saem (ou o IP da loopback) do próprio roteador para o update como o next-hop para cada rede onde o pacote passar. Comando BGP: neighbor next-hop-self Propagando redes através do BGP Diferentemente dos IGPs o comando network não inicia (start) o BGP em interfaces específicas. Em contrapartida, o comando network no BGP, indica quais redes pertencem a um determinado roteador. Peer Group É um agrupamento de neighbors com as mesmas características. Simplifica a configuração e torna o envio de updates BGP mais eficiente. Peer Group Reset da tabela de roteamento Caso sejam realizadas mudanças na rede ou implementados novos filtros se faz necessária atualizar a tabela de rotas BGP. Existem dois tipos de reset: Hard Reset e Soft Reset. Hard Reset Reseta todas as conexões BGP com este roteador. Toda a tabela BGP é descartada e refeita. Reseta somente a conexão BGP com o neighbor especificado. Soft Reset Deste modo as rotas aprendidas e disponíveis não são perdidas; O roteador reenvia todas as informações BGP para os vizinhos sem que haja perda de sessão. Estudo de Caso Topologia de testes Roteador Cisco 3745 Localidade: Recife Roteador Cisco 3745 Localidade: São Paulo REDE MPLS CISCO3745-IO-2FE W0 ACT W1 W2 ACT 100 Mbps 100 Mbps LINK LINK CONSOLE SYS POWER AUX FASTETHERNET 0/1 CF FASTETHERNET 0/0 AIM1 NPA ETM AIM0 CISCO3745-IO-2FE W0 ACT W1 W2 ACT 100 Mbps 100 Mbps LINK LINK CONSOLE SYS POWER AUX FASTETHERNET 0/0 FASTETHERNET 0/1 CF ETM AIM0 AIM1 NPA Switch Cisco 3560G Switch Cisco 3560G Catalyst 3560 1 Catalyst 3560 1 1X 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 16 15X 17X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 32 34 35 36 37 31X 33X 38 39 40 41 42 43 44 45 46 47 SERIES PoE-48 2 3 4 5 6 7 8 9 10 11 12 13 1X 14 15 17 16 15X 17X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 SERIES PoE-48 48 31X 33X 47X 32X 34X 48X SYST RPS 1 3 2 4 48 47X SYST RPS 1 3 2 4 STAT DUPLX SPEED POE 2X STAT DUPLX SPEED POE 16X 18X MODE 2X 16X 18X 32X 34X 48X MODE TELEFONE IP Analisador de Pacotes TELEFONE IP Configuração do BGP Roteador Cisco 3745 Localidade: Recife Roteador Cisco 3745 Localidade: São Paulo CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0 CONFIGURAÇÃO PARA SÃO PAULO interface GigabitEthernet0/0 bandwidth 2048 ip address 200.178.73.10 255.255.255.252 duplex full speed 100 media-type rj45 ! interface GigabitEthernet0/2 ip address 10.11.20.130 255.255.255.192 duplex full speed 1000 ! router bgp 65011 no synchronization network 10.11.20.0 mask 255.255.255.0 neighbor 200.178.73.9 remote-as 4230 neighbor 200.178.73.9 description BGP_EBT_MPLS neighbor 200.178.73.9 prefix-list mpls-ebt in ! ip prefix-list mpls-ebt seq 10 permit 10.81.12.0/24 REDE MPLS CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0 CONFIGURAÇÃO PARA RECIFE interface GigabitEthernet0/0 Bandwidth 2048 ip address 200.249.11.78 255.255.255.252 duplex full speed 100 media-type rj45 ! interface GigabitEthernet0/2 ip address 10.81.12.66 255.255.255.192 duplex full speed 1000 ! router bgp 65081 no synchronization network 10.81.12.0 mask 255.255.255.0 neighbor 200.249.11.77 remote-as 4230 neighbor 200.249.11.77 description BGP_EBT_MPLS neighbor 200.249.11.77 prefix-list mpls-ebt in ! ip prefix-list mpls-ebt seq 10 permit 10.11.20.0/24 Configuração do BGP Roteador Cisco 3745 Localidade: Recife Roteador Cisco 3745 Localidade: São Paulo CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0 REDE MPLS VERIFICAÇÃO DO FUNCIONAMENTO DO BGP show ip bgp regexp 65011 BGP table version is 30, local router ID is 10.81.12.66 Network Next Hop Weight Path * 10.11.20.0/24 200.249.11.77 200 4230 65011 i show ip bgp summary BGP router identifier 10.81.12.66, local AS number 65081 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down 200.249.11.77 4 4230 289077 285533 30 0 0 7w6d show ip bgp neighbors BGP neighbor is 200.249.11.77, remote AS 4230, external link Description: BGP_EBT_MPLS BGP version 4, remote router ID 200.249.11.77 BGP state = Established, up for 7w6d CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0 Mapeamento da Rede MPLS (Recife – São Paulo) Salto Endereço IP do roteador 1 200.249.11.77 2 200.244.167.133 3 200.244.40.94 4 200.178.73.9 5 200.178.73.10 200.244.167.133 Roteador São Paulo (200.178.73.10) Roteador Recife (200.249.11.78) CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 CISCO3745-IO-2FE W0 ACT W2 W1 ACT 100 Mbps 100 Mbps LINK FASTETHERNET 0/0 LINK ETM NPA AIM1 AIM0 POWER Roteador de borda MPLS (200.249.11.77) 200.244.40.94 Roteador de Borda MPLS 200.178.73.9 SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0 Mapeamento da Rede MPLS (São Paulo – Recife) Roteador São Paulo (200.178.73.10) Salto Endereço IP do roteador 1 200.178.73.9 2 ebt-c1-core03.spo.embratel.net.br (200.230.242.18) 3 ebt-p7-3-dist04.rce.embratel.net.br (200.244.40.85) 4 200.249.11.77 5 200.249.11.78 200.230.242.18 Roteador Recife (200.249.11.78) CISCO3745-IO-2FE W2 W1 ACT 100 Mbps LINK POWER SYS CONSOLE AUX CF FASTETHERNET 0/1 CISCO3745-IO-2FE W0 ACT W2 W1 ACT 100 Mbps 100 Mbps LINK FASTETHERNET 0/0 LINK ETM NPA AIM1 AIM0 POWER Roteador de Borda MPLS 200.178.73.9 200.244.40.85 Roteador de borda MPLS (200.249.11.77) SYS CONSOLE AUX CF FASTETHERNET 0/1 W0 ACT 100 Mbps LINK FASTETHERNET 0/0 ETM NPA AIM1 AIM0