Você está na página 1de 128

BGP

para ISP’s
Introdução ao BGP
Roteamento entre AS’s

• Um sistema autônomo (AS) é uma coleção de roteadores ou redes


sob a mesma administração técnica
• Um protocolo de roteamento interno (IGP) é executado dentro de um
sistema autônomo para prover o roteamento interno do AS
• O protocolo de roteamento externo (EGP) é executado entre Sistemas
Autônomos para permitir troca de informações de roteamento entre eles,
esse protocolo é o BGP
Internet Assigned Numbers Authority
(IANA).
A IANA é responsável por alocar os números de AS através de cinco
Registros Regionais da Internet (RIRs).
RIRs são corporações sem fins lucrativos criadas com a finalidade de
administração de endereçamento IP e números AS em localizações
geográficas específicas.
Regional Internet Registries (RIRs)
RIR Name Geographic Coverage Link

AfriNIC Continent of Africa www.afrinic.net


APNIC
(Asia Pacific Network Asia Pacific region www.apnic.net
Information Centre)

ARIN Canada, the United States,


and several islands in the
(American Registry for www.arin.net
Caribbean Sea and North
Internet Numbers) Atlantic Ocean
LACNIC
Central and South America
(Latin America and and portions of the www.lacnic.net
Caribbean Internet Caribbean
Addresses Registry)

RIPE Europe, the Middle East,


www.ripe.net
(Réseaux IP Européens) and Central Asia
AS Numbers
• AS números podem estar entre 1 a 65.535.

• RIRs administram os números de AS entre 1 e 64512.

• Os números de AS 64.512 - 65.535 são reservados para uso privado (similar


ao endereço IP privado).

• Com a previsão de esgotamento números de AS utilizando dois bytes o IETF


lançou as RFC 4893 e RFC 5398 para aumentar o número de AS de dois
octetos (16 bits), para quatro octetos (32 bits), aumentando o tamanho do
conjunto de valores de 65536 a 4294967296.

• A Internet é um conjunto de sistemas autônomos interligados para permitir a


comunicação entre eles. BGP fornece o roteamento entre esses sistemas
autônomos
Peering e Trânsito
ISP - Internet Service Provider

ISP’s locais podem tornar-se peers,


podendo trocar tráfego entri si. Porém
precisam de acordos de trânsito com um
ISP de nível superior para trocar tráfego
com outros ISP’s.
BGP - Características
• BGP é um protocolo de vetor de caminho (path vector).
• BGP anuncia os caminhos (paths) e as redes que são alcansáveis no final desse
caminho. BGP descreve o caminho por meio de atributos que são semelhantes às
métricas)
BGP Características

•Atualizações confiáveis: BGP usa TCP na porta 179.

•Tabela completa BGP é trocada quando a conexão com o vizinho é


estabelecida.

•Não há atualizações periódicas.

•BGP não tem nenhum método para a descoberta dinâmica de vizinhos,


todos os vizinhos devem ser manualmente configurados.

•Mensagens de keepalive periódicas são trocadas para verificar a


conectividade TCP.

•Garante caminho livre de loop.

•BGP permite aos administradores definir políticas ou regras de como o


trafégo deve fluir através dos Sistemas Autônomos.

•Principais RFC’s, 4271, 4276 e 4277


BGP - neighbors
Quaisquer dois roteadores que formam uma conexão TCP na porta 179 para
trocar informações de roteamento BGP são chamados de peers ou neighbors
(pares ou vizinhos).

BGP inicia a sua operação quando os vizinhos são estaticamente definidos,


usando o comando neighbor
BGP - neighbors
External BGP
Quando BGP neighbors
pertencem a diferentes
sistemas autônomos são
chamados EBGP.

Internal BGP
Quando BGP neighbors
pertencem ao mesmo
sistema autônomo são
chamados IBGP.
Configurando sessões IBGP e EBGP

AS 200 AS 300 router id 5.5.5.5


bgp 300
peer 10.1.35.3 as-number 100
RTD RTE
4.4.4.4 5.5.5.5
.4 .5

EBGP EBGP
10.1.24.0/24 10.1.35.0/24
router id 3.3.3.3
.2 .3 bgp 100
IBGP peer 10.1.35.5 as-number 300
RTB RTC peer 10.1.12.2 as-number 100
2.2.2.2 3.3.3.3
.2 RTA .3
10.1.12.0/24 10.1.13.0/24
.1 .1
AS 100 OSPF
1.1.1.1
Mensagens BGP
1-Open message
é usada para abrir a sessão BGP com um vizinho.

2-Keepalive message
Mensagem periódica que é enviada para manter sessão TCP, o padrão
é 60 segundos

3-Update message
Contém informações sobre as redes de destino e os atributos para
chegar a essas redes

4-Notification message
Enviado para identificar que uma condição de erro foi detectada.
BGP Neighbor Relationship
Establishment
1.1.1.1 2.2.2.2

RTA RTB
Idle Idle
Connect TCP SYN Connect

TCP ACK+SYN

TCP ACK

Open message OpenSen


t
OpenSen
Open message
t
OpenComfirm
Keepalive message OpenComfirm

Keepalive message Established

Established
Update, Keepalive, Route-refresh, Notification
Estados de uma sessão BGP
Idle state:
O reoteador varre a tabela de roteamento IP para ver se existe uma rota para
chegar ao vizinho.
Active 1 state:
Um Syn é enviado mas syn/ack não é recebido ainda.
Connect state:
Conexão TCP fechada.
Open sent:
Mensagem Open é enviada
Active 2 state:
Aguardando confirmação de paramêtros para estabelecer sessão
Open confirm state:
Recebimento de confirmação dos paramêtros
Established state:
Vizinhança estabelecida, inicia troca de mensagens update
BGP – Operação Simplificada

Estabelece sessão router A


TCP port 179
AS1 129.213.1.2

BGP session
Troca todas as rotas
da tabela BGP router B
129.213.1.1
AS2

Envia mensagens
Envia novas ocorrências UPDATE enquanto a sessão
Estiver estabelecida
BGP – Operação Simplificada
Inserindo rota na tabela BGP
comando network
router id 3.3.3.3
bgp 200
peer 10.1.23.2 as-number 100
RTC
3.3.3.3
router id 2.2.2.2
.3 AS 200 bgp 100
peer 10.1.23.2 as-number 200
ipv4-family unicast
EBGP network 10.1.12.0 255.255.255.0
10.1.23.0/24 network 100.0.0.0 255.255.255.0
network 100.0.1.0 255.255.255.0
.2

AS 100
.2 100.0.0.0/24
RTB 100.0.1.0/24
2.2.2.2

OSPF .1
Area 0 1.1.1.1 RTA

• O comando network importa rotas existentes e tabela de roteamento IP


para uma tabela de roteamento BGP. A rota deve existir na tabela de
roteamento IP exatamente como indicado no comando.
Verificando a tabela BGP- Network

<RTC>display bgp routing-table


RTC AS 200
Network NextHop MED LocPrf PrefVal
Path/Ogn
*> 10.1.12.0/24 10.1.23.2 0 0 100i
*> 100.0.0.0/24 10.1.23.2 0 0 100i
3.3.3.3 *> 100.0.1.0/24 10.1.23.2 1 0 100i

.3
<RTB>display ip routing-table

Destination/Mask Proto Pre Cost Flags NextHop


