Sistemas Autônomos e Roteamento na Internet Edgard Jamhour
Topologia de Rede de um ISP (Exemplo ADSL) CPE B-RAS linha de baixa capacidade linha de alta capacidade Broadband Remote Access Server (responsável por autenticar e policiar o tráfego do usuário) PPPoE usuário acesso núcleoborda CPE DSLAM
Como uma operadora localiza um CPE de outra operadora? CPE operadora 2 operadora 1 CPE
Sistema Autônomo (Autonomous System - AS) Sistema Autônomo 1 rede Sistema Autônomo 2 rede Sistema Autônomo 3
O que é um AS ? B B I I Conexão com outro AS / / /24 O AS pode divulgar rotas agrupadas: / /24 I I I I I I
Autoridades de Registro de Endereço IANA ARINRIPE NCCAfriNICLACNICAPNIC América do Norte Europa, Oriente e Asia Central AfricaAmérica Latina e Caribe Ásia e Pacífico
Exemplos de AS (ver AS PUCPR Número do AS: Prefixos: 3 Endereços IP:8192 Nome: Pontificia Descrição :Universidade Catolica do Parana País: BR Autoridade de Registro: LACNIC Prefixo BGP do endereço /21 AS GOOGLE Número do AS: Prefixos: 109 Endereços: Nome: GOOGLE Descrição: Google Inc. País: US Autoridade de Registro: ARIN Prefixo BGP do endereço google.com Prefix: /17
Backbone e Sistema Autômo são conceitos diferentes Toda operadora é um AS, mas nem todo AS é uma operadora Alguns backbones, como o da RNP, atuam como interligação entre ASs POP-PR Curitiba POP = Ponto de Presença
Tipos de AS [peer] [transit] AS2 transit AS1 non-transit AS5 stub AS4 transit AS3 transit [transit] sentido de divulgação das rotas
PTT (Ponto de Troca de Tráfego) IXP (Internet Exchange Point) PTT Metro São Paulo
Tipos de Roteadores Sistema Autônomo 1 rede Sistema Autônomo 2 rede Sistema Autônomo 3 CPE Conhece rotas dos outros AS A Internet é apenas a rota default Conhece apenas rotas no Interior do AS
Protocolos de Roteamento AS1 rede AS2 rede AS3 CPE Protocolo de roteamento do tipo EGP (Exterior Gateway Protocol) Protocolo de roteamento do tipo IGP (Interior Gateway Protocol) Não precisa de protocolo de roteamento
Conceitos Básicos de Roteamento AB C D E ir até E por B com custo 2 ir até E por C com custo 3 As duas rotas estão da RIB, mas apenas a melhor está na FIB
Conceitos Básicos de Roteamento A C B E D F A C B E D F estado de enlace vetor de distâncias [1] [2] [3]
Vetores de Distância A B CD rede A acesso a rede A com custo 1 acesso a rede A com custo 2 acesso a rede A com custo 1 acesso a rede A com custo 2 X rede A por A.1 rede A por A.2 rede A por C3 rede A por B2
Estado de Enlace A B Link State Database hello LSA novo LSA AX B C D 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 A C B D F E
Divisão em Áreas área A área C área B ABR resumo ABR: Roteador de Borda de Àrea Roteador Intra-Area resumo das outras áreas (rotas agregadas) estado completo da própria área ABR
Vetores de Caminho /24 B C D E FG I J EGP SA1 Y X W Z EGP /24 via SA3 SA2 SA /24 via SA3, SA /24 via SA3, SA /24 via SA3
Protocolos para Redes IP Vetor de Distâncias –RIP (Routing Information Protocol) Estado de Enlace –OSPF (Open Shortest Path First) Vetor de caminho –BGP (Border Gateway Protocol)
RIP Rede /24 Rede /24 ATIVO Usualmente roteador PASSIVO Usualmente host RIP request RIP response
Formato das Mensagens RIP v2 Command (1: request, 2: response) Version (2) Reserved Address Family (0xffff para Autenticação) IP Address Subnet mask Next Hop IP Address Metric Tipo de Autenticação Byte 1 Byte 2Byte 3Byte 4 Informação de Autenticação X 4 Address Family (2 para IPv4) Tag de Rota Cabeçalho Autenticação Entradas de Rota.... Autenticação
Exemplo: Funcionamento do RIP A /24 3 C B 1 INTERNET / / / / /
Exemplo de Propagação da Rota /24 A /24 3 C B 1 INTERNET / / / / / /24 via (custo 2) /24 via (custo 1) /24 via IP1 (custo 3) IP1 rota local /24 via direta (custo 0)
Exemplo de Propagação da Rota /24 A /24 3 C B 1 INTERNET / / / / / /24 via (custo 1) IP1 rota local /24 via direta (custo 0) rota local /24 via direta (custo 0) /24 via (custo 1) /24 via IP1 (custo 2)
Exemplo de Propagação das Rotas /0 e /24 A /24 3 C B 1 INTERNET / / / / / /0 via (custo 2) /0 via (custo 3) /24 via (custo 1) IP1 Rota manual /0 via IP_ISP (custo 1) /0 via (custo 4) /24 via (custo 2) Rota local /24 via /24 (custo 1)
Tabela de Roteamento do Roteador 1 DestinoGatewayInterfaceCustoTipo /24direto20local /24direto10local / RIP / RIP ROTEADOR 3 DestinoGatewayInterfaceCustoTipo / RIP /24direto20local /24direto10local / RIP ROTEADOR 2
OSPF: Open Shortest Path First A B Hello [multicast] Database Description [unicast] Link State Request [unicast] Link State Update [multicast] Link State Acknowledge [unicast]
Terminologia OSPF R1 R5 R6 R0 N1 Area 0 Area 2 (Stub) Area 1 R3 BACKBONE OSPF Area R7 R4 Fronteira de AS N2 N1 Roteador de Fronteira de Área (ABR) R2 Roteador de Fronteira de AS (ASBR) Rx Rede RIP R8 Area 3
Roteador Designado meio de múltiplo acesso Roteador Designado Roteador Designado de Backup (Link State Update) vários LSA [ ] (Link State Update) vários LSA (Link State Update) vários LSA [ ]
Cabeçalho OSPF Version (2)Tipo de MensagemTamanho da Mensagem Identificador de Roteador Byte 1 Byte 2Byte 3Byte 4 Identificador de Área Checksum da mensagem Dados de autenticação... Reservado Tipo de Autenticação ID de ChaveTamanho da Autentic. Número de sequência Cabeçalho OSPF
Mensagem Hello Máscara de rede Byte 1 Byte 2Byte 3Byte 4 Intervalo de Hello Roteador designado Roteador designado de backup Intervalo de morte do roteador Primeiro Vizinho Mensagem Hello OpçõesPrioridade Roteador Outros Vizinhos
Mensagem DataBase Description MTU da InterfaceOpções Número de sequência da descrição do banco de dados Byte 1 Byte 2Byte 3Byte 4 Idade do Estado de Enlace Identificador de Estado de Enlace Roteador Anunciante Opções Número de sequência do Estado de Enlace Database Description ReservadoIMS Tipo do Est. Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace.... LSA Header
Mensagens Link State Update Byte 1 Byte 2Byte 3Byte 4 Contador de Anúncios (número de LSAs) Idade do Estado de Enlace (LS) Link State Acknowledge (LSU = N X LSA) OpçõesTipo de LS Identificador de estado do enlace Roteador Anunciado Número de Sequência de Estado do Enlace Checksum do Estado de Enlace (LS)Tamanho FlagsReservadoNúmero de Enlaces Identificador de Enlace (IP ou Subrede) Dado do Enlace (Máscara de Subrede) Tipo de EnlaceContador de TOSMétrica Padrão TOSReservadoMétrica do TOS
Mensagens Link State Acknowledge Byte 1 Byte 2Byte 3Byte 4 Link State Acknowledge Idade do Estado de Enlace Identificador de Estado de Enlace Roteador Anunciante Opções Número de sequência do Estado de Enlace Tipo do Est. Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace.... LSA Header
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 1 rede Sistema Autônomo 2 rede Sistema Autônomo 3 CPE IGP E-BGP I-BGP E-BGP I-BGP I-BGP: entre roteadores de borda no mesmo AS E-BGP: entre rotadores de borda de AS diferentes (roteadores precisam ser vizinhos)
BGP: Border Gateway Protocol A A B B Open [unicast] Open ou Notification [multicast] Update [unicast] KeepAlive [unicast] Route Refresh [unicast] BGP Speaker BGP Speaker
Cabeçalho BGP Todas as mensagens utilizam um cabeçalho comum Utilizado para autenticação Marcador Marcador (cont.) Byte 1 Byte 2Byte 3Byte 4 Marcador (cont.) Tamanho da Mensagem Marcador (cont.) Tipo da Mensagem
Mensagem Open Utilizada para estabelecer a sessão entre dois roteadores BPG peers Byte 1 Byte 2Byte 3Byte 4 ID AS Tempo de Suspensão Identificador BGP Tamanho OpcoesParâmetros Opcionais Versão (4)
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. Tamanho das Rotas Retiradas Tamanho do Atributos do Caminho Byte 1 Byte 2Byte 3Byte 4 rotas retiradas atributos de caminho (rota anunciada) informações de acesso a camada de rede Lista de atributos da rota que está sendo anunciada. Cada atributo segue o formato Tipo-Valor-Comprimento Tamanho do NLRI Corresponde a uma lista de prefixos que pode ser acessado através da rota anunciada. Exemplo: /24, /24, /16, etc. Corresponde a uma lista de prefixos que está deixando de ser ofertado pelo roteador. Exemplo: /24, /24, /16, etc.
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.Message header error 2.Open message error 3.Update message error 4.Hold timer expired 5.Finite state machine error 6.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: { /24, /24} / / / /24 E E F F G G H H SA2 I I J J K K L L SA3 A A B B C C D D SA1 AS-PATH: {SA2} NEXT-HOP: H NLRI: { /24, /24} AS-PATH: {SA1,SA2} NEXT-HOP: H NLRI: { /24, /24} update
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 AS1AS2AS3AS /24 Local preference 100 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 AS1AS2 MED 500 MED /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 AS1 AS2 I-BGP
Seleção de Rotas no BGP 1.Menor “route preference” 2.Maior “local preference” 3.AS-path mais curto 4.Menor “Origin” (IGP < EGP < incomplete) 5.Menor MED 6.Externa sobre “confederation” sobre interna 7.Menor métrica do IGP 8.Menor “cluster list” 9.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 Protocolo Tabela de Roteamento Tabela de Encaminhamento Vizinhos Protocolo Política de Importação Política de Exportação
Exemplos RTA router bgp 100 neighbor remote-as 300 network route-map SETMETRIC permit 10 match ip-address 1 set metric 2 route-map SETMETRIC permit 20 set metric 5 access-list 1 permit RTC router bgp 300 network neighbor remote-as 100 neighbor route-map STOPUPDATES out route-map STOPUPDATES permit 10 match ip address 1 access-list 1 deny access-list 1 permit RTA redistribui rotas da rede 170. com custo 2 e todas as demais com custo 5. 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 neighbor remote-as 300 neighbor send-community neighbor route-map setcommunity out route-map setcommunity match ip address 1 set community no-export access-list 1 permit 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 remote-as 300 network RTC# router bgp 300 neighbor remote-as 200 neighbor remote-as 100 network aggregate-address RTB gera a rede e envia para RTC. Este por sua vez, propaga a super-rede 160 para RTA.
Melhorias para o IBGP Inicialmente, roteadores em IBGP operam em full- mesh –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.
A BC D E F A BC D E F SA1 SA2 SA3 SA2 SA3 Cenário 1 Cenário 2 E G