Baixe o app para aproveitar ainda mais
Prévia do material em texto
Treinamento BGP com ênfase no RouterOS Produzido por: Alive Solutions www.alivesolutions.com.br Instrutor: Guilherme Ramires Objetivo do Curso • Prover conhecimento teórico e prático referentes aos recursos Internetworking básico e médio no RouterOS a serem aplicados em redes de pequeno e grande porte. • Após a conclusão do curso, você será capaz de planejar, 2 • Após a conclusão do curso, você será capaz de planejar, implementar, ajustar e depurar as configurações de BGP implementados pelo RouterOS. Visão Geral • BGP – BGP Basics (iBGP, eBGP, etc...) – Distribuição – Filtros 3 – Filtros – BGP attributos – Etc... Cenário da aula • Dividam-se em grupos de 4 alunos; • Criem uma rede conforme mostrado no slide a seguir; • Os routers R1 e R2 irão se conectar ao SSID 4 • Os routers R1 e R2 irão se conectar ao SSID AS100; • Cada router da rede local terá uma rede 192.168.xy.0/24 onde: – X é o número do grupo – Y é o número do router Setup 5 BGP 6 BGP Border Gateway Protocol AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. • Protocolo padrão do Router de Borda; • Usado também como protocolo de roteamento “Inter- AS”; • Informações sobre a topologia da rede não são BGP - Básico 8 • Informações sobre a topologia da rede não são trocadas. Somente informações sobre alcançabilidade; • O único protocolo que pode lidar com uma rede do tamanho da internet; • Utiliza o algoritmo de distância vetorial. BGP - Autonomous system(AS) • Conjunto de roteadores que compartilham a mesma política de roteamento; • Troca de rotas: – Routers com o mesmo AS usam o mesmo IGP – Routers entre ASs usam EGP 9 – Routers entre ASs usam EGP • São números únicos; • Podem ser de: 16 e 32 bits • Números entre 64512 – 65535 são reservados pra uso privado. Implementação da distância vetorial • O “prefixo” é informado com a lista de ASs ao longo do caminho chamado AS Path; • Trata todo o AS como um único ponto de caminho; 10 caminho; • Pode esconder a topologia da rede dentro do AS; • Não é capaz de prover uma rede livre de loops dentro do próprio AS. Implementação da distância vetorial 11 BGP - Capabilities • É informado por seu peer BGP os códigos de capacidades suportadas; • Se uma capacidade não é suportada, uma mensagem de notificação é enviada de volta; 12 • Neste caso o peer vai tentar estabelecer conexão sem a capacidade caso ela não seja requerida; • Alguns exemplos de capacidades do RouterOS são: – Route Refresh(RFC 2918); – Multi-protocol Extension(RFC 4760); – Suporte aos “novos” AS de 4-bytes. BGP - Transporte • Funciona trocando informações de NLRI(Network Layer Reachability Information); • O NLRI possui diversos atributos BGP e um ou mais atributos que eles possam estar associados; 13 • Utiliza o protocolo TCP na porta 179 como transporte; • Inicialmente a tabela full routing é trocada entre os peers; • Informações extras de atualização serão feitos após a troca inicial. Formato do Pacote • O pacote possui 4 campos principais: – Marker (128 bits) – Usado para autenticação; – Length (16 bits); – Type (8 bits) – Tipo de mensagem BGP; 14 – Type (8 bits) – Tipo de mensagem BGP; – Message body. BGP – Tipos de mensagens • São 4 tipos de mensagens: – Open: Primeira mensagem enviada após a conexão TCP ser estabelecida. Contém a lista de capacidades e deve ser confirmada com uma mensagem de “keepalive”; – Keepalive: Não contêm dados. Enviada somente para 15 – Keepalive: Não contêm dados. Enviada somente para evitar que a sessão expire; – Update: Atualização de rotas. Contêm: • NLRI; • Path attributes; – Notification: Enviada quando algum erro ocorre. Contêm um código e sub-código do erro. BGP – Session e Update 16 BGP - Networks • Indica quais redes o protocolo deve originar a partir do router; • Por padrão a rede somente é advertida se estiver presente na tabela de rotas; • O mecanismo de synchronization pode ser desativado se: – Seu AS não provê serviço de transito; 17 – Seu AS não provê serviço de transito; – Todos os routers de trânsito rodam BGP; • Desabilitar o “sync” permite uma convergência mais rápida do BGP; • O mecanismo de “sync” pode ser muito perigoso caso a conexão esteja muito instável; • Pode ser configurado em: /routing bgp network BGP – Multi Protocol • O formato do pacote BGP foi designado inicialmente no padrão IPv4; • Uma “família” de novos atributos foram criados para poder dar suporte aos novos tipos de endereços; 18 poder dar suporte aos novos tipos de endereços; • O RouterOS suporta os seguintes: – IPv6; – L2VPN; – VPN4; – Cisco Style L2VPN. BGP - Instances • Cada instância BGP roda seu próprio algoritmo de seleção; – Rotas entre as instâncias são eleitas por outros métodos como “distance”, por exemplo; • Rotas de uma instância não são automaticamente 19 • Rotas de uma instância não são automaticamente redistribuídas para outras instâncias; – Para isso é necessário que você opte por esta opção: /routing bgp instance set <id> redistribute-other-bgp=yes • Os atributos BGP não são herdados de outras instâncias. BGP - Habilitando • Acima está a configuração mínima. 20 • Se o router-id não for informado, o maior endereço IP será usado. • Verifique o status da conexão com o comando print. Qualquer estado diferente de established significa que não há troca de base de dados. Cenários – Rede Stub • Single Homed – Utiliza-se AS privado(64512-65535); – O ISP origina somente rota default; – Na verdade o BGP não seria necessário;– Na verdade o BGP não seria necessário; – O router(ISP upstream) que fecha BGP com AS público é que adverte as redes; – Deve usar a mesma política do ISP Remoção do AS privado • Seu AS privado não pode chegar ao ambiente público; • Ele deve estar disponível somente para seus vizinhos eBGP do AS 22 Ele deve estar disponível somente para seus vizinhos eBGP do AS privado; • Anuncie somente rotas agregadas; • Utilize o seguinte comando: AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP - Lab 1 • Crie uma rede BGP conforme ilustrado no próximo slide: – Os routers R1 e R2 vão fechar peer com o AP; – Os routers R2 e R4 vão fechar peer entre si; – Os routers R1 e R3 vão fechar peer entre si; 24 – Os routers R1 e R3 vão fechar peer entre si; • Anuncie sua rede local; • O AS privado deve ser removido; • R1 e R2 originem rota default. BGP – Lab 1 25 Cenários – Rede Stub • Multihomed: – Utiliza-se AS privado também – opcional; – Pode ser usado: • Como link backup/principal; • Balanceamento de carga; 26 • Balanceamento de carga; – O router(ISP upstream) que fecha BGP com AS público é que adverte as redes; – Deve usar a mesma política do ISP – upstream. Cenários não stub • Necessita de um AS público; • Uma range IP de seu RIR; • Pode utilizar uma política de roteamento diferente de seus ISPs; 27 seus ISPs; • Pode ser usado: – Como link backup/principal; – Balanceamento de carga; – Maiores políticas de roteamento avançado. BGP - Contrack • A contrack não é capaz de manter válidas as conexões em um ambiente multihomed; • Pacotes relacionados a uma conexão podem fluir por diferentes caminhos; 28 • Pacotes relacionados a uma conexão podem fluir por diferentes caminhos; – Por isso é muito importante que neste tipo de cenário você JAMAIS use drop conexões inválidas no firewall. • A contrack pode ser desabilitada para obtenção de uma melhor performance. AVISO IMPORTANTE • Peço aos Senhoresque durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP – Lab 2 • Adicione o R3 ao mesmo AS do R1; • Adicione o R4 ao mesmo AS do R2; • Crie um peer entre R4 e R3; 30 • Crie um peer entre R4 e R3; • Habilite o OSPF para distribuir rotas conectadas nos routers de mesmo AS; • Anunciem ambas as redes locais de seus AS; BGP – Lab 2 31 BGP – Lab 2 32 BGP – Lab 2 33 • O BGP distribui somente a melhor rota. Enquanto em R1 a melhor rota é recebida de R3, R1 não distribui de volta as redes 12.0/24 e 14.0/24 para R3. eBGP e iBGP • iBGP: peers entre routers do mesmo AS; • eBGP: peers entre routers de outros AS; 34 eBGP • Quase sempre formado por peers que estão diretamente conectados; • A opção “multi-hop” é exigida se o peer não estiver diretamente conectado; 35 estiver diretamente conectado; • Adiciona o AS ao prefixo de caminho advertido; • Por padrão a opção “Next-hop” e alterada para “self”. eBGP – Exemplo de multihop 36 • Neste exemplo podemos ver um bom exemplo do uso do multihop mesmo em routers diretamente conectados. • Nesta configuração foi utilizado endereço loopback para conexão entre os peers e portanto seria necessário o uso de rota estática ou algum IGP para existir alcançabilidade IP entre os mesmos. • Esta é uma ótima prática para evitar ataques DoS. iBGP • Por padrão o “next-hop” não é modificado – Utilize algum IGP(RIP, OSPF, estático) para garantir a alcançabilidade IP dentro do AS. • Atributos aprendidos a partir do iBGP não são alterados para não impactar a seleção de caminho para rede externa; 37 • O as_path não é manipulado; • Prover formas de controlar pontos de saída do AS; • Rotas externas recebidas de um peer iBGP não são passadas para outros peers iBGP; – Para que isso ocorra é necessário o uso de full mesh ou router reflect. iBGP 38 LoopBack • Elimina a dependência de estabelecimento da conexão TCP interface física; • Comumente utilizado entre peers iBGP; • No MikroTik podemos utilizar uma bridge vazia como 39 • No MikroTik podemos utilizar uma bridge vazia como interface loopback; AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP – Lab 3 • Vamos incrementar o setup atual utilizando endereços loopback entre peers iBGP com o seguinte endereçamento 10.255.x.y/32; 41 • Adicione o endereço loopback na network do OSPF; • Modifique o router-id do OSPF e do BGP para o endereço loopback; Distribuição de rotas • As rotas IGP(estático, OSPF, RIP) podem ser distribuídas da seguinte forma: – /routing bgp instance – set default redistribute-static=yes – set default redistribute-ospf=yes 42 – set default redistribute-ospf=yes • O prefix origin será “incomplete”; • Existe o risco de todas rotas IGP serem publicadas; • Utilize filtros para evitar estas propagações indesejadas. Exemplo de distribuição 43 • Desta forma os pacotes serão cessados a não ser que exista uma rota mais especifica; • É um boa forma de publicar uma “supernet”. Routing Filters • É a principal ferramenta para controlar e modificar as informações de roteamento; • São organizados em canais muito similar ao firewall; • Pode especificar quais configurações serão aplicadas aos peers BGP ou como filtro de saída da própria instância; 44 peers BGP ou como filtro de saída da própria instância; • Primeiramente os prefix passam pelo filtro da instância e somente após isso é que passam pelos filtros dos peers. Exemplo de filtro 45 Filtrando prefixo 46 Filtro AS PATH • Pode ser configurado para permitir updates somente de/para um AS especifico; • Suporta expressões regulares tais como: • “ . ” – qualquer caractere; 47 • “ . ” – qualquer caractere; • “ ^ “ – inicio do as_path; • “ $ “ – final do as_path; • “ _ “ – qualquer valor entre vírgulas, no início, no fim ou em um intervalo especifico. Mais opções de Filtros AS Path • .* - Todas as rotas BGP • ^$ - Rotas que se originam no meu AS • ^(100|200|300)$ - Rotas originadas no 100, 200 ou 300 • ^1002$ - Rotas que se originam no AS 1002 , adjacente ao • ^1002$ - Rotas que se originam no AS 1002 , adjacente ao meu AS _1002$ - Rotas que terminam no AS 1002 • ^1002_ - Rotas originadas no AS 1002 • _1002_ - Rotas que passaram no AS 1002 • (...)+(...) – Uma ou várias ocorrências do caractere especificado antes ( + = ou ) BGP – Reconfiguração “leve” • Quando usamos action=discard as rotas não serão mais atualizadas após a aplicação do filtro; • Solução? • Use action=reject para manter as rotas na memória; 49 • Use action=reject para manter as rotas na memória; • Modo Dynamic(O peer deve ter suporte a capacidade “refresh”): • O peer vai atualizar as rotas após as alterações serem feitas; • Neste caso não há uso extra de memória; • Não é feito automaticamente – é necessário você executar o comando “refresh”. AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP – Lab 4 • Adicione filtros de forma que: – R1 não receba o prefixo 192.168.x2.0/24 do AP; – R2 não receba o prefixo 192.168.x1.0/24 do AP; 51 – R3 não receba o prefixo 192.168.x4.0/24 de R4; – R4 não receba o prefixo 192.168.x3.0/24 de R3; BGP – Lab 4 • Vamos verificar R3. Se os filtros foram empregados corretamente o tracert para a rede x2 deverá ir por R4 e o tracert para x4 deverá ir pelo AP. 52 deverá ir pelo AP. BGP – Algoritmo de decisão • BGP utiliza o simples “melhor caminho” para o destino; • BGP sempre propaga o “melhor caminho” para os vizinhos; • Diferentes atributos de caminho são usados para 53 • Diferentes atributos de caminho são usados para determinar o “melhor caminho” como: – weight; – Next-hop; – As_path; – Local_preference; – Etc… Seleção de melhor caminho • Validação do “next-hop”; • Maior “weight” – default=0; • Maior “local_pref” – default=100; • Menor “as_path”; • Caminho gerado localmente(aggregate, BGP network, etc.); 54 • Caminho gerado localmente(aggregate, BGP network, etc.); • Menor tipo “origin” – (IGP, EGP, incomplete); • Menor MED – default=0; • eBGP é preferido sobre iBGP; • Rota proveniente do menor Router ID; • Menor cluster de router reflect – default=0; • Caminho proveniente do vizinho com menor endereço IP. Nexthop • Endereço IP utilizado para alcançar um determinado destino; • Para o eBGP o nexthop é o endereço IP de seu vizinho; • O nexthop informado pelo eBGP é carregado dentro do 55 • O nexthop informado pelo eBGP é carregado dentro do iBGP. Nexthop self • Força o BGP a utilizar seu próprio IP como nexthop; 56 Weight • O weight é um atributo de uso próprio do router; • Prefixos sem atribuição deste valor por padrão terá o valor 0 atribuído; • Router com o maior peso será preferido; 57 • Router com o maior peso será preferido; • Boa forma de controla o fluxo de upstream. Local Preference • Indica que caminho tem preferência para deixar o AS; • Caminho com maior local_pref será escolhido (default: 100); • É informado junto com o AS; • Outra boa forma de controle de upstream. 58 • Outra boa forma de controle de upstream. AS Path • Lista de números AS que são atualizados sempre que se passa por um AS; 59 As Path Prepend • A manipulação do as_path pode ser feita pra influenciar a seleção de melhor caminho dos outros routers; 60 As Path Prepend • Desta forma pode-se influenciar o tráfego deupstream dos outros routers. O que de forma indireta irá influenciar seu próprio tráfego de downstream. 61 downstream. Origin • Informação sobre a origem da rota: – IGP: interna ou gerado no próprio AS; – EGP: rota originada por um protocolo externo; 62 – Incomplete: origem desconhecida. Geralmente ocorre quando a rota é redistribuída pelo BGP. MED • Multi Exit Discriminator ou métrica. Funciona como sugestão ao vizinho externo sobre a preferência de caminho dentro do AS; • A menor métrica é escolhida; 63 A menor métrica é escolhida; • Atributo trocado entre ASs e usado para tomar decisão de caminho dentro deste AS e não será passado adiante a um terceiro AS; • Atributo ignorado se for recebido de um AS diferente. MED - Exemplo 64 • R1, R2 e R3 publicam a mesma rede para R4 com diferentes valores de MED. R4 vai comparar somente valores de MED vindos de R2 e R3 e o MED de R1 será ignorado; • Outros atributos serão usados para seleção de melhor caminho. AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP – Lab 5 • Utilize as_path prepend para balanceamento de carga e failover conforme ilustra a imagem. 66 Community • Atributo usado para agrupar destinos; • Filtros podem ser facilmente aplicados para todo o grupo; 67 • Existem também alguns grupos padrão: – No-export: não publica para o peer eBGP; – No-advertise: não publica para nenhum peer; – Internet: publica para a comunidade internet; – Local-as: não publica pra fora do AS local. Community - Exemplo • Supomos que você não queira que R2 propague rotas aprendidas de R1: 68 Community – Cont... • Tem o valor de 32bits e é escrito no formato: “xx:yy”; • Permite ao administrador maiores políticas de controle; • Simplifica a configuração de upstream; • Pode ser usado pelo ISP para: 69 • Pode ser usado pelo ISP para: – Opções de as_prepend; – Restrições geográficas; – Blackholing, etc… • Usado também para checar o Internet Routing Registry (IRR). Community – outro exemplo • AS 100 define communitys publicas; – 100:500 – adverte para todos os peers; – 100:501 – adverte para o AS 400. 70 Community – outro exemplo – cont... 71 Exemplos para ISPs aut-num: AS2588 as-name: LatnetServiss-AS descr: LATNET ISP member-of: AS-LATVIA remarks: +-------------------------------------------------- remarks: | remarks: | x=0 Announce as is remarks: | x=1 Prepend +1 remarks: | x=2 Prepend +2 remarks: | x=3 Prepend +3 72 remarks: | x=3 Prepend +3 remarks: | x=4 Prepend +4 remarks: | x=5 Prepend +5 remarks: | remarks: | 2588:400 Latvian Nets remarks: | 2588:500 Announce to LIX (Latvian Internet Exchange) remarks: | 2588:666 Don't announce (blackhole) remarks: | 2588:70x Announce to uplinks with $x prepend remarks: | 2588:900 Recieved from LIX (Latvian Internet Exchange) remarks: | remarks: | For more information please use the email address remarks: | iproute (at) latnet (dot) lv remarks: +-------------------------------------------------- Agregação • É o conceito de sumarização de rotas mais especificas em uma supernet; • Pode ser usada para esconder a topologia; • Funciona somente nos routers da mesma instância BGP; 73 BGP – Router Reflect • Re-adverte rotas iBGP para evitar o full mesh; • Reduz a contagem de mensagens de comunicação; • Reduz também a quantidade de dados por mensagem; Neste caso somente o melhor caminho é “refletido”. 74 – Neste caso somente o melhor caminho é “refletido”. Router Reflect - configuração • RR é configurado habilitando a opção “client-to-client reflection” desta forma: /routing bgp instance set default client-to-client-reflection=yes • Confirme o peer RR em sua configuração desta forma: 75 • Confirme o peer RR em sua configuração desta forma: /routing bgp peer add route-reflect=yes remote-peer=x.x.x.x • RR deve ser habilitado SOMENTE no roteador “refletor”; • O RouterOS não pode ser configurado puramente como RR. BGP - Confederation • Agrega múltiplos ASs em um único AS; • Para o mundo externo a confederation aparece como um único AS; • Cada AS deve estar rodando full mesh ou RR; 76 • Troca de rotas entre confederados eBGP são entendidas como rotas de iBGP; • O as-path dentro da confederation aparecerá entre parênteses: as-path=(30,20); Confederation – As Path 77 Confederation – As Path 78 AVISO IMPORTANTE • Peço aos Senhores que durante este treinamento não utilizem a função COPY da caixas de diálogo devido a problemas gerados na “clonagem” de informações que devem ser na “clonagem” de informações que devem ser únicas para o correto funcionamento das aplicações. BGP – Lab 6 80 Obrigado !! Contato: ramires@alivesolutions.com.br Site: www.alivesolutions.com.br Fan Page: www.fb.com/AliveSolutions
Compartilhar