Interface
EBGP 10.1.12.0/24 Direct 0 0 D 10.1.12.2
GigabitEthernet0/0/0
10.1.23.0/24
100.0.0.0/24 Static 60 0 RD 10.1.12.1
GigabitEthernet0/0/0
.2
100.0.1.0/24 OSPF 10 1 D 10.1.12.1
GigabitEthernet0/0/0

AS 100 100.0.0.0/24
.2
100.0.1.0/24

RTB
2.2.2.2
.1
OSPF
1.1.1.1 RTA
Area 0
Inserindo rota na tabela BGP
commando import

router id 3.3.3.3
bgp 200
peer 10.1.23.2 as-number 100
RTC
3.3.3.3 router id 2.2.2.2
.3 AS 200 bgp 100
peer 10.1.23.3 as-number 200
ipv4-family unicast
EBGP import-route direct route-policy import
10.1.23.0/24 import-route static route-policy import
.2 import-route ospf 1 route-policy import
#
route-policy import permit node 10
AS 100 if-match ip-prefix import
.2 100.0.0.0/24 #
RTB 100.0.1.0/24 ip ip-prefix import index 10 permit 10.1.12.0 24
2.2.2.2 ip ip-prefix import index 20 permit 100.0.0.0 24
ip ip-prefix import index 30 permit 100.0.1.0 24

OSPF .1
Area 0 1.1.1.1 RTA
Verificando a tabela BGP - Import

<RTC>display bgp routing-table

Network NextHop MED LocPrf PrefVal Path/Ogn


RTC *> 10.1.12.0/24 10.1.23.2 0 0 100?
3.3.3.3 *> 100.0.0.0/24 10.1.23.2 0 0 100?
*> 100.0.1.0/24 10.1.23.2 1 0 100?
.3 AS 200
<RTB>display ip routing-table

EBGP Destination/Mask Proto Pre Cost Flags NextHop Interface


10.1.23.0/24 10.1.12.0/24 Direct 0 0 D 10.1.12.2 GigabitEthernet0/0/0
100.0.0.0/24 Static 60 0 RD 10.1.12.1 GigabitEthernet0/0/0
.2 100.0.1.0/24 OSPF 10 1 D 10.1.12.1 GigabitEthernet0/0/0

AS 100
100.0.0.0/24
.2 100.0.1.0/24
RTB
2.2.2.2

OSPF .1
Area 0 1.1.1.1 RTA
BGP – Troca de informações entre os Peers
.
Entre vizinhos EBGP
BGP – Troca de informações entre os Peers
.
Entre vizinhos IBGP

Regra fundamental do BGP (para evitar loop)


O que é recebido de um IBGP NÃO é repassado para outro IBGP
Regras de propagação 1
Anuncia somente a melhor rota aos peers
<RTD>display bgp routing-table
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 100.0.0.0/24 10.1.12.1 0 100 0 100i
*i 10.1.13.1 0 100 0 100i
*> 200.0.0.0 0.0.0.0 0 0 i

OSPF

RTA RTB RTD RTE


100.0.0.0/24
10.1.45.0/24

EBGP
AS 100 RTC AS 300
200.0.0.0/24

AS 200

<RTE>display bgp routing-table


Network NextHop MED LocPrf PrefVal Path/Ogn
*> 100.0.0.0/24 10.1.45.4 0 200 100i
*> 200.0.0.0 10.1.45.4 0 0 200i
Regras de propagação 2
Anuncia a melhor rota aprendida de um EBGP
para todos os peers (EBGP e IBGP)
<RTC>display bgp routing-table

Network NextHop MED LocPrf PrefVal Path/Ogn


*>i 100.0.0.0/24 10.1.12.1 0 100 0 100i

RTA RTB RTC


100.0.0.0/24
10.1.12.0/24 10.1.23.0/24

EBGP IBGP
AS 100 AS 200
EBGP 10.1.24.0/24

RTD

AS 300

<RTD>display bgp routing-table

Network NextHop MED LocPrf PrefVal Path/Ogn


*> 100.0.0.0/24 10.1.24.2 0 200 100i
Regras de propagação 3
Não anuncia uma rota aprendida de IBGP para
outro IBGP
<RTB>display bgp routing-table 100.0.0.0
BGP local router ID : 2.2.2.2
Local AS number : 100
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 100.0.0.0/24:
From: 10.1.12.1 (1.1.1.1)
Route Duration: 00h01m39s
Relay IP Nexthop: 0.0.0.0
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 10.1.12.1
Qos information : 0x0
AS_Path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best, select, active, pre 255
Not advertised to any peer yet

RTB
AS 100

100.0.0.0/24
IBGP

10.1.13.0/24
RTA RTC
<RTC>display bgp routing-table
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 100.0.0.0/24 10.1.13.1 0 100 0 i
Lab_bgp_1

Os roteadores estão já estão com as interfaces configuradas. No AS 64512 também está


configurado OSPF divulgando as Lo0 de cada roteador. Sua tarefa é configurar os peers
BGP e os respectivos anúncios. Usar o commando network para divulgar os blocos CIDR
de cada AS. Nos roteadores R1 e R3 fazer também o importe direct para que haja
conectividade plena.
Lab_bgp_1

Fechar as sessões EBGP diretamente nos IP’s das interfaces


Fechar as sessões IBGP nas loopbacks Lo0

Comandos Huawei para estabelecimento da sessão.

router id x.x.x.x (já foi inserido, o router id é o mesmo para OSPF e BGP)
bgp x.x.x.x ( nr. do sistema autonomo)

Para peer IBGP

peer x.x.x.x as-number y.y.y.y ( x.x.x.x endereço do peer, yyyy nr. do AS vizinho)
peer x.x.x.x connect-interface LoopBack0
Se esse roteador estiver conectado a um EBGP,
peer x.x.x.x next-hop-local

Para peer EBGP


ip route-static x.x.x.x yy NULL0 ( x.x.x.x rede a ser divulgada yy nr de bits da mascara, a
rede a ser divulgada pelo commando network tem que existir na tabela de rotas)
bgp x.x.x.x ( nr. do sistema autonomo)
network x.x.x.x yy ( x.x.x.x rede a ser divulgada yy nr de bits da mascara)
peer x.x.x.x as-number y.y.y.y ( x.x.x.x endereço do peer, yyyy nr. do AS vizinho)
Lab_bgp_1

Comandos Huawei para verificação.

display bgp peer ( e suas variações)


display bgp routing-table
display ip routing-table
display bgp routing-table peer x.x.x.x advertised-routes
display bgp routing-table peer x.x.x.x received-routes
BGP Atributos
BGP - atributos
BGP - atributos
• A mensagem de update do BGP inclui uma seqüência de comprimento variável
com os atributos que descrevem a rota.
• Um atributo consiste em três campos:
• tipo de atributo
• comprimento atributo
BGP Attribute Type
• valor do atributo • Type code 1 ORIGIN
• Type code 2 AS_PATH
• Type code 3 NEXT_HOP
• Type code 4 MULTI_EXIT_DISC
• Type code 5 LOCAL_PREF
• Type code 6 ATOMIC_AGGREGATE
• Type code 7 AGGREGATOR
• Type code 8 Community (Cisco-defined)
• Type code 9 Originator-ID (Cisco-defined)
• Type code 10 Cluster list (Cisco-defined)

Path Attributes
Update Message Information

Octets 16 2 1 2 Variable 2 Variable Variable

