Você está na página 1de 29

BGP-4 Para Provedores

Lacier Dias | info@cloudcampus.com.br


BGP4 - Aula 03
Entendendo e Manipulando Atributos no
BGP-4

Lacier Dias | info@cloudcampus.com.br


Politicas de Roteamento
Controlar as informao recebidas pelos protocolos de roteamento so
fundamentais para o controle do seu ASN.

Tabelas de rotas recebidas podem ser manipuladas ou ignoradas.


Tabelas de rotas exportadas podem ser suprimidas ou modificadas.

Isso s depende de como estas rotas foram manipuladas atravs de


filtros.

www.CloudCampus.com.br 3
Politicas de Roteamento
Quanto aplicar uma politica ?
Quando no se deseja importar toda ou parte de uma tabela de rota recebida,
Quando no se deseja exportar toda ou parte da tabela de rotas para os vizinhos,
Modificar informaes associadas a uma rota ou tabela.

Lembrando que os atributos do BGP abaixo so usados na seleo do melhor


caminho e esto em ordem de preferncia.

Maior WEIGHT (default = 0)


Maior LOCAL-PREF (default = 100)
Menor AS-PATH
Path gerado localmente (aggregate, Rede BGP)
Menor tipo de Origin (IGP, EGP, incomplete)
Menor MED (default = 0)
Prefere eBGP sobre iBGP
Prefere a rota gerada no Roteador com o menor Router ID ou menor ORIGINATOR_ID
Prefere o menor cluster de route reflector
Prefere o caminho que vem do vizinho com menor IP

www.CloudCampus.com.br 4
Politicas de Roteamento
Politicas mais utilizadas tem as seguintes finalidades:

Seleciona ou rejeita/descarta prefixos,


Modifica atributos para influenciar processo de seleo do melhor caminho,
Evitar rotas marcianas,
Filtrar por tamanho do prefixo,
Anunciar agregado e suprimir rotas especficas,
Preferir rotas por clientes entre quaisquer outras,
Preferir rotas de peers antes de rotas de trnsito,
Marcao de rotas com communities para classificao de trfego.

www.CloudCampus.com.br 5
Atributos do BGP
Para possibilitar que os roteadores selecionem a melhor rota para um destino
especfico quando existe mais de uma opo, as rotas aprendidas por BGP
carregam alguns atributos. Os atributos do BGP so divididos em:
Atributos Well-known
Devem ser reconhecidos por todos as implementaes de BGP, e so divididos em
mandatrios e discricionrios:
Mandatrios: Devem estar presentes em todas as mensagens de update.
EX: AS-Path, Next Hop e Origin
Discricionrios: Podem estar ou no presentes nas mensagens de update.
EX: Local Preference e Atomic Aggregate

***Todos os atributos do tipo Well-Known so propagados para outros vizinhos.

Opcionais
No so obrigatoriamente reconhecidos por todas as implementaes de BGP e podem
ser transitivos e intransitivos.
Transitivos: So propagados para outros roteadores, mesmo se no reconhecidos
EX: Community
Intransitivos: No so propagados.
Ex: MED

www.CloudCampus.com.br 6
Atributos de BGP-4
Next Hop em iBGP:
IGP deve conhecer o next-hops externos para ser eficiente em tornar uma
rota inacessvel quando houver falha.
Quanto mais vizinhos, mais carga no IGP, sendo assim a recomendao
usar next-hop self.
/route bgp peer set [find] nexthop-choice=force-self

Altera o next-hop enviado com os prefixos pelo ip do router com next-hop


self ao invs do IP do Vizinho BGP.
Mais eficiente, menos configurao,
Usado tambm em refletores de rotas.
Desassociar BGP da topologia fsica da rede usando loopback
Permitir IGP escolher melhor caminho
Sempre verifique se est enviando correto com
/routing bgp advertisements print

www.CloudCampus.com.br 7
Atributos de BGP-4
Atributo MED (Multi Exit Discriminator): Atributo opcional e intransitivo,
usado entre pares de vizinhos para o mesmo AS
Influenciar na escolha do melhor caminho de entrada entre dois vizinhos.
Menor MED tem preferncia.
Ausncia de MED o valor zero RFC 4271

