Introdução ao
BGP!
Cronograma
1. O que é um AS e por que é importante para o BGP?
2. O que é o BGP?
3. PATH VECTOR e AS-PATH
4. Escolha da melhor rota
5. Configuração BGP em três sistemas:
MikroTik RouterOS v7, Huawei VRP5 e Linux FRR
2
O que é AS e ASN?
AS = Autonomous System (Sistema Autônomo), entidade com seus
próprios IPs e sua própria política de roteamento
ASN = Autonomous System Number
(Número de Sistema Autônomo)
Exemplos de AS: Provedor de Conteúdo (Google, Facebook, Netflix,
etc...) ou
Provedor de Acesso a Internet (Oi, Vivo, Topnet Goiás, o provedor que
te atende...)
Clique aqui para saber
mais informações (RFC 1930)
3
IANA – Internet
Assigned Numbers
Authority
(Autoridade para
Atribuição de
Números da Internet)
4
A internet são vários AS
interconectados
AS 3 AS 6
AS 1 AS 9
AS 4 AS 100 AS 7
AS 10
AS 2
AS 5 AS 8
5
O que é o BGP?
BGP = Border Gateway Protocol
Roteamento Dinâmico do tipo Path Vector
Usa por padrão a porta TCP 179
Envia e Recebe NLRI dos seus peers (pares)
Network Layer Reachability Information (rotas)
Usa atributos nas NLRI recebidas e enviadas
6
Cada AS pode ter N
roteadores...
AS30
AS20 BGP
AS10
BGP
Mas o BGP vai olhar apenas
para o AS como um todo pois ele é um
protocolo do tipo PATH VECTOR!
7
O que é PATH VECTOR e
AS_PATH?
AS 400
AS AS AS Prefixo
100 200 300 anunciado
AS-PATH AS-PATH AS-PATH 4.4.0.0/24
200,300,400 300,400 400
Vejamos a tabela de roteamento
8
O que são Filtros de Roteamento?
Filtro de IN/ENTRADA/IMPORT
Manipula as rotas que serão RECEBIDAS pelo seu roteador
Portanto consegue manipular o tráfego que SAI de seu roteador/AS.
Filtro de OUT/SAÍDA/EXPORT
Manipula as rotas que serão ENVIADAS pelo seu roteador.
Portanto consegue manipular o tráfego que CHEGA de seu roteador/AS.
9
Ou seja...
IN = Controla rotas RECEBIDAS
IN = Manipula tráfego que SAI
Seu roteador (UPLOAD)
OUT = Controla rotas ENVIADAS
Seu roteador OUT = Manipula tráfego que CHEGA
(DOWNLOAD)
10
Como o BGP escolhe uma rota?
Atributo Valor padrão
Maior WEIGHT 0
Maior LOCAL_PREF 100
Menor AS_PATH ---------------------------
Caminho geral localmente
ORIGIN ----------------------------
(aggregate, BGP network, etc.);
Menor tipo (IGP < EGP < incomplete) ORIGIN IGP
Menor MED 0
MikroTik:
eBGP=20 iBGP=200
Huawei:
eBGP é preferido sobre iBGP
eBGP=255 iBGP=255
FRR:
eBGP=20 iBGP=200
Menor Router ID ----------------------------
Menor cluster-list (route reflector) 0
Vizinho com menor IP IP ----------------------------
11
AS 2 anunciou a rede
Exemplo 1 AS 10 recebeu a rede pelo AS 7 e AS 8...
Qual vai ser escolhida?
2.0.0.0/8
AS 4 AS 100 AS 7
AS 10
AS 2
AS 5 AS 8
ATRIBUTO ROTA RECEBIDA DO AS 7 ROTA RECEBIDA DO AS 8
WEIGHT 0 0
LOCAL_PREF 100 100
AS_PATH 2,4,100,7 2,5,8
12
AS 2 anunciou a rede
Exemplo 2 AS 10 recebeu a rede pelo AS 7 e AS 8...
Qual vai ser escolhida?
2.0.0.0/8
AS 4 AS 100 AS 7
AS 10
AS 2
AS 5 AS 8
ATRIBUTO ROTA RECEBIDA DO AS 7 ROTA RECEBIDA DO AS 8
WEIGHT 10 0
LOCAL_PREF 100 100
AS_PATH 2,4,100,7 2,5,8
13
Peering
Upstream Upstream
Obrigatoriamente
para ser UP seu AS
Downstream Seu AS precisar ser Down.
Comprando trânsito
Down
UP
Seu AS Seu AS
Upstream Comprando e
Vendendo trânsito
vendendo trânsito
Downstream Downstream
14
Outros tipos de Peering
Peering privado
AS 100 AS 200
Troca de tráfego
Peering publico
AS 100
AS 300
IX (PTT)
AS 200 AS 400
15
Se toca barão!
Quando se utiliza NAT os pacotes que saem por uma determinada operadora
obrigatoriamente* voltam por ela.
Quando temos BGP os pacotes podem sair por um caminho e voltar por outro.
AS 400
Tráfego de SAÍDA
AS 200 AS 300 UPLOAD
Tráfego de ENTRADA
AS 100
DOWNLOAD
16
Topologia do laboratório
ens4 ether3 GigabitEthernet0/0/1
10.0.0.100/24 ether2 172.16.0.50/24 172.16.0.200/24
10.0.0.50/24
AS50
AS100 MIKROTIK ROUTEROS V7 AS200
LINUX FRR HUAWEI VRP 5
NETWORK 200.50.0.0/22
NETWORK 200.100.0.0/22 NETWORK 200.200.0.0/22
ROUTER-ID 200.50.3.254/32
ROUTER-ID 200.100.3.254/32 ROUTER-ID 200.200.3.254/32
17
E o que configurar?
BOA PRÁTICA Interface loopback e um IP/32
ROTAS de BLACKHOLE do prefixo do seu AS
IP de comunicação com o PEER
Instancia BGP
BOA PRÁTICA Router-ID (igual ao ip da loopback)
Família de endereços e networks dos prefixos que vou anunciar
BOA PRÁTICA Filtros de roteamento (IN e OUT)
Sessão com o PEER
18
Configuração do MikroTik v7
/interface bridge add name=loopback
/ip address add address=200.50.3.254 interface=loopback network=200.50.3.254
/ip address add address=10.0.0.50/24 interface=ether2 network=10.0.0.0
/ip address add address=172.16.0.50/24 interface=ether3 network=172.16.0.0
Cria a bridge loopback, coloca um ip para RouterID;
1
/ip route add blackhole disabled=no dst-address=200.50.3.0/22
/ip route add blackhole disabled=no dst-address=200.50.0.0/23
/ip route add blackhole disabled=no dst-address=200.50.2.0/23
/ip route add blackhole disabled=no dst-address=200.50.0.0/24 2 Configura os IPs de comunicação com os PEERs;
/ip route add blackhole disabled=no dst-address=200.50.1.0/24
/ip route add blackhole disabled=no dst-address=200.50.2.0/24
/ip route add blackhole disabled=no dst-address=200.50.3.0/24
Cria as rotas de BLACKHOLE
3
19
/ip firewall address-list add address=200.50.0.0/22 list=bgp-networks Configuração do MikroTik v7
/ip firewall address-list add address=200.50.0.0/23 list=bgp-networks
/ip firewall address-list add address=200.50.2.0/23 list=bgp-networks
/ip firewall address-list add address=200.50.2.0/24 list=bgp-networks
/ip firewall address-list add address=200.50.0.0/24 list=bgp-networks
/ip firewall address-list add address=200.50.1.0/24 list=bgp-networks
/ip firewall address-list add address=200.50.3.0/24 list=bgp-networks
Configura as ADDRESS LIST que serão as NETWORKS do BGP;
3
/routing filter rule add chain=PEER-AS100-IPV4-IN disabled=no rule=accept
/routing filter rule add chain=PEER-AS100-IPV4-OUT disabled=no rule=accept
/routing filter rule add chain=PEER-AS200-IPV4-OUT disabled=no rule=accept
/routing filter rule add chain=PEER-AS200-IPV4-IN disabled=no rule=accept
4 Cria os filtros de roteamento para os peers;
20
/routing bgp connection add address-families=ip as=50 disabled=no Configuração do MikroTik v7
input.filter=PEER-AS100-IPV4-IN local.role=ebgp name=PEER-AS100-
IPV4 output.filter-chain=PEER-AS100-IPV4-OUT .network=bgp-networks
remote.address=10.0.0.100/32 .as=100 router-id=200.50.3.254
/routing bgp connection add address-families=ip as=50 disabled=no
input.filter=PEER-AS200-IPV4-IN local.role=ebgp name=PEER-AS200-
IPV4 output.filter-chain=PEER-AS200-IPV4-OUT .network=bgp-networks
remote.address=172.16.0.200/32 .as=200 router-id=200.50.3.254
Configura os peers juntamente com as informações da
5 instancia no menu connection;
21
O mesmo conceito...
BOA PRÁTICA Interface loopback e um IP/32
ROTAS de BLACKHOLE do prefixo do seu AS
IP de comunicação com o PEER
Instancia BGP
BOA PRÁTICA Router-ID (igual ao ip da loopback)
Família de endereços e networks dos prefixos que vou anunciar
BOA PRÁTICA Filtros de roteamento (IN e OUT)
Sessão com o PEER
22
vtysh Linux FRR
configure terminal
interface lo
ip address 200.100.3.254/32
quit
interface ens4
ip address 10.0.0.100/24 Entra na configuração do FRR e depois no
1
quit modo de configuração;
ip route 200.100.0.0/22 blackhole
ip route 200.100.0.0/23 blackhole
ip route 200.100.2.0/23 blackhole 2 Cria a interface loopback (lo) e atribui um IP;
ip route 200.100.0.0/24 blackhole
ip route 200.100.1.0/24 blackhole
ip route 200.100.2.0/24 blackhole
Cria as rotas de blackhole;
ip route 200.100.3.0/24 blackhole 3
23
ip prefix-list MYAS-200.100.0.0/22 seq 5 permit 200.100.0.0/22 Linux FRR
ip prefix-list MYAS-200.100.0.0/23 seq 5 permit 200.100.0.0/23
ip prefix-list MYAS-200.100.2.0/23 seq 5 permit 200.100.2.0/23
ip prefix-list MYAS-200.100.0.0/24 seq 5 permit 200.100.0.0/24
ip prefix-list MYAS-200.100.1.0/24 seq 5 permit 200.100.1.0/24
ip prefix-list MYAS-200.100.2.0/24 seq 5 permit 200.100.2.0/24
ip prefix-list MYAS-200.100.3.0/24 seq 5 permit 200.100.3.0/24 Cria os prefix-list para usar nos filtros de roteamento;
4
ip prefix-list UPSTREAM-IPV4-IN seq 5 permit 0.0.0.0/0 ge 0 le 24
24
Linux FRR
router bgp 100
bgp router-id 200.100.3.254
neighbor 10.0.0.50 remote-as 50
address-family ipv4 unicast
network 200.100.0.0/22
network 200.100.0.0/23 Configura a instancia BGP, address-family e o peer.
network 200.100.0.0/24
5
network 200.100.1.0/24
network 200.100.2.0/23
network 200.100.2.0/24
network 200.100.3.0/24
neighbor 10.0.0.50 prefix-list UPSTREAM-IPV4-IN in
neighbor 10.0.0.50 prefix-list MYAS-200.100.0.0/22 out
exit-address-family
exit
25
No VRP não é diferente...
BOA PRÁTICA Interface loopback e um IP/32
ROTAS de BLACKHOLE do prefixo do seu AS
IP de comunicação com o PEER
Instancia BGP
BOA PRÁTICA Router-ID (igual ao ip da loopback)
Família de endereços e networks dos prefixos que vou anunciar
BOA PRÁTICA Filtros de roteamento (IN e OUT)
Sessão com o PEER
26
system-view Huawei VRP5
interface LoopBack0
ip address 200.200.3.254 255.255.255.255
quit
ip route-static 200.200.0.0 255.255.252.0 NULL0
ip route-static 200.200.0.0 255.255.254.0 NULL0 Configura a interface loopback e o ip /32;
1
ip route-static 200.200.0.0 255.255.255.0 NULL0
ip route-static 200.200.1.0 255.255.255.0 NULL0
ip route-static 200.200.2.0 255.255.254.0 NULL0
ip route-static 200.200.2.0 255.255.255.0 NULL0 2 Cria as rotas de blackhole;
ip route-static 200.200.3.0 255.255.255.0 NULL0
27
# Huawei VRP5
ip ip-prefix MYAS-200.200.0.0/22 index 10 permit 200.200.0.0 22
ip ip-prefix MYAS-200.200.0.0/23 index 10 permit 200.200.0.0 23
ip ip-prefix MYAS-200.200.2.0/23 index 10 permit 200.200.2.0 23
ip ip-prefix MYAS-200.200.0.0/24 index 10 permit 200.200.0.0 24
ip ip-prefix MYAS-200.200.1.0/24 index 10 permit 200.200.1.0 24
ip ip-prefix MYAS-200.200.2.0/24 index 10 permit 200.200.2.0 24
Configura o ip de comunicação com o PEER;
ip ip-prefix MYAS-200.200.3.0/24 index 10 permit 200.200.3.0 24 3
ip ip-prefix UPSTREAM-IPV4 index 10 permit 0.0.0.0 0 less-equal 24
#
route-policy PEER-AS50-IPV4-IN permit node 10 4 Configura os ip-prefix e route-policy;
if-match ip-prefix UPSTREAM-IPV4
#
route-policy PEER-AS50-IPV4-OUT permit node 10
if-match ip-prefix MYAS-200.200.0.0/22
28
bgp 200 Huawei VRP5
router-id 200.200.3.254
peer 172.16.0.50 as-number 50
#
ipv4-family unicast
undo synchronization
network 200.200.0.0 255.255.252.0
Configura a Instancia BGP, o PEER e a ADDRESS-FAMILY;
network 200.200.0.0 255.255.254.0 5
network 200.200.0.0
network 200.200.1.0
network 200.200.2.0 255.255.254.0
network 200.200.2.0
network 200.200.3.0
peer 172.16.0.50 enable
peer 172.16.0.50 route-policy PEER-AS50-IPV4-IN import
peer 172.16.0.50 route-policy PEER-AS50-IPV4-OUT export
29