Unfeasible Withdra Attribut Path


Marker Length Type wn e Attribute NLRI
Routes Length Routes Length s
BGP - atributos

Diferentemente dos IGP’s o BGP não escolhe caminhos com base na largura de
banda, atraso e outras métricas, os caminhos são escolhidos com base nos
atributos que são enviados nos anúncios.

Existem quatro tipos de atributos diferentes.


Nem todos os fornecedores reconhecem todos os atributos BGP.
BGP - atributos
• Alguns atributos são obrigatórios e automaticamente incluídos em mensagens
de update, enquanto outros podem ser configurados manualmente.
Attribute EBGP IBGP
Well-known Well-known
AS_PATH Automatically
Mandatory Mandatory included in
Well-known Well-known update
NEXT_HOP message
Mandatory Mandatory
Well-known Well-known
ORIGIN
Mandatory Mandatory
Well-known Can be
LOCAL_PREF Not allowed configured to
Discretionary
help provide
ATOMIC_AGGREGAT Well-known Well-known path control.
E Discretionary Discretionary
Optional
AGGREGATOR Optional Transitive
Transitive
Optional
COMMUNITY Optional Transitive
Transitive
Optional Optional
MULTI_EXIT_DISC
Nontransitive Nontransitive
Well-Known Mandatory: AS_PATH
• O atributo AS_PATH contém uma
lista com os AS’s para chegar a
uma rota.
• Sempre que um “update route”
passas através de AS o número
desse AS é adicionado no início da
lista AS_PATH antes de ser
colocado para o próximo vizinho
EBGP.
Well-Known Mandatory: AS_PATH

AS 21

AS-Path=21 123
Network=10.0.0.0/8
Network=10.0.0.0/8
AS 123 AS-Path=123
21.0.0.1

10.0.0.1 Network=10.0.0.0/8
AS-Path=37 21 123

Loop detectedo, o update 37.0.0.1


é ignorado AS 37
O número de cada AS e acrescentado ao AS-
Path quando o update é enviado
Well-Known Mandatory: NEXT_HOP

• O atributo NEXT_HOP indica o endereço IP que deve ser usado para chegar ao
próximo salto
• Para originadas no roteador local o next hop is 0.0.0.0

• O endereço IP é o ponto de entrada do próximo AS ao longo do caminho para


que se chegue a rede de destino.

• Portanto, para EBGP, o endereço do próximo salto é o endereço IP do vizinho


que enviou a atualização.
Well-Known Mandatory: NEXT_HOP

Roteador A anuncia a rede 172.16.0.0 para o roteador B via EBGP, com next hop
10.10.10.3
Roteador B anuncia172.16.0.0 via IBGP para o roteador C, mantendo 10.10.10.3
como next-hop.
Well-Known Mandatory: NEXT_HOP
Well-Known Mandatory: ORIGIN

• O atributo ORIGEM define a origem do anúncio de rede, a origem pode ser :


• IGP :
– Rede originada internamente ao AS que enviou o anúncio, é indicada com um "i" na
tabela BGP.
• EGP:
– (Obsoleto) A rede é aprendido através EGP, que é considerado um protocolo de
roteamento histórico e não é compatível com o Internet, é indicado com um "e" na
tabela BGP.
• incompleto:
– A origem da rede é desconhecida ou é aprendida através de outros meios e
geralmente ocorre quando uma rota é redistribuída no BGP, é indicado com o sinal "?"
Na tabela BGP.
Well-Known Discretionary: LOCAL_PREF
• Roda internamente na AS.

• Não é passado para os peers EBGP e Informa no AS qual o melhor caminho


para sair do AS.

• Um caminho com Local preference maior é preferido. Default Cisco = 100.


Well-Known Discretionary: LOCAL_PREF

• Os roteadores A e B são vizinhos IBGP no AS 64520 e ambos recebem


atualizações sobre a rede 172.16.0.0 por diferentes caminhos.
• O Local Preference no roteador A está definido para 200.
• O Local Preference no router B está definido para 150.
• Como o Local Preference para o roteador A é maior, ele será selecionado como
o ponto de saída preferido pelo AS 64520.
Optional Transitive: Community
• O atributo community possibilita que preefixos sejam agrupados de forma que
possam receber o mesmo tratamento por um vizinho que receba tais prefixos.
• Um grupo de prefixos que possuem as mesmas propriedades podem ser
marcados com a mesma community e pode-se por exemplo tomar decisões
de roteamento para o grupo todo de prefixos, sem a necessidade de avaliar
um a um.
• Provedores de Serviço utilizam essas marcações para aplicar políticas de
roteamento específicas em suas redes, por exemplo alterando o Local
Preference, MED ou Weight.
Optional Transitive: Community

Communities pré definadas:

- No-Export : Não faz anúncio aos eBGP peers.

- No-Advertise : Não faz anúncio para nenhum peer.

- No-Export-Subconfed : Não faz anúncio para fora do sub-as, usado


somente quando se trabalha com confederation.
Optional Transitive: Community
Exemplo do No-Export

- AS 100 anuncia o agregado e também sub prefixos para promover


load sharing.
- Os sub prefixos São marcados com a community No-Export.
- Roteador G não passa para frente os anúncios de sub prefixos.
Optional Nontransitive: MED
• Atributo Multiple Exit Discriminator (MED) , também chamado de métrica,
fornece uma “dica” para os vizinhos externos sobre o caminho preferido em um
AS que tem mais que um ponto de entrada.

• O menor valor de MED será o caminho preferido.

• MED é enviado para EBGP peers e é propagado somente para os demais


roteadores internos a esse AS, o atributo não é enviado a outros peers EBGP.

• Usando o atributo MED o BGP é o único protocolo que pode afetar a forma de
encaminhamento do tráfego entrante em um AS.
Optional Nontransitive: MED

• Roteadores B e C incluem um atributo MED nos anúncios para o roteador A.


• Router B envia o anúncio da rede 172.20.0.0 com MED 150.
• Router C envia o anúncio da rede 172.20.0.0 com MED 200.
• Router A irá escolher o roteador B como melhor caminho devido ao menor valor
do MED.
BGP – processo de decisão

• A tabela de encaminhamento BGP pode ter vários caminhos a escolher para


cada rede.
• BGP não foi projetado para realizar o balanceamento de carga
automaticamente
• Os caminhos são escolhidos por alguma política e não por características dos
links
• O processo de seleção BGP elimina quaisquer múltiplos caminhos através de
comparações até que um único melhor caminho seja selecionado e este será
então oferecido para a tabela de rotas.
BGP – processo de decisão
• Prefer the route with highest • Prefer the route with the lowest
weight. MED.

• Prefer the EBGP route over IBGP


• Prefer the route with highest route.
LOCAL_PREF.

• Prefer the route through the closest


IGP neighbor.
• Prefer the locally generated route
(network or aggregate routes).

• Prefer the oldest EBGP route.

• Prefer the route with the shortest


AS-PATH.
• Prefer the route with the lowest
neighbor BGP router ID value.

• Prefer the route with the lowest


ORIGIN (IGP<EGP<incomplete) • Prefer the route with the lowest
neighbor IP address.
Utilizando políticas no BGP
Interferindo no processo de decisão do BGP
Input policies
discarded
BGP in
in
process accepted
everything

bgp BGP forwarding


peer table table
best paths

