Diferenca entre AS-OVERRIDE e ALLOWAS-IN
O BGP possui por padrão um mecanismo anti loop, que evita que um prefixo anunciado por você seja ensinado à você mesmo.
Primeiramente é bom lembrar que estamos falando de eBGP, pois no iBGP a premissa é de quê a sessão BGP é fechada com um neighbor no mesmo ASN que você.
Quando você possui redes em lugares diferentes e necessita aprender o prefixo de ambas no dois sites, necessita utilizar o AS-OVERRIDE ou o ALLOWAS-IN. Os dois recursos têm a mesma função, mas são configurados em lugares diferentes.
O AS-OVERRIDE é configurado no lado do provedor de serviços, seu neighbor eBGP, e tem por função modificar o seu ASN pelo ASN local de seu provedor antes de te enviar o prefixo. Vide exemplo abaixo:
No diagrama acima, o roteador R3 receberia o prefixo 10.0.0.0/24 com o AS-PATH 20 - 10, então descartaria devido ao mecanismo anti loop. Se o seu upstream, no caso o AS10, habilitasse o AS-OVERRIDE, o AS-PATH seria 10 - 10, então este prefixo não seria descartado.
Sendo assim, entendemos que o AS-OVERRIDE é indicado no caso de você não querer exigir configurações adicionais em seu roteador, entretanto será necessário que seu upstream o faça.
Já o ALLOWAS-IN é configurado de seu lado, e não do provedor de serviços. Com este recurso você simplesmente ignorará o mecanismo anti loop, colocando uma exceção em determinado peer.
O ALLOWAS-IN necessita de um parâmetro, que é o número máximo de ocorrências de seu ASN no AS-PATH que é tolerado.
Exemplo: neighbor 1.2.3.4 allowas-in 1
No exemplo acima, configuramos que podemos aprender prefixos que contenham até uma ocorrência de meu próprio ASN no AS-PATH a partir do neighbor 1.2.3.4, o que atenderia ao cenário do diagrama exposto anteriormente.
Agora vejamos um outro exemplo de cenário:
Neste exemplo, o AS-PATH do prefixo 10.0.0.0/24 para o roteador R3 seria 20 - 20 - 10, e o comando allowas-in 1 já não seria suficiente, já que o meu ASN (20), aparece duas vezes. Neste caso, teríamos que configurar allowas-in 2.
Autor: Daniel Damito