Planejamento de Endereços
Para começar a trabalhar com BGP, elaborei um planejamento de endereçamento que será usado ao longo dos testes. Ele segue o seguinte modelo:
Para IPv6:
- /48 por roteador
- /64 para subredes internas (loopback, LAN e ponto a ponto)
- /128 para interfaces loopback
- /127 para links ponto a ponto. Embora o /64 seja reservado, na prática usaremos /127
Para IPv4:
- /16 por roteador
- /24 para LAN
- /32 para interface loopbacks
- /30 para links ponto‑a‑ponto
Abaixo está o planejamento de endereçamento dos roteadores vizinhos:
Roteador | ASN | Prefixo Base v6 | Subrede Loopback v6 | Loopback v6 | Rede LAN v6 | Router Net If v6 | Prefixo Base v4 | Loopback v4 | Loopback v4 (/32) | Rede LAN v4 (/24) |
---|---|---|---|---|---|---|---|---|---|---|
Router1 | 65001 | 2001:db8:1::/48 | 2001:db8:1:1::/64 | 2001:db8:1:1::1/128 | 2001:db8:1:10::/64 | 2001:db8:1:17::/64 | 10.1.0.0/16 | 10.1.0.0/24 | 10.1.0.1/32 | 10.1.10.0/24 |
Router2 | 65002 | 2001:db8:2::/48 | 2001:db8:2:1::/64 | 2001:db8:2:1::2/128 | 2001:db8:2:10::/64 | 2001:db8:2:17::/64 | 10.2.0.0/16 | 10.2.0.0/24 | 10.2.0.2/32 | 10.2.10.0/24 |
Router3 | 65003 | 2001:db8:3::/48 | 2001:db8:3:1::/64 | 2001:db8:3:1::3/128 | 2001:db8:3:10::/64 | 2001:db8:3:17::/64 | 10.3.0.0/16 | 10.3.0.0/24 | 10.3.0.3/32 | 10.3.10.0/24 |
Router4 | 65004 | 2001:db8:4::/48 | 2001:db8:4:1::/64 | 2001:db8:4:1::4/128 | 2001:db8:4:10::/64 | 2001:db8:4:17::/64 | 10.4.0.0/16 | 10.4.0.0/24 | 10.4.0.4/32 | 10.4.10.0/24 |
Router5 | 65005 | 2001:db8:5::/48 | 2001:db8:5:1::/64 | 2001:db8:5:1::5/128 | 2001:db8:5:10::/64 | 2001:db8:5:17::/64 | 10.5.0.0/16 | 10.5.0.0/24 | 10.5.0.5/32 | 10.5.10.0/24 |
Também estamos utilizando dois ASNs adicionais: 64320 (para testes com anycast) e 64500 (nossa rede principal):
ASN | Prefixo Base v6 | Subrede Loopback v6 | Loopback v6 | Rede LAN v6 | Subrede ponto a ponto v6 | Prefixo Base v4 | Subrede Loopback v4 | Loopback v4 (/32) | Rede LAN v4 (/24) | Subrede ponto a ponto v4 |
---|---|---|---|---|---|---|---|---|---|---|
64320 | 2001:db8:6432::/48 | 2001:db8:6432:1::/64 | 2001:db8:6432:1::9/128 | 2001:db8:6432:10::/64 | 2001:db8:6432:17::/64 | 172.20.0.0/16 | 172.20.0.0/24 | 172.20.0.9/32 | 172.20.10.0/24 | 172.20.17.0/30 |
64500 | 2001:db8:6450::/48 | 2001:db8:6450:1::/64 | 2001:db8:6450:1::1/128 | 2001:db8:6450:10::/64 | 2001:db8:6450:17::/64 | 172.21.0.0/16 | 172.21.0.0/24 | 172.21.0.1/32 | 172.21.10.0/24 | 172.21.17.0/30 |
Abaixo estão os links ponto a ponto (IPv6 e IPv4) utilizados para interconexão entre os roteadores. Esse mapeamento facilita a configuração de vizinhanças BGP:
Roteador | Interface | IPv6 Local (/127) | IPv4 Local (/30) | Conectado a | IPv6 Remoto (/127) | IPv4 Remoto (/30) |
---|---|---|---|---|---|---|
router1_65001 | Gig0/0 | 2001:db8:1:18::1/127 | 10.1.18.1/30 | router5_65005 | 2001:db8:1:18::0/127 | 10.1.18.2/30 |
router1_65001 | Gig0/1 | 2001:db8:1:17::1/127 | 10.1.17.1/30 | router2_65002 | 2001:db8:1:17::0/127 | 10.1.17.2/30 |
Roteador | Interface | IPv6 Local (/127) | IPv4 Local (/30) | Conectado a | IPv6 Remoto (/127) | IPv4 Remoto (/30) |
---|---|---|---|---|---|---|
router2_65002 | Gig0/0 | 2001:db8:2:17::1/127 | 10.2.17.1/30 | router3_65003 | 2001:db8:2:17::0/127 | 10.2.17.2/30 |
router2_65002 | Gig0/1 | 2001:db8:1:17::0/127 | 10.1.17.2/30 | router1_65001 | 2001:db8:1:17::1/127 | 10.1.17.1/30 |
Roteador | Interface | IPv6 Local (/127) | IPv4 Local (/30) | Conectado a | IPv6 Remoto (/127) | IPv4 Remoto (/30) |
---|---|---|---|---|---|---|
router3_65003 | Gig0/0 | 2001:db8:3:17::1/127 | 10.3.17.1/30 | router4_65004 | 2001:db8:3:17::0/127 | 10.3.17.2/30 |
router3_65003 | Gig0/1 | 2001:db8:2:17::0/127 | 10.2.17.2/30 | router2_65002 | 2001:db8:2:17::1/127 | 10.2.17.1/30 |
Roteador | Interface | IPv6 Local (/127) | IPv4 Local (/30) | Conectado a | IPv6 Remoto (/127) | IPv4 Remoto (/30) |
---|---|---|---|---|---|---|
router4_65004 | Gig0/0 | 2001:db8:4:17::1/127 | 10.4.17.1/30 | router5_65005 | 2001:db8:4:17::0/127 | 10.4.17.2/30 |
router4_65004 | Gig0/1 | 2001:db8:3:17::0/127 | 10.3.17.2/30 | router3_65003 | 2001:db8:3:17::1/127 | 10.3.17.1/30 |
Roteador | Interface | IPv6 Local (/127) | IPv4 Local (/30) | Conectado a | IPv6 Remoto (/127) | IPv4 Remoto (/30) |
---|---|---|---|---|---|---|
router5_65005 | Gig0/0 | 2001:db8:1:18::0/127 | 10.1.18.2/30 | router1_65001 | 2001:db8:1:18::1/127 | 10.1.18.1/30 |
router5_65005 | Gig0/1 | 2001:db8:4:17::0/127 | 10.4.17.2/30 | router4_65004 | 2001:db8:4:17::1/127 | 10.4.17.1/30 |
BGP só anuncia o que está na RIB
O BGP não anuncia um prefixo apenas porque você escreveu um network
na configuração. Ele só origina (publica) a rota se aquele prefixo estiver presente na RIB (tabela de roteamento do roteador) com a mesma máscara. Isso é intencional, o protocolo parte do princípio de que você só deve anunciar ao mundo o que de fato sabe como encaminhar.
Se, por algum motivo, você quer anunciar algo que não está na sua RIB, ou seja, quer anunciar uma rota no BGP que não está na tabela de roteamento, o caminho clássico é criar a rota artificialmente, por exemplo com uma estática para Null0 (blackhole/discard):
ip route 203.0.113.0 255.255.255.0 Null0
router bgp 65000
network 203.0.113.0 mask 255.255.255.0
Agora o prefixo "existe" na RIB (aponta para Null0) e o BGP pode anunciá‑lo.
Os riscos de forçar um anúncio são óbvios, se você publica um prefixo sem ter conectividade real até ele, todo o tráfego destinado àquele bloco pode cair no seu roteador e ser descartado (se você apontou para Null0) ou ficar roteando sem saída, causando blackhole, loops ou congestão.
Em cenários externos, você ainda pode quebrar políticas com seus upstreams, gerar inconsistências com RPKI (Invalid), sofrer filtros/bloqueios de pares, e até ser acusado de hijack. Em resumo, anunciar o que você não roteia de verdade é pedir para atrair tráfego que você não consegue entregar.
Se precisar mesmo originar rotas "sintéticas" (sumários, por exemplo), faça conscientemente, com rotas estáticas de descarte bem documentadas, políticas restritivas e, no mundo real, ROAs corretos no RPKI.
Configuração Básica do BGP
Vamos começar usando o layout abaixo:
Router 1 - AS 65001
Vamos começar configurando o Router 1. A configuração inicial vai ser das interfaces, hostname e habilitar o IPv6.
enable
conf t
!
hostname router1_65001
!
ipv6 unicast-routing
!
interface Loopback0
ip address 10.1.0.1 255.255.255.255
ipv6 address 2001:db8:1:1::1/128
!
interface GigabitEthernet0/1
description BGP com router2_65002
ip address 10.1.17.1 255.255.255.252
ipv6 address 2001:db8:1:17::1/127
no shutdown
!
interface GigabitEthernet0/2
description LAN
ip address 10.1.10.1 255.255.255.0
ipv6 address 2001:db8:1:10::1/64
ipv6 nd ra-interval 30
ipv6 nd prefix 2001:db8:1:10::/64 1800 1800
no shutdown
!
end
wr
Router 2 - AS 65002
Vamos começar configurando o Router 2. A configuração inicial vai ser das interfaces, hostname e habilitar o IPv6.
enable
conf t
!
hostname router2_65002
!
ipv6 unicast-routing
!
interface Loopback0
ip address 10.2.0.2 255.255.255.255
ipv6 address 2001:db8:2:1::2/128
!
interface GigabitEthernet0/1
description BGP com router1_65001
ip address 10.1.17.2 255.255.255.252
ipv6 address 2001:db8:1:17::0/127
no shutdown
!
interface GigabitEthernet0/2
description LAN
ip address 10.2.10.1 255.255.255.0
ipv6 address 2001:db8:2:10::1/64
ipv6 nd ra-interval 30
ipv6 nd prefix 2001:db8:2:10::/64 1800 1800
no shutdown
!
end
wr
Explicando as configurações iniciais dos Routers
O comando ipv6 unicast-routing
habilita o roteamento IPv6 no roteador Cisco. Sem ele, mesmo que interfaces tenham endereços IPv6 configurados, o roteador não irá encaminhar pacotes entre redes IPv6 diferentes. É essencial sempre ativar essa opção em roteadores que farão o papel de forwarder IPv6.
Sobre a interface Loopback0
:
ip address 10.2.0.2 255.255.255.255
ipv6 address 2001:db8:2:1::2/128
Essa é uma interface virtual que representa um endereço de loopback, ela é uma interface lógica sempre ativa, independente do estado físico das interfaces reais. Ela é frequentemente usada para identificar o roteador em protocolos como BGP, OSPF ou como ponto de referência em testes de conectividade.
A interface GigabitEthernet0/2
está sendo configurada para ser a interface de comunicação com a Rede LAN. Não vamos ter nada na frente dessa interface, estou configurando apenas para podermos publicar essa rede no BGP.
ip address 10.2.10.1 255.255.255.0
ipv6 address 2001:db8:2:10::1/64
ipv6 nd ra-interval 30
ipv6 nd prefix 2001:db8:2:10::/64 1800 1800
Foram configuradas também duas opções de Neighbor Discovery (ND) relacionadas à autoconfiguração IPv6:
ipv6 nd ra-interval 30
: define o intervalo entre os anúncios de roteador (Router Advertisements) enviados por essa interface. Aqui, o roteador envia um RA a cada 30 segundos, o que acelera a configuração automática dos clientes na rede.ipv6 nd prefix 2001:db8:2:10::/64 1800 1800
: especifica o prefixo IPv6 que será anunciado aos dispositivos da LAN, permitindo que eles autoconfigurem seus próprios endereços IPv6. Os valores1800 1800
representam o tempo de validade e o tempo preferencial do prefixo, ambos em segundos (30 minutos).
Esses comandos são fundamentais quando se utiliza SLAAC (Stateless Address Autoconfiguration) para distribuir endereços IPv6 de forma automática aos hosts da rede.
Teste de conectividade
Verifique se ambos os routers conseguem se comunicar:
router1_65001#ping 10.1.17.2 repeat 5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.17.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 m
router1_65001#ping 2001:db8:1:17::0 repeat 5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:1:17::, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/5 ms
BGP em Router 1 - AS 65001
Agora vamos configurar o BGP no Router 1:
enable
conf t
!
router bgp 65001
bgp router-id 10.1.0.1
!
neighbor 10.1.17.2 remote-as 65002
neighbor 2001:db8:1:17::0 remote-as 65002
!
address-family ipv4 unicast
network 10.1.10.0 mask 255.255.255.0
neighbor 10.1.17.2 activate
exit-address-family
!
address-family ipv6 unicast
network 2001:db8:1:10::/64
neighbor 2001:db8:1:17::0 activate
exit-address-family
!
end
wr
Comandos para troubleshooping do BGP - Router1 - BGP Idle
Vamos ver alguns comandos úteis para ver a sessão BGP (que ainda não subiu) e aprender como verificar o BGP.
router1_65001#show ip bgp summary
BGP router identifier 10.1.0.1, local AS number 65001
BGP table version is 2, main routing table version 2
1 network entries using 144 bytes of memory
1 path entries using 84 bytes of memory
1/1 BGP path/bestpath attribute entries using 160 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 388 total bytes of memory
BGP activity 2/0 prefixes, 2/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.17.2 4 65002 0 0 1 0 0 never Idle
________________________________________________________________________________________________________________
router1_65001#show bgp ipv6 unicast summary
BGP router identifier 10.1.0.1, local AS number 65001
BGP table version is 1, main routing table version 1
1 network entries using 168 bytes of memory
1 path entries using 108 bytes of memory
1/0 BGP path/bestpath attribute entries using 160 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 436 total bytes of memory
BGP activity 2/0 prefixes, 2/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2001:DB8:1:17:: 4 65002 0 0 1 0 0 never Idle
________________________________________________________________________________________________________________
router1_65001#show ip bgp
BGP table version is 2, local router ID is 10.1.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.10.0/24 0.0.0.0 0 32768 i
________________________________________________________________________________________________________________
router1_65001#show bgp ipv6 unicast
BGP table version is 1, local router ID is 10.1.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 2001:DB8:1:10::/64
:: 0 32768 i
________________________________________________________________________________________________________________
router1_65001#show ipv6 route bgp
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid
lA - LISP away, a - Application
________________________________________________________________________________________________________________
router1_65001#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
Por enquanto o importante são os primeiros comandos, eles mostram que a sessão BGP está em idle
. Os últimos coloquei para ir aprendendo, mas por hora, não possuem anda de útil.
BGP em Router 2 - AS 65002
Agora vamos configurar o BGP no Router 2:
enable
conf t
!
router bgp 65002
bgp router-id 10.2.0.2
no bgp default ipv4-unicast
!
neighbor 10.1.17.1 remote-as 65001
neighbor 2001:db8:1:17::1 remote-as 65001
!
address-family ipv4 unicast
network 10.2.10.0 mask 255.255.255.0
neighbor 10.1.17.1 activate
exit-address-family
!
address-family ipv6 unicast
network 2001:db8:2:10::/64
neighbor 2001:db8:1:17::1 activate
exit-address-family
!
end
wr
Configuramos o BGP de forma diferente no Router 2 em relação ao Router 1. O comando no bgp default ipv4-unicast
impede que os vizinhos sejam ativados automaticamente na família IPv4, forçando a ativação manual na família desejada. Isso ajuda a evitar vazamentos acidentais, alinha o comportamento ao de plataformas mais rigorosas (como IOS XR, FRR, EOS) e torna a configuração mais previsível e portável, especialmente em ambientes com IPv6, VPNv4/v6, EVPN, Flowspec, entre outros.
Comandos para troubleshooping do BGP - Router2 - BGP Idle
Vamos ver alguns comandos úteis para ver a sessão BGP.
router2_65002#show ip bgp summary
BGP router identifier 10.2.0.2, local AS number 65002
BGP table version is 3, main routing table version 3
2 network entries using 288 bytes of memory
2 path entries using 168 bytes of memory
2/2 BGP path/bestpath attribute entries using 320 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 800 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.17.1 4 65001 6 6 3 0 0 00:01:13 1
________________________________________________________________________________________________________________
router2_65002#show bgp ipv6 unicast summary
BGP router identifier 10.2.0.2, local AS number 65002
BGP table version is 3, main routing table version 3
2 network entries using 336 bytes of memory
2 path entries using 216 bytes of memory
2/2 BGP path/bestpath attribute entries using 320 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 896 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2001:DB8:1:17::1
4 65001 6 6 3 0 0 00:01:31 1
________________________________________________________________________________________________________________
router2_65002#show bgp ipv4 unicast summary
BGP router identifier 10.2.0.2, local AS number 65002
BGP table version is 3, main routing table version 3
2 network entries using 288 bytes of memory
2 path entries using 168 bytes of memory
2/2 BGP path/bestpath attribute entries using 320 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 800 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.17.1 4 65001 46 46 3 0 0 00:37:19 1
________________________________________________________________________________________________________________
router2_65002#show ip bgp
BGP table version is 3, local router ID is 10.2.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.10.0/24 10.1.17.1 0 0 65001 i
*> 10.2.10.0/24 0.0.0.0 0 32768 i
________________________________________________________________________________________________________________
router2_65002#show bgp ipv6 unicast
BGP table version is 3, local router ID is 10.2.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 2001:DB8:1:10::/64
2001:DB8:1:17::1
0 0 65001 i
*> 2001:DB8:2:10::/64
:: 0 32768 i
________________________________________________________________________________________________________________
router2_65002#show bgp ipv4 unicast
BGP table version is 3, local router ID is 10.2.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.10.0/24 10.1.17.1 0 0 65001 i
*> 10.2.10.0/24 0.0.0.0 0 32768 i
________________________________________________________________________________________________________________
router2_65002#show ipv6 route bgp
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid
lA - LISP away, a - Application
B 2001:DB8:1:10::/64 [20/0]
via FE80::5200:FF:FE01:1, GigabitEthernet0/1
________________________________________________________________________________________________________________
router2_65002#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 6 subnets, 3 masks
B 10.1.10.0/24 [20/0] via 10.1.17.1, 00:02:27
Abaixo eu explico cada comando (e os campos que aparecem) usando exatamente as saídas dos comandos acima. Onde fizer sentido, comento o que os números querem dizer.
show ip bgp summary
Mostra o estado global do BGP para a address-family IPv4 unicast. As primeiras linhas são sobre o processo BGP:
- BGP router identifier 10.2.0.2, local AS number 65002: o router‑id (IPv4) e o ASN local.
- BGP table version is 3, main routing table version 3: versões internas de "contador de mudanças" da tabela BGP e da RIB. Cada mudança incrementa.
- X network entries / path entries / attribute entries / AS-PATH entries…: contadores de memória. Útil para troubleshooting de consumo.
- BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs: quantos prefixos/paths já passaram pela tabela (inseridos/removidos) e o intervalo do BGP scanner (60 s é o padrão).
Sobre a tabela de vizinhos:
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.17.1 4 65001 6 6 3 0 0 00:01:13 1
- Neighbor: IP do peer.
- V: versão do BGP (4).
- AS: ASN do peer.
- MsgRcvd/MsgSent: quantas mensagens BGP trocadas desde que a sessão subiu (contadores pequenos porque acabou de subir).
- TblVer: a table version que esse vizinho está vendo. Bate com o “3” do topo.
- InQ/OutQ: filas internas de mensagens (se ficar >0 por muito tempo, algo entupiu).
- Up/Down: tempo da sessão no estado atual.
- State/PfxRcd: se Established, mostra quantos prefixos você recebeu dele. Aqui: 1.
Estamos com a sessão IPv4 em Established há 1m13s e recebemos 1 prefixo do R1.
show bgp ipv6 unicast summary
É o mesmo resumo, mas para a IPv6. Os contadores de memória são ligeiramente diferentes (tamanho de endereço maior). A interpretação é idêntica, então não vou mostrar. Sobre a tabela de vizinhos:
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2001:DB8:1:17::1
4 65001 6 6 3 0 0 00:01:31 1
O vizinho IPv6 (65001) também está Established e você recebeu 1 prefixo IPv6 dele.
show ip bgp
Aqui você vê a tabela BGP IPv4 com os códigos de status.
Network Next Hop Metric LocPrf Weight Path
*> 10.1.10.0/24 10.1.17.1 0 0 65001 i
*> 10.2.10.0/24 0.0.0.0 0 32768 i
*
: rota válida (passou em checagens básicas).>
: melhor caminho escolhido (vai para a RIB).i
no final: origin code IGP (geralmente vianetwork
/redistribuição IGP).
A RIB é a tabela de roteamento do plano de controle, reúne rotas de todos os protocolos, aplica políticas/AD e escolhe a melhor para cada prefixo.
Já a FIB é a tabela de encaminhamento do plano de dados, recebe da RIB apenas as rotas vencedoras, já resolvidas em next-hop/interface, e é usada para forwardar pacotes.
Campos:
- Network: prefixo.
- Next Hop: próximo salto BGP.
- Metric (MED): 0 se não usado.
- LocPrf: Local Preference (só aparece em iBGP; em eBGP comum ficar vazio).
- Weight: 32768 quando a rota é originada localmente (via
network
por exemplo). Rotas recebidas de fora vêm com0
. - Path: AS_PATH (de trás para frente). O
i
no fim é o origin code.
Interpretação das suas duas linhas:
*> 10.1.10.0/24 10.1.17.1 0 0 65001 i
Você recebemos 10.1.10.0/24
do AS 65001 (eBGP), Weight 0, AS_PATH "65001" e origin i
. É a melhor rota (*>
).
*> 10.2.10.0/24 0.0.0.0 0 32768 i
A rota foi originada localmente (next-hop 0.0.0.0, Weight 32768). O i
no fim indica origin IGP (via network 10.2.10.0/24
).
show bgp ipv6 unicast
Mesma leitura, para IPv6:
*> 2001:DB8:1:10::/64 2001:DB8:1:17::1 0 0 65001 i
Prefixo do AS 65001, vindo pelo vizinho IPv6, melhor rota.
*> 2001:DB8:2:10::/64 :: 0 32768 i
Prefixo seu, originado localmente (::
como next-hop indica local).
show ipv6 route bgp
Agora é a RIB IPv6 (tabela de roteamento "do sistema"), filtrada para rotas BGP.
B 2001:DB8:1:10::/64 [20/0]
via FE80::5200:FF:FE01:1, GigabitEthernet0/1
- B: rota BGP.
- [20/0]: AD/Metric. BGP tem AD 20 por padrão no IOS.
- via FE80::…: next-hop IPv6 link-local do vizinho (normal em IPv6; BGP anuncia o LL e a interface resolve).
É por isso que é comum você ver
FE80::…
como next-hop na RIB, mas noshow bgp
ver o global (BGP carrega ambos internamente).
show ip route bgp
Mesma lógica, mas na RIB IPv4:
B 10.1.10.0/24 [20/0] via 10.1.17.1, 00:02:27
- AD 20, metric 0, next‑hop 10.1.17.1 (seu vizinho 65001).
- Gateway of last resort is not set: você não tem rota default configurada/aprendida.
Comandos de troubleshooting avançados
show bgp ipv4 unicast neighbors 10.1.17.1
Para Ipv6 é show bgp ipv6 unicast neighbors 2001:DB8:1:17::1
.
router2_65002#terminal length 0
!
!
!
!
router2_65002#show bgp ipv4 unicast neighbors 10.1.17.1
BGP neighbor is 10.1.17.1, remote AS 65001, external link
BGP version 4, remote router ID 10.1.0.1
BGP state = Established, up for 00:43:24
Last read 00:00:45, last write 00:00:39, hold time is 180, keepalive interval is 60 seconds
Neighbor sessions:
1 active, is not multisession capable (disabled)
Neighbor capabilities:
Route refresh: advertised and received(new)
Four-octets ASN Capability: advertised and received
Address family IPv4 Unicast: advertised and received
Enhanced Refresh Capability: advertised and received
Multisession Capability:
Stateful switchover support enabled: NO for session 1
Message statistics:
InQ depth is 0
OutQ depth is 0
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 2 2
Keepalives: 49 49
Route Refresh: 0 0
Total: 52 52
Do log neighbor state changes (via global configuration)
Default minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
Session: 10.1.17.1
BGP table version 3, neighbor version 3/0
Output queue size : 0
Index 1, Advertise bit 0
1 update-group member
Slow-peer detection is disabled
Slow-peer split-update-group dynamic is disabled
Sent Rcvd
Prefix activity: ---- ----
Prefixes Current: 1 1 (Consumes 84 bytes)
Prefixes Total: 1 1
Implicit Withdraw: 0 0
Explicit Withdraw: 0 0
Used as bestpath: n/a 1
Used as multipath: n/a 0
Used as secondary: n/a 0
Outbound Inbound
Local Policy Denied Prefixes: -------- -------
Bestpath from this peer: 1 n/a
Total: 1 0
Number of NLRIs in the update sent: max 1, min 0
Last detected as dynamic slow peer: never
Dynamic slow peer recovered: never
Refresh Epoch: 1
Last Sent Refresh Start-of-rib: never
Last Sent Refresh End-of-rib: never
Last Received Refresh Start-of-rib: never
Last Received Refresh End-of-rib: never
Sent Rcvd
Refresh activity: ---- ----
Refresh Start-of-RIB 0 0
Refresh End-of-RIB 0 0
Address tracking is enabled, the RIB does have a route to 10.1.17.1
Route to peer address reachability Up: 1; Down: 0
Last notification 00:43:36
Connections established 1; dropped 0
Last reset never
External BGP neighbor configured for connected checks (single-hop no-disable-connected-check)
Interface associated: GigabitEthernet0/1 (peering address in same link)
Transport(tcp) path-mtu-discovery is enabled
Graceful-Restart is disabled
SSO is disabled
Connection state is ESTAB, I/O status: 1, unread input bytes: 0
Connection is ECN Disabled, Mininum incoming TTL 0, Outgoing TTL 1
Local host: 10.1.17.2, Local port: 179
Foreign host: 10.1.17.1, Foreign port: 26266
Connection tableid (VRF): 0
Maximum output segment queue size: 50
Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes)
Event Timers (current time is 0x537F38):
Timer Starts Wakeups Next
Retrans 50 0 0x0
TimeWait 0 0 0x0
AckHold 50 48 0x0
SendWnd 0 0 0x0
KeepAlive 0 0 0x0
GiveUp 0 0 0x0
PmtuAger 0 0 0x0
DeadWait 0 0 0x0
Linger 0 0 0x0
ProcessQ 0 0 0x0
iss: 1300005775 snduna: 1300006841 sndnxt: 1300006841
irs: 2292320025 rcvnxt: 2292321091
sndwnd: 15319 scale: 0 maxrcvwnd: 16384
rcvwnd: 15319 scale: 0 delrcvwnd: 1065
SRTT: 999 ms, RTTO: 1010 ms, RTV: 11 ms, KRTT: 0 ms
minRTT: 2 ms, maxRTT: 1000 ms, ACK hold: 200 ms
uptime: 2604116 ms, Sent idletime: 39139 ms, Receive idletime: 38937 ms
Status Flags: passive open, gen tcbs
Option Flags: nagle, path mtu capable
IP Precedence value : 6
Datagrams (max data segment is 1460 bytes):
Rcvd: 101 (out of order: 0), with data: 51, total data bytes: 1065
Sent: 102 (retransmit: 0, fastretransmit: 0, partialack: 0, Second Congestion: 0), with data: 51, total data bytes: 1065
Packets received in fast path: 0, fast processed: 0, slow path: 0
fast lock acquisition failures: 0, slow path: 0
TCP Semaphore 0x11A4050C FREE
O que importa no show bgp ipv4 unicast neighbors 10.1.17.1
é seguinte:
BGP neighbor is 10.1.17.1, remote AS 65001, external link
É uma sessão eBGP com o AS 65001.BGP state = Established, up for 00:43:24
A sessão está estável há ~43 minutos. Se estivesse em Idle/Active/OpenSent, teriamos algum problema.remote router ID 10.1.0.1
O router-id do peer (ajuda a identificar quem é o outro lado em logs/loop-prevention).hold time is 180, keepalive interval is 60
Padrão clássico: envia KEEPALIVE a cada 60 s; se ficar >180 s sem receber nada, derruba a sessão.Last read 00:00:45, last write 00:00:39
Está trocando mensagens dentro da janela esperada (≈60 s).Route Refresh: advertised and received
Indica que ambos os roteadores suportam o mecanismo de Route Refresh. Com isso, é possível solicitar novas rotas ao vizinho sem precisar reiniciar a sessão BGP (evita downtime). Isso é essencial quando você altera políticas de importação (como route-maps ou filtros) e quer que o vizinho envie tudo novamente.
Four-octets ASN Capability: advertised and received
Confirma que ambos os lados suportam ASNs de 32 bits (também chamados de "4-byte ASN"). O BGP original suportava apenas números de AS de 16 bits (até 65535).Address family IPv4 Unicast: advertised and received
Mostra que a família de endereço IPv4 Unicast está ativada e negociada com sucesso. Em outras palavras: as duas pontas estão prontas para trocar rotas IPv4 padrão, que é o uso mais comum do BGP.Enhanced Refresh Capability: advertised and received
Versão aprimorada do Route Refresh, permite que o roteador identifique quais rotas foram enviadas antes e otimize a nova exportação. Também permite melhorias no controle de sincronização e economia de CPU/memória em grandes tabelas.
Opens: 1 1
: Significa 1 OPEN de cada lado;
Notifications: 0 0
: 0 NOTIFICATION significa sem erros.Updates: 2 2
: pouquíssimos UPDATEs (normal em lab).Keepalives: 49 49
: batendo com os timers
InQ depth is 0 / OutQ depth is 0
: Não há backlog de mensagens, é um bom sinal.Local Policy Denied Prefixes … Bestpath from this peer: 1 (Outbound)
Você não reanuncia de volta para ele a própria rota que recebeu (normal, eBGP não "espelha" de volta a rota do mesmo peer).Address tracking is enabled, the RIB does have a route to 10.1.17.1
O IP do peer é alcançável pela sua tabela de roteamento, requisito básico para a sessão existir.Connections established 1; dropped 0
/Last reset never
Subiu uma vez e nunca caiu.External BGP neighbor configured for connected checks (single-hop ...)
eBGP single-hop (TTL=1). Se estivesse fazendo eBGP multihop, isso seria diferente.
show bgp ipv4 unicast neighbors 10.1.17.1
Para Ipv6 é show ipv6 route 2001:DB8:1:10::/64
.
router2_65002#show ip route 10.1.10.0
Routing entry for 10.1.10.0/24
Known via "bgp 65002", distance 20, metric 0
Tag 65001, type external
Last update from 10.1.17.1 00:47:37 ago
Routing Descriptor Blocks:
* 10.1.17.1, from 10.1.17.1, 00:47:37 ago
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 65001
MPLS label: none
Isso diz, em bom português, "eu (AS 65002) aprendi 10.1.10.0/24 via eBGP do AS 65001, pelo next‑hop 10.1.17.1, e essa rota está instalada na RIB”.
Routing entry for 10.1.10.0/24: o prefixo consultado.
Known via "bgp 65002": quem instalou a rota foi o processo BGP do seu roteador (ASN local 65002).
distance 20: AD = 20, típico de eBGP (iBGP seria 200).
metric 0: métrica interna do BGP para essa rota (normalmente 0 se não houver MED relevante).
Tag 65001, type external: rota externa (eBGP), com AS de origem 65001.
Last update from 10.1.17.1 00:47:37 ago: faz ~47 min que você recebeu (ou atualizou) esse caminho do vizinho 10.1.17.1.
Routing Descriptor Blocks / * 10.1.17.1: next‑hop usado para encaminhar o tráfego.
AS Hops 1: um único AS no caminho (65001 → 65002).
traffic share count 1: só há um next-hop válido para esse prefixo (sem ECMP).
MPLS label: none: não há rótulo MPLS associado (não é BGP LU/VPN).
Por que anunciar a loopback no BGP?
Nos exemplos acima, não foi anunciado o loopback no BGP e você vai entender o motivo. A loopback é o endereço mais estável do roteador (não cai se uma interface física cair). Publicá‑la dentro do seu domínio BGP/IGP garante que todos os roteadores saibam chegar ao router-id e aos serviços que rodam “no roteador”, mesmo com falhas de links.
Para que isso serve na prática:
Formar sessões iBGP por loopback (full‑mesh ou via Route Reflector): se um enlace físico cai, a sessão pode ser reconvergida por outro caminho, porque o next-hop até a loopback continua alcançável.
MPLS/LDP, T-LDP, RSVP, BFD, iBGP multihop: quase sempre usam loopbacks como endpoints estáveis.
Serviços e gestão: SSH, SNMP, NetFlow/IPFIX, syslog, Telemetry, gRPC, API, etc., apontam para a loopback — você não “perde” o roteador quando um link cai.
Anycast: quando o próprio roteador (ou um serviço nele/atrás dele) precisa ser alcançado por um /32 (/128) igual em vários pontos.
RTBH (Remote Triggered Blackhole): costuma-se anunciar /32 (/128) “especiais” para acionar políticas de descarte.
Então quando anunciar a loopback?
Quando estamos trabalhando com iBGP/IGP. Anuncie a loopback no IGP (OSPF/IS‑IS) e/ou no iBGP para que toda a malha a alcance com redundância. O anuncio da Loopback para eBGP deve ser feito com cautela, normalmente não se anuncia. Só deve anunciar se:
Ela representa um serviço real (ex.: anycast DNS).
Você quer mesmo receber tráfego destinado a esse /32 (/128). Caso contrário, filtre-a na borda (prefix-list/route-map,
no-export
, etc.).
eBGP Multihop
Por padrão, o eBGP estabelece sessões apenas entre vizinhos diretamente conectados, utilizando um TTL (Time To Live) de 1 nos pacotes TCP enviados na porta 179. Isso impede que a sessão seja estabelecida se houver qualquer roteador intermediário entre os peers, já que o pacote expira antes de chegar ao destino.
O eBGP multihop é uma configuração que aumenta o TTL para permitir que a sessão atravesse múltiplos saltos até alcançar o vizinho, possibilitando cenários como:
- Sessões eBGP estabelecidas através de interfaces loopback, garantindo resiliência ao não depender de um único enlace físico.
- Peering remoto, quando os roteadores estão em redes diferentes e conectados por um ou mais roteadores intermediários.
- Sessões sobre túneis (GRE, IP-in-IP, etc.), onde os endpoints do BGP estão em redes distintas e a comunicação atravessa encapsulamento.
- Cenários de laboratório onde não existe conexão física direta entre os ASs.
Quando usamos loopbacks, é necessário:
- Ter rotas na tabela de roteamento para alcançar o IP da loopback remota (via IGP ou rota estática).
- Configurar
update-source
para usar a interface loopback como origem. - Ajustar o TTL com
ebgp-multihop
para permitir que a sessão atravesse os saltos intermediários.
Exemplo de configuração (Cisco IOS):
router bgp 65001
neighbor 192.0.2.1 remote-as 65002
neighbor 192.0.2.1 update-source Loopback0
neighbor 192.0.2.1 ebgp-multihop 2
No roteador remoto:
router bgp 65002
neighbor 198.51.100.1 remote-as 65001
neighbor 198.51.100.1 update-source Loopback0
neighbor 198.51.100.1 ebgp-multihop 2
O valor 2 no
ebgp-multihop
é suficiente quando a comunicação entre as loopbacks atravessa apenas um roteador intermediário. Para distâncias maiores, aumente conforme necessário.