Atributo ORIGIN: Contm a origem do prefixo legado da transio do


EGP para BGP.
Influencia na escolha do melhor caminho
Valores:
IGP (parmetro network)
EGP (aprendido externamente)
incomplete (vindo de outro protocolo de roteamento)

www.CloudCampus.com.br 8
Atributos de BGP-4
WEIGHT: No bem um atributo pois atribudo localmente ao roteador
e no propagado pelo BGP, constituindo uma poltica local desse
Roteador
Maior weight ganha,
Prefixos sem um weight atribudo tem o valor default zero.
O weight influi no trfego de upstream

/routing filter add chain=weight-IN action=passthrough set-bgp-weight=100

Atributo LOCAL-PREF: Atributo opcional e intransitivo, interno ao AS


com seu valor padro 100.
Influncia na escolha do melhor caminho de sada (UpLoad).
Maior LOCAL-PREF tem preferncia.
/routing filter add chain=local_pref-IN action=passthrough set-bgp-local-pref=200

www.CloudCampus.com.br 9
Atributos de BGP-4
AS-PATH: Lista de nmeros de ASs que um update atravessou e podem
ser utilizadas para influenciar a deciso de roteamento de roteadores de
outros ASs.
OBS: Weight e Local Preference manipulam trfego de upstream.
AS-PATH a maneira adequada de influenciar no trfego de downstream.

Problemas no uso do AS-Path:


As operadoras usualmente aplicam filtros para que seus clientes somente
anunciem o seu prprio AS ou ASs de quem este cliente faz transito.
Para possibilitar que isso funcione e que ainda estes possam utilizar AS-Path,
pode-se fazer uso de expresses regulares nos filtros.

Suporta expresses regulares:


. qualquer caracter simples
^ comeo do AS-Path
$ fim do AS-Path
_ encontra vrgula, espao, comeo e final do AS-Path

