Como escolher um ID de roteador BGP ao usar apenas IPv6?

16

Geralmente, ao usar o BGP, você pode escolher (ou o seu dispositivo escolher quatro você) um ID do roteador de um dos seus endereços IP públicos atribuídos.

Agora, vamos admitir que você executa apenas o IPv6. Como o ID do roteador ainda é um número de 32 bits, ele não pode ser copiado do endereço de um loopback.

O draft-dupont-durand-idr-ipv6-bgp-routerid-01 traz o início de uma resposta, sugerindo o uso do seu número AS com o sufixo de uma parte alocada localmente. Mas isso funciona apenas para números AS de 16 bits.

Então, como escolher um RID para seus dispositivos? Aleatoriamente ? Em caso afirmativo, como os dispositivos reagiriam em caso de colisão (as duas extremidades de uma sessão BGP usam o mesmo RID)?

PS: o problema também diz respeito ao OSPF, mas você só precisa criar um esquema de alocação RID coerente. O que você não pode fazer ao usar o BGP para fazer pares com outros ASes.

Benjamin A.
fonte

Respostas:

9

Colora-me inseguro nesta resposta ...

os IDs de roteador precisam realmente ser únicos no espaço OSPF, como você mencionou.

No BGP, meu entendimento é que eles são usados ​​apenas para detectar uma nova sessão de peering sendo criada quando já existe ... para a qual acho que a solução é derrubar a antiga.

Se as sessões de peering chegarem em endereços de transporte diferentes, mesmo que os IDs de roteador apresentados sejam os mesmos, eles serão vistos como sessões diferentes porque são provenientes de endereços de transporte diferentes (endereços IPv6 no seu cenário).

Então ... acho que a resposta seria escolher seus IDs de roteador para OSPF (presumivelmente v3) e provavelmente não é o fim do mundo se seu ID de roteador acabar duplicando o ID de roteador que outro (terceiro) par usa com um par AS externo

Jeff McAdams
fonte
4

Supondo que você realmente não esteja executando a v4, nem mesmo um loopback, o método que eu sugeriria seria simplesmente alocar um número seqüencial por roteador e usá-lo, sem a necessidade de segmentá-lo, e você pode ter um número de inventário que pode funcionar (embora considere como isso pode funcionar no contexto de uma RMA).

Mais notavelmente, isso torna o IS-IS muito mais agradável de usar do que preencher um endereço IPv4 manualmente.

Se você (por algum motivo estranho) tivesse uma rede na qual apenas alguns dispositivos fossem IPv6, convém compensar os números de manual para que eles não sejam confundidos com endereços IPv4 reais. Usar 240/8 é uma ideia (eu sugeriria contra 255/8 ou mesmo 254/8 para ajudar a evitar um cérebro de operações cansado, paginado às 3 da manhã, perguntando-se por que um ID de roteador está definido para um endereço de broadcast).

LapTop006
fonte
2

Minha sugestão seria adaptar seu número AS tratando-o como um AS de 32 bits (se já não estiver) - zere os 8 bits superiores e ORcom 0xE0000000(faz com que pareça espaço multicast). Para simplificar a explicação, usarei hexadecimal (na verdade, isso facilita a visualização dos limites)

por exemplo, se o seu número AS for 717232 (0x000AF1B0), você obtém inicialmente 0xE00AF1B0 e pode aumentar o octeto superior para cada alto-falante BGP no seu AS 0xE00AF1B0, 0xE10AF1B0 etc.

Convertendo para decimal? fácil, divida o hexágono e divida a calculadora do seu programa favorito: E0.A.F1.B0 -> 224.10.241.176, E1.A.F1.B0 -> 225.10.241.176, etc.

Obviamente, há um número infinito de métodos que você pode criar para lidar com essa situação; o ponto principal é apenas ser proativo para evitar duplicatas. No BGP, você deve garantir que os vizinhos não tenham o mesmo ID do roteador; no entanto, é possível associar dois roteadores separados com o mesmo ID a um terceiro, apenas lembre-se de que o routerid é usado como um desempatador para a seleção do melhor caminho.

Olipro
fonte
1

Interface de loopback IPv4? Eu sei que o Cisco IOS usará o endereço mais alto (número de 32 bits) como o ID do roteador.

Ricky Beam
fonte