Sub-rede com dois roteadores IPv6 / como obter a rota padrão correta?

1

Estou tentando criar uma sub-rede com dois roteadores IPv6, chame-os de R1 e R2. Originalmente, minha sub-rede tinha apenas R1, conectando-a à Internet através de um túnel da Hurricane Electric. R1 estava (e ainda está) rodando o radvd, e todos os hosts na subnet estão funcionando bem (e ainda estão, então eu não vou postar o radvd.conf do R1 aqui). Recentemente, adicionei R2 à sub-rede e coloquei outra (nova) sub-rede por trás dela. Eu tenho radvd rodando em R2, com o seguinte arquivo radvd.conf:

interface eth2 {
  AdvSendAdvert on;
  MinRtrAdvInterval 3;
  MaxRtrAdvInterval 10;
  prefix 2001:xxxx:xxxx:xxxx::/64 {
    AdvOnLink on;
    AdvAutonomous on;
  };
};
interface eth0 {
  AdvSendAdvert on;
  MinRtrAdvInterval 3;
  MaxRtrAdvInterval 10;
  prefix 2001:xxxx:xxxx:xxxx::/64 {
    AdvAutonomous off;
    AdvOnLink off;
  };
  route 2001:470:291c:0002::/64 {};
};

Onde eth0 está conectado à sub-rede original e eth2 está conectado à nova sub-rede.

Aqui está o problema : Os RAs do R2 estão substituindo a rota padrão em todos os hosts na sub-rede original (para que eles não tenham mais a rota padrão correta, como anunciado por R1). A rota padrão do R2 ainda aponta corretamente para R1, então tudo na sub-rede "funciona", em que os nós IPv6 externos são alcançáveis, mas todo o tráfego externo agora está sendo roteado incorretamente através do R2.

Então, minha pergunta é : como posso evitar que os RAs do R2 definam a rota padrão para hosts na minha sub-rede original (aquela com R1 e R2 conectados a ela)? Preciso dos RAs do R1 para fornecer essa rota padrão!

Muito obrigado antecipadamente.

    
por Paul Heidmann 30.10.2017 / 01:33

2 respostas

1

A solução mais óbvia seria não enviar anúncios de roteador de maneira alguma em eth0:

interface eth0 {
    AdvSendAdvert off;
}

Se houver outros motivos pelos quais você deseja enviar anúncios de roteador, informe explicitamente aos receptores que o roteador não é um gateway padrão:

interface eth0 {
    AdvSendAdvert on;
    AdvDefaultLifetime 0;
}

Do manual radvd.conf :

A lifetime of 0 indicates that the router is not a default router and should not appear on the default router list.

    
por 30.10.2017 / 10:04
0

Ambas as Ethernets têm o mesmo "prefixo 2001: xxxx: xxxx: xxxx :: / 64"?

  • Se assim for, isso parece muito errado.
  • Se não, seria melhor ter especificado 2001: db8: yyyy: yyyy "então parece diferente
    • 2001: db8 é bom para exemplos. Alguns outros endereços válidos podem usar 2001

Como minha memória me serve, acredito que trabalhei mais com o BSD rtadvd do que com o radvd do Linux - mesmos conceitos, uma implementação um pouco diferente.

No entanto, eu ofereço este conselho: Você pode iniciar o radvd para ouvir em apenas uma interface e especificar um arquivo de configuração? Além disso, você pode fazer isso uma segunda vez, ouvindo apenas outra interface e especificando outro arquivo de configuração? Nesse caso, isso pode reduzir suas chances de certos comportamentos parecerem vazar para outra interface.

Você realmente deseja o AdvSendAdvert "on" para as duas sub-redes (no roteador 2)?

O hardware também pode causar isso, se o cabeamento permitir outra conexão entre as sub-redes.

    
por 30.10.2017 / 06:18