www.CloudCampus.com.br 10
Atributos de BGP-4
AS-PATH: Expresso regular abaixo:
EX: ^([0-9])+)(_\1)*$
Est expresso encontrar qualquer AS-Path comeando com qualquer
nmero AS e continua com ou sem mltiplas do mesmo nmero AS (a
varivel \1 repete o valor nos parenteses. Assim a expresso acima ir
permitir por exemplo:
123 123 123 ou 100 100 100 100 100, etc mas no permitir 123 100

Alguns outros exemplos de regexp


.* - 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 meu AS
_1002$ - Rotas que terminam no AS 1002
^1002_ - Rotas originadas no AS 1002
_1002_ - Rotas que passaram no AS 1002
(...)+(...) Uma ou vrias ocorrncias do caractere especificado antes ( + = ou )
www.CloudCampus.com.br 11
Atributos de BGP-4
COMMUNITIES: Atributo opcional e intransitivo e so meios de rotular
rotas com o objetivo de assegurar filtros consistentes e polticas de
seleo de rotas.
Qualquer roteador BGP pode rotular os updates de rotas que entram e ou que saem
quando fazendo a redistribuio.
Qualquer roteador BGP pode filtrar rotas que entram e ou que saem ou selecionar
rotas preferenciais, baseadas em communities.
Por padro as communities, so retiradas dos updates de BGP que saem do roteador.

Existem algumas communities pr-definidas em:


www.iana.org/assignments/bgp-well-known-communities
As mais usuais so:
no-export no propaga para outros vizinhos externos
no-peer no propaga para vizinhos de Peering bi-lateral.
Cada operadora tem sua lista de communities, solicite da sua operadora.

www.CloudCampus.com.br 12
Atributos de BGP-4
COMMUNITIES: Exemplos: Embratel
community 4230:4 efeito: o anuncio marcado com essa community somente e feito para
redes do AS 4230 (Embratel)

community 4230:33 efeito: o anuncio marcado com essa community e feito para redes do
AS 4230 e para demais AS-clientes da Embratel

community 4230:32 efeito: o anuncio marcado com essa community e feito para redes do
AS 4230, para os demais AS-clientes da Embratel e para AS no clientes (transito nacional
com outros backbones, por exemplo RNP)

community 4230:31 efeito: o anuncio marcado com essa community e feito para redes do
AS 4230, para os demais AS-clientes da Embratel e para os backbones internacionais
(internet mundial)

community 4230:30 efeito: o anuncio e feito para redes do AS 4230, para os demais AS-
clientes da Embratel, para AS nao clientes (trnsito nacional com outros backbones, por
exemplo RNP) e para os backbones internacionais (Internet mundial)

www.CloudCampus.com.br 13
Atributos de BGP-4
COMMUNITIES: Exemplos: GVT
Bloqueia anuncio Internacional AS:1
Bloqueia anuncio Nacional AS:2
Bloqueia anuncio Clientes GVT AS:3
Bloqueia anuncio Peering AS:4
Bloqueia anuncio PTT AS:6
OBS: AS o nmero do seu AS.

/routing filter add chain=communities-IN action=passthrough set-bgp-


communities=6500:1
/routing filter add chain=communities-OUT action=accept bgp-communities=6500:2

www.CloudCampus.com.br 14
Atributos de BGP-4
Route Reflector: Utilizado para evitar a necessidade de fazer full mesh
no iBGP, re-anunciando as rotas iBGP sem mudar o next hop para a rota.

RR configurada habilitando client to client relfection


/routing bgp instance set default client-to-client-reflection=yes
/routing bgp peer add route-reflect=yes remote-peer= x.x.x.x
Route-reflect deve ser habilitado apenas no roteador que faz a reflexo
de rotas.

Atributos adicionados aos prefixos pelo RR


cluster-id (identifica o AS usado no RR)
cluster-list (similar ao AS-PATH, contm a sequncia de
cluster-ids que o PATH atravessou)
originator-id (identifica o cliente do RR que enviou a rota
ao RR)

www.CloudCampus.com.br 15
Atributos de BGP-4
Route Reflector:
Recebe rotas do mesmo ASN e de ASN diferentes,
Seleciona melhores caminhos,
Resolve limitaes do iBGP,
Permite mltiplos RR para redundncia,
Por padro no altera atributos das rotas,
Propaga essas rotas entre os clientes,
Facilidade de migrao,
Permite iBGP anunciar rotas para outros iBGP,
Cada roteador vizinho do RR, mas no precisam ser entre si,
Definido na RFC4456.

www.CloudCampus.com.br 16
Sintaxe dos Filtros
Os filtros so agrupados por nome (chain) e executados para cada
prefixo da tabela na ordem definida pela chain especificada em
routing filter
Cada linha pode selecionar um prefixo, efetuar um teste e/ou realizar
uma ao.
A execuo continua at chegar ao fim da cadeia ou encontrar uma ao
que encerre o processamento para aquele prefixo

A ordem dos filtros de extrema importncia.

Filtros no criam rotas!

www.CloudCampus.com.br 17
Sintaxe dos Filtros
/routing filter add chain=nome action=acao ...

accept = Aceita a informao.


discard = Descarta a informao.
jump = Executa a chain especificada em jump-target.
log = registra no log do sistema e continua o processamento.
passthrough = continua o processamento.
reject = guarda na memria mas no ativa a informao.
return = volta a chain que chamou.

www.CloudCampus.com.br 18
Sintaxe dos Filtros
Aba Matchers
prefix = prefixo a ser comparado (exact match).
Se no estiver presente, todos os prefixos passam no teste.
Se no for informado tamanho, /32 assumido
0.0.0.0/0 representa a rota default.
Ex: 10.1.0/22

prefix-length = se presente permite que sub-redes do comprimento informado


contidas no prefixo passem no teste.
Ex: 24-22 (Menor mascara aceita e menor mascara aceita.)
distance = int8 (distncia administrativa especificada)
protocol = connect | static | rip | ospf | bgp
scope = int8 (valor do parmetro para a rota)
target-scope = int8 (valor do parmetro para a rota)

Teste especial:
invert-match =yes | no (padro no. Inverte o teste, ou seja, yes executa se o teste
falhar)

www.CloudCampus.com.br 19
Sintaxe dos Filtros
Aba BGP
bgp-as-path = string (padro a ser buscado no atributo AS-PATH da rota
usando expresses regulares formato POSIX)
bgp-as-path-length = int16 (comprimento do atributo AS-PATH da rota)
bgp-weight = signed int16 (valor do atributo weight ou 0)
bgp-local-pref = int16 (valor do atributo local-pref da rota ou 0)
bgp-med = int16 (valor do atributo MED ou 0)
bgp-origin = igp | egp | incomplete
bgp-communities = int16:int16 (se a community est definida para a rota)

www.CloudCampus.com.br 20
Sintaxe dos Filtros
Aba Actions
Nota: essas propriedades so atribudas independente do ao definida em
action,
set-distance = int8 (modifica distncia administrativa da rota (255 desabilita).
Vlido apenas em filtros de entrada)
set-scope = int8 (modifica parmetro scope usado em recursividade de rotas.
Vlido apenas em filtros de entrada)
set-target-scope = int8 (modifica parmetro target-scope usado em recursividade
de rotas. Vlido apenas em filtros de entrada)
set-in-nexthop = IP (modifica gateway da rota. Vlido apenas em filtros de
entrada)
set-in-nexthop-direct = interface (modifica gateway da rota para a interface.
Vlido apenas em filtros de entrada)
set-out-nexthop = IP (modifica gateway da rota. Vlido apenas em filtros de
sada)

www.CloudCampus.com.br 21
Sintaxe dos Filtros
Aba BGP Actions
set-bgp-weight = signed int16 (modifica o atributo weight do prefixo)
set-bgp-local-pref = int16 (modifica o atributo local-pref do prefixo)
set-bgp-prepend = int4 | default (quantas vezes repetir o ASN do prprio router no
atributo AS-PATH)
Em filtro de entrada altera o AS-PATH length.
Em filtro de saida o prepend adicionado em anncios aos vizinhos eBGP.
Nos vizinhos iBGP o prepend sempre 1.
O valor 0 remove o ASN do prprio router do AS-PATH
set-bgp-prepend-path = lista de ASN (adiciona a lista de ASN especificada ao AS-
PATH)
Se usado em conjunto com set-bgp-prepend, este tem maior prioridade)
set-bgp-med = int16 (modifica o atributo MED do prefixo)
set-bgp-communities = int16:int16 (substitui community do prefixo)
append-bgp-communities = int16:int16 (adiciona community ao prefixo)

