Escolar Documentos
Profissional Documentos
Cultura Documentos
para ISP’s
Introdução ao BGP
Roteamento entre AS’s
Internal BGP
Quando BGP neighbors
pertencem ao mesmo
sistema autônomo são
chamados IBGP.
Configurando sessões IBGP e EBGP
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
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
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
.3
<RTB>display ip routing-table
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
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
OSPF
EBGP
AS 100 RTC AS 300
200.0.0.0/24
AS 200
EBGP IBGP
AS 100 AS 200
EBGP 10.1.24.0/24
RTD
AS 300
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
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)
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
Path Attributes
Update Message Information
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.
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
• 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
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
• 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
BGP out
out
process
output policies
Estruturas para testar/manipular anúncios
ACL’s (1/3)
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.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
Filter-Policy
Route-Policy
– 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
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
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
#
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
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
#
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
.
. A tabela abaixo apresenta as expressões mais utilizadas.
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
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
• 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/
.
.
Filtragem de anúncios
Filtragem de anúncios
Prefixos Recebidos
de clientes
Prefixos Recebidos
de clientes:
whois.registro.br
Filtragem de anúncios
Prefixos Recebidos
peers ISP’s
Prefixos Recebidos
de UpStream/
Transit provider
Prefixos Recebidos
de UpStream/
Transit provider
. 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
política de tráfego
balanceamento de tráfego
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
Rejeitar
Rota default
Bogons
Prefixos do nosso próprio AS
Prefixos moires que /24
Evitar ser usado como trânsito.Pacotes não destinados aos nossos blocos
Ou clientes do AS
Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos moires que /24
Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos moires que /24
Rejeitar
Rota default
Bogons
Prefixos do próprio AS 100
Prefixos maoires que /24
BGP e IPv6
BGP e IPv6
- 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
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