BGP - Border Gateway Protocol

Quando não usar BGP?
• • • • • •

Tiver uma conexão simples com Internet (ISP) ou outro AS; Não há preocupação com políticas e seleção de rotas; Mesma política de roteamento utilizada pelo ISP (Bloco CIDR pertencente ao ISP); Roteador com pouca memória; Compreensão limitada de filtro de rotas e seleção de caminhos; Baixa largura de banda entre AS's.

Características
• • • • • • • • • • •

Atualizações confiáveis (TCP 179); Não exige topologia hierárquica; Não possui mecanismo de retransmissão ou recuperação de erro, pois utiliza o TCP; Envia mensagens periódicas de Keepalive, semelhante ao hello; Atualizações incrementais (triggered update); Livre de loop, pois não aceita atualizações de rotas; Possui uma lista do caminho completo até a rede de destino incluindo os AS; Possui Split Horizon: rotas aprendidas por um IBGP não são propagadas para os IBGPS vizinhos; É necessário Full-Mesh se não usar roteadores refletores ou confederações; AS privados= 64512 to 65535; Não é aplicado nas interfaces e sim no router inteiro. Passiveinterface não funciona.

Tipos de BGP
• •

IBGP - Internal BGP roda entre vizinhos na mesma AS. Não necessariamente precisam estar conectados entre si; EBGP - External BGP roda entre dois vizinhos conectados em diferentes AS, não precisam estar diretamente conectados;