www.CloudCampus.com.br 22
Filtros mais usados
Aumentando a prioridade de um Peer:
/routing filter add chain=aumenta_prioridade-IN set-bgp-local-pref=200 action=passthrough

Diminui a prioridade de um Peer:


/routing filter add action=accept chain=operarora1-out prefix=188.111.64.0/20 prefix-length=21-24
set-bgp-prepend=4

Envia apenas prefixos permitidos para a operadora:


/routing filter add chain=operadora1-out prefix=188.111.64.0/20 prefix-length=20-24 action=accept
/routing filter add chain=operadora1-out action=discard

Aceita apenas o prefixo do AS-Cliente:


/routing filter add chain=cliente-in prefix=189.84.64.0/20 prefix-length=20-24 invert-match=yes
action=discard

www.CloudCampus.com.br 23
Filtros para analisar os anncios

Como saber o que voc est anunciando para seu vizinho ?

- /routing bgp advertisements print


- OBS: Mostra o anncio para todos os peer.

- /routing bgp advertisements print peer=Nome do Peer


- OBS: Mostra o anncio para um nico peer.

Como saber o que seu vizinho est anunciando para seu peer ?

- /ip route print where received-from=Nome do Peer


- OBS: Mostra o que vc est recebendo atravs do peer.
- OBS: Muito usado para verificar o que um AS cliente est enviando.

www.CloudCampus.com.br 24
Filtros para analisar os anncios
Como localizar se vc tem uma rede na sua tabela de rota e por onde
ela est saindo ?

- /ip route print detail where dst-address in 49.212.0.0/16

- OBS: Quanto maior a mascara de rede melhor o resultado.

EX: > /ip route print detail where dst-address in 49.212.0.0/16 (Bloco no Japo)
dst-address=49.212.0.0/16 gateway=200.111.111.222 gateway-status=200.111.111.222
recursive via 187.228.201.1 ether1 distance=20 scope=40 target-scope=30 bgp-as-
path="4230,2914,9371" bgp-origin=igp received-from=Peer_EMBRATEL

