Sistemas Autônomos e Roteamento na Internet Edgard Jamhour Topologia de Rede de um ISP (Exemplo ADSL) Broadband Remote Access Server (responsável por autenticar e policiar o tráfego do usuário) linha de baixa capacidade PPPoE CPE CPE DSLAM B-RAS CPE linha de alta capacidade usuário acesso borda núcleo Como uma operadora localiza um CPE de outra operadora? CPE CPE CPE CPE CPE CPE CPE CPE CPE CPE CPE CPE operadora 1 operadora 2 Sistema Autônomo (Autonomous System - AS) rede rede rede rede Sistema Autônomo 2 Sistema Autônomo 1 rede Sistema Autônomo 3 rede O que é um AS ? 200.17.1.0/24 Conexão com outro AS B I O AS pode divulgar rotas agrupadas: 200.17.0.0/16 200.17.130.0/24 200.17.2.0/24 I I I 200.17.3.0/24 Autoridades de Registro de Endereço IANA ARIN RIPE NCC AfriNIC LACNIC APNIC América do Norte Europa, Oriente e Asia Central Africa América Latina e Caribe Ásia e Pacífico Exemplos de AS (ver http://bgp.he.net/) AS PUCPR Número do AS: 13522 Prefixos: 3 Endereços IP:8192 Nome: Pontificia AS GOOGLE Número do AS: 15169 Prefixos: 109 Endereços: 122624 Nome: GOOGLE Descrição :Universidade Catolica do Parana Descrição: Google Inc. País: BR País: US Autoridade de Registro: LACNIC Autoridade de Registro: ARIN Prefixo BGP do endereço www.pucpr.br: 200.192.112.0/21 Prefixo BGP do endereço google.com Prefix:209.85.128.0/17 Comunicação entre Sistemas Autônomos Toda operadora é um AS, mas nem todo AS é uma operadora Alguns backbones, como o da RNP, atuam como interligação entre ASs POP = Ponto de Presença POP-PR Curitiba Tipos de AS sentido de divulgação das rotas AS5 stub [peer] AS1 non-transit [transit] [transit] AS2 transit [transit] [transit] [transit] AS4 transit AS3 transit PTT (Ponto de Troca de Tráfego) IXP (Internet Exchange Point) PTT Metro São Paulo http://ptt.br Tipos de Roteadores Sistema Autônomo 2 Sistema Autônomo 1 CPE rede rede rede A Internet é apenas a rota default Conhece apenas rotas no Interior do AS Conhece rotas dos outros AS rede Sistema Autônomo 3 rede Protocolos de Roteamento AS2 AS1 CPE rede rede rede Não precisa de protocolo de roteamento Protocolo de roteamento do tipo IGP (Interior Gateway Protocol) Protocolo de roteamento do tipo EGP (Exterior Gateway Protocol) rede rede AS3 Conceitos Básicos de Roteamento Process-Switching • Copia o pacote L3 na CPU • A CPU faz Lookup no plano de controle (RIP) • Executa resolução de endereços MAC (ARP, NDP) Fast-Switching • A decisão de encaminhamento é tomada com base em tabelas auxiliares previamente armazenadas (FIB) • O armazenamento é feito no processamento do primeiro pacote do fluxo Conceitos Básicos de Roteamento estado de enlace 3 2 2 A 1 E B C 5 F 3 D [1] 2 E B 1 A [2] F D C [2] [3] vetor de distâncias Vetores de Distância (Flexibilidade para definição de políticas) rede A por B2 rede A por A.1 acesso a rede A com custo 2 acesso a rede A com custo 1 1 rede A rede B B 2 1 X 2 A C 2 1 D 3 1 acesso a rede A com custo 1 rede A por A.2 rede A por C3 acesso a rede A com custo 2 Estado de Enlace hello hello Link State Database Link State Database B A LSA LSA B novo LSA novo LSA C X A novo LSA D novo LSA novo LSA E Dijkstra Shortest Path First (SPF) • • Princípio: – Encontrar o menor caminho entre um dos nós da rede e todos os demais Estratégia: – Escolher sempre o melhor nó adjacente – Atribuir custos acumulativos a cada nó da rede 10 6 4 B 5 E 2 0 A 1 3 F 1 C 1 D 5 5 4 9 Divisão em Áreas (Espinha de Peixe) área C Informações de estado são propagadas apenas no interior da área. ABR área A área D ABR ABR área Backbone área B Entre áreas são propagadas rotas Vetores de Caminho 200.17.1.0/24 via SA3 200.17.1.0/24 via SA3 Y Z 200.17.1.0/24 X W EGP SA3 B 200.17.1.0/24 via SA3, SA1 E F C G D I EGP SA2 SA1 200.17.1.0/24 via SA3, SA2 J Protocolos para Redes IP • Vetor de Distâncias – RIP (Routing Information Protocol) – EIGRP (Enhanced Interior Gateway Routing Protocol) • Estado de Enlace – OSPF (Open Shortest Path First) – IS-IS (Intermediate Sytem-to-Intermediate System) • Vetor de caminho – BGP (Border Gateway Protocol) RIP vs EIGRP • RIP • Encapsulamento UDP • Não mantém adjacências (estado dos vizinhos) • Atualização (refresh) periódico de rotas (30 s default) • Custo por saltos • Detecta falhas por timeout de rotas • Número máximo de hop é 15 (métrica 16 é usado para remover rotas – poisoning) • • • • • EIGRP Encapsulamento no IP Mantém adjacências Não faz refresh periódico Custo através de métrica composta (banda e delay) • Detecta falhas através de mensagens de controle de adjacência (Hello) • Número máximo de hops é 255 (default 100) RIP vs EIGRP • RIP • Apenas a melhor rota é armazenada na RIB • Não há comutação imediata para caminhos alternativos • Convergência muito lenta (rotas precisam expirar para serem eliminadas) • EIGRP • A melhor rota (sucessor) e uma rota alternativa (feasible sucessor) são armazenadas. • Convergência falha Mensagens RIP vs EIGRP • • • • RIP (multicast 224.0.0.9) Request Response • • • • • • • EIGPR (multicast 224.0.0.10) Hello/Acks (multicast/unicast) Updates (unicast) Queries (multicast) Replies (unicast) Requests: unicast or multicast • Atualização de rota até N: • Caso o link AB falhe, como B é atualizado? • Caso o link AC falhe, como C é atualizado? SPLIT Horizon e Poison Reverse • Método para prevenir loops em protocolos de roteamento do tipo vetor de distâncias. • Roteadores são proibidos de anunciar rotas pela mesma interface que aprenderam. • Sem split-horizon, uma falha no link BC iria criar um loop entre A e B até o destino C. • “Poison Reverse”, quando utilizado, é uma exceção que permite anunciar rotas aprendidas pela interface com custo infinito (16 em RIP). OSPF: Open Shortest Path First Hello [multicast] Hello [multicast] Database Description [unicast] Database Description [unicast] A Link State Request [unicast] Link State Request [unicast] Link State Update [multicast] Link State Update [multicast] Link State Acknowledge [unicast] Link State Acknowledge [unicast] B Terminologia OSPF BACKBONE OSPF Area 0.0.0.0 Area 0 N1 Area 3 R0 Roteador de Fronteira de Área (ABR) N2 R1 R3 Fronteira de AS R2 R4 R8 R6 R5 Area 1 Roteador de Fronteira de AS (ASBR) R7 Rx Area 2 (Stub) N1 Rede RIP Roteador Designado (Link State Update) vários LSA Roteador Designado de Backup Roteador Designado (Link State Update) vários LSA [224.0.0.5] meio de múltiplo acesso (Link State Update) vários LSA [224.0.0.6] Cabeçalho OSPF Byte 2 Byte 1 Version (2) Byte 3 Tipo de Mensagem Byte 4 Tamanho da Mensagem Identificador de Roteador Identificador de Área Checksum da mensagem Tipo de Autenticação Dados de autenticação ... Reservado ID de Chave Número de sequência Cabeçalho OSPF Tamanho da Autentic. Mensagem Hello Byte 2 Byte 1 Byte 3 Byte 4 Máscara de rede Opções Intervalo de Hello Intervalo de morte do roteador Roteador designado Roteador designado de backup Primeiro Vizinho Outros Vizinhos Mensagem Hello Prioridade Roteador Mensagem DataBase Description Byte 2 Byte 1 Byte 3 MTU da Interface Byte 4 Opções Reservado I M S Número de sequência da descrição do banco de dados Idade do Estado de Enlace Opções Tipo do Est. Enlace Roteador Anunciante Número de sequência do Estado de Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace .... Database Description LSA Header Identificador de Estado de Enlace Mensagens Link State Update Byte 1 Byte 2 Byte 3 Byte 4 Contador de Anúncios (número de LSAs) Opções Idade do Estado de Enlace (LS) Tipo de LS Identificador de estado do enlace Roteador Anunciado Número de Sequência de Estado do Enlace Checksum do Estado de Enlace (LS) Flags Reservado Tamanho Número de Enlaces Identificador de Enlace (IP ou Subrede) Dado do Enlace (Máscara de Subrede) Tipo de Enlace Contador de TOS Métrica Padrão TOS Reservado Métrica do TOS Link State Acknowledge (LSU = N X LSA) Mensagens Link State Acknowledge Byte 2 Byte 1 Byte 3 Idade do Estado de Enlace Byte 4 Opções Tipo do Est. Enlace Identificador de Estado de Enlace Número de sequência do Estado de Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace .... Link State Acknowledge LSA Header Roteador Anunciante Tipos de Mensagem OSPF • Type 1 – Router LSA: – Gerado por cada roteador no interior de uma área. – O ID de estado de enlace (link-state ID) é o ID do roteador que gerou a informação. • Type 2 – Network LSA: – Gerado pelo DR. – O link-state ID é o ID do DR. • Type 3 – Summary LSA: – Criado pelo ABR e inundado para outras áreas. Tipos de Mensagem OSPF • Type 4 – Summary ASBR LSA: – Criado pelo ABR e usado para repassar informações sobre o ASBR para os demais roteadores OSPF. – O link-state ID é o ID do ASBR. • Type 5 – External LSA: – Prefixos externos gerados pelo ASBR. • Type 6 – Multicast LSA: – Não suportado e não utilizado. • Type 7 – External LSA: – Também conhecido como not-so-stubby-area (NSSA) LSA. – Utilizados para permitir que áreas stubby (ou not-so-stubby), divulgue prefixos externos. LSA Tipo 1: Router LSA • Lista dos enlaces diretamente conectados ao Roteador no interior da área. • Esse tipo de anúncio não pode sair da área • Tipos de enlaces: – – – – Ponto-a-ponto (ID do roteador vizinho) Trânsito (IP do DR) Conexão a uma rede stub (IP da rede) Enlace virtual (ID do roteador vizinho) LSA Tipo 2: Network LSA • Criado em redes do tipo multi-acesso e são gerados pelo DR. • Lista todos os roteadores ligados a rede multi-acesso. • Não pode se propagar para fora da área. LSA Tipo 3: Summary LSA • Utilizado para propagar informações de roteamento entre áreas diferentes. • A sumarização de rotas é opcional. Por default, todas as rotas conhecidas são divulgadas. LSA Tipo 4: Summary ASBR LSA • Neste cenário o roteador R1 é um ASBR (Autonomous System Border Router), isto é, um roteador que redistribui informações de outros protocolos. • Quando R2 aprende que R1 é um ASBR (através de um bit do protocolo), ele divulga a informação de acesso ao ASBR todos os demais roteadores OSPF. LSA Tipo 5: External LSA • Utilizado para divulgar rotas externas para a rede OSPF. • Esses anúncios são usados em conjunto com LSAs do tipo 4, que indicam como localizar o roteador R1. LSA Tipo 7: External LSA • NSSA (not-so-stubby-area) não permitem anúncios de prefixos externos (tipo 5). • Os anúncios de tipo 7 carregam exatamente a mesma informação que os tipo 5, e são traduzidos por R2 assim que deixam a NSSA. Áreas Sub, Totally Stubby e Not-so-Stubby Roteadores na área Stub recebem uma rota default (tipo 3) no lugar de rotas externas (tipo 5). Mas eles continuam recebendo informações de outras áreas (tipo 3). Roteadores na área Not-so-stubby (NSSA) podem divulgar rotas externas o restante da rede OSPF, disfarçando anúncios do tipo 5 em anúncios do tipo 7. Roteadores na área Totally Stub recebem apenas a rota default e informações de sua própria área. Exemplo OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# 1.1.1.1 1.1.1.1 30 0x80000003 2.2.2.2 2.2.2.2 31 0x80000002 Net Link States (Area 0) Link ID ADV Router 192.168.12.2 2.2.2.2 Checksum Link count 0x004CD9 2 0x0048E9 1 Age 31 Seq# 0x80000001 Checksum 0x008F1F Summary Net Link States (Area 0) Link ID ADV Router Age 3.3.3.3 2.2.2.2 17 192.168.23.0 2.2.2.2 66 Seq# 0x80000001 0x80000001 Checksum 0x00D650 0x00A70C BGP: Border Gateway Protocol • Protocolo de comunicação entre sistemas autônomos • Funcionada sobre TCP (porta 179) • Não suporta descoberta de vizinhos – Vizinhos precisam ser declarados explicitamente • Baseado em Vetor de Caminho – Realiza atualizações incrementais (sem refresh) – O maior volume de troca de rotas acontece na criação da sessão I-BGP e E-BGP Sistema Autônomo 2 Sistema Autônomo 1 rede CPE rede rede IGP I-BGP E-BGP E-BGP I-BGP: entre roteadores de borda no mesmo AS E-BGP I-BGP E-BGP: entre rotadores de borda de AS diferentes (roteadores precisam ser vizinhos) Sistema Autônomo 3 rede rede BGP: Border Gateway Protocol Open [unicast] Open ou Notification [multicast] A Update [unicast] B Update [unicast] BGP KeepAlive [unicast] KeepAlive [unicast] Speaker Route Refresh [unicast] Route Refresh [unicast] BGP Speaker Cabeçalho BGP • Todas as mensagens utilizam um cabeçalho comum • Utilizado para autenticação Byte 1 Byte 2 Byte 3 Marcador Marcador (cont.) Marcador (cont.) Marcador (cont.) Tamanho da Mensagem Tipo da Mensagem Byte 4 Mensagem Open • Utilizada para estabelecer a sessão entre dois roteadores BPG peers Byte 2 Byte 1 Byte 3 Byte 4 Versão (4) ID AS Tempo de Suspensão Identificador BGP Tamanho Opcoes Parâmetros Opcionais Parâmetros Opcionais Mensagem BGP: Update • Múltiplos destinos (prefixos) que são acessíveis pelo mesmo caminho, e possuem os mesmos atributos, podem ser anunciadas em uma única mensagem update. Byte 1 Byte 2 Byte 3 Byte 4 Tamanho das Rotas Retiradas Corresponde a uma lista de prefixos que está deixando de ser ofertado pelo roteador. Exemplo: 200.1.2.0/24, 200.1.3.0/24, 60.1.0.0/16, etc. Tamanho do Atributos do Caminho Lista de atributos da rota que está sendo anunciada. Cada atributo segue o formato Tipo-Valor-Comprimento rotas retiradas atributos de caminho (rota anunciada) Tamanho do NLRI Corresponde a uma lista de prefixos que pode ser acessado através da rota anunciada. Exemplo: 200.1.2.0/24, 200.1.3.0/24, 60.1.0.0/16, etc. informações de acesso a camada de rede Mensagem Keepalive • Sistemas BGP trocam mensagens keepalive para determinar se um link ou peer falhou ou não está mais disponível • Mensagens são trocadas frequentemente para o tempo de “hold” não expirar intervalos de 30s entre keepalives e hold timer de 90s são default (JUNOS) • Hold timer é negociado entre peers • Contem apenas o BGP header (19 bytes) Mensagem Notification • Enviadas quando uma condição de erro é detectada – As sessões BGP e a conexão TCP são encerradas • Tipos de mensagem de erro: 1. 2. 3. 4. 5. 6. Message header error Open message error Update message error Hold timer expired Finite state machine error Cease Atributos • AS-path • BGP nexthop – Primeiro salto até o prefixo de destino • Local-preference – Preferencia em rotas de saída • MED – Preferencia em rotas de entrada • Origin – Origem do prefixo: IGP, EGP ou outro protocolo (incompleto) Atributos de Caminho: AS-Path e Nexthop AS-PATH: {SA1} NEXT-HOP: D NLRI: {2001.2.0/24, 200.1.3.0/24} 200.1.2.0/24 C D update SA1 A AS-PATH: {SA2} NEXT-HOP: H NLRI: {200.2.2.0/24, 200.2.3.0/24} B AS-PATH: {SA1,SA2} NEXT-HOP: H NLRI: {2001.2.0/24, 200.1.3.0/24} 200.1.3.0/24 G H SA2 E update F 200.2.3.0/24 200.2.2.0/24 K L SA3 I J Local Preference • Critério usado para selecionar rotas de saída • Permite que o administrador local controle a preferência das rotas recebidas, se sobrepondo ao custo. • O caminho com maior local preference é escolhido AS2 200.4.1.0/24 Local preference 100 AS4 AS1 AS3 Local preference 101 MED – Multi-Exit Descriminator • Determina melhor caminho para rotas de entrada • É usado para infomar para AS neighbors qual a rota desejada para receber pacotes. • Não é transitivo, isto é, não é propagado para AS que não sejam neighbors MED 500 AS2 AS1 MED 600 200.1.2.0/24 Interior BPG - IBGP • Usado no lugar do IGP em situações onde vários roteadores precisam conhecer muitas rotas. – – – – Nexthop não é modificado AS-Path não é adicionado Roteadores IBGP fazem um full-mesh Rotas iBGP não são propagadas de forma transitiva I-BGP AS2 AS2 AS1 Seleção de Rotas no BGP 1. 2. 3. 4. 5. 6. 7. 8. 9. Menor “route preference” Maior “local preference” AS-path mais curto Menor “Origin” (IGP < EGP < incomplete) Menor MED Externa sobre “confederation” sobre interna Menor métrica do IGP Menor “cluster list” Menor router-id Route Preference (como a rota foi gerada) • • • • • • • • • • • • • • • • Nexthop é alcançável? -1 = Not reachable Preferência menor 0 = directly connected 5 = static routes 7 = RSVP 9 = LDP 10 = OSPF internal 15 = ISIS L1 internal 18 = ISIS L2 internal 100 = RIP 130 = Aggregate or generated 150 = OSPF external 160 = ISIS L1 external 165 = ISIS L2 external 170 = BGP Anúncios de Rotas BGP (Práticas Usuais) • Apenas rotas ativas – Todas as rotas aprendidas via BGP (exceto regra iBGP) • É necessário configuração explícita para: – – – – – Anunciar rotas inativas Anunciar rotas estáticas Anunciar rotas agregadas Anunciar rota default Redistribuir rotas no BGP Política de Roteamento • Permite controlar quais rotas recebidas irão para tabela de roteamento • Permite filtrar ou modificar as rotas anunciadas Vizinhos Vizinhos Tabela de Roteamento Protocolo Política de Importação Tabela de Encaminhamento Protocolo Política de Exportação Exemplos • • • • • • • • • • RTA router bgp 100 neighbor 2.2.2.3 remote-as 300 network 150.10.0.0 route-map SETMETRIC permit 10 match ip-address 1 set metric 2 route-map SETMETRIC permit 20 set metric 5 access-list 1 permit 170.10.0.0 0.0.255.255 RTA redistribui rotas da rede 170. com custo 2 e todas as demais com custo 5. • • • • • • • • • RTC router bgp 300 network 170.10.0.0 neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 route-map STOPUPDATES out route-map STOPUPDATES permit 10 match ip address 1 access-list 1 deny 170.10.0.0 0.0.255.255 access-list 1 permit 0.0.0.0 255.255.255.255 RTA não irá enviar atualizações da rede 170. Exemplos de Políticas mais Comuns • • • • • • Filtro de rotas para prefixos privados Filtros de tamanho de prefíxo Anuncia agregado e suprime específicas Preferência por rotas de clientes sobre qualquer outra Preferência por rotas de peers sobre rotas de trânsito Marcação de rotas com communities Comunidades BGP • Marcação dada a um grupo de prefixos que partilham uma propriedade em comum • Decisões de roteamento podem estar baseadas na community da rota • Facilita e simplifica o controle das informações de rotas • Deveria ser marcada pelo roteador de entrada • Comunities Padronizadas • NO_EXPORT (0xFFFFFF01) – Não anuncia para outros peers eBGP • NO_ADVERTISE (0xFFFFFF02) – Não anuncia para nenhum peer • NO_EXPORT_SUBCONFED (0xFFFFFF03) – Não anuncia para outros ASs, incluindo membros de uma confederation (ver definição mais adiante) Exemplo de Política com Comunidade • • • • • • • • • • RTB# router bgp 200 network 160.10.0.0 neighbor 3.3.3.1 remote-as 300 neighbor 3.3.3.1 send-community neighbor 3.3.3.1 route-map setcommunity out route-map setcommunity match ip address 1 set community no-export access-list 1 permit 0.0.0.0 255.255.255.255 RTB marca o atributo de comunidade de BGP instruindo RTC a não propagar suas rotas para peers externos. Agregação de Rotas • • • • RTB# router bgp 200 neighbor 3.3.3.1 remote-as 300 network 160.10.0.0 RTB gera a rede 160.10. e envia para RTC. Este por sua vez, propaga a super-rede 160 para RTA. • • • • • • RTC# router bgp 300 neighbor 3.3.3.3 remote-as 200 neighbor 2.2.2.2 remote-as 100 network 170.10.0.0 aggregate-address 160.0.0.0 255.0.0.0 Melhorias para o IBGP • Inicialmente, roteadores em IBGP operam em fullmesh – N roteadores implica em N 2 conexões TCP. – Conexões TCP consomem recursos no roteador • Melhorias – Route Reflection • Permite propagação das melhores rotas recebidas – Confederations • Quebra o AS em múltiplos sub-Ass • iBGP é full mesh apenas dentro da confederação • A divisão em sub-AS é vista apenas internamente Conclusão • A Internet está organizada em sistemas autônomos (AS) • A configuração de rotas dos roteadores da Internet é realizada de forma automática, utilizando-se protocolos de roteamento. • Os protocolos de roteamento para rede IP se dividem em duas grandes categorias: IGP (configuração de rotas no interior do AS) e EGP (configuração de rotas entre AS). • Existem vários protocolos IGP para redes IP: RIP, OSPF, IS-IS. Os protocolos baseados em estado de enlace, como o OSPF e o IS-IS são considerado mais adequados para redes grande. • O único protocolo aceito como EGP para Internet é o BGP. Cenário 1 Cenário 2 SA2 SA3 SA3 SA2 F F E E A A B B C C D D SA1 SA1 G