se propaga para os vizinhos. Garante o ambiente Isento os loops. Na tabela BGP aparece como: I= quando aprendida por IGP. Para manipular o tráfego com As-path usa-se o prepend. • • • Origin . mas pode influenciar a forma como o seu trafego chega até o AS vizinho.Tipo 2 .Tipo 1 . os routers do IBGP tem que conhecer a rede /30 entre os As's (EBGP) por um IGP ou rota estática. AS-path .Quando o EBGP anuncia uma rota do seu vizinho ele anuncia o vizinho como next-hop. rotas aprendidas não são. É aquele que todas as implementações do BGP devem reconhecer. Os routers que divulgam para IBGP não mudam o atributo AS-Path. .º da AS é pré-anexado aquela atualização (colocado no inicio da lista de AS's que foram atravessadas até chegar o destino.Sempre que uma atualização de rota passa através de uma AS o N.Anuncia o próximo salto para alcançar a rede de destino. Next-Hop . Roteamento baseado em Políticas Com essas políticas não se pode influenciar como o AS vizinho irá rotear o seu tráfego. E= Quando aprendida por EGP e ?= Quando a origem da rota é desconhecida (para rotas estáticas e de redistribuição). Geralmente o Next-Hop é o endereço da rede / 30.Indica a origem da rota. O router EBGP anuncia para o IBGP (routers internos) o Next-Hop como o endereço da rede /30 (endereço da rede entre os AS's). Atributos São informações sobre as métricas BGP incluídas nas mensagens de atualização do BGP Well-Known mandatory .atributos bem conhecidos mandatórios devem aparecer na descrição da rota. Em NBMA o router se anuncia. Somente rotas originadas no router IBGP são passadas para um vizinho IBGP. Rotas IBGP aprendidas por outro IBGP são passadas apenas para o EBGP (solução: routereflector).Tipo 3 .

não é passado para os peers EBGP e Informa no AS qual o melhor caminho para sair do AS.Well-Known discretionary . Um caminho com Local preference maior é preferido.65535. em routers CISCO é colocado por default o 0 que indica a melhor rota.Chamado de métrica. Atomic aggregate . default=32768 e 0 para rotas aprendidas por outro BGP speaker. Optional Transitive .Roda dentro da AS e deve ser excluído se não implementado • • MED . caso o router não possua.Informa o AS vizinho que o router de origem agregou as rotas.atributos bem conhecidos arbitrário . Originator-ID – Tipo 9 .Serve para filtrar rotas de entrada e saída baseado na comunidade. Default Cisco = 100.Tipo 8 . Não é propagado para nenhum vizinho. Synchronization Um router não deve anunciar uma rota fora da AS antes que todos os outros tenham aprendido. • • Local Preference .Particular CISCO.Atributo que carrega o router ID e o AS de quem originou a rota.Informa o ID do router e o AS que executou a agregação da rota. Esse atributo tem prioridade sobre o Local Preference. Apenas os Opcionais Transitivos podem ser marcados como parciais.Opcional Transitivo .Opcional não-transitivo . quanto mais baixo melhor.Opcional. mais alto melhor. mas no padrão IETF é colocado como infinito.Roda internamente na AS. uso local somente no router para definir o peso da rota (preferencia) 0 . É a divulgação de um caminho preferido dentro de um AS para AS’s externos. Utilizado quando tem 2 entradas para o mesmo AS. Pode-se configurar para manter o padrão: bgp bestpath missing-as-worst. É uma forma de influenciar outro AS onde ele deve optar para atingir determinada rota. Se não estiver habilitado a opção de verificar o MED. é apenas para uso local.Não precisa aparecer nas descrições de rotas.Tipo 5 . • • Community . Aggregator .Tipo 6 . Optional nontransitive . Propaga-se entre os AS's. .Tipo 4 . deve ser passado inalterado.Tipo 7 . a pior rota. Weight . 32bits (community Filters).

. são: As-Path. deve-se usar a sincronização. diversos caminhos exige diversas mensagens. Pode ser desabilitado se todos os routers de trânsito estiverem em full-mesh. My AS . Update – (Tipo 2) Contem informações sobre um caminho. a utilizada é a 4. Path attributes – Atributos de caminhos. Origin. O ID do router é definido igual no OSPF. e confirmada com um keepalive. Quando estiver implementado o multihome. Ligado por Default. Evita buracos negros dentro da AS..Versão do BGP. • • • • • Holdtime .Authentication – Se usado. Tipos de Mensagens Todas as mensagens possuem o mesmo cabeçalho Open – (Tipo 1) Primeira mensagem enviada após a conexão TCP ser estabelecida. Network layer reachability Information – Esse campo contém uma lista dos prefixos de endereço IP que podem ser atingidos por esse caminho. Não é necessário se o AS não é um AS de transito (AS que liga ASs). todos os atributos. Desabilitado a convergência é mais rápida. • • • Withdrawn routes – Lista dos prefixos de endereço IP que estão sendo retiradas de serviço. BGP router ID .tempo máximo entre mensagens sucessivas de keepalive e update do remetente.• • • • • • Gera consistência das informações dentro da AS. BGP identifier (Router ID) – É o identificador do remetente. se houver uma. 180s de default.Identifica o remetente. pelo maior IP ativo de todas as interfaces a menos que exista um IP no loopback. é o maior ip da interface ou da loopback. Local Preference.. . Igual ao OSPF.O numero da AS do remetente. Se o holdtime fo zero os routers não enviaram Keepalive. Version .

a Finite State Machine Error. Apenas 1 rota para cada destino. Estabilished – Troca de mensagem de atualização. OpenConfirm – Conexão estabelecida. que leva um router através dos seguintes estados: Idle – Estado inicial. Se o caminho for interno não deve preferir se a rota não estiver sincronizada. OpenSent – Estado e espera da resposta de conexão do vizinho. Hold Time Expired. Preferir rota com Local Preference mais alto dentro da AS (melhor caminho pra sair da AS). ou seja. an Update Message Error. não esta na tabela de roteamento IGP . com tempo mais rápido que o holdtime Estado do vizinho BGP O protocolo BGP é uma máquina de estados. A decisão das melhores rotas baseia-se nos atributos. a Cease. Active – Realiza tentativas de conexão TCP. 2. Processo de Seleção de Rotas Depois do BGP receber todas as informações de todos os AS’s e destinos as começam a ser decididas. keepalive e notificação. 1. .Notification – (Tipo 3) Enviada quando ocorre um erro. Connect – Conexão TCP e aguardo. Não deve preferir se o endereço de Next-Hop não puder ser acessado. Preferencia local para routers CISCO (O atributo proprietário Cisco tem maior preferência). • • • • • • 1 2 3 4 5 6 for for for for for for a Message Header Error. 3. Keepalive – (Tipo 4) Mensagens trocadas de 60 em 60s para verificar se o router está OK. an Open Message Error. 4. Preferir rota de maior Peso (weight). a conexão é fechada imediatamente .

caminho interno mais curto. 9. Autenticação – Suporta MD5 tanto no modo global quanto no modo neighbor. Se nenhuma rota foi originada localmente. 6. Configura-se um router . ou seja. preferir caminhos Externos (EBGP) em vez dos internos (IBGP). Para isso deve-se informar que o IP encontrase a mais de um salto. preferir o caminho com o MED mais baixo (MED é enviado por outro AS). Graceful Restart – Como no OSPF e ISIS. Para caminhos externos EBGP escolher a rota mais antiga para minimizar o efeito flapping (up down). 7. Processo de restart – Durante o fechamento da sessão de peering cada router negocia a habilidade de graceful-restart. preferir rota com o AS-Path mais curto para o destino. o BGP é feito na Loopback do router. o processo de restart de um router pode gerar impactos na rede. 11. 10. 12. Preferir a rota com o endereço IP do vizinho mais baixo. nesse caso escolher o caminho até o vizinho IGP mais próximo. Load balance – Usado para fazer balanceamento em links iguais. preferir rota originada pelo router local. Após isso o router envia uma End-RIB-In Marker. Evitar colisão de conexão . Se todos os códigos de origem forem iguais.Evita que os dois routers iniciem uma conexão ao mesmo tempo e gere colisão. somente quando os dois routers aceitam greceful-restart o recurso é usado.5. Se a sincronização estiver desativada apenas existirá caminhos internos. Preferir o caminho com o ID do router vizinho mais baixo. preferir o código de origem mais baixo sendo as rotas aprendidas por IGP o melhor (IGP (I) <> 8. O graceful restart faz com que o processo de encaminhamento continue durante o restart e não ocorra convergência de toda a rede (evita que os outros routers enviem withdrawn para todos os vizinhos). Se os caminhos de AS’s forem iguais. Se as rotas têm o mesmo MED.13. Após o restart o router vizinho informa as informações para atualizar a Database. Se o Local Preference for igual. Opções de Configuração Multihop – Usado para redundância de links.

. Em routers CISCO os vizinhos com a mesma política de atualização podem ser agrupados em peer groups. Em determinado router configura-se a AS privada (confederation) e dentro do config-router se indica a AS Publica que essa AS privada pertence.· Sub-Grupos ao qual estão relacionados. mesmo filtro). Todos os vizinhos internos do AS pertencem ao mesmo grupo. Confederation É a forma de dividir uma AS em várias ASs. É definida uma política para o peer Group e todos os vizinhos vinculados a esse peer group adotam as políticas. Todos os vizinhos recebem o mesmo update. Updates são gerados uma vez para cada grupo. O JUNOS não faz damping em rotas IBGP.· Politicas podem ser modificadas individualmente somente para informações de rotas entrante e não para sainte. Utilizado nas conexões iBGP e eBGP. Pode-se configurar no modo global e no modo neighbor. • • Cria-se Sub-AS privados dentro do AS principal. • • • • Simplifica a configuração dos vizinhos.como passivo da conexão BGP. Peer Groups (Somente CISCO) Muitos vizinhos são configurados com as mesmas políticas de atualização (por exemplo. Prefix Limits – Configura um limite de prefixos de redes a ser recebido do vizinho. O recurso usado para verificar o damping é a figura de mérito com pontuações. Depois adicionase os vizinhos de acordo com as ASs privadas ou publicas (no caso de uma conexão eBGP). • • • Allow – Configura um range de rede que o vizinho poderá estabelecer uma conexão BGP. Damping – Configura uam tolerância para rotas que ficam entrando e saindo da tabela de roteamento. O nome de um Peer Group é local do router onde ele é configurado e não é passado para nenhum outro router.

No entanto uma rota BGP aprendida por um vizinho EBGP é replicada para vizinhos EBGP e IBGP. minimizando assim o n.Multihoming É o termo usado quando um AS está conectado a mais de um ISP. Route Reflectors Os refletores de rota modificam a regra do split-horizon que existe por default onde nenhum router replica as rotas aprendidas por um vizinho para outro vizinho. Migração fácil. Muito usado por ISP's quando o n. Todos os ISPs passam somente as rotas default para o AS. Aumenta o desempenho com distribuição. Tipos de configuração Multihoming mais comuns: • • • Multihoming sem BGP usa um router conectado a 2 ISPs com configuração de rota statica e NAT. Resolve o problema do split horizon.º de declarações internas de vizinhos se torna excessivo. somente os caminhos de atualização de rotas.º de conexões TCP.º de relacionamentos entre vizinhos. IBGP não replica para IBGP. Diminui o n. pois é protocolo aberto. Multihoming com BGP usa-se um AS privado para conectar aos ISPs. Benefícios: • • • • • • • • Habilita um router para propagar as rotas aprendidas por um IBGP para seus vizinhos. Dentro de um AS podem ter vários refletores de rotas escolhidos. Os ISP’s aos quais você conecta devem anunciar os seus prefixos na Internet: • • Aumenta a confiabilidade da conexão com a Internet com redundância. . Não afeta os caminhos que os pacotes IP's seguem. Retira a necessidade do Full-Mesh.

Default =Router ID. isso acontece porque um router configurado com um peer-group deve enviar todas as atualizações para todos do peer-group. para reconhecer de quem veio a atualização. Clients .Atributo que carrega o router ID e o AS de quem originou a rota.A relação entre os clientes e o router refletor. Todos devem ter o mesmo Cluster-ID. A lista de comandos Network deve incluir todas as redes do AS que você deseja anunciar. Originator-ID . . Anunciando Redes no BGP • Usando o comando Network ele permite anunciar uma rede que está na tabela IP. Se a atualização for de um nonclient ele reflete para todos os peer clients do cluster. Os refletores de rota clientes não são compatíveis com os grupos de parceiros (peer-groups). Cluster ID .quem recebe os anúncios de rotas sempre.• Pode-se ter mais de um route-reflector server em um Cluster. mas recebe algumas atualizações de rotas. Cluster . Nonclients .Usado quando se tem mais de um router refletor. Se a atualização for de um parceiro EBGP (outro AS) ele reflete para todos os peer clients e todos nonclients Dicas de migração do Refletor de Rota • • A primeira consideração é decidir quais routers devem ser os refletores e quais devem ser clientes observando a topologia. Operação • • • • Refletores recebem atualizações de peer clients e nonclients Se a atualização for de um peer client ele reflete para os peer clients e nonclients (exceto para o router que originou). pois os refletores precisam de full mesh com os clientes.O router refletor de rotas que tem a permissão de repassar as rotas aprendidas. Terminologias • • • • • • Router reflector .Não são cliente definidos pelo router refletor.

) – Uma ou várias ocorrências do caracter especificado antes ( + = ou ) Community Filters O atributo Community. O problema do uso do null 0 é a possível criação de black hole. 200 ou 300 ^1002$ .• • • Redistribuindo as rotas estáticas para null 0. Nos AS’s de ISP a redistribuição do BGP normalmente não é requerida. Redistribuição das rotas estáticas do IGP para o BGP. É um método de se agrupar rotas com políticas comuns de roteamento onde uma rota pode fazer parte de várias communities.Rotas que terminam no AS 1002 ^1002_ .. Não recomendado pois causa instabilidade. deve se tomar cuidado pois a tabela BGP é muito grande.Rotas que passaram no AS 1002 (.Rotas que se originam no AS 1002 . propaga para a Internet as oscilações em rotas internas. Redistribuição de rotas do BGP para o IGP. Ele cria um filtro para selecionar um caminho específico (rotas) através da rede. sendo 16 bits para a AS e outros 16 específicos. Internet – Anuncia para a comunidade Internet. Route-map (uso somente em Cisco) .Rotas que se originam no meu AS ^(100|200|300)$ .)+(. usado para anunciar as rotas agregadas. $ como o final do path • • • • • • • • * . habilita políticas de roteamento a serem aplicadas para o destino. ^ funciona como o início do path.Rotas originadas no AS 1002 _1002_ .Rotas originadas no 100.. Possui 32 bits.. Funciona como Access-Lists. No-advertise – Não anuncia para todos os peers.. Manipulação de Tráfego Filtros de AS-Path Muitas das coisas feitas em BGP é baseado na construção desses filtros. descrito na RFC 1997.Todas as rotas BGP ^$ . adjacente ao meu AS _1002$ . Pode-se criar communities de acordo com o tráfego que deseja-se anunciar para os peers ou usar algumas communities pré definidas: • • • No-export – Não anuncia para eBGP peers.

Uma lista de prefixo vazia permite tudo. Negativa implícita ocorre quando o prefixo não coincide com nada. esses números são automáticos de 10 em 10 para cada regra. Prefix List É uma política de controle que restringe as informações de roteamento que o IOS aprende ou anuncia. o permit é colocado por padrão. .• • • • • • Conjunto de instâncias numeradas. Suporta modificações incrementais. Deve ser numerada manualmente sendo o primeiro numero é automaticamente o 5. O número seqüencial padrão é 10. Linha de comando mais amigável. A rota selecionada tem um sinal ">" na esquerda da rota. caso contrario a rota não é usada. Normalmente cada instância é composta de comandos “match” e/ou “set”. Comandos de configuração no Cisco router# show ip bgp [rede] Mostra todas as infos da tabela de roteamento BGP. Se uma entrada for criada sem permit ou Deny. Pode se editar cada instância sem influenciar as demais da Route-map. Maior flexibilidade. Maior facilidade para criação e edição de conjuntos de comandos. Se ocorrer uma coincidência o router não procura o resto da lista. Se um prefixo for permitido a rota é usada. os clientes do router reflector caso ele seja um router reflector. Possui um Deny-all no final de cada lista. router# show ip bgp neighbors Mostra info. Possui as seguintes características: • • • • • • • • • • Performance significante. Sobre as conexões BGP e TCP dos vizinhos. O router inicia a pesquisa por uma coincidência na parte superior da lista. a qual é o numero de seqüência mais baixo.

router(config)# ip prefix-list nome-da-lista [seq sequencia] {deny | permit} rede/CIDR [ge ge-value] [le le-value] Configura uma lista de prefixos e define o range específico com ge e le router(config)# ip prefix-list sequence-number Ativa a numeração sequencial automática da lista de prefixos. exige muita memoria e deve ser evitado pois atrapalha o roteamento. o AS define se é IBGP ou EIBGP 64512 até 65520 são AS's privados. router(config)# ip prefix-list nome-da-lista description descrição Inclui uma descrição na lista de prefixos router(config)# bgp cluster-id id-cluster Configura um ID para um grupo de cluste caso existe mais de um router-reflector na rede . router# show ip bgp summary Mostra um resumo de todas as conexões BGP router# debug ip bgp [dampening | events | keepalives | updates] Debuga os eventos router# show ip prefix-list detail name [network/len | [seq seq-num] Mostra detalhes das entradas e de quantas vezes a lista foi usada podendo discriminar pelo numero de sequencia.router# show ip bgp paths Mostra a topologia BGP. router# Clear ip bgp peer-group nome-peer-group router(config)# router bgp autonomous-system Habilita o roteamento BGP. rede ou nome da lista router# show ip prefix-list detail name [network/len] longer Mostra todas as entradas da lista mais específica router# clear ip prefix-list name [network/len] Reseta os contadores de match router# clear ip bgp { * | endereço } [ soft [ in | out ] ] Remove as entradas da tabela BGP e redefine as sessões do BGP tanto de entrada (in) ou de envio (out).

Usado em redes NBMA. Se o seu AS não for um AS de transito entre AS é bom desabilitar Router(config-route)# aggregate-address ip-address mask Cria uma entrada agregada (resumo). o padrão é anunciar tudo. Deve redes que estão Router(config-route)# neighbor {ip-address | peer-group-name} next-hop-self Força a anunciar o seu proprio endereço BGP como proximo salto.router(config)# ip as-path access-list número {deny | permit} LINE Cria entradas para uma lista de acesso de caminhos de Ass. . LINE é uma expressão regular a ser usada. ^100$ ) router(config)# Set-overload-bit Divulga para os vizinhos que o router está sobrecarregado e não está fazendo trânsito. (ex: _100$ . mas continua anunciando as específicas. Router(config-route)# no synchronization Desabilita o sincronismo (habilitado por default). seu router. [mask network- de roteamento IP. Router(config-route)# aggregate-address ip-address mask [summary-only] [as-set] Gera as informações do AS-Path com rotas agregadas com todas as AS's. Router(config-route)# neighbor {ip-address | peer-group-name} remote-as autonomous-system Ativa uma sessão BGP com outro router e configura o grupo de parceiro Router(config-route)# network network-number mask] Anuncia uma rede se ela estiver presente na tabela Indica quais redes ele deve originar apartir do incluir todas as redes do seu AS e não só as diretamente conectadas. Router(config-route)# aggregate-address ip-address mask [summary-only] Anuncia somente as rotas agregadas (de resumo). Se não usar o "as-set" as rotas serão anunciadas como geradas em seu AS's Router(config-route)# neighbor ip-address remove-private-as O router não divulga os AS’s privados para o vizinho descrito.

"router bgp Private-AS" para que o router pertença a um AS dentro do AS público. Esse comando define o AS publico onde o AS de confederação estará. O default é 100.Router(config-route)# neighbor ip-address route-reflector-client Configura o router como reflector e aponta o vizinho cliente pelo IP. Router(config-router)# Bgp cluster-id cluster-id . Router(config-route)# bgp default local-preference value Usado para mudar o atributo de Local-preference que influencia internamente o melhor caminho pra sair do AS. um valor mais alto é preferido. Router(config-route)# neighbor peer-group-name peer-group Cria um peer-group Router(config-route)# bgp confederation identifier Public-AS Antes de usar esse comando deve-se usar . Router(config-route)# neighbor {ip-address | peer-group-name} prefix-list prefix-listname {in | out} Aplica a lista no BGP apontando por ip ou por grupo quais routers terão suas rotas filtradas. Router(config-route)# bgp always-compare-med Faz com que o BGP sempre compara o MED associado à rota recebida de diferentes AS. Router(config-route)# neighbor ip-address ebgp-multihop hop Adiciona um vizinho localizado a x saltos. Router(config-route)# neighbor {ip-address | peer-group-name} weight weight Comando que influencia caminho tomado para rotas externas. A forma de adicionar outros vizinhos é a mesma. Router(config-route)# neighbor ip-address peer-group peer-groupname Inclui o vizinho em um peer-group que compartilha os mesmo updates e outras características. Router(config-route)# bgp confederation peers private-AS-1 privateAS-2 Define os AS privados que o AS fará interação. O default é 32768 para rotas locais (rotas que o router origina) e 0 para outras rotas. e informa se a lista será aplicada quando receber as rotas ou quando enviar. É atribuido um peso para a conexão com o vizinho. Esse recurso é proprietário CISCO.

.Usado no Router-reflector para identificação quando existir mais de um router reflector nos clientes.