Roteamento Avançado em MikroTik RouterOS Lancore Networks e BRAUSER Introdução Instrutor: Leonardo Rosa, BRAUSER. ● ● Consultor em Internetworking Equipe experiente com casos de sucesso em Routing, Caching, Wireless etc. Agenda Treinamento diário das 09:00hs às 18:00hs Coffee break às 15:30hs Almoço às 13:00hs – 1 hora de duração Resumo ● Introdução ao MikroTik RouterOS – ● OSPF – ● ● Interfaces, Internet, Hotspot e PPPoE Áreas, Custos, Redistribuição e Agregação MPLS – LDP – VPLS (VPN L2) BGP – Básico do BGP (iBGP, eBGP) – Distribuição, filtros e atributos do BGP Sobre a Mikrotik • • • • 1995: Inicio das atividades 1997: Lançado RouterOS para x86 (PC) 2002: Primeira RouterBOARD lançada 2006: Primeiro MUM Onde está a Mikrotik ? 7 Nivelamento de conhecimentos TCP/IP 37 Modelo OSI (Open System Interconnection) Interconnection CAMADA 7 – Aplicação: Comunicação com os programas. SNMP e TELNET. CAMADA 6 – Apresentação: Camada de tradução. Compressão e criptografia CAMADA 5 – Sessão: Estabelecimento das sessões TCP. CAMADA 4 – Transporte: Controle de fluxo, ordenação dos pacotes e correção de erros CAMADA 3 – Rede: Associa endereço físico ao endereço lógico CAMADA 2 – Enlace: Endereçamento físico. Detecta e corrige erros da camada 1 CAMADA 1 – Física: Bits de dados 38 Camada I – Camada Física • A camada física define as características técnicas dos dispositivos elétricos. • É nesse nível que são definidas as especificações de cabeamento estruturado, fibras ópticas, etc... No caso da wireless é a camada I que define as modulações, frequências e largura de banda das portadores. 39 Camada II - Enlace • Camada responsável pelo endereçamento físico, controle de acesso ao meio e correções de erros da camada I. • Endereçamento físico se faz pelos endereços MAC (Controle de Acesso ao Meio) que são únicos no mundo e que são atribuídos aos dispositivos de rede. • Ethernets e PPP são exemplos de dispositivos que trabalham em camada II. 40 Endereço MAC • É o único endereço físico de um dispositivo de rede • É usado para comunicação com a rede local • Exemplo de endereço MAC: 00:0C:42:00:00:00 41 Camada III - Rede • Responsável pelo endereçamento lógico dos pacotes. • Transforma endereços lógicos(endereços IPs) em endereços físicos de rede. • Determina que rota os pacotes irão seguir para atingir o destino baseado em fatores tais como condições de tráfego de rede e prioridade. 42 Endereço IP • É o endereço lógico de um dispositivo de rede • É usado para comunicação entre redes • Exemplo de endereço ip:: 200.200.0.1 43 Sub Rede • É uma faixa de endereços IP que divide as redes em segmentos • Exemplo de sub rede: 255.255.255.0 ou /24 • O endereço de REDE é o primeiro IP da sub rede • O endereço de BROADCAST é o último IP da sub rede • Esses endereços são reservados e não podem ser usados End. IP/Máscara End. de Rede End. Broadcast 192.168.1.0/23 192.168.0.0 192.168.1.255 192.168.1.1/24 192.168.1.0 192.168.1.255 192.168.1.1/25 192.168.1.0 192.168.1.127 192.168.1.1/26 192.168.1.0 192.168.1.63 44 Endereçamento CIDR 45 Protocolo ARP – Address Resolution Protocol • Utilizado para associar IP’s com endereços físicos. • Faz a intermediação entre a camada II e a camada III da seguinte forma: 1. O solicitante de ARP manda um pacote de broadcast com informação do IP de destino, IP de origem e seu MAC, perguntando sobre o MAC de destino. 2. O host que tem o IP de destino responde fornecendo seu MAC. 3. Para minimizar o broadcast, o S.O mantém um tabela ARP constando o par (IP – MAC). 46 Camada IV - Transporte • Quando no lado do remetente é responsável por pegar os dados das camadas superiores e dividir em pacotes para que sejam transmitidos para a camada de rede. • No lado do destinatário pega pega os pacotes recebidos da camada de rede, remonta os dados originais e os envia para à camada superior. Estão na camada IV: TCP, UDP, RTP 47 Camada IV - Transporte Protocolo TCP: O O TCP é um protocolo de transporte que executa importantes funções para garantir que os dados sejam entregues de forma confiável, ou seja, sem que os dados sejam corrompidos ou alterados. Protocolo UDP: O O UDP é um protocolo não orientado a conexão e portanto é mais rápido que o TCP. Entretanto não garante a entrega dos dados. 48 Características do protocolo TCP Garante a entrega de data gramas IP. Executa a segmentação e reagrupamento de grande blocos de dados enviados pelos programas e garante o seqüenciamento adequado e a entrega ordenada de dados segmentados. Verifica a integridade dos dados transmitidos usando cálculos de soma de verificação. Envia mensagens positivas dependendo do recebimento bem-sucedido bem dos dados. Ao usar confirmações seletivas, também são enviadas confirmações negativas para os dados que não foram recebidos. Oferece um método preferencial de transporte de programas que devem usar transmissão confiável de dados baseados em sessões, como banco de dados cliente/servidor por exemplo. 49 Diferenças básicas entre TCP e UDP TCP UDP Serviço orientado por conexão. Serviço sem conexão. Não é estabelecida conexão entre os hosts. Garante a entrega através do uso de confirmação e entrega seqüenciada dos dados. Não garante ou não confirma entrega dos dados. Programas que usam TCP tem garantia de transporte confiável de dados. Programas que usam UDP são responsáveis pela confiabilidade dos dados. Mais lento, usa mais recursos e somente dá suporte a ponto a ponto. Rápido, exige poucos recursos e oferece comunicação ponto a ponto e multiponto. 50 Estado das conexões • É possível observar o estado das conexões no MikroTik no menu Connections. 51 Portas TCP Protocolo TCP FTP SSH Telnet WEB Porta 21 Porta 22 Porta 23 Porta 80 O uso de portas, permite o funcionamento de vários serviços, ao mesmo tempo, no mesmo computador, trocando informações com um ou mais serviços/servidores. Portas abaixo de 1024 são registradas para serviços especiais. 52 Dúvidas ???? 53 DIAGRAMA INICIAL 54 Configuração do Router • Adicione os ips as interfaces Obs.: Atente para selecionar as interfaces corretas. 55 Configuração do Router • Adicione a rota padrão 3 1 4 2 56 Configuração do Router • Configuração da interface wireless 58 Teste de conectividade • Pingar a partir da RouterBoard o seguinte ip: 192.168.X.254 • Pingar a partir da RouterBoard o seguinte endereço: www.mikrotik.com; • Pingar a partir do notebook o seguinte ip: 192.168.X.254 • Pingar a partir do notebook o seguinte endereço: www.mikrotik.com; • Analisar os resultados 59 Corrigir o problema de conectividade • Diante do cenário apresentado quais soluções podemos apresentar? – Adicionar rotas estáticas; – Utilizar protocolos de roteamento dinâmico; – Utilizar NAT(Network Address Translation). 60 Utilização do NAT • O mascaramento é a técnica que permite que vários hosts de uma rede compartilhem um mesmo endereço IP de saída do roteador. No Mikrotik o mascaramento é feito através do Firewall na funcionalidade do NAT. • Todo e qualquer pacote de dados de uma rede possui um endereço IP de origem e destino. Para mascarar o endereço, o NAT faz a troca do endereço IP de origem. Quando este pacote retorna ele é encaminhando ao host que o originou. 61 • Adicionar uma regra de NAT, mascarando as requisições que saem pela interface wlan1. 3 1 2 4 62 Teste de conectividade • Efetuar os testes de ping a partir do notebook; • Analisar os resultados; • Efetuar os eventuais reparos. Após a confirmação de que tudo está funcionando, faça o backup da routerboard e armazene-o armazene no notebook. Ele será usado ao longo do curso. 63 Firewall no Mikrotik 152 Firewall • O firewall é normalmente usado como ferramenta de segurança para prevenir o acesso não autorizado a rede interna e/ou acesso ao roteador em si, bloquear diversos tipos de ataques e controlar o fluxo de dados de entrada, de saída e passante. • Além da segurança é no firewall que serão desempenhadas diversas funções importantes como a classificação e marcação de pacotes para desenvolvimento de regras de QoS. • A classificação do tráfego feita no firewall pode ser baseada em vários classificadores como endereços MAC, endereços IP, tipos de endereços IP, portas, TOS, tamanho do pacotes, etc... 153 Firewall - Opções Filter Rules:: Regras para filtro de pacotes. NAT:: Onde é feito a tradução de endereços e portas. Mangle:: Marcação de pacotes, conexão e roteamento. Service Ports:: Onde são localizados os NAT Helpers. Connections:: Onde são localizadas as conexões existentes. Address List: Lista de endereços ips inseridos de forma dinâmica ou estática e que podem ser utilizadas em várias partes do firewall. Layer 7 Protocols: Filtros de camada 7. 154 Firewall – Canais default • O Firewall opera por meio de regras. Uma regra é uma expressão lógica que diz ao roteador o que fazer com um tipo particular de pacote. • Regras são organizadas em canais(chain) canais( e existem 3 canais “default”. – INPUT:: Responsável pelo tráfego que CHEGA no router; – OUTPUT:: Responsável pelo tráfego que SAI do router; – FORWARD:: Responsável pelo tráfego que PASSA pelo router. 155 Firewall – Fluxo de pacotes Interface de Entrada Decisão de Roteamento Interface de Saida Processo Local IN Processo Local OUT Filtro Input Filtro Output Decisão de Roteamento Filtro Forward • Para maiores informações acesse: http://wiki.mikrotik.com/wiki/Manual:Packet_Flow Packet_Flow 156 Firewall – Princípios gerais 1. As regras de firewall são sempre processadas por canal, na ordem que são listadas de cima pra baixo. 2. As regras de firewall funcionam como expressões lógicas condicionais, ou seja: “se <condição> então <ação>”. 3. Se um pacote não atende TODAS condições de uma regra, ele passa para a regra seguinte. 157 Firewall – Princípios gerais 4. Quando um pacote atende TODAS as condições da regra, uma ação é tomada com ele não importando as regras que estejam abaixo nesse canal, pois elas não serão processadas. 5. Algumas exceções ao critério acima devem ser consideradas como as ações de: “passthrough”, “ log e “add to address list”. 6. Um pacote que não se enquadre em qualquer regra do canal, por padrão será aceito. 158 Firewall – Filters Rules • As regras de filtro pode ser organizadas e mostradas da seguinte forma: – – – – all: Mostra todas as regras. dynamic:: Regras criadas dinamicamente por serviços. forward, input output:: Regras referente a cada canal. static:: Regras criadas estaticamente pelos usuários. 159 Firewall – Filters Rules Algumas ações que podem ser tomadas nos filtros de firewall: passthrough:: Contabiliza e passa adiante. drop:: Descarta o pacote silenciosamente. reject:: Descarta o pacote e responde com uma mensagem de icmp ou tcp reset. tarpit:: Responde com SYN/ACK ao pacote TCP SYN entrante, mas não aloca recursos. 160 Filter Rules – Canais criados pelo usuário • Além dos canais padrão o administrador pode criar canais próprios. Esta prática ajuda na organização do firewall. • Para utilizar o canal criado devemos “desviar” o fluxo através de uma ação JUMP. • No exemplo acima podemos ver 3 novos canais criados. • Para criar um novo canal basta adicionar uma nova regra e dar o nome desejado ao canal. 161 Firewall – Filters Rules • Ações relativas a canais criados pelo usuário: – jump:: Salta para um canal definido em jump-target – jump target:: Nome do canal para onde se deve saltar – return:: Retorna para o canal que chamou o jump 162 Como funciona o canal criado pelo usuário Canal criado pelo usuário REGRA REGRA REGRA REGRA REGRA REGRA JUMP REGRA REGRA REGRA REGRA REGRA REGRA REGRA REGRA REGRA 163 Como funciona o canal criado pelo usuário REGRA REGRA REGRA REGRA REGRA REGRA JUMP RETURN REGRA REGRA REGRA REGRA REGRA REGRA REGRA REGRA Caso exista alguma regra de RETURN, o retorno é feito de forma antecipada e as regras abaixo serão ignoradas. 164 Firewall – Connection Track Refere-se se a habilidade do roteador em manter o estado da informação relativa as conexões, tais como endereços IP de origem e destino, as respectivas portas, estado da conexão, tipo de protocolos e timeouts. Firewalls que fazem connection track são chamados de “statefull”” e são mais seguros que os que fazem processamentos “stateless”. 168 Firewall – Connection Track O sistema de connection track é o coração do firewall. Ele obtém e mantém informações sobre todas conexões ativas. Quando se desabilita a função “connection tracking” são perdidas as funcionalidades NAT e as marcações de pacotes que dependam de conexão. No entanto, pacotes podem ser marcados de forma direta. Connection track é exigente de recursos de hardware. Quando o equipamento trabalha somente como bridge é aconselhável desabilitá-la. desabilitá 169 Localização da Connection Tracking Interface de Entrada Processo Local IN Conntrack Decisão de Roteamento Processo Local OUT Interface de Saida Conntrack Filtro Input Filtro Output Decisão de Roteamento Filtro Forward 170 Firewall – Connection Track • Estado das conexões: – established:: Significa que o pacote faz parte de uma conexão já estabelecida anteriormente. – new:: Significa que o pacote está iniciando uma nova conexão ou faz parte de uma conexão que ainda não trafegou pacotes em ambas direções. – related:: Significa que o pacote inicia uma nova conexão, porém está associada a uma conexão existente. – invalid:: Significa que o pacote não pertence a nenhuma conexão existente e nem está iniciando outra. 171 Firewall – Address List • A address list contém uma lista de endereços IP que pode ser utilizada em várias partes do firewall. • Pode-se se adicionar entradas de forma dinâmica usando o filtro ou mangle conforme abaixo: – Ações: • add dst to address list:: Adiciona o IP de destino à lista. • add src to address list:: Adiciona o IP de origem à lista. – Address List:: Nome da lista de endereços. – Timeout:: Porque quanto tempo a entrada permanecerá na lista. 165 Firewall – Técnica do “knock “ knock” 166 Firewall – Técnica do “knock “ knock” • • A técnica do “knock knock”” consiste em permitir acesso ao roteador somente após ter seu endereço IP em uma determinada address list. Neste exemplo iremos restringir o acesso ao winbox somente a endereços IPs que estejam na lista “libera_winbox” /ip firewall filter add chain=input protocol=tcp dst-port=2771 action=add add-src-to-address-list address-list=knock \ address-list-timeout=15s comment="" disabled=no add chain=input protocol=tcp dst-port=7127 src-address address-list=knock action= add-src-to-address-list \ address-list=libera_winbox address-list-timeout=15m comment="" comment disabled=no add chain=input protocol=tcp dst-port=8291 src-address address-list=libera_winbox action=accept disabled=no add chain=input protocol=tcp dst-port=8291 action=drop drop disbled=no 167 Firewall Protegendo o Roteador e os Clientes 172 Princípios básicos de proteção Proteção do próprio roteador Tratamento das conexões e eliminação de tráfego prejudicial/inútil. Permitir somente serviços necessários no próprio roteador. Prevenir e controlar ataques e acessos não autorizado ao roteador. Proteção da rede interna Tratamento das conexões e eliminação de tráfego prejudicial/inútil. Permitir somente os serviços necessários nos clientes. Prevenir e controlar ataques e acesso não autorizado em clientes. 173 Firewall – Tratamento de conexões • Regras do canal input – – – – – Descarta conexões inválidas. Aceitar conexões estabelecidas. Aceitar conexões relacionadas. Aceitar todas conexões da rede interna. Descartar o restante. 174 Firewall – Controle de serviços • Regras do canal input – – – – Permitir acesso externo ao winbox. winbox Permitir acesso externo por SSH. Permitir acesso externo ao FTP. Realocar as regras. 175 Firewall – Filtrando tráfego indesejável e possíveis ataques. • Controle de ICMP – Internet Control Message Protocol é basicamente uma ferramenta para diagnóstico da rede e alguns tipos de ICMP devem ser liberados obrigatoriamente. – Um roteador usa tipicamente apenas 5 tipos de ICMP(type:code), que são: • Ping – Mensagens (0:0) e (8:0) • Traceroute – Mensagens (11:0) e (3:3) • PMTUD – Mensagens (3:4) • Os outros tipos de ICMP podem ser bloqueados. 177 Firewall – Filtrando tráfego indesejável • IP’s Bogons: – Existem mais de 4 milhões de endereços IPV4. – Existem muitas ranges de IP restritos em rede públicas. – Existem várias ranges reservadas para propósitos específicos. – Uma lista atualizada de IP’s bogons pode ser encontrada em: http://www.team-cymru.org/Services/Bogons/bogon cymru.org/Services/Bogons/bogon-dd.html • IP’s Privados: – Muitos aplicativos mal configurados geram pacotes destinados a IP’s privados e é uma boa prática filtrá-los. filtrá 178 Firewal – Proteção básica • Ping Flood: – Ping Flood consiste no envio de grandes volumes de mensagens ICMP aleatórias. – É possível detectar essa condição no Mikrotik criando uma regra em firewall filter e podemos associá-la a uma regra de log para monitorar a origem do ataque. 179 Firewal – Proteção básica • Port Scan: – Consiste no scaneamento de portas TCP e/ou UDP. – A detecção de ataques somente é possível para o protocolo TCP. – Portas baixas (0 – 1023) – Portas altas (1024 – 65535) 180 Firewal – Proteção básica • Ataques DoS: – O principal objetivo do ataque de DoS é o consumo de recursos de CPU ou banda. – Usualmente o roteador é inundado com requisições de conexões TCP/SYN causando resposta de TCP/SYN-ACK TCP/SYN e a espera do pacote TCP/ACK. – Normalmente não é intencional ou é causada por vírus em clientes. – Todos os IP’s com mais de 15 conexões com o roteador podem ser considerados atacantes. 181 Firewal – Proteção básica • Ataques DoS: – Se simplesmente descartamos as conexões, permitiremos que o atacante crie uma nova conexão. – Para que isso não ocorra, podemos implementar a proteção em dois estágios: • Detecção – Criar uma lista de atacantes DoS com base em “connection limit”. • Supressão – Aplicando restrições aos que forem detectados. 182 Firewal – Proteção para ataques DoS Criar a lista de atacantes para posteriormente aplicarmos a supressão adequada. 183 Firewal – Proteção para ataques DoS • Com a ação “tarpit” aceitamos a conexão e a fechamos, não deixando no entanto o atacante trafegar. • Essa regra deve ser colocada antes da regra de detecção ou então a address list irá reescrevê-la todo tempo. 184 184 Firewal – Proteção básica • Ataque dDoS: – Ataque de dDoS são bastante parecidos com os de DoS, porém partem de um grande número de hosts infectados. – A única medida que podemos tomar é habilitar a opção TCP SynCookie no Connection Track do firewall. 185 PPP – Definições Comuns para os serviços • MTU/MRU:: Unidade máximas de transmissão/ recepção em bytes. Normalmente o padrão ethernet permite 1500 bytes. Em serviços PPP que precisam encapsular os pacotes, devedeve se definir valores menores para evitar fragmentação. Keepalive Timeout:: Define o período de tempo em segundos após o qual o roteador começa a mandar pacotes de keepalive por segundo. Se nenhuma reposta é recebida pelo período de 2 vezes o definido em keepalive timeout o cliente é considerado desconectado. Authentication: As formas de autenticação permitidas são: Pap:: Usuário e senha em texto plano sem criptografica. Chap: Usuário e senha com criptografia. Mschap1: Versão chap da Microsoft conf. RFC 2433 Mschap2: Versão chap da Microsoft conf. RFC 2759 250 PPPoE – Cliente e Servidor • PPPoE é uma adaptação do PPP para funcionar em redes ethernet. Pelo fato da rede ethernet não ser ponto a ponto, o cabeçalho PPPoE inclui informações sobre o remetente e o destinatário, desperdiçando mais banda. Cerca de 2% a mais. • Muito usado para autenticação de clientes com base em Login e Senha. O PPPoE estabelece sessão e realiza autenticação com o provedor de acesso a internet. • O cliente não tem IP configurado, o qual é atribuido pelo Servidor PPPoE(concentrador) (concentrador) normalmente operando em conjunto com um servidor Radius.. No Mikrotik não é obrigatório o uso de Radius pois o mesmo permite criação e gerenciamento de usuários e senhas em uma tabela local. • PPPoE por padrão não é criptografado. O método MPPE pode ser usado desde que o cliente suporte este método. 253 PPPoE – Cliente e Servidor • O cliente descobre o servidor através do protocolo pppoe discovery que tem o nome do serviço a ser utilizado. • Precisa estar no mesmo barramento físico ou os dispositivos passarem pra frente as requisições PPPoE usando pppoe relay. No Mikrotik o valor padrão do Keepalive Timeout é 10, e funcionará bem na maioria dos casos. Se configurarmos pra zero, o servidor não desconectará os clientes até que os mesmos solicitem ou o servidor for reiniciado. 254 Configuração do Servidor PPPoE 1. Primeiro crie um pool de IPs para o PPPoE PPPoE. /ip pool add name=pool-pppoe name=pool ranges=172.16.0.2 ranges=172.16.0.2-172.16.0.254 2. Adicione um perfil para o PPPoE onde: Local Address = Endereço IP do concentrado. Remote Address = Pool do pppoe. /ppp profile local-address=172.16.0.1 name=perfil-pppoe remote-address=pool-pppoe 255 Configuração do Servidor PPPoE 3. Adicione um usuário e senha /ppp secret add name=usuario password=123456 service=pppoe profile=perfil-pppoe Obs.: Caso queira verificar o MAC-Address,, adicione em Caller ID. Esta opção não é obrigatória, mas é um parametro a mais para segurança. 256 Configuração do Servidor PPPoE 4. Adicione o Servidor PPoE Service Name = Nome que os clientes vão procurar (pppoe-discovery). Interface = Interface onde o servidor pppoe vai escutar. /interface pppoe-server server add authentication=chap, mschap1, mschap2 default-profile=perfil-pppoe disabled=no interface=wlan1 keepalive-timeout=10 maxmru=1480 max-mtu=1480 max-sessions=50 mrru=512 one-session-per-host=yes servicename="Servidor PPPoE" 257 Mais sobre perfis Bridge: Bridge para associar ao perfil Incoming/Outgoing Outgoing Filter: Nome do canal do firewall para pacotes entrando/saindo. Address List: List Lista de endereços IP para associar ao perfil. DNS Server: Configuração dos servidores DNS a atribuir aos clientes. Use Compression/Encryption/Change Compression TCP MSS: caso estejam em default, vão associar ao valor que está configurado no perfil default-profile. 258 Mais sobre perfis Session Timeout: Duração máxima de uma sessão PPPoE. Idle Timeout: Período de ociosidade na transmissão de uma sessão. Se não houver tráfego IP dentro do período configurado, a sessão é terminada. Rate Limit: Limit Limitação da velocidade na forma rx-rate//tx-rate. Pode ser usado também na forma rx-rate/tx-rate rx rx-burst-rate/tx-burstrate rx--burst-threshould/tx-burst-threshould burst-time time priority rx-rate-min/tx-rate-min. Only One: One Permite apenas uma sessão para o mesmo usuário. 259 Mais sobre o database Service: Especifica o serviço disponível para este cliente em particular. Caller ID: MAC Address do cliente. Local/Remote Remote Address: Endereço IP Local (servidor) e remote(cliente) (cliente) que poderão ser atribuídos a um cliente em particular. Limits Bytes IN/Out: Quantidade em bytes que o cliente pode trafegar por sessão PPPoE. Routes:: Rotas que são criadas do lado do servidor para esse cliente especifico. Várias rotas podem ser adicionadas separadas por vírgula. 260 Mais sobre o PPoE Server O concentrador PPPoE do Mikrotik suporta múltiplos servidores para cada interface com diferentes nomes de serviço. Além do nome do serviço, o nome do concentrador de acesso pode ser usado pelos clientes para identificar o acesso em que se deve registrar. O nome do concentrador é a identidade do roteador. O valor de MTU/MRU inicialmente recomendado para o PPPoE é 1480 bytes. Em uma rede sem fio, o servidor PPPoE pode ser configurado no AP. Para clientes Mikrotik, a interface de rádio pode ser configurada com a MTU em 1600 bytes e a MTU da interface PPPoE em 1500 bytes. Isto otimiza a transmissão de pacotes e evita problemas associados a MTU menor que 1500 bytes. Até o momento não possuímos nenhuma maneira de alterar a MTU da interface sem fio de clientes MS Windows. A opção One Session Per Host permite somente uma sessão por host(MAC Address). Por fim, Max Sessions define o número máximo de sessões que o concentrador suportará. 261 Configuração do Lab ● ● ● ● Dividir em grupos de quatro Fazer a configuração de rede como ilustrado no slide a seguir Router R1 e R4 conectam no SSID AS100 Cada router tem sua rede local 192.168.XY.0/24 onde: ● ● X – número do grupo Y – número do router Configuração do Lab X – número do grupo AP SSID=AS100 192.168.x1.0/24 AS100 AP 10.20.0.1/24 192.168.x2.0/24 10.20.0.x1/24 10.20.0.x4/24 R1 192.168.x.1/30 192.168.x.2/30 R4 192.168.x.5/30 192.168.x.6/30 R2 192.168.x.9/30 R3 192.168.x.10/30 192.168.x4.0/24 192.168.x3.0/24 Open Shortest Path First (OSPF) • • • • • Areas Costs Virtual links Route Redistribution Aggregation 30 Protocolo OSPF • O protocolo OSPF utiliza o estado do link e o algoritmo de Dijkstra para construir e calcular o menor caminho para todos destinos conhecidos na rede; • Os roteadores OSPF utilizam o protocolo IP 89 para comunicação entre si; • O OSPF distribui informações de roteamento entre roteadores pertencentes ao mesmo AS. 31 Autonomous System (AS) ● ● Um AS é o conjunto de redes IP e roteadores sobre o controle de uma mesma entidade (OSPF, iBGP ,RIP) que representam uma única política de roteamento para o restante da rede; Um AS é identificado por um número de 16 ou 32 bits (0 – 4294967295) – A faixa de 64512 até 65534 é de uso privado http://www.iana.org/assignments/as-numbers/as-numbers.xml Exemplo de um AS Area Area Area Area 33 Áreas OSPF • A criação de áreas permite você agrupar uma coleção de roteadores (entre 50 e 60); • A estrutura de uma área não é visível para outras áreas; • Cada área executa uma cópia única do algoritmo de roteamento ; • As áreas OSPF são identificadas por um número de 32 bits(0.0.0.0 – 255.255.255.255) • Esses números devem ser únicos para o AS. 34 Tipos de Roteadores • Um ASBR(Autonomous System Border Router ) é um roteador que se conecta a mais de um AS; – Um ASBR é usado para redistribuir rotas recebidas de outros AS para dentro de seu próprio AS • Um ABR(Area Border Router) é um roteador que se conecta a mais de uma área; – Um ABR mantém multiplas cópias da base de dados dos estados dos links de cada área • Um IR(Internal Router) é um roteador que está conectado somente a uma área. 35 OSPF AS ASBR Area ABR Area ABR Area ABR Area ASBR 36 Área Backbone • A área backbone é o coração da rede OSPF. Ela possui o ID (0.0.0.0) e deve sempre existir; • A backbone é responsável por redistribuir informações de roteamento entre as demais áreas; • A demais áreas devem sempre estar conectadas a uma área backbone de forma direta ou indireta(utilizando virtual link). 37 Virtual Link • Utilizado para conectar áreas remotas ao backbone através de áreas não-backbone; 38 Virtual Link area-id=0.0.0.1 area-id=0.0.0.0 Virtual Link area-id=0.0.0.2 area-id=0.0.0.3 ASBR 39 Redes OSPF • São utilizada para encontrar outros roteadores OSPF correspondentes a área especificada; • Você deve utilizar exatamente as redes utilizadas no endereçamento das interfaces. Neste caso, o método de sumarização não é permitido. 40 Neighbours OSPF • Os roteadores OSPF encontrados estão listados na aba Neighbours; • Após a conexão ser estabelecida cada um irá apresentar um status operacional conforme descrito abaixo: – Full: Base de dados completamente sincronizada; – 2-way: Comunicação bi-direcional estabelecida; – Down,Attempt,Init,Loading,ExStart,Exchange: Não finalizou a sincronização completamente. 41 Neighbours OSPF 42 Áreas OSPF • Crie sua própria área OSPF; – Nome da área: area-z – Area-id: 0.0.0.z • Atribua uma rede a esta área; • Verifique sua aba neighbour e tabela de roteamento; • Os ABRs devem configurar também a área de backbone e as redes; 43 Tipos de LSA ● ● ● ● Type 1: router LSA – Enviado pelo router para anunciar as redes de suas interfaces. (Não deixa a área) Type 2: network LSA – Enviado apenas pelo DR para seu segmento e descreve outros routers na rede (vizinhos). Type 3: network summary LSA – Enviado pelo ABR para anunciar as redes da área a que ele pertence para outras áreas. Type 4: ASBR-summary LSA – Enviado pelo ABR, mas apenas internamente, para descrever como alcançar o ASBR. Tipos de LSA ● ● ● ● ● Type 5: AS-external LSA – Usado pelo ASBR para descrever redes (redistribuídas) externas ao AS. (Ex: rota padrão, conectadas.) Type 6: Group summary – Usado apenas para redes multicast (MOSPF – Multicast OSPF). Suportado por poucos routers. Type 7: NSSA external LSA – Usado por ASBR que participa de area NSSA para descrever rotas redistribuídas na área NSSA. LSA 7 é traduzido em LSA5 ao deixar a área. Type 8: External Attributes LSA – Implementado raramente e é usado quando informações BGP são levadas pelo OSPF. Type 9, 10, 11 are Opaque LSAs – São destinados para uso futuro em aplicações específicas. OSPF - Opções • Router ID: Geralmente o IP do roteador. Caso não seja especificado o roteador usará o maior IP que exista na interface. • Redistribute Default Route: – Never: nunca distribui rota padrão. – If installed (as type 1): Envia com métrica 1 se tiver sido instalada como rota estática, dhcp ou PPP. – If installed (as type 2): Envia com métrica 2 se tiver sido instalada como rota estática, dhcp ou PPP. – Always (as type 1): Sempre, com métrica 1. – Always (as type 2): Sempre, com métrica 2. 44 OSPF - Opções • Redistribute Connected Routes: Caso habilitado, o roteador irá distribuir todas as rotas relativas as redes que estejam diretamente conectadas a ele. • Redistribute Static Routes: Caso habilitado, distribui as rotas cadastradas de forma estática em /ip routes. • Redistribute RIP Routes: Caso habilitado, redistribui as rotas aprendidas por RIP. • Redistribute BGP Routes: Caso habilitado, redistribui as rotas aprendidas por BGP. • Na aba “Metrics” é possível modificar as métricas que serão exportadas as diversas rotas. 45 OSPF – Distribuição de Rotas • A rota default não é considerada uma rota estática!! 1 2 3 4 } 5 { 46 OSPF – Uso de métrica tipo 1 Custo=10 Custo=10 Custo=10 Custo Total=40 Custo=10 Origem Custo Total=49 Custo=10 Custo=10 Destino Custo=9 ASBR 47 OSPF – Uso de métrica tipo 2 Custo X Cost=10 Custo X Custo X Custo Total=10 Origem Custo X Custo Total=9 Custo X Destino Custo=9 ASBR 48 Redistribuição de Rotas • Habilite a re-distribuição de rotas conectadas com type 1; – Verifique a tabela de roteamento • Adicione uma rota estática para a rede 172.16.XY.0/24 • Habilite a re-distribuição de rotas estáticas com type 1; – Verifique novamente a tabela de roteamento 49 OSPF – Custo de interfaces • Por padrão todas interfaces tem custo 10; • Para alterar este padrão você deve adicionar interfaces de forma manual; 50 OSPF – Inface Lab • Escolha o tipo de rede correta para todas interfaces OSPF; • Atribua custos(próx. slide) para garantir o tráfego em uma única direção dentro da área; • Verifique rotas ECMP em sua tabela de roteamento; • Atribua custos necessários para que o link backup só seja usado caso outros links falhem; • Verifique a redundância da rede OSPF; • Confirme que o ABR seja o DR da sua área, mas não na área de backbone; 51 OSPF – Custos de Interface AP Principal Laptop ABR Laptop 100 10 Laptop BACKUP LINK 10 100 10 Laptop 100 52 OSPF – Roteadores designados • Para reduzir o tráfego OSPF em redes broadcast e NBMA (Non-Broadcast Multiple Access), um único fonte para atualização de rotas é criado – Os roteadores designados(DR); • Um DR mantém uma tabela completa da topologia da rede e envia atualizações para os demais roteadores; • O roteador com maior prioridade será eleito como DR; • Os demais serão eleitos como roteadores backup – BDR; • Roteadores com prioridade 0 nunca serão DR ou BDR. 53 NBMA Neighbors • Em redes nãobroadcast é necessário especificar os neighbors manualmente; • A prioridade determina a chance do neighbor ser eleito DR; 54 Área Stub • Uma área Stub é uma área que não recebe rotas de AS externos; • Tipicamente todas rotas para os AS externos são substituídas por uma rota padrão. Esta rota será criada automaticamente por distribuição do ABR; 55 Área Stub – Cont. • A opção “Inject Summary LSA” permite especificar se os sumários de LSA da área de backbone ou outras áreas serão reconhecidos pela área stub; • Habilite esta opção somente no ABR; • O custo padrão dessa área é 1; 56 Área NSSA(Not-So-Stubby) • Um área NSSA é um tipo de área stub que tem capacidade de injetar transparentemente rotas para o backbone; • Translator role – Esta opção permite controlar que ABR da área NSSA irá atuar como repetidor do ASBR para a área de backbone: – Translate-always: roteador sempre será usado como tradutor. – Translate-candidate: ospf elege um dos roteadores candidatos para fazer as traduções. 57 OSPF AS default area-id=0.0.0.0 area-id=0.0.0.2 NSSA default area-id=0.0.0.1 Virtual Link area-id=0.0.0.3 Stub ASBR 58 Área Lab • Modifique sua área para stub; • Verifique as mudanças em sua tabela de rotas; • Confirme que a distribuição de rotas default esteja “never” no ABR; • Marque a opção “Inject Summary LSA” no ABR e desabilite no IR. 59 Interface Passiva • O modo passivo permite desativar as mensagens de “Hello” enviadas pelo protocolo OSPF as interfaces dos clientes; • Portanto ativar este recurso é sinônimo de segurança; 60 Agregação de Áreas • Utilizado para agregar uma range de redes em uma única rota; • É possível atribuir um custo para essas rotas agregadas; 61 Resumo OSPF • Para segurança da rede OSPF: – Use chaves de autenticação; – Use a maior prioridade(255) para os DR; – Use o tipo correto de rede para as áreas; • Para aumenta a performance da rede OSPF: – Use o tipo correto de área; – Use agregação de áreas sempre que possível; 63 OSPF em redes VPN • Cada interface VPN dinâmica cria uma nova rota /32 na tabela de roteamento quando está ativa; • Isso causa dois problemas: – Cada mudança dessas resulta em novas atualizações do OSPF, caso a opção de redistribuir rotas conectadas esteja ativada. Em grandes redes isso causa um enorme flood!! – OSPF vai criar e enviar LSA pra cada interface VPN, caso a rede da VPN esteja atribuida a qualquer área OSPF. O que diminui a performance. 64 Área PPPoE – Tipo Stub ABR Area1 Area tipo = stub PPPoE server PPPoE server ~250 clientes PPPoE ~ 100 clientes PPPoE 65 Área PPPoE – Tipo Default ABR Area1 PPPoE server ~250 clientes PPPoE Area tipo = default PPPoE server ~ 100 clientes PPPoE 66 Área PPPoE – Discussão • Dê uma solução para o problema mencionado anteriormente quando se utiliza área do tipo “stub” ou Default; 67 Border Gateway Protocol (BGP) Autonomous System (AS) ● ● Conjunto de routers sob um único controle administrativo Intercâmbio de rotas: Routers dentro do AS usam IGP em comum ● Routers entre AS's usam EGP Tem seu próprio número (ASN) ● ● ● Suporta valores de 16-bit e 32-bit (0 – 4294967295) ● Números 64 512 a 65 534 são privados http://www.iana.org/assignments/as-numbers/as-numbers.xml Básico do BGP ● ● ● ● ● Significa Protocolo de Gateway de Borda Projetado como protocolo de roteamento Inter-AS A topologia da rede não é considerada, apenas informações de sua alcançabilidade. Único protocolo capaz de suportar redes do tamanho da Internet Usa algoritmo de vetor de caminho (path vector) Implementação do Vetor de Caminho ● ● Trata todo o AS como um único ponto no caminho O prefixo é anunciado com a lista de ASs ao longo do caminho, chamado AS Path. ● Esconde a topologia da rede dentro do AS ● Não garante ausência de loop dentro no AS Implementação do Vetor de Caminho 10.1.0.0/24 Add AS100 ao AS path AS100 AS200 Rejeita, AS100 já contido no AS path Add AS200 ao AS path Add AS300 ao AS path AS300 Recursos do BGP ● ● ● ● O BGP Speaker (router) anuncia os códigos dos recursos suportados Se o recurso recebido não for suportado, o peer remoto responde com uma notificação O BGP Speaker tenta a sessão novamente sem os recursos não suportados Alguns dos recursos anunciados pelo RouterOS: ● Route refresh ● Multi-protocol extension ● Suporte a AS com tamanho de 4 bytes (32 bits) Transporte BGP ● ● Opera com a troca de mensagens NLRI (Network Layer Reachability Information) A NLRI inclui um conjunto de atributos BGP e um ou mais prefixos com estes atributos associados ● Usa o TCP (179) como protocolo de transporte ● Inicialmente troca a tabela inteira entre os peers ● Depois troca-se apenas atualizações incrementais (mantêm a versão da tabela de roteamento) Tipo de mensagens BGP ● Quatro tipos: ● ● ● Open – Primeira mensagem enviada depois do estabelecimento da conexão TCP, contêm a lista de recursos. Confirmada por keepalive. Keepalive – não contêm dados, enviada para evitar que o hold timer expire Update – atualização de rotas. Contêm: – – ● NLRI Path attributes Notificação – enviada quando ocorre uma condição de erro, contêm o código e sub-código do erro Sessão BGP e atualizações Open com o recurso ASN4 AS100 Notificação recurso não sup. Open sem o recurso AS200 Passive BGP peer Keepalive AS200 AS100 Route Refresh message Update Networks ● ● ● ● ● ● Indica quais redes o BGP deve originar do router. Por padrão, a rede é anunciada apenas se ela existir na tabela de rotas. Essa sincronização pode ser desativada se: ● Seu AS não oferece serviço de trânsito ● Todos os routers de trânsito rodam BGP Desativar o sincronismo permite o BGP converger mais rápido. O sincronismo pode ser danoso se as rotas estão oscilando muito. Configuração em /routing bgp network Ativando o BGP /routing bgp instance set default as=300 router-id=10.10.10.4 /routing bgp peer add instance=default remote-address=10.10.10.1 remoteas=3000 Se o router-id não for especificado, será usado o menor endereço IP do router. Verifique a conectividade do BGP. Qualquer status diferente de established indica que os routers não se tornaram vizinhos (use print status para mais detalhes) [admin@R1] /routing bgp peer> print Flags: X - disabled, E - established # INSTANCE REMOTE-ADDRESS 0 E default 10.10.10.1 REMOTE-AS 3000 BGP e o connection-tracking ● ● O connection-tracking é incapaz de manter estados válidos de conexões com BGP multihomed. Os pacotes relacionados a uma determinada conexão pode viajar por diferentes caminhos – ● Não descarte conexões inválidas no firewall O connection-tracking pode ser desligado para obtermos melhor performance no router BGP Route Reflector ● ● ● Re-anuncia rotas iBGP para evitar full mesh Reduz o número de mensagens de comunicação Minimiza o tamanho dos dados por mensagem: ● Apenas o melhor caminho é refletido AS200 AS200 R3 R1 R2 R3 R1 R2 RR Configuração do Route Reflector ● RR é configurado ao habilitar a opção “client to client reflection”: /routing bgp instance set default client-to-client-reflection=yes /routing bgp peer add route-reflect=yes remote-peer=x.x.x.x (...) ● ● A reflexão de rotas deve ser habilitada apenas no router RR O RouterOS não pode ser configurado como um route reflector puro BGP Lab II ● Adicione R2 ao mesmo AS que R1 ● Adicione R3 ao mesmo AS que R4 ● Faça um peer BGP entre R2 e R3 ● Ative o OSPF entre os routers do mesmo AS ● Configure o OSPF para anunciar as redes WAN ● Coloque a interface WAN como passiva BGP Lab II X – número do grupo AP SSID=AS100 Peer BGP 192.168.x1.0/24 AS100 AP 10.20.0.1/24 AS1x1 10.20.0.x1/24 10.20.0.x4/24 R1 192.168.x.1/30 192.168.x.2/30 R4 192.168.x.5/30 192.168.x.6/30 R2 192.168.x.9/30 R3 192.168.x.10/30 AS1x2 192.168.x40/24 192.168.x3.0/24 192.168.x2.0/24 BGP Lab II [admin@R1] /ip route> print Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 ADb 0.0.0.0/0 10.20.0.1 20 1 ADC 10.20.0.0/24 10.20.0.11 R1_AP 0 2 ADC 192.168.1.0/30 192.168.1.1 R1_R3 0 3 ADo 192.168.1.8/30 192.168.1.2 110 4 ADC 192.168.11.0/24 192.168.11.0 local 0 5 Db 192.168.11.0/24 192.168.1.2 200 6 ADb 192.168.14.0/24 192.168.1.10 200 7 Db 192.168.14.0/24 10.20.0.14 20 8 ADo 192.168.12.0/24 192.168.1.2 110 9 Db 192.168.12.0/24 192.168.1.2 200 10 ADb 192.168.13.0/24 192.168.1.10 200 11 Db 192.168.13.0/24 10.20.0.14 20 BGP Lab II [admin@R2] /ip route> print Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 ADb 0.0.0.0/0 192.168.1.1 200 1 ADo 10.20.0.0/24 192.168.1.1 110 2 ADC 192.168.1.0/30 192.168.1.2 R3_R1 0 3 ADC 192.168.1.8/30 192.168.1.9 R3_R4 0 4 ADo 192.168.11.0/24 192.168.1.1 110 5 Db 192.168.11.0/24 192.168.1.1 200 6 ADb 192.168.14.0/24 192.168.1.10 20 7 ADC 192.168.12.0/24 192.168.12.0 local 0 8 Db 192.168.12.0/24 192.168.1.1 200 9 ADb 192.168.13.0/24 192.168.1.10 20 O BGP redistribui apenas a melhor rota. Como em R1 a melhor rota é a recebida de R2, o router R1 não redistribui .14.0/24 e .13.0/24 de volta a R2. Interior e Exterior BGP ● iBGP – pareamento entre routers do mesmo AS ● eBGP – pareamento entre routers de ASs diferentes AS200 R2 eBGP AS100 AS300 R3 R1 R4 R5 R6 iBGP eBGP AS400 eBGP ● ● ● ● Quase sempre é formado entre peers diretamente conectados (roteadores borda do AS). A configuração de multi-hop é requerida se os peers não são diretamente conectados Adiciona seu AS no PATH dos prefixos anunciados Por padrão o Next-hop é alterado para “si mesmo” (self) Exemplo de eBGP Multihop Lo: 10.1.1.2 Lo: 10.1.1.1 AS100 AS200 R1 172.16.1.1 Eth1 172.16.1.2 Eth1 R2 Eth2 /routing bgp peer add remote-address=10.1.1.x remote-as=x multihop=yes \ update-source=lo Essa configuração requer rotas estáticas ou IGP habilitado para que os vizinhos alcancem um ao outro. Configurando eBGP em endereço Loopback pode proteger o BGP de ataques DoS. iBGP ● Next-hop não é alterado por padrão: ● ● Usa IGP (RIP, OSPF ou estática) para garantir a alcançabilidade dentro do AS Atributos aprendidos via iBGP não são alterados para evitar impactos na escolha do caminho para as redes externas ● O AS Path também não é manipulado ● Provê maneiras de controlar os pontos de saída do AS ● As rotas externas recebidas de um peer iBGP não é propagada para outros peers iBGP: ● Requer full mesh entre os peers iBGP. loopback ● ● ● Elimina a dependência de interface física para fazer a conexão TCP. Mais usado entre peers iBGP No RouterOS uma bridge vazia pode ser usada como loopback loopback: 10.1.1.2 loopback: 10.1.1.1 AS100 R2 R1 Eth1 Eth1 Eth2 /interface bridge add name=loopback /ip address add address=10.1.1.x/32 interface=loopback /routing bgp peer add remote-peer=10.1.1.x remote-as=100 update-source=loopback BGP Lab III ● Aprimore sua configuração usando endereços de loopback entre os peers iBGP 10.255.X.Y/32, onde X – número do grupo Y – número do router ● ● Adicione o IP da loopback nas redes OSPF Atribua o IP da loopback como router-id do OSPF e do BGP Distribuição de rotas ● As rotas IGP (static, OSPF, RIP, connected) podem ser redistribuídas /routing bgp instance set default redistribute-static=yes set default redistribute-ospf=yes ● Prefix origin fica “incomplete” ● Risco de anunciar todas as rotas IGP ● Sempre use filtros de rotas para evitar anúncios indesejáveis Exemplo de Distribuição AS200 10.1.1.0/24 AS100 R1 R2 /ip route add dst-address=10.1.1.0/24 type=unreachable /routing bgp instance set default redistribute-static=yes ● ● Os pacotes serão descartados a menos que rotas mais específicas estejam presentes Boa maneira de anunciar redes maiores Filtros de Rotas ● ● ● ● Principal ferramenta para controlar e modificar informações de roteamento Organizadas em chains como no firewall Especifique no peer BGP quais chains quer usar ou na instância BGP em out filter Os prefixos passam primeiro na chain da instância, depois passam na chain do peer /routing bgp peer set 0 in-filter=bgp-in out-filter=bgp-out /routing filter add chain=bgp-out prefix=10.1.1.0/24 \ action=discard invert-match=yes Exemplo de Filter Chain /routing bgp instance set default out-filter=bgp-o /routing bgp peer set peer1 out-filter=bgp-peer-o /routing filter add chain=bgp-o prefix=10.1.1.0/24 action=accept \ set-bgp-communities=30:30 add chain=bgp-o action=discard add chain=bgp-peer-o prefix=10.1.1.0/24 action=passthrough \ set-out-nexthop=192.168.99.1 3 ADb dst-address=10.255.1.2/32 gateway=10.20.0.12 gateway-status=192.168.99.1 reachable ether2 distance=20 scope=40 target-scope=10 bgp-as-path="112" bgp-origin=igp bgp-communities=30:30 received-from=peer2 Filtro de Prefixo 10.1.1.0/24 AS100 AS400 R4 AS300 R1 R3 10.1.2.0/24 AS200 R2 # config no R3 /routing bgp peer set peer1 out-filter=bgp-out /routing filter add prefix=10.1.0.0/16 prefix-length=16-32 \ chain=bgp-out action=discard Filtro de AS Path ● ● Pode ser configurado para permitir atualizações somente para/de determinado AS Suporte expressões regulares ● “.” - qualquer caractere simples ● “^” - início do as-path ● “$” - fim do as-path ● “_” - coincide com vírgula, espaço, início e fim do as-path # config no R3 /routing filter add chain=bgp-out action=discard \ bgp-as-path=_200_ BGP Soft Reconfiguration ● ● Quando action=discard é usada, as rotas não são atualizadas depois da mudança de filtros. Solução ● Use action=reject para manter as rotas em memória ● Dynamic (o peer precisa suportar o recurso refresh): – – – Peer atualiza as rotas após as mudanças. Não é usada memória adicional Não é feito automaticamente – precisa rodar o comando “refresh” BGP Lab IV ● Crie filtros de rotas de maneira que: ● R1 não receba o prefixo 192.168.x4.0/24 via AP ● R2 não receba o prefixo 192.168.x3.0/24 de R3 ● R3 não receba o prefixo 192.168.x2.0/24 de R2 ● R4 não receba o prefixo 192.168.x1.0/24 via AP BGP Lab IV Vamos analisar o R2. Se a configuração ficou correta, o traceroute para a rede x4 deve ir por R3 e o traceroute para x3 deve ir pelo AP [admin@R2] /ip address> /tool traceroute 192.168.14.1 srcaddress=192.168.12.1 # ADDRESS RT1 RT2 RT3 STATUS 1 192.168.1.6 4ms 4ms 4ms 2 192.168.14.1 3ms 4ms 4ms [admin@R2] /ip address> /tool traceroute 192.168.13.1 srcaddress=192.168.12.1 # ADDRESS RT1 RT2 RT3 STATUS 1 192.168.1.1 2ms 2ms 2ms 2 10.20.0.14 3ms 4ms 4ms 3 192.168.13.1 6ms 6ms 6ms Algorítimo de decisão do BGP ● ● ● ● BGP usa o único melhor caminho para alcançar o destino BGP sempre propaga o melhor caminho para seus vizinhos Diferentes atributos de prefixos são usados para determinar o melhor caminho, como weight, next-hop, as-path, local-pref etc. Atribuir no peer o IP da loopback pode forçar o BGP a instalar rota ECMP (para load balancing). Escolha do melhor caminho ● Validação do Next-hop ● WEIGHT maior (padrão = 0) ● LOCAL-PREF maior (padrão = 100) ● Menor AS-PATH ● Path originado localmente (aggregate, BGP network) ● Menor origin type (IGP, EGP, Incomplete) ● Menor MED (padrão = 0) ● Prefere eBGP ao invés de iBGP ● Prefere a rota com menor router ID ou ORIGINATOR_ID ● Cluster de Route Reflectors mais próximo (padrão = 0) ● Prefere o caminho que vier do vizinho de menor IP Nexthop ● Endereço IP usado para alcançar determinado destino ● Para eBGP, o nexthop é o IP do vizinho ● O nexthop anunciado via eBGP é levado no iBGP AS100 Dst: 172.16.0.0/24 next-hop:10.1.1.1 Dst: 172.16.0.0/24 next-hop:10.1.1.1 R1 10.1.1.1 172.16.0.0/24 10.1.1.2 R3 R2 10.30.1.1 10.30.1.2 AS200 Nexthop self Força o BGP a atribuir seu próprio IP como nexthop # config no R2 /routing bgp peer set peer1 nexthop-choice=force-self AS100 Dst: 172.16.0.0/24 next-hop:10.1.1.1 Dst: 172.16.0.0/24 next-hop:10.30.1.1 R1 10.1.1.1 172.16.0.0/24 10.1.1.2 R3 R2 10.30.1.1 10.30.1.2 AS200 Weight ● Weight é atribuído localmente pelo router ● Prefixos sem atribuição de weight tem o valor padrão 0 ● Rota com maior weight é preferida AS200 AS100 R3 R1 172.16.0.0/24 Weight=100 R2 AS300 172.16.0.0/24 Weight=50 Local Preference ● Indica qual caminho tem preferência para sair do AS ● Caminho com maior Local Pref é escolhido (padrão: 100) ● É anunciado para dentro do AS 10.1.1.0/24 AS100 AS200 R1 R5 AS300 Local-pref = 200 R4 R2 R3 Local-pref = 100 AS Path ● Lista de números AS que um update percorreu. AS300 R3 AS200 R2 10.1.1.0/24 AS-path:200,100 AS400 R4 AS-path: 300,200,100 AS-path:100 AS100 R1 AS-Path Prepend A manipulação do AS-Path pode ser usada para influenciar a escolha do melhor caminho pelo tráfego vindo dos routers acima. 172.16.0.0/24 AS-Path: 200,300 172.16.0.0/24 AS-Path: 100,300,300 AS200 AS100 R3 R1 Prepend = 2 172.16.0.0/24 R2 AS300 Origin ● Informação da origem da rota: ● ● ● IGP – interna ou proveniente do AS. EGP – rota aprendida via Exterior Gateway protocol Incomplete – origem é desconhecida, ocorre quando a rota é redistribuida no BGP. MED ● ● ● ● Multi Exit Discriminator ou Metric – dica para o vizinho externo sobre a preferência do caminho dentro do AS Menor metrica é preferida (padrão = 0) Valor trocado entre os AS e usado para tomar decisão dentro do outro AS, não é encaminhado para terceiro AS. Ignorado se recebido de diferentes ASs Exemplo de MED AS100 Med=10 AS300 Med=0 R4 R1 Med=50 Med=100 R3 R2 AS200 R1, R2 e R3 anunciam a mesma rede para R4 com valores diferentes de MED. R4 compara apenas os MEDs vindos de R2 e R3, MED vindo de R1 é ignorado (outros atributos são usados para seleção do melhor caminho). BGP Lab V X – número do grupo AP SSID=AS100 192.168.x1.0/24 AS100 AP 192.168.x1.0/24 AS1x1 R1 192.168.x2.0/24 192.168.x4.0/24 192.168.x2.0/24 R4 R2 192.168.x3.0/24 R3 192.168.x4.0/24 AS1x2 192.168.x3.0/24 Use as-path prepend para configurar fail-over no BGP e balanceamento de carga como ilustrado Community ● ● ● Atributo para grupos de destino Filtros podem facilmente ser aplicados para todo o grupo Grupos padrão: ● No-export – não anuncia para o peer eBGP ● No-advertise – não anuncia para qualquer peer ● Internet – anuncia para a community Internet ● Local-as – não anuncia para fora do AS local (em redes não-confederadas é o mesmo que noexport) Exemplo de Community Assumindo que não queremos que R2 propague rotas aprendidas de R1 10.1.1.0/24 AS100 AS300 R3 AS200 R1 R2 # config no R1 /routing filter add chain=bgp-out action=passthrough \ set-bgp-communities=no-export Community (continuação) ● Valor de 32-bit escrito no formato “xx:yy” ● Dá ao cliente mais controle sobre políticas ● ● Simplifica a configuração em “upstream*” (*operadoras) Pode ser usado por ISPs para: – – – Opções de prepend do AS Restrições geográficas Blackholing (criação de blackhole), etc. Exemplo de Community (cont.) ● Communities públicas definidas pelo AS 100 ● 100:500 – anuncia para todos os peers ● 100:501 – anuncia para o AS 400 10.1.1.0/24 community=100:500 10.2.2.0/24 community=100:501 AS 400 ISP AS100 AS300 AS 500 Exemplo de Community (cont.) # config no router AS300 /routing bgp peer set toAS100 out-filter=bgp-out-as100 /routing filter add prefix=10.1.1.0/24 action=accept\ chain=bgp-out-as100 set-bgp-communities=100:500 add prefix=10.2.2.0/24 action=accept\ chain=bgp-out-as100 set-bgp-communities=100:501 # config no router AS100 /routing bgp peer set toAS500 out-filter=bgp-out-as500 /routing filter add bgp-communities=100:501 action=discard\ chain=bgp-out-as500 Exemplo de ISP aut-num: AS2588 as-name: LatnetServiss-AS descr: LATNET ISP member-of: AS-LATVIA remarks: +-------------------------------------------------remarks: | remarks: | x=0 Anuncia como vier remarks: | x=1 Prepend +1 remarks: | x=2 Prepend +2 remarks: | x=3 Prepend +3 remarks: | x=4 Prepend +4 remarks: | x=5 Prepend +5 remarks: | remarks: | 2588:400 Latvian Nets remarks: | 2588:500 Anuncia para LIX (Latvian Internet Exchange) remarks: | 2588:666 Não anuncia (blackhole) remarks: | 2588:70x Anuncia para uplinks com $x prepend remarks: | 2588:900 Recebidas de LIX (Latvian Internet Exchange) remarks: | remarks: | Para mais informação favor enviar e-mail para: remarks: | iproute (arroba) latnet (ponto) lv remarks: +-------------------------------------------------- Communities estendidas ● ● Usado para levar campos adicionais em cenários com L2VPN e VPNv4 Alguns campos adicionais: ● Route Targets ● Site of Origin ● Control flags ● MTU ● Encapsulation flags Agregação de rotas Sumarização de rotas mais específicas em redes maiores. Pode ser usado para esconder a topologia. Funciona apenas na mesma instância das rotas BGP AS400 R4 10.1.1.0/24 10.0.0.0/8 AS100 R1 AS300 R3 10.1.2.0/24 AS200 R2 # config no R3 /routing bgp aggregate add instance=default summary-only=yes \ prefix=10.0.0.0/8 action=passthrough inherit-attributes=no BGP Multi-Protocolo ● ● ● O formato do pacote BGP é projetado para IPv4 O atributo “address family” foi criado para levar novos tipos de endereços. RouterOS suporta as seguintes famílias de endereços: ● IPv6 ● L2VPN ● VPN4 ● Cisco style L2VPN Instância BGP ● Cada instância BGP roda seu próprio algorítimo de seleção BGP ● ● As rotas entre instâncias são eleitas por outros meios (como “distance”) As rotas de uma instância não são redistribuídas automaticamente para outra instância ● Necessita de: /routing bgp instance set <id> redistribute-other-bgp=yes ● Os atributos BGP são herdados da outra instância Multi-protocol Label Switching (MPLS) LDP e VPLS (VPN layer2) Configuração do MPLS Lab ● Resetar a configuração do router ● Configurar o cenário como ilustrado ● ● Configurar endereço de loopback e ativar o OSPF em todos os links Adicionar o endereço de loopback nas redes do OSPF Configuração do MPLS Lab X – número do grupo AP SSID=AS100 192.168.x1.0/24 AS100 AP 10.20.0.1/24 192.168.x2.0/24 10.20.0.x1/24 R1 192.168.x.1/30 Lo:10.255.x.1 10.20.0.x4/24 Lo:10.255.x.4 192.168.x.2/30 R4 192.168.x.5/30 192.168.x.6/30 192.168.x4.0/24 R2 Lo:10.255.x.2 192.168.x.9/30 R3 192.168.x.10/30 Lo:10.255.x.3 192.168.x3.0/24 Básico do MPLS ● ● ● Tecnologia usada para encaminhar pacotes, baseada em labels (rótulos) pequenos Objetivo inicial: encaminhamento mais eficiente que o roteamento IP (similar ao ATM switching) Serve de base para alguns “Serviços Avançados”: ● Layer3 VPNs ● Qualquer “coisa” sobre MPLS (AtoM), Layer2 VPNs ● MPLS Traffic Engineering (engenharia de tráfego) ● Serviços com largura de banda garantia Básico do MPLS ● LER – Label Edge Router ou Provider Edge router (PE) ● LSR – Label Switch Router ou Provider router (P) Pacotes são classificados e rotulados no ingress LER MPLS Backbone LSRs encaminham pacotes usando a comutação de rótulos Rótulo é removido no egress LER Básico do MPLS ● ● Também chamado de protocolo de camada 2.5 Cabeçalho Shim (32 bit) colocado entre a camada OSI 2 e 3: ● Label (20 bits) ● EXP (3 bits) – CoS (classe do serviço) ● End of Stack flag (1 bit) – se o rótulo atual é o último da pilha ● TTL (8 bits) L2 MPLS Label L3 EXP S TTL Básico do MPLS ● É permitido mais de um rótulo ● Os rótulos são agrupados na pilha de rótulos ● LSRs sempre usam o rótulo do topo da pilha ● Existem diversos métodos de distribuição de rótulos: ● Static Label mapping – mapeamento estático ● LDP – mapeia destinos IP unicast em rótulos ● BGP – rótulos externos (VPN) ● RSVP (46), CR-LDP – usados para engenharia de tráfego e reserva de recursos (banda) LDP ● ● Significa Label Distribution Protocol (protocolo de distribuição de rótulos) Baseia-se na informação de roteamento proveniente do IGP – cria rótulos locais vinculados a cada prefixo IP e distribui a seus Vínculos remotos vizinhos LDP Prefixo IGP 10.1.1.0/24 10.1.1.0/24 Label 21 Local binding Label 21 10.1.1.0/24 Label 22 Local binding Label 22 10.1.1.0/24 Label 23 Local binding Label 23 Números bem conhecidos ● ● ● LDP Hello messages – porta UDP 646 LDP transport session establishment – porta TCP 646 Hellos são enviadas a “todos os routers da sub-rede” pelo endereço de multicast (224.0.0.2) Configurando LDP ● Pode ser configurado no menu “/mpls ldp” /mpls ldp set enabled=yes transport-address=x.x.x.x \ lsr-id=x.x.x.x /mpls ldp interface add interface=ether1 ● Atribuir o endereço de transporte garante o comportamento adequado de “penultimate hop popping” LDP Lab ● ● ● ● Habilite o LDP e atribua aos lsr-id e transport address o mesmo endereço de loopback Adicione as interfaces LDP que conectam nos routers vizinhos Verifique se os vizinhos LDP são criados /mpls ldp neighbor print Cheque a MPLS forwarding-table /mpls forwarding-table print Labels Reservados ● Labels de 0 a 15 são reservados, mas apenas 4 são usados até então: ● 0 – explicit NULL ● 1 – router alert ● 2 – Ipv6 explicit NULL ● 3 – implicit NULL PHP Implicit NULL 0 PHP Explicit NULL Penultimate Hop Popping ● ● ● ● Este router é o ponto de saída (egress) para a rede que está diretamente conectada a ele, o próximo salto não é um router MPLS Anunciado pelo rótulo “implicit null” Penultimate hop popping garante que o último router não precisa buscar por rótulos quando se sabe antecipadamente que ele terá que rotear (roteamento ip) o pacote Este penúltimo router então retira os rótulos e o próprio cabeçalho MPLS e encaminha o pacote IP original para o último salto Explicit NULL ● ● ● ● Se configurado, o penúltimo LSR encaminha o pacote com o label NULL (rótulo nulo), ao invés de retirar o cabeçalho. Útil para preservar o QoS Não é necessário se a pilha contiver ao menos dois rótulos (o rótulo interno ainda pode levar o valor de QoS) Implicit NULL é usado por padrão Sessões LDP direcionadas ● ● Em alguns casos é necessário estabelecer sessões LDP direcionadas (sessão entre LSRs remotos, não diretamente conectados) Configuração: /mpls ldp neighbor add transport=<remote_ip> \ send-targeted=yes Targeted LDP LDP LDP LDP Layer 2 VPN VPLS baseada em LDP VPLS em LDP ● Também chamadas de L2VPN ou EoMPLS ● Une redes LAN individuais através do MPLS ● Usa LDP para negociar os túneis VPLS ● ● O campo “pseudowire demultiplexor” (rótulo PW) é usado para identificar o túnel VPLS O pseudowire (pseudo-cabo) tem funções de aprendizado MAC, flooding e forwarding VPLS em LDP PW label frame L2 do cliente SN label L2 header Site 1 CE1 PE1 PE2 Site 3 P1 CE3 PE3 backbone MPLS Pseudo wire Site 2 CE2 CE - customer's edge router PE - provider's edge router P – provider's core router Configurando VPLS ● Adicione os pontos de conclusão do túnel VPLS: /interface vpls add remote-peer=x.x.x.x vpls-id=x:x ● O vizinho LDP alvo é adicionado dinamicamente ● O túnel ID deve ser único para cada VPLS ● As informações relacionadas ao túnel VPLS podem ser visualizadas pelo comando: /interface vpls monitor ● Coloque em bridge o VPLS com sua LAN para obter conectividade transparente Split Horizon ● ● ● Encaminha o frame Ethernet vindo do PE para os CEs conectados Os pacotes não são encaminhados para as interfaces com o mesmo valor de horizon O valor de horizon é atribuído na configuração da porta da bridge: /interface bridge port add bridge=vpn interface=vpls1 horizon=1 CE1 CE3 1 PE1 PE3 1 CE2 1 1 PE2 CE4 VPLS em LDP: Lab ● ● ● Crie túneis VPLS entre todos os routers do grupo (VPLS ID x:x) No seu router, coloque em bridge as interfaces VPLS com sua LAN. A rede da VPN é 192.168.x0.0/24 onde: ● ● ● x – número do grupo Configure o Split horizon para evitar loops Teste a conectividade entre notebooks em seu grupo VPLS em LDP: Lab túnel VPLS X – número do grupo AP SSID=AS100 192.168.x0.1/24 Site 1 AS100 AP 192.168.x0.2/24 rede VPN: 192.168.x0.0/24 R1 Site 2 Lo:10.255.x.1 Lo:10.255.x.4 Site 4 192.168.x0.4/24 R2 Lo:10.255.x.2 R4 R3 Lo:10.255.x.3 Site 3 192.168.x0.3/24 [admin@R4] /mpls ldp neighbor> print Flags: X - disabled, D - dynamic, O - operational, T - sendingtargeted-hello, V - vpls # TRANSPORT LOCAL-TRANSPORT PEER SEND-TARGETED ADDRESSES 0 DOTV 10.255.0.3 10.255.0.4 10.255.0.3:0 no 10.255.0.3 192.168.1.2 1 DOTV 10.255.0.2 10.255.0.4 10.255.0.2:0 no 10.20.0.12 10.255.0.2 2 DOTV 10.255.0.1 10.255.0.4 10.255.0.1:0 yes 10.20.0.11 10.255.0.1 [admin@R4] /interface vpls> monitor 0 remote-label: 40 local-label: 28 remote-status: transport: 10.255.0.1/32 transport-nexthop: 192.168.1.9 imposed-labels: 22,40 Importância do MTU L2/MPLS ● MTU MPLS = MTU IP (L3) + cabeçalhos MPLS ● MTU MPLS é ajustável no menu /mpls interface ● Se o MTU for muito grande e o próximo cabeçalho for IP ● Então gere “ICMP Need Fragment error” ● Senão, descarte o pacote silenciosamente Eth(14) VLAN(4) MPLS(4) IP(20) DATA(1480) IP (L3) MTU MPLS MTU L2 MTU Full Frame L2MTU: 1500 Eth(14) IP(20) DATA(1480) R1 L2MTU: 1526 Eth(14) MPLS(4)VPLS(4) CW(4) Eth(14) IP(20) DATA(1480) R2 L2MTU: 1526 Eth(14) MPLS(4)VPLS(4) CW(4) Eth(14) IP(20) DATA(1480) R3 L2MTU: 1522 Eth(14) VPLS(4) CW(4) Eth(14) IP(20) DATA(1480) R4 L2MTU: 1500 Eth(14) IP(20) DATA(1480) VPLS Control Word ● ● ● 4-bytes para Control Word (CW) são usados para fragmentação e remontagem dos pacotes dentro do túnel VPLS CW opcional é adicionado entre o rótulo PW e o payload do pacote O CW pode ser desativado para compatibilidade com outros fabricantes (algumas VPLS Cisco em BGP) Resumo Geral ● ● ● ● MPLS melhora a performance Muito fácil de habilitar em configurações de core já existentes Muito fácil para migrar de EoIP para VPLS Novas possibilidades para os ISPs oferecerem novos serviços Contatos Leonardo Rosa www.brauser.com.br leonardo@brauser.com.br 71-4141-1144 71-9972-8523 Vivo