BGP out
out
process
output policies
Estruturas para testar/manipular anúncios

ACL’s (1/3)

ACL classifies packets into different types by based on


packet information.

acl 2001
rule 0 permit source 1.1.0.0 0.0.255.255

1.1.1.1/32 1.1.1.1/32

1.1.1.0/24 1.1.1.0/24

1.1.0.0/16 1.1.0.0/16

1.0.0.0/8
Estruturas para testar/manipular anúncios

ACL ‘s(2/3)

acl 2001
rule 0 permit source 1.1.1.1 0
rule 1 deny source 1.1.1.0 0
rule 2 permit source 1.1.0.0 0.0.255.0
rule 3 deny source any

1.1.1.1/32 1.1.1.1/32

1.1.1.0/24 1.1.0.0/16

1.1.0.0/16

1.0.0.0/8
Estruturas para testar/manipular anúncios

ACL’s (3/3)

acl 2001
rule 0 permit source 1.1.1.0 0

1.1.1.1/32 1.1.1.0/24

1.1.1.0/24 1.1.1.0/25

1.1.1.0/25 ACL can flexibly match packets


against IP address prefixes, but
1.1.0.0/16 cannot match mask length.

1.0.0.0/8 Question: How to filter out the


route 1.1.1.0/25?
Estruturas para testar/manipular anúncios

IP-Prefix List Application Example (1/2)

IP-Prefix List can match both IP address prefix


and mask length.

IP-Prefix List cannot filter IP packets, but can filter only


routing information.

ip ip-prefix test index 10 permit 10.0.0.0 16


greater-equal 24 less-equal 28
IP address range: 10.0.0.0 – 10.0.x.x
24<= Mask length<=28
Example: 10.0.1.0/24, 10.0.2.0/25, 10.0.2.192/26
Estruturas para testar/manipular anúncios

IP-Prefix List Application Example (2/2)

ip ip-prefix Pref1 index 10 permit 1.1.1.0 24


greater-equal 24 less-equal 24

1.1.1.1/32 1.1.1.0/24

1.1.1.0/24
"greater-equal 24 less-equal 24"
1.1.1.0/25 indicates that the mask length is
24.

1.1.0.0/16

1.0.0.0/8 The route 1.1.1.0/25 will be


filtered out.
Estruturas para testar/manipular anúncios

Filter-Policy

• Filter-Policy can filter the received or advertised RIP, OSPF, and


BGP routes.

• Filter the routes received by protocols:


filter-policy { acl-number | ip-prefix ip-prefix-name }
import

• Filter the routes advertised by protocols:


filter-policy { acl-number | ip-prefix ip-prefix-name }
export
Estruturas para testar/manipular anúncios

Route-Policy

Route-policy is a powerful tool. It can be used together with other tools


such as ACL, IP prefix list, and AS path filter.

Format of route policy:


route-policy route-policy-name { permit | deny } node node
if-match {acl/cost/interface/ip next-hop/ip-prefix}
apply {cost/ip-address next-hop/tag}

A route policy consists of multiple nodes, which have the OR relationship.


Each node has multiple if-match and apply clauses, and the if-match
clauses have the AND relationship.
Estruturas para testar/manipular anúncios
Route-Policy Application Example

Table-1 acl 2001


Network Cost NextHop rule 0 permit source 1.1.3.0 0.0.0.255
1.1.2.0/24 4687 34.34.34.2 acl 2002
4687 13.13.13.1 rule 0 permit source 13.13.13.1 0
1.1.3.0/24 4687 34.34.34.2
route-policy RP deny node 10
4687 13.13.13.1 if-match ip-prefix Pref1
1.1.3.0/25 1 34.34.34.2 route-policy RP permit node 20
1 13.13.13.1 if-match ip-prefix Pref2
5.5.5.5/32 4687 34.34.34.2 route-policy RP permit node 30
4687 13.13.13.1 if-match acl 2001
6.6.6.6/32 4687 34.34.34.2 if-match ip next-hop acl 2002
4687 13.13.13.1 apply cost 21
route-policy RP permit node 40
if-match ip-prefix Pref3
apply cost 11
Table-2 route-policy RP permit node 50
#
Network Cost NextHop
ip ip-prefix Pref1 index 10 permit 5.5.5.5 32
1.1.3.0/24 4687 34.34.34.2
ip ip-prefix Pref1 index 20 permit 1.1.2.0 24
21 13.13.13.1 ip ip-prefix Pref2 index 10 deny 6.6.6.6 32
1.1.3.0/25 11 34.34.34.2 ip ip-prefix Pref3 index 10 permit 1.1.3.0 24
21 13.13.13.1 greater-equal 25 less-equal 25
Atributos mais utilizados na seleção de rota

– Local-Preference
– AS-Path
– MED
– Communities
Configure the Default Value of the Local-
Preference
[RTB]bgp 200
[RTB-bgp]default local-preference 2000 AS 200
10.1.1.2

AS 100 10.1.1.1
RTB

192.168.1.1/32 10.4.4.1
RTA
RTD
10.4.4.2

[RTC]bgp 200 RTC


[RTC-bgp]default local-preference 1000
Configuring Local-Preference via Policy

AS 200
10.1.1.2

AS 100 10.1.1.1
RTB
RTD
192.168.1.0/24 10.4.4.1
192.168.2.0/24 RTA
10.4.4.2

RTC

• RTD pode alcançar AS100 por 2 caminhos diferentes.


– O next hop é RTB para o tráfego 192.168.1.0/24.
– O next hop é RTC para o tráfego 192.168.2.0/24.
Policy Configuration on RTB
#
acl number 2000
rule 5 permit source 192.168.1.0 0.0.0.255
#
bgp 200
peer 10.1.1.1 as-number 100
peer 3.3.3.3 as-number 200
#
ipv4-family unicast
undo synchronization
peer 10.1.1.1 enable
peer 10.1.1.1 route-policy test1 import
#
route-policy test1 permit node 10
if-match acl 2000
apply local-preference 2000
route-policy test1 permit node 20
apply local-preference 1000
#
Policy Configuration on RTC
#
acl number 2000
rule 5 permit source 192.168.2.0 0.0.0.255
#
bgp 200
peer 10.4.4.1 as-number 100
peer 2.2.2.2 as-number 200
#
ipv4-family unicast
undo synchronization
peer 10.4.4.1 enable
peer 10.4.4.1 route-policy test1 import
#
route-policy test1 permit node 10
if-match acl 2000
apply local-preference 2000
route-policy test1 permit node 20
apply local-preference 1000
#
Configuring MED via Policy

Prefix/Mask Med
AS 100 RTA 192.168.1.0/24 1000
192.168.3.0/24 2000
RTB AS 200
RTE RTF
10.1.1.1 10.1.1.2

192.168.1.0/24
192.168.3.0/24
Prefix/Mask Med
RTC 192.168.1.0/24 2000 RTD
192.168.3.0/24 1000

• O valor do MED no AS100 é configurado via policy para influenciar a seleção


de rota para AS200.
Policy Configuration on RTA

#
bgp 100
peer 10.1.1.2 as-number 200
peer 3.3.3.3 as-number 100
peer 5.5.5.5 as-number 100
#
ipv4-family unicast
undo synchronization
peer 10.1.1.2 enable
peer 10.1.1.2 route-policy test1 export
peer 3.3.3.3 enable
peer 5.5.5.5 enable
#
route-policy test1 permit node 10
if-match ip-prefix 1
apply cost 2000
route-policy test1 permit node 20
apply cost 1000
#
ip ip-prefix 1 index 10 permit 192.168.3.0 24 greater-equal 24 less-equal 24
#
Policy Configuration on RTC

