Multi Protocol BGP - MP-BGP
O MP-BGP (Multiprotocol BGP) é uma extensão do BGP tradicional que permite o transporte de informações de roteamento para múltiplas familias de endereços, como IPv6, VPNs (MPLS), multicast e outras.
O BGP original (IPv4 unicast) só suporta roteamento de prefixos IPv4 normais (AFI 1, SAFI 1). Com a evolução da Internet e das redes privadas, surgiu a necessidade de suportar:
- IPv6 (unicast e multicast)
- VPNv4 e VPNv6 (usado com MPLS)
- Roteamento multicast (MBGP)
- EVPN (Ethernet VPN)
- Flowspec (regras de mitigação de tráfego malicioso)
O MP-BGP permite que o BGP transporte diferentes tipos de informações separadamente, dentro da mesma sessão TCP, sem precisar abrir múltiplas sessões para cada tipo de dado.
AFI e SAFI
O AFI e SAFI são códigos numéricos usados no MP-BGP para indicar o tipo de informação de roteamento que está sendo trocada entre os vizinhos BGP. O AFI (Address Family Identifier), identifica a família de endereços, como IPv4 ou IPv6. Já o SAFI (Subsequent Address Family Identifier), especifica o tipo de serviço associado àquela família de endereços, como unicast, multicast ou VPN.
Por exemplo, quando o BGP está anunciando rotas IPv6 unicast, ele está usando AFI 2 (IPv6) e SAFI 1 (unicast). Se estiver anunciando rotas de VPNv4 em um ambiente MPLS, ele usará AFI 1 (IPv4) e SAFI 128 (VPN). Esse par AFI+SAFI é o que define qual tabela BGP será usada internamente para armazenar e trocar rotas daquele tipo.
Dessa forma, a principal função do AFI e do SAFI é permitir que o BGP carregue, dentro de uma única sessão TCP, múltipos tipos de rotas separadamente. Cada combinação AFI+SAFI corresponde a uma tabela de roteamento distinta dentro do BGP. Isso evita que, por exemplo, rotas de VPN se misturem com rotas da internet global, garantindo isolamento e controle no transporte das informações.
Tipo de tráfego | AFI | SAFI | Descrição |
---|---|---|---|
IPv4 Unicast | 1 | 1 | Roteamento IPv4 comum |
IPv6 Unicast | 2 | 1 | Roteamento IPv6 comum |
IPv4 VPN | 1 | 128 | MPLS VPN com prefixos IPv4 |
IPv6 VPN | 2 | 128 | MPLS VPN com prefixos IPv6 |
IPv4 Multicast | 1 | 2 | Roteamento multicast IPv4 |
EVPN | 25 | 70 | Ethernet VPN sobre BGP |
Configurando MP-BGP
Em plataformas como Cisco e FRR, você precisa ativar explicitamente o suporte a cada address-family:
# Exemplo Cisco IOS:
router bgp 65000
neighbor 2001:db8::1 remote-as 65001
address-family ipv6 unicast
neighbor 2001:db8::1 activate
neighbor 2001:db8::1 next-hop-self
exit-address-family
address-family ipv4 vpn
! utilizado em MPLS L3VPN
exit-address-family
Exemplo no FRR:
router bgp 65000
neighbor 192.0.2.1 remote-as 65001
address-family ipv6 unicast
neighbor 192.0.2.1 activate
exit-address-family
Exemplos práticos com IPv6
Para ter um exemplo bem detalhado de uma rede com IPv6 only, veja aqui.