Linux IPv6: Especificando a tabela de roteamento de política para o gateway padrão aprendido de um anúncio de roteador?

2

Existe alguma maneira de informar ao kernel qual tabela de roteamento de política deve receber a rota padrão aprendida de um anúncio de roteador IPv6?

Minha rede doméstica tem serviço IPv6 nativo do Spectrum e um túnel da Hurricane Electric que ainda preciso por outros motivos. Eles não farão o redirecionamento do roteador, então eu uso o roteamento de políticas para manter tabelas de roteamento separadas para cada conjunto de endereços de origem.

Minha lista de regras de diretiva pesquisa primeiro a tabela de roteamento 'main', que é limitada a prefixos de destino locais que podem ser alcançados com um conjunto de endereços de origem. Eu digo ao dhcpcd para dizer ao kernel para não colocar uma rota padrão naquela tabela, então se não houver correspondência, o roteamento passa para a próxima regra.

Essa próxima regra chama uma tabela específica de HE somente para endereços de origem HE. Essa tabela consiste apenas em uma rota padrão apontando para HE.

E a última regra chama uma tabela específica do Spectrum somente para endereços de origem do Spectrum. Ele contém apenas uma rota padrão apontando para o Spectrum.

Tudo funciona bem o suficiente com scripts estáticos, mas parece deselegante para hardwire endereços em todo meus scripts. E se o Spectrum mudar seu endereço de roteador IPv6?

Gostaria de manter a rota padrão para o Spectrum automaticamente, mas o kernel do Linux só me dá duas opções: pegar o anúncio do roteador do Spectrum e colocá-lo em uma rota padrão na tabela 'main', ou (se você definir "accept_ra_def_rtr = 0"), não faça nada. O dhcpcd não informa o endereço do gateway IPv6, pois o DHCP6, ao contrário do DHCP4, não atribui gateways IPv6; essa função é feita pelo kernel quando recebe mensagens de anúncio do roteador.

Eu poderia deixar o kernel instalar a rota padrão do Spectrum na tabela "main", invocar essa tabela apenas se o endereço de origem pertencer ao Spectrum e depois passar para a tabela para HE. Mas então eu teria que replicar todas as minhas rotas locais na tabela HE, e novamente isso fica confuso.

Uma resposta simples e óbvia me ocorreu: let me informa ao WHICH a tabela de roteamento do kernel a ser usada para rotas padrão para os gateways aprendidos com propagandas de roteadores IPv6. Há até uma tabela especial chamada "default", que é colocada automaticamente no final da lista de regras de política. Mas não consigo encontrar uma maneira de dizer ao kernel para fazer isso. É a tabela 'principal' ou nada. Novamente, prefiro limitar a tabela 'main' a entradas locais gerenciadas (em parte) pelo dhcpcd (por exemplo, meu prefixo delegado do Spectrum).

Alguém mais se deparou com esse problema? Alguma solução alternativa?

    
por Phil Karn 24.10.2018 / 09:19

0 respostas