#
bgp 100
peer 10.4.4.1 as-number 200
peer 1.1.1.1 as-number 100
peer 5.5.5.5 as-number 100
#
ipv4-family unicast
undo synchronization
peer 10.4.4.1 enable
peer 10.4.4.1 route-policy test1 export
peer 1.1.1.1 enable
peer 5.5.5.5 enable
#
route-policy test1 permit node 10
if-match ip-prefix 1
apply cost 2000
route-policy test1 permit node 20
apply cost 1000
#
ip ip-prefix 1 index 10 permit 192.168.1.0 24 greater-equal 24 less-equal 24
#
AS-Path Additive

AS-PATH 100
AS 100 AS 200
10.1.1.1 10.1.1.2 10.2.2.1
192.168.1.0/24
192.168.2.0/24 RTA RTB
10.4.4.2 10.3.3.1

10.3.3.2 AS-PATH 200 100


AS-PATH 100
10.4.4.1
AS 300
RTC

O caminho para escoar o tráfego do AS300 para o AS100 seria pelo link direto
entre eles, AS-PATH mais curto. Para forçar esse tráfego através do AS200, no
Roteador A adiciona-se + 2 AS’s no AS-PATH.
Policy Configuration on RTA

#
bgp 100
peer 10.4.4.1 as-number 300
peer 10.1.1.2 as-number 200
#
ipv4-family unicast
undo synchronization
peer 10.4.4.1 enable
peer 10.4.4.1 route-policy test1 export
peer 10.1.1.2 enable
#
route-policy test1 permit node 10
if-match ip-prefix 1
apply as-path 100 100 additive
route-policy test1 permit node 20
#
ip ip-prefix 1 index 10 permit 192.168.1.0 24
#
AS-Path Filter

AS 200
10.1.1.2 10.2.2.1

AS 100 10.1.1.1
RTB
10.2.2.2
AS 300
192.168.1.0/24 RTC
10.4.4.2 10.3.3.1
192.168.2.0/24 RTA RTD
10.4.4.1 10.3.3.2

AS 400

 RTC quer receber apenas anúncios do AS300.


Configuration on RTC

#
bgp 400
peer 10.4.4.2 as-number 100
peer 10.3.3.1 as-number 300
#
ipv4-family unicast
undo synchronization
peer 10.4.4.2 enable
peer 10.4.4.2 as-path-filter 1 import
peer 10.3.3.1 enable
peer 10.3.3.1 as-path-filter 1 import
#
ip as-path-filter 1 permit ^300_
#
Expressões Regulares

Expressões Regulares usadas no BGP - Significado dos caracteres


.

Um número isolado satisfaz a condição para qualquer


1 expressão que contenha esse número.
Satisfaz a condição para qualquer número no lugar do
. ponto.

Satisfaz a condição para caracteres que comecem com


^ o caracter (ou expressão) após o ^.
Satisfaz a condição para tudo o que for terminado com
$ o caracter ou expressão ao lado esquerdo de $.
Satisfaz a condição para qualquer caractere a esquerda
* do * , inclusive nenhum. Por isso é preciso usar um
caracter de espaço em branco “-” em conjunto.
Expressões Regulares
Expressões Regulares usadas no BGP - Significado dos caracteres
.
.

Satisfaz a condição para qualquers dos caracteres que


[] estejam dentro dos colchetes. O caractere ^ dentro dos
colchetes representa uma negação.
Especifica um número ou intervalo de repetições para
{} um caracter ou expressão.
O caractere pipe representa o operador lógico “ou”.
|
Satisfaz a condição para uma ou nenhuma ocorrencia
? do caracter (ou expressão) anterior
Satisfaz a condição para uma ou mais que uma
+ ocorrência do caractere ou expressão anterior.
Expressões Regulares

.
. A tabela abaixo apresenta as expressões mais utilizadas.

representa todo o conjunto de rotas BGP


.*
representa somente as rotas locais do próprio AS
^$
somente as rotas pertencentes ao AS100
^100$
rotas que foram originadas no AS100 e podem ter
_100$ passado por outros As’s
rotas recebidas do AS100 que podem ter sido
^100_ originadas em outros AS’s
rotas que atravessaram o AS100
_100_
rotas originadas em AS’s peers EBGP
^[0-9]+$
BGP Community

Expected direction of the traffic flow

AS 200
10.1.1.1 10.1.1.2
RTA RTB
1000M
AS 100 10.4.4.2 10.2.2.1 1000M

10.0.0.0/24
10.4.4.1 10.2.2.2 AS 300
10.3.3.2 10.3.3.1
RTD RTC
10M

Default direction of the traffic flow


Configuration on RTA

bgp 100
peer 10.4.4.1 as-number 100
peer 10.1.1.2 as-number 200
#
ipv4-family unicast
undo synchronization
peer 10.4.4.1 enable
peer 10.1.1.2 enable
peer 10.1.1.2 route-policy set_community export
peer 10.1.1.2 advertise-community
#
route-policy set_community permit node 10
apply community 100:1
Configuration on RTD

bgp 100
peer 10.4.4.2 as-number 100
peer 10.3.3.1 as-number 300
#
ipv4-family unicast
undo synchronization
peer 10.4.4.2 enable
peer 10.3.3.1 enable
peer 10.3.3.1 route-policy set_community export
peer 10.3.3.1 advertise-community
#
route-policy set_community permit node 10
apply community 100:2
Configuration on RTC
bgp 300
peer 10.2.2.1 as-number 200
peer 10.3.3.2 as-number 100
#
ipv4-family unicast
undo synchronization
peer 10.2.2.1 enable
peer 10.2.2.1 route-policy set_local_pref import
peer 10.2.2.1 advertise-community
peer 10.3.3.2 enable
peer 10.3.3.2 route-policy set_local_pref import
peer 10.3.3.2 advertise-community
#
route-policy set_local_pref permit node 10
if-match community-filter 1
apply local-preference 200
Route-policy set_local_pref permit node 20
if-match community-filter 2
apply local-preference 50
#
ip community-filter 1 permit 100:1
ip community-filter 2 permit 100:2
Display Community Attribute

[RTC]display bgp routing-table community

Total Number of Routes: 2

BGP Local router ID is 10.2.2.2


Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Community

* 10.0.0.0/24 10.3.3.2 0 50 0 <100:2>


*> 10.2.2.1 200 0 <100:1>
Display the Community Attribute (Cont.)
[RTC]display bgp routing-table 10.0.0.0

BGP local router ID : 10.2.2.2


Local AS number : 300
Paths: 2 available, 1 best

BGP routing table entry information of 10.0.0.0/24:


From: 10.2.2.1 (10.1.1.2)
Original nexthop: 10.2.2.1
Community:<100:1>
AS-path 200 100, origin igp, localpref 200, pref-val 0, valid, external, best,
pre 255
Advertised to such 1 peers:
10.3.3.2

BGP routing table entry information of 10.0.0.0/24:


From: 10.3.3.2 (10.3.3.2)
Original nexthop: 10.3.3.2
Community:<100:2>
AS-path 100, origin igp, MED 0, localpref 50, pref-val 0, valid, external, pre
255
Not advertised to any peer yet
Communities

