Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2
Roteamento Dinâmico Os protocolos de roteamento utilizados em redes pertencem a duas categorias: IGP (Interior Gateway Protocol) e EGP (Exterior Gateway Protocol). Protocolos IGP (ou IRP) são usados para troca de informações entre roteadores pertencentes a uma mesmo Sistema Autônomo (coleção de redes sob um mesmo domínio administrativo). Protocolos EGP (ou ERP) são utilizados para comunicação entre roteadores pertencentes a Sistemas Autônomos diferentes.
Roteamento Dinâmico IRPs: RIP, OSPF, IGRP ERP: BGP
Estrutura da Internet Idéia original Backbone service provider Consumer ISP Large corporation Consumer ISP Small corporation Consumer ISP Consumer ISP Small corporation Small corporation Small corporation
Estrutura da Internet A internet hoje Large corporation Peering point Consumer ISP Backbone service provider Consumer ISP Peering point Small corporation Large corporation Consumer ISP
Propagação de Rotas na Internet Sistema Autônomo AS (Autonomous System) Corresponde à um dominio administrativo exemplos: Universidades, empresas, provedores de serviço internet Cada AS possui um número de 16 bits Dois níveis hierarquicos de propagação de rotas interior gateway protocol (cada AS seleciona o seu) exterior gateway protocol (padrão definido para a Internet) Propagação de rotas em vários níveis Hosts conhecem apenas o roteador local (default gateway) Roteadores locais conhecem os roteadores do site Roteadores do site conhecem o roteador central (core router) Core routers conhecem tudo
BGP - Border Gateway Protocol BGP - Border Gateway Protocol BGP1: RFC 1105 BGP2: RFC 1163 BGP3: RFC 1267 BGP4: RFC 1771 versão atual, com suporte a CIDR Algoritmo Path Vector
Características do BGP Comunicação entre sistemas autônomos Coordenação entre múltiplos roteadores BGP Propagação de informações de alcançabilidade Utilização do paradigma de next-hop Suporte a políticas de alto nível Utilização de transporte confiável Utilização de informações sobre caminhos (path) Atualizações incrementais Suporte à CIDR Agregação de rotas Autenticação
Path Vector Similar ao protocolo Distance Vector Cada Border Gateway envia em broadcast aos seus vizinhos (peers) o caminho inteiro (seqüência de ASs) até o destino
Path Vector 200.17.1.0/24 via SA3 200.17.1.0/24 Y Z 200.17.1.0/24 via SA3 X W SA3 EGP C B D E EGP F I G 200.17.1.0/24 via SA3, SA1 J SA2 200.17.1.0/24 via SA3, SA2 SA1
Atributos BGP Weight (específico da CISCO) Atributo não divulgado pelos roteadores Escolhe-se o maior valor
Atributos BGP Local Preference Usado para escolher a rota de saída de um AS Divulgado pelos roteadores dentro do AS Escolhe-se o maior valor
Atributos BGP Multi-Exit Discriminator (MED) É utilizado como uma sugestão para o AS Relacionado a rota preferida no AS Atributo externo, divulgado por outro AS Escolhe-se o menor valor
Atributos BGP Origem IGP EGP Incomplete AS-PATH Lista de sistemas autônomos Next Hop Endereço IP do próximo roteador
Atributos BGP BGP table version is 1660291, local router ID is 200.10.20.30 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *>i12.0.48.0/20 198.32.252.254 100 0 11537 10578 1742 i *>i12.6.208.0/20 198.32.252.254 100 0 11537 10578 1742 i *>i12.6.252.0/24 198.32.252.254 100 0 11537 10578 14325? *>i12.16.126.192/26 198.32.252.254 100 0 11537 10578 14325? *>i12.144.59.0/24 198.32.252.254 100 0 11537 10466 13778 i
Algoritmo de Escolha de Rota O processo de decisão do BGP baseia-se nos valores dos atributos de cada anúncio Em sistemas autônomos multihomed - conexão com mais de um AS (mais de um caminho de saída para a Internet) Ocorrência de múltiplas rotas para a mesma rede O algoritmo de decisão do BGP toma a decisão da melhor rota a ser utilizada 9 critérios de decisão
Critérios de Decisão 1) Se o next hop não for alcançável, a rota é ignorada 2) Será preferida a rota que tiver maior valor de Weight, que se trata de um parâmetro proprietário da Cisco, utilizado localmente em um roteador. Caso o equipamento não seja Cisco, este passo do algoritmo não será efetuado 3) Caso o parâmetro anterior seja o mesmo, será preferida a rota que tiver o maior valor de Local Preference (LOCAL_PREF) 4) Caso o valor de Local Preference seja o mesmo, será preferida a rota com menor AS_PATH 5) Caso o AS_PATH tenha o mesmo tamanho, será preferida a rota com menor tipo ORIGIN, ou seja, serão priorizados os anúncios tipo IGP (i), seguido pelos EGP (e) e INCOMPLETE (?)
Critérios de Decisão 6) Caso o tipo ORIGIN seja o mesmo, será preferida a rota o atributo MED mais baixo caso as rotas tenham sido aprendidas a partir do mesmo AS. 7) Caso as rotas tenham o mesmo valor de MED, será preferida a rota por ebgp a ibgp. 8) Se o valor anterior for o mesmo, será preferido o anúncio vindo do roteador conectado via IGP mais próximo deste. 9) Se o caminho interno for o mesmo, o atributo BGP ROUTER_ID será o responsável pela decisão (tiebreaker). Neste caso, será preferido o caminho cujo roteador possuir o menor ROUTER_ID nas implementações Cisco é definido como IP da interface loopback se esta estiver configurada. No caso do roteador não possuir interface loopback configurada, será escolhido o IP mais alto do roteador vale lembrar que para cada fabricante o ROUTER_ID pode ser baseado em outras informações.
Peers BGP Inicialmente um roteador BGP deve reconhecer e autenticar o seu peer Os dois peers estabelecem uma conexão TCP Cada peer envia uma informação de alcançabilidade positiva ou negativa Divulgação das rotas ativas e inativas de cada um Troca de mensagens continua para confirmação das rotas e também da conexão entre os roteadores
Peers BGP - externos A C AS 100 AS 101 220.220.8.0/24 220.220.16.0/24 B D E ebgp TCP/IP Peer Connection AS 102 220.220.32.0/24
Peers BGP - Internos A C AS 100 AS 101 220.220.8.0/24 220.220.16.0/24 B D ibgp TCP/IP AS 102 Peer Connection E 220.220.32.0/24 Peers ibgp não precisam estar diretamente conectados
Peers BGP Troca de Mensagens A C AS 100 AS 101 220.220.8.0/24 220.220.16.0/24 B D BGP Update Messages E AS 102 220.220.32.0/24
Cabeçalho BGP Marker: (16 bytes) Em tipos de mensagem OPEN, todos os bits deste campo são preenchidos com 1 s. Se a mensagem não tiver nenhum tipo de autenticação, também deverá ser preenchida com 1 s. Se possuir autenticação e assinatura, este campo carregará informações de criptografia. Length: (2 bytes) Tamanho total da mensagem, incluindo o header. Type: (1 byte) Representa o tipo de mensagem, que pode ser OPEN, UPDATE, NOTIFICATION ou KEEPALIVE. 0 16 24 31 Marker Length Type
Mensagens BGP Mensagens Open Update Keepalive Notification
Mensagem OPEN 0 8 16 31 Version Autonomous System Num Hold Time BGP Identifier Parm Len Optional Parameters (variable)
Mensagem OPEN Version: (1 byte) Versão da mensagem BGP. É negociada a maior versão existente nos peers. Autonomous System Num: (2 bytes) Indica o número do AS que enviou a mensagem. Hold Timer: (2 bytes) Tempo máximo determinado para o envio das mensagens de KEEPALIVE ou UPDATE. Se dentro deste tempo nenhuma mensagem for recebida, a sessão BGP será considerada desativada. BGP Identifier: (4 bytes) Carrega a informação de BGP id, também conhecido como Router-id. Parameter Length: (1 byte) Indica o tamanho do campo Optional Parameters. Optional Parameters: (Variável) Estes parâmetros são representados por tuplas formadas por <Parameter Type, Parameter Length, Parameter Value>. Estes dados possuem tamanho de um byte, com exceção do último campo que pode ter tamanho variável. Uma das utilizações deste campo seria nos parâmetros de autenticação nas mensagens tipo OPEN.
Mensagem UPDATE 0 8 16 31 Withdraw Len Withdrawn Destinations (variable) Path Len Path Attributes (variable) Destination networks (variable)
Mensagem UPDATE Unreachable routes (rotas inalcançáveis) rotas que devem ser removidas da tabela de roteamento termo comum para este tipo de evento é withdrawn Network Layer Reachability Information são definidas as rotas que devem ser incluídas na tabela de roteamento. A representação das rotas usando CIDR
Mensagem UPDATE Unfeasible routes length: representa o tamanho em bytes total do campo Withdrawn destinations Withdraw destinations: redes que devem ser removidas da tabela de rotas Representa as redes, através de instâncias de Length e Prefix Exemplo: <16,143.54.0.0> CIDR: 143.54.0.0/16
Mensagem KEEPALIVE Responsáveis por manter uma sessão BGP ativa Conexões ativas entre dois roteadores BGP nenhuma mensagem tipo UPDATE para enviar ao outro envia uma mensagem de KEEPALIVE para manter a conexão antes que o Hold Time seja atingido e a conexão seja considerada inativa geralmente este tipo de mensagem é enviada ao atingir um terço do tempo de Hold Time o tamanho desta mensagem é 19 bytes, sendo formado apenas pelo header bgp básico, sem dados.
Mensagem NOTIFICATION Este tipo de mensagem é utilizado na detecção de erros. Em geral este tipo de mensagem antecede o encerramento de uma sessão BGP 0 8 16 31 Error Code E. SubCode Data Data Error Code: (1 byte) Identifica o tipo de notificação. Error Subcode: (1 byte) Identifica de forma mais específica a natureza do erro. Data: (Variável) Apresenta informações relevantes sobre o erro detectado. Alguns exemplos: header incorreto, número de AS inválido,...
Mensagem NOTIFICATION Error Code Erros Subcode 1 Message header error 1 Connection Not Synchronized 2 Bad Message Length 3 Bad Message Type 2 OPEN message error 1 Unsupported Version Number 2 Bad Peer AS 3 Bad BGP Identifier 4 Unsupported Version Number 5 Authentication Failure 6 Unacceptable Hold Timer 7 Unsupported Capability 3 UPDATE message error 1 Malformed Attribute List 2 Unrecognized Well-Know Attribute 3 Missing Well-Know Attribute 4 Attribute Flags Error 5 Attribute Length Error 6 Invalid Origin Attribute 7 AS Routing Loop 8 Invalid NEXT_HOP Attribute 9 Optional Attribute Error 10 Invalid Network Field 11 Malformed AS_PATH 4 Hold Timer expired Não aplicável 5 Finite State Machine error Não aplicável 6 Cease Não aplicável
Configuração BGP em Roteadores Cisco AS 100 ebgp TCP Connection AS 101 A 222.222.10.0/30 B.2.1 C D.2 220.220.8.0/24.1.2 220.220.16.0/24.1 interface Serial 0 ip address 222.222.10.2 255.255.255.252 router bgp 100 network 220.220.8.0 mask 255.255.255.0 neighbor 222.222.10.1 remote-as 101 interface Serial 0 ip address 222.222.10.1 255.255.255.252 router bgp 101 network 220.220.16.0 mask 255.255.255.0 neighbor 222.222.10.2 remote-as 100
Configuração BGP em Roteadores Cisco A AS 100 AS 101 B 222.222.10.0/30.2 220.220.8.0/24.1.2.1.2 220.220.16.0/24.1 C ibgp TCP Connection D interface Serial 1 ip address 220.220.16.2 255.255.255.252 router bgp 101 network 220.220.16.0 mask 255.255.255.0 neighbor 220.220.16.1 remote-as 101 interface Serial 1 ip address 222.220.16.1 255.255.255.252 router bgp 101 network 220.220.16.0 mask 255.255.255.0 neighbor 220.220.16.2 remote-as 101
Configuração BGP em Roteadores Cisco 215.10.7.1 AS 100 215.10.7.2 A B 215.10.7.3 ibgp TCP/IP Peer Connection C
Configuração 215.10.7.1 AS 100 215.10.7.2 A B 215.10.7.3 interface ibgp loopback TCP/IP0 ip address Peer Connection 215.10.7.1 255.255.255.255 router bgp 100 network 220.220.1.0 neighbor 215.10.7.2 remote-as 100 neighbor 215.10.7.2 update-source loopback0 neighbor 215.10.7.3 remote-as 100 neighbor 215.10.7.3 update-source loopback0 C 36
Configuração 215.10.7.1 AS 100 215.10.7.2 A B 215.10.7.3 ibgp TCP/IP Peer Connection interface loopback 0 ip address 215.10.7.2 255.255.255.255 C router bgp 100 network 220.220.5.0 neighbor 215.10.7.1 remote-as 100 neighbor 215.10.7.1 update-source loopback0 neighbor 215.10.7.3 remote-as 100 neighbor 215.10.7.3 update-source loopback0 37
Configuração 215.10.7.1 AS 100 215.10.7.2 A B 215.10.7.3 ibgp TCP/IP Peer Connection interface loopback 0 ip address 215.10.7.3 255.255.255.255 router bgp 100 network 220.220.10.0 neighbor 215.10.7.1 remote-as 100 neighbor 215.10.7.1 update-source loopback0 neighbor 215.10.7.2 remote-as 100 neighbor 215.10.7.2 update-source loopback0 C 38
Redistribuindo rotas de outros protocolos de roteamento Tabela completa de roteamento BGP Router(config)#router bgp 100 Router(config-router)#redistribute? connected Rotas conectadas eigrp EIGRP ospf OSPF static Estáticas
Verificando as Configurações Tabela completa de roteamento BGP #show ip bgp Informações sobre os vizinhos #show ip bgp neighbors 10.10.10.1 Habilitar debug sobre os updates #debug ip bgp updates
Finalmente Prática... Obs.: Baixar o arquivo A10-BgpSemConf.pkt do site Obs2.: ibgp não é implementado no Packet Tracer
Finalmente Prática... Definir o default gateway (saída da AS) Definir o default gateway (saída da AS) Definir o default gateway (saída da AS) Definindo o default gateway em roteadores cisco Router(config)# ip route 0.0.0.0 0.0.0.0 <endereço do gateway>