dst-address=49.212.0.0/16 gateway=177.222.222.115 gateway-status=177.222.222.115


recursive via 177.145.242.1 ether4 distance=20 scope=40 target-scope=30 bgp-as-
path="18881,3549,2914,9371" bgp-origin=igp received-from=Peer_GVT

dst-address=49.212.0.0/16 gateway=179.56.33.12 gateway-status=179.56.33.12 reachable


via vlan2000 distance=20 scope=40 target-scope=10 bgp-as-path="8167,3491,2497,9371"
bgp-med=0 bgp-origin=igp received-from=Peer_OI

www.CloudCampus.com.br 25
Filtros para analisar os anncios
/ip route print detail where dst-address in 177.73.8.0/23 (IP no Brasil)

dst-address=177.73.8.0/23 gateway=177.222.222.115 gateway-status=177.222.222.115 recursive via


177.145.242.1 ether4 distance=20 scope=40 target-scope=30 bgp-as-
path="18881,262589,28168,52768,52683" bgp-origin=igp received-from=GVT
dst-address=177.73.8.0/23 gateway=200.111.111.222 gateway-status=200.111.111.222 recursive via
187.228.201.1 ether1 distance=20 scope=40 target-scope=30 bgp-as-
path="4230,18881,262589,28168,52768,52683" bgp-origin=igp received-from=EMBRATEL
dst-address=177.73.8.0/23 gateway=179.56.33.12 gateway-status=179.56.33.12 reachable via
vlan2000 distance=20 scope=40 target-scope=10 bgp-as-
path="8167,7738,262589,28168,52768,52683" bgp-origin=igp received-from=OI
dst-address=177.73.9.0/24 gateway=177.222.222.115 gateway-status=177.222.222.115 recursive via
177.145.242.1 ether4 distance=20 scope=40 target-scope=30 bgp-as-
path="18881,53118,52768,52683" bgp-origin=igp received-from=GVT
dst-address=177.73.9.0/24 gateway=200.111.111.222 gateway-status=200.111.111.222 recursive via
187.228.201.1 ether1 distance=20 scope=40 target-scope=30 bgp-as-
path="4230,26615,53118,52768,52683" bgp-origin=igp received-from=EMBRATEL
dst-address=177.73.9.0/24 gateway=179.56.33.12 gateway-status=179.56.33.12 reachable via
vlan2000 distance=20 scope=40 target-scope=10 bgp-as-
path="8167,17379,26615,53118,52768,52683" bgp-origin=igp received-from=peer3-full-OI
www.CloudCampus.com.br 26
Boas prticas para BGP-4
Configurar regras de filtro para:
Enviar somente o seu nmero AS e seu bloco de IPs, evitando assim virar AS de transito.
Descartar recebimento de seu prprio prefixo,
Descartar recebimento de blocos privados,
Descartar Bogons. - https://www.team-cymru.org/Services/Bogons/bgp.html

Filtrando redes invalidas


/routing filter
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=10.0.0.0/8 prefix-length=8-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=0.0.0.0/8 prefix-length=8-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=127.0.0.0/8 prefix-length=8-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=169.254.0.0/16 prefix-length=16-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=172.16.0.0/12 prefix-length=12-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=192.0.0.0/24 prefix-length=24-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=240.0.0.0/4 prefix-length=4-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=192.0.2.0/24 prefix-length=24-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=192.168.0.0/16 prefix-length=16-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=192.88.99.0/24 prefix-length=24-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=192.18.0.0/15 prefix-length=15-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=198.51.100.0/24 prefix-length=24-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=203.0.113.0/24 prefix-length=24-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=224.0.0.0/4 prefix-length=4-32
add action=discard chain=rfc_5735 comment=RFC_5735 prefix=255.255.255.255
www.CloudCampus.com.br 27
Dvidas?

www.CloudCampus.cc
info@cloudcampus.cc
+55-11-3662-3832
Boa noite!!!

www.CloudCampus.cc
info@cloudcampus.cc
+55-11-3662-3832

Você também pode gostar