Introdução
Este documento descreve o Atributo MED do BGP (Border Gateway Protocol) quando ele cruza um limite de AS por implementação em cenários diferentes.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento básico do BGP.
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas. Os cenários discutidos neste documento usam estas versões de hardware e software:
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Conventions
Consulte as Convenções de dicas técnicas da Cisco para obter mais informações sobre as convenções do documento.
Informações de Apoio
O Multi Exit Discriminator (MED) fornece uma maneira dinâmica de influenciar outro sistema autônomo (AS) na maneira de alcançar uma determinada rota quando houver vários pontos de entrada para esse AS. O BGP usa um procedimento sistemático para a escolha do melhor caminho. Há outros atributos importantes, como peso, preferência local, rota de origem e caminho AS, que são levados em conta antes de você considerar o atributo MED. Portanto, se qualquer um desses critérios corresponder, o atributo MED não será considerado.
Nota: Quando todos os outros fatores forem iguais, é preferível o ponto de saída com o MED mais baixo.
Casos Práticos
Cenário 1
Quando um alto-falante BGP aprende uma rota de um peer, o MED da rota é passado para outros peers BGP internos (iBGP), mas não para peers BGP externos (eBGP).
Os Roteadores R1 e R2 são considerados no mesmo AS, por exemplo, AS#100, e o Roteador R3 pertence ao AS#101. Para facilitar a convenção, os endereços IP no bloco /24 são usados.
Os roteadores R1 e R2 estão configurados da seguinte maneira:
Roteador 1 |
(Config)#interface Loopback10
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config-if)#interface FastEthernet0/0
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#network xx.xx.xx.xx mask xxx.xxx.xxx.xxx route-map ATTACH_MED
(Config-router)#neighbor xxx.x.xx.x remote-as xxx
(Config-router)#no auto-summary
(Config)#access-list 10 permit xx.xx.xx.xx
(Config)#route-map ATTACH_MED permit xx
(Config)#match ip address xx
(Config)#set metric xxx |
Roteador 2 |
(Config)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 203 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x remote-as 101
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary |
A configuração do roteador R3 é mostrada aqui:
Roteador 3 |
(Config)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 302 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 101
(Config-router)#no synchronization
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary
|
Nessa configuração, R1 e R2 executam o iBGP. Portanto, quando uma atualização entra no AS com uma determinada métrica, essa métrica é usada para tomar decisões dentro do AS.
O comando show ip bgp, quando verificado em R2, mostra o valor da métrica para xx.xx.xx.xx, que vem do vizinho iBGP xxx.x.xx.x e tem um valor MED de 100.
O eBGP é executado entre R2 e R3 porque eles estão em um AS diferente. Quando a mesma atualização passa para um terceiro AS, por exemplo, AS#101, essa métrica retorna para 0.
O comando show ip bgp, quando verificado a partir de R3, tem sua métrica removida, pois xx.xx.xx.xx cruza o limite de AS(101).
Nesse cenário, é evidente que o atributo MED pode influenciar o tráfego de entrada de sistemas autônomos vizinhos.
O atributo MED não pode influenciar as decisões de rota de sistemas autônomos mais remotos. Quando um alto-falante de BGP aprende uma rota de um peer, ele pode passar o MED da rota para todos os peers de iBGP, mas não para peers de eBGP.
Como resultado, o MED tem relevância apenas entre sistemas autônomos vizinhos.
Cenário 2
Se a rota injetada no BGP (através do comando networkorredistributecommand) vier de um IGP (RIP ou EIGRP ou OSPF), o MED é derivado da métrica IGP e a rota é anunciada a um vizinho eBGP com este MED.
Nessa rede, o R1 está configurado para ser executado em uma rede RIP. Os roteadores R2 e R3 executam o BGP, em que R2 está configurado com AS 100, enquanto R3 está com AS 101.
O roteador R1 está configurado aqui:
Roteador R1 |
(Config)#interface Loopback10
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config-if)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config)#router rip
(Config-router)#network xx.x.x.x
(Config-router)#network xxx.x.xx.x
(Config-router)#no auto-summary
|
Os roteadores R2 e R3 são configurados para BGP, onde a redistribuição é feita em R2 para injetar as redes RIP em um BGP.
Roteador R2 |
(Config)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 203 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router rip
(Config-router)# network xxx.x.xx.x
(Config-router)#no auto-summary
(Config-router)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 101
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#redistribute rip metric 1
Config-router)#no auto-summary
|
Roteador R3 |
(Config)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 302 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 101
(Config-router)# no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary |
RIP e BGP são executados em R2. Se você verificar com show ip bgp o comando, poderá ver que o prefixo xx.x.x.x network é mostrado com uma métrica de 1, que é derivada do RIP.
No entanto, em R3 que é executado no eBGP, a rede é anunciada considerando o valor MED derivado do IGP. Nesse caso, é o RIP. O prefixo 10.0.0.0 é anunciado com o valor IGP MED, que é a métrica 1 do RIP. Isso pode ser visto nesta saída.
A partir desse cenário, o comportamento do MED, no caso de redes serem injetadas no roteador BGP através do comando networkorredistributecommand, é visto onde o valor MED real é substituído pelo da métrica IGP.
Como esse atributo é uma dica para vizinhos externos sobre a preferência de caminho em um AS, como dito anteriormente, nem sempre é considerado se há outros atributos mais importantes para determinar a melhor rota.
Para ter o mesmo efeito com um atributo mais determinístico, use set as-path prepend o comando no mapa de rotas.
Se você anexar o caminho de AS para determinadas rotas, ele continuará a ser visto por outro AS. Para obter mais informações sobre o uso de AS-path prepend, consulte Uso do Comando set-aspath prepend.
Informações Relacionadas