• A RFC 1998 serviu como inspiração para que o uso de communities nas políticas
.
fosse largamente utilizado pelos ISP’s.
Não existe uma padronizãção para o uso das communities nos ISP’s mas as
“boas práticas de BGP” ditam que elas devem ser utilizadas para facilitar
multihoming e engenharia de tráfego.

• Uma lista com a definição e uso de communities dos principais ISP’s, pode ser
vista em http://www.onesc.net/communities/

• Normalmente também pode-se encontrar as communities e respectivas políticas


nos sites das operadoras e ISP’s de trânsito.
Communities

.
.

Filtragem de anúncios
Filtragem de anúncios

Prefixos Recebidos - O que filtrar ?

Três cenários possíveis

- BGP entre Cliente e ISP

- BGP entre ISP’s - peering

- BGP com UpStream/Transit provider

Cada um tem diferentes requisitos de filtragem


Filtragem de anúncios

Prefixos Recebidos
de clientes

• ISP’s só devem aceitar prefixos que tenham sido


atribuídos ao cliente.

• Se o ISP não for o responsável pela atribuição dos


prefixos do cliente, então deve certificar-se que tais prefixos
estão realmente atribuídos ao cliente.

•Ferramenta para isso : Whois


Filtragem de anúncios

Prefixos Recebidos
de clientes:
whois.registro.br
Filtragem de anúncios

Prefixos Recebidos
peers ISP’s

• Um AS peer é um ISP com o qual se concorda trocar


anúncios de prefixos que cada um gerou para Internet.

• Só devem ser aceitos os prefixos que o respectivo AS


peer indicou que irá anunciar.

• O seu AS só deve anunciar os prefixos que foram


previamente indicados aos demais AS peers.
Filtragem de anúncios

Prefixos Recebidos
de UpStream/
Transit provider

• Um UpStream/ Transit provider é um ISP ao qual você


paga para lhe fornecer trânsito para toda Internet

• Não aceite rota default ( a menos que seja necessário)


• Não aceite endereços privados e de uso especial (rfc
1918) http://www.rfc-editor.org/rfc/rfc5735.txt
• Não aceite prefixos maiores que /24 (/25, /26...)
Filtragem de anúncios

Prefixos Recebidos
de UpStream/
Transit provider

• Confira a lista de “bogons” da Tean Cymru


http://www.team-cymru.org/Services/Bogons/http.html

• Utilize o bogon route server - Fornece via sessão BGP


uma relação de blocos que não devem constar na tabela da
Internet. São blocos válidos que não estão sendo utilizados
e também os blocos privados (rfc1918).
http://www.team-cymru.org/Services/Bogons/bgp.html
.

BGP – Cenários Típicos


BGP em Cliente – Multihomed (1)

• Links para ISP’s diferentes ( básico)

AS130 (cliente) pode receber


Toda tabela de rotas (Full routing)
Tabela parcial (Partial routing)
Somente rota default
BGP em Cliente – Multihomed (2)

• Links para ISP’s diferentes (melhorado )

AS130 (cliente) pode receber


Toda tabela de rotas (Full routing)
Tabela parcial (Partial routing)
Somente rota default
Como dividir os blocos

• Links para ISP’s diferentes

Quando se adota a solução de divisão do bloco para anuncia-los de


forma diferenciada, um cuidado especial deve ser tomado no
planejamento da distribuição de endereços

Essa seria a a maneira natural na divisão, mas não seria eficiente, a


maioria dos clientes estaria na segunda metada.
Como dividir os blocos

• Links para ISP’s diferentes

Para que o load sharing funcione...

- Dividir o bloco em duas partes, separar o necessário para infra


(loopbacks e /30 par links internos).
- Na alocação para os clientes alternar a escolha entre as duas
metades.
- Dessa forma a distribuição de tráfego entre os ISP’s de UpStream
será mais equilibrada.
BGP nos Provedores de Serviços

. ISP Peers

AS 100 A H AS 200

B C

AS 300
provider IBGP (Full Mesh)
D F
IGP (OSPF ou ISIS) entre os roteadores BGP
para divulgar
E
endereços internos
PTT
Rota estática
ou EBGP
G

AS 400
Clientes
Topologia típica de um ISP
PTT - Estrutura

Servidores de
Looking
Rotas
AS 10 Glass
L3 IX
AS 26162
Peering Privado
(Bilateral)

L2
AS 20

Peering Multilat
(ATM)

AS 30
AS 40 AS 50
ISP - Cenário Típico
Exemplo de utilização e configuração

- AS 100 compra trânsito do AS 300


- AS 100 tem uma conexão com PTT-RS AS 64502
- AS 100 tem uma conexão com PTT-LG AS 64522
- AS 100 tem um cliente AS 200
- AS 100 troca tráfego e fornece trânsito para AS 400
Adaptado de Boas práticas para peering no PTTMetro - GTER 30
http://gter.nic.br/reunioes/gter-30
Cenário Típico
Exemplo de utilização e configuração

política de tráfego

Prioridade de tráfego em ordem crescente

Clientes AS local-pref 400


ATM no PTT local-pref 300
Trânsito comprado dentro do PTT local-pref 200
Trânsito comprador fora do PTT local-pref 100

Tradução de políticas para engenharia de tráfego

Filtrtos de entrada controlam a saída do tráfego


Filtros de saída controlam a entrada do tráfego

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
Cenário Típico
Exemplo de utilização e configuração
política de communities

Controle de prefixos aprendidos

100:10 prefixos aprendidos de peering trânsito


100:20 prefixos aprendidos do PTT
100:30 prefixos aprendidos de cliente AS
100:40 prefixos de AS’s somente peering
100:100 prefixos locais bloco todo
100:101 prefixos locais primeira metade do bloco
100:102 prefixos locais segunda metade do bloco
Controle de anúncios

100:30 e 100:100 anuncia para todos os peerings


100:101 anuncia apenas para os peers trânsito A
100:102 anuncia apenas para os peers trânsito B
100:300 anuncia apenas no PTT

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
Cenário Típico
Exemplo de utilização e configuração

balanceamento de tráfego

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
Lab_bgp_2

O BGP básico já está configurado. Você deve configurar todas as póliticas necessárias
no roteador AS100 de acordo com proposto, utilizando as communities para tratamento
e filtragem dos anúncios recebidos e enviados.
AS100
Exemplo de utilização e configuração

Criando as rotas estáticas

ip route-static 200.100.0.0 255.255.252.0 NULL0


ip route-static 200.100.0.0 255.255.254.0 NULL0
ip route-static 200.100.2.0 255.255.254.0 NULL0
ip route-static 200.100.0.0 255.255.255.0 NULL0
ip route-static 200.100.1.0 255.255.255.0 NULL0
ip route-static 200.100.2.0 255.255.255.0 NULL0
ip route-static 200.100.3.0 255.255.255.0 NULL0

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100
Exemplo de utilização e configuração

Divulgando as redes no BGP

network 200.100.0.0 255.255.252.0 route-policy BLOCO_TODO


network 200.100.0.0 255.255.254.0 route-policy PRIMEIRO_23
network 200.100.0.0 route-policy SO_PTT
network 200.100.1.0 route-policy SO_PTT
network 200.100.2.0 255.255.254.0 route-policy SEGUNDO_23
network 200.100.2.0 route-policy SO_PTT
network 200.100.3.0 route-policy SO_PTT

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100
Exemplo de utilização e configuração
Criando policies para setar atributos

route-policy BLOCO_TODO permit node 10


apply local-preference 500
apply community 100:100

route-policy PRIMEIRO_23 permit node 10


apply local-preference 500
apply community 100:101

route-policy SEGUNDO_23 permit node 10


apply local-preference 500
apply community 100:102

route-policy SO_PTT permit node 10


apply local-preference 500
apply community 100:300

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS 64522
Exemplo de utilização e configuração
Filtros para anúncios recebidos do PTT (ATM)

Rejeitar
Rota default
Bogons
Prefixos do nosso próprio AS
Prefixos moires que /24

Marcar prefixos recebidos com community 100:20


Marcar prefixos recebidos com local-preference 300

Evitar ser usado como trânsito.Pacotes não destinados aos nossos blocos
Ou clientes do AS

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS 64522
Exemplo de utilização e configuração
Filtros na entrada ATM no PTT
route-policy PTT_ATM_IN deny node 10
description Nao aceita rota default pelo PTT
if-match ip-prefix NAO_DEFAULT
#
route-policy PTT_ATM_IN deny node 20
description Nao aceita bogons
if-match ip-prefix BOGONS
#
route-policy PTT_ATM_IN deny node 30
description Nao aceita blocos AS100
if-match ip-prefix BLOCOS_AS100
#
route-policy PTT_ATM_IN permit node 40
apply local-preference 300
apply community 100:20

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS 64522
Exemplo de utilização e configuração
Filtros na entrada ATM no PTT

ip ip-prefix NAO_DEFAULT index 10 permit 0.0.0.0 0

ip ip-prefix BOGONS index 20 permit 10.0.0.0 8 greater-equal 8 less-equal 32


ip ip-prefix BOGONS index 30 permit 100.64.0.0 10 greater-equal 10 less-equal 32
ip ip-prefix BOGONS index 40 permit 127.0.0.0 8 greater-equal 8 less-equal 32
ip ip-prefix BOGONS index 50 permit 169.254.0.0 16 greater-equal 16 less-equal 32
ip ip-prefix BOGONS index 60 permit 172.16.0.0 12 greater-equal 12 less-equal 32
ip ip-prefix BOGONS index 70 permit 192.0.0.0 24 greater-equal 24 less-equal 32
ip ip-prefix BOGONS index 80 permit 192.0.2.0 24 greater-equal 24 less-equal 32
ip ip-prefix BOGONS index 90 permit 192.168.0.0 16 greater-equal 16 less-equal 32
ip ip-prefix BOGONS index 100 permit 198.18.0.0 15 greater-equal 15 less-equal 32
ip ip-prefix BOGONS index 110 permit 192.51.100.0 24 greater-equal 24 less-equal 32
ip ip-prefix BOGONS index 120 permit 203.0.113.0 24 greater-equal 24 less-equal 32
ip ip-prefix BOGONS index 130 permit 224.0.0.0 4 greater-equal 4 less-equal 32

ip ip-prefix BLOCOS_AS100 index 10 permit 200.100.0.0 22 le 32


ip ip-prefix NAO_MAIOR_24 index 10 permit 0.0.0.0 0 less-equal 24
AS100 – AS 64522
Exemplo de utilização e configuração
Filtros na saída ATM no PTT

route-policy PTT_ATM_OUT deny node 10


description Nao anuncia prefixos nessa communities
if-match community-filter NAO_ANUNCIA_PTT

route-policy PTT_ATM_OUT permit node 20


description anuncia prefixos com community 100 e/ou 300
if-match community-filter ANUNCIA_PTT

ip community-filter basic NAO_ANUNCIA_PTT permit 100:100


ip community-filter basic NAO_ANUNCIA_PTT permit 100:200
ip community-filter basic NAO_ANUNCIA_PTT permit 100:10
ip community-filter basic ANUNCIA_PTT permit 100:300
ip community-filter basic ANUNCIA_PTT permit 100:30

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS 64522
Exemplo de utilização e configuração

Aplicando as políticas no peer

peer 200.10.10.254 ip-prefix NAO_MAIOR_24 import


peer 200.10.10.254 ip-prefix NAO_MAIOR_24 export
peer 200.10.10.254 route-policy PTT_ATM_IN import
peer 200.10.10.254 route-policy PTT_ATM_OUT export

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS400
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 400 (conectado via PTT)

Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos moires que /24

Marcar prefixos recebidos com community 100:10


Marcar prefixos recebidos do AS400 e seus
vizinhos diretos com local-preference 200

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS400
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 400 (conectado via PTT)

route-policy AS400_IN deny node 10


description Nao aceita rota default pelo PTT
if-match ip-prefix NAO_DEFAULT

route-policy AS400_IN deny node 20


description Nao aceita bogons
if-match ip-prefix BOGONS

route-policy AS400_IN deny node 30


description Nao aceita blocos AS100
if-match ip-prefix BLOCOS_AS100

route-policy AS400_IN permit node 40


if-match as-path-filter AS400_E_VIZINHO
apply local-preference 200
apply community 100:10
Adaptado de Boas práticas para peering no PTTMetro - GTER 30
http://gter.nic.br/reunioes/gter-30
AS100 – AS400
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 400 (conectado via PTT)

ip as-path-filter AS400_E_VIZINHO permit ^(400_)+$


ip as-path-filter AS400_E_VIZINHO permit ^(400_)+[0-9]+$

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS400
Exemplo de utilização e configuração
Filtros na saída para AS 400 (conectado via PTT)

route-policy TRANSITO_A_OUT permit node 20


description anuncia prefixos com community 100 e 101
if-match community-filter ANUNCIA_TRANSITO_A

ip community-filter basic ANUNCIA_TRANSITO_A permit 100:100


ip community-filter basic ANUNCIA_TRANSITO_A permit 100:101
ip community-filter basic ANUNCIA_TRANSITO_A permit 100:30

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS400
Exemplo de utilização e configuração

Aplicando as políticas no peer

peer 200.40.3.249 ip-prefix NAO_MAIOR_24 import


peer 200.40.3.249 ip-prefix NAO_MAIOR_24 export
peer 200.40.3.249 route-policy AS400_IN import
peer 200.40.3.249 route-policy TRANSITO_A_OUT export

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS300
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 300

Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos moires que /24

Marcar prefixos recebidos com community 100:10


Marcar prefixos recebidos do AS300 e seus
vizinhos diretos com local-preference 200

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS300
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 300

route-policy AS300_IN deny node 10


description Nao aceita rota default pelo PTT
if-match ip-prefix NAO_DEFAULT

route-policy AS300_IN deny node 20


description Nao aceita bogons
if-match ip-prefix BOGONS

route-policy AS300_IN deny node 30


description Nao aceita blocos AS100
if-match ip-prefix BLOCOS_AS100

route-policy AS300_IN permit node 40


if-match as-path-filter AS300_E_VIZINHO
apply local-preference 100
apply community 100:10

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS300
Exemplo de utilização e configuração
Filtros na entrada do trânsito vindo do AS 300

ip as-path-filter AS300_E_VIZINHO permit ^(300_)+$


ip as-path-filter AS300_E_VIZINHO permit ^(300_)+[0-9]+$

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS300
Exemplo de utilização e configuração
Filtros na saída para o AS 300

route-policy TRANSITO_B_OUT permit node 20


description anuncia prefixos com community 100 e 102
if-match community-filter ANUNCIA_TRANSITO_B

ip community-filter basic ANUNCIA_TRANSITO_B permit 100:100


ip community-filter basic ANUNCIA_TRANSITO_B permit 100:102
ip community-filter basic ANUNCIA_TRANSITO_B permit 100:30

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS300
Exemplo de utilização e configuração

Aplicando as políticas no peer

peer 200.30.3.254 ip-prefix NAO_MAIOR_24 import


peer 200.30.3.254 ip-prefix NAO_MAIOR_24 export
peer 200.30.3.254 route-policy AS300_IN import
peer 200.30.3.254 route-policy TRANSITO_B_OUT export

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS200
Exemplo de utilização e configuração
Filtros na entrada do AS cliente

Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos maoires que /24

Aceitar somente prefixos com apenas o AS-Path do cliente


Marcar prefixos recebidos com community 100:30
Marcar prefixos recebidos com local-preference 400

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS200
Exemplo de utilização e configuração
Filtros na entrada do AS cliente
route-policy CLIENTE_AS200_IN deny node 10
description Nao aceita rota default pelo PTT
if-match ip-prefix NAO_DEFAULT

route-policy CLIENTE_AS200_IN deny node 20


description Nao aceita bogons
if-match ip-prefix BOGONS

route-policy CLIENTE_AS200_IN deny node 30


description Nao aceita blocos AS100
if-match ip-prefix BLOCOS_AS100

route-policy CLIENTE_AS200_IN permit node 40


if-match as-path-filter CLIENTE_AS_200
apply local-preference 400
apply community 100:30

ip as-path-filter CLIENTE_AS_200 permit ^(200_)+$


AS100 – AS200
Exemplo de utilização e configuração
Filtros na saída do AS cliente

route-policy CLIENTE_FULL_OUT permit node 20


description anuncia transito, ptt,outros clientes e locais
communities 100 ou 10 ou 20 ou 30
if-match community-filter ANUNCIA_CLIENTE_FULL

ip community-filter basic ANUNCIA_CLIENTE_FULL permit 100:100


ip community-filter basic ANUNCIA_CLIENTE_FULL permit 100:10
ip community-filter basic ANUNCIA_CLIENTE_FULL permit 100:20
ip community-filter basic ANUNCIA_CLIENTE_FULL permit 100:30

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS200
Exemplo de utilização e configuração

Se o cliente desejar Full Routing

peer 200.100.3.254 ip-prefix NAO_MAIOR_24 import


peer 200.100.3.254 ip-prefix NAO_MAIOR_24 export
peer 200.100.3.254 route-policy CLIENTE_AS200_IN import
peer 200.100.3.254 route-policy CLIENTE_FULL_OUT export

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS200
Exemplo de utilização e configuração

Se o cliente desejar Partial Routing

peer 200.100.3.254 ip-prefix NAO_MAIOR_24 import


peer 200.100.3.254 ip-prefix NAO_MAIOR_24 export
peer 200.100.3.254 route-policy CLIENTE_AS200_IN import
peer 200.100.3.254 route-policy CLIENTE_PARTIAL_OUT export

route-policy CLIENTE_PARTIAL_OUT permit node 10


if-match community-filter ANUNCIA_CLIENTE_PARTIAL

ip community-filter basic ANUNCIA_CLIENTE_PARTIAL permit 100:100


ip community-filter basic ANUNCIA_CLIENTE_PARTIAL permit 100:30
ip community-filter basic ANUNCIA_CLIENTE_PARTIAL permit 100:20

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
AS100 – AS200
Exemplo de utilização e configuração

Se o cliente desejar somente default

peer 200.100.3.254 ip-prefix NAO_MAIOR_24 import


peer 200.100.3.254 ip-prefix ANUNCIA_CLIENTE_SO_DEFAULT export
peer 200.100.3.254 route-policy CLIENTE_AS200_IN import
peer 200.100.3.254 default-route-advertise

ip ip-prefix ANUNCIA_CLIENTE_SO_DEFAULT permit 0.0.0.0 0

Adaptado de Boas práticas para peering no PTTMetro - GTER 30


http://gter.nic.br/reunioes/gter-30
.

BGP e IPv6
BGP e IPv6

MPBGP (Multiprotocol BGP)

- RFC 4760 define dois novos atributos para o BGP

- os atributos são do tipo opcional não transitivo

- MP_REACH_ NLRI
contém as informações de prefixo que pode ser alcançado,
é composto dos campos:
•AFI - Address Family Information
•Next-hop information - (deve ser do mesmo tipo que o address
family, por exemplo AFI ipv6 o next-hop tem que ser um endereço IPv6
•NLRI - Network Layer Reachability Information

- MP_UNREACH_NLRI
contém as informações de um prefixo que não pode mais ser alcançado
é deve ser retirado da tabela BGP
BGP e IPv6 – Ex de Configuração

R1 R2 R3

S1/0/0 S1/0/0 S2/0/0 S2/0/0

Loopback 0 Loopback 0 Loopback 0


2001:1::1/64 2001:2::2/64 2001:3::3/64
BGP e IPv6 – Ex de Configuração

R1 R2 R3
bgp 200
router-id 2.2.2.2
peer 2001:3::3 as-number 200 S1/0/0 S1/0/0 S2/0/0 S2/0/0
peer 2001:3::3 connect-interface LoopBack0
peer 2001:3::3 password simple Huawei
peer 2001:12::1 as-number 100
peer 2001:12::1 password simple Huawei <R3>dis bgp ipv6 routing-table
# Total Number of Routes: 3
ipv4-family unicast *>i Network : 2001:1:: PrefixLen : 64
undo synchronization NextHop : 2001:2::2 LocPrf : 100
# MED :0 PrefVal : 0
ipv6-family unicast Label :
undo synchronization Path/Ogn : 100 i
network 2001:2:: 64 *>i Network : 2001:2:: PrefixLen : 64
peer 2001:3::3 enable NextHop : 2001:2::2 LocPrf : 100
peer 2001:3::3 next-hop-local MED :0 PrefVal : 0
peer 2001:12::1 enable Label :
Path/Ogn : i
*> Network : 2001:3:: PrefixLen : 64
bgp 200 NextHop : :: LocPrf :
router-id 3.3.3.3 MED :0 PrefVal : 0
peer 2001:2::2 as-number 200 Label :
peer 2001:2::2 connect-interface LoopBack0 Path/Ogn : i
peer 2001:2::2 password simple Huawei
# <R3>ping ipv6 -a 2001:3::3 2001:1::1
ipv4-family unicast PING 2001:1::1 : 56 data bytes, press CTRL_C to break
undo synchronization Reply from 2001:1::1 bytes=56 Sequence=1 hop limit=63 time = 81 ms
# Reply from 2001:1::1 bytes=56 Sequence=2 hop limit=63 time = 62 ms
ipv6-family unicast Reply from 2001:1::1 bytes=56 Sequence=3 hop limit=63 time = 63 ms
undo synchronization Reply from 2001:1::1 bytes=56 Sequence=4 hop limit=63 time = 63 ms
network 2001:3:: 64 Reply from 2001:1::1 bytes=56 Sequence=5 hop limit=63 time = 63 ms
peer 2001:2::2 enable

Você também pode gostar