Como definir uma rota padrão IPv6 estática com o dhcpcd?

6

Vou definir um endereço IPv6 estático e uma rota padrão IPv6 correspondente com dhcpcd . Eu olhei através de man dhcpcd.conf , mas para não encontrar nada, como definir uma rota padrão IPv6.

Meu atual dhcpcd.conf :

hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier

interface eth0
noipv6rs
static ip6_address=2001:xxx::xxx/128

O que eu quero que dhcpcd faça é:

ip addr add 2001:xxx::xxx/112 dev eth0
ip -6 route add 2001:xxx::xxxx dev eth0
ip -6 route add default via 2001:xxx::xxxx

No entanto, com minha configuração atual, dhcpcd faz apenas as duas primeiras linhas para mim, mas não a terceira linha.

man dhcpcd.conf apenas informa que um roteador padrão IPv4 pode ser definido por meio de algo como static routers=192.168.0.1 .

Eu sei que isso pode ser feito por ip -6 route add manualmente, usando ganchos de dhcpcd ou simplesmente pondo de lado dhcpcd . Mas eu confio em dhcpcd para lidar com DHCPv4. E eu acho que seria menos confuso se o dhcpcd pudesse lidar com as configurações IPv4 e IPv6.

Minha pergunta:

Existe uma maneira mais direta em que dhcpcd define a rota padrão do IPv6 automaticamente, especificando algumas opções / comandos em dhcpcd.conf ?

    
por Dummmy 25.03.2018 / 17:51

3 respostas

8

Você não pode usar o DHCPv4 para distribuir rotas IPv6 padrão. Você não pode usar DHCPv6 para distribuir rotas IPv6 padrão.

O motivo é que o IPv6 é diferente do IPv4 em muitos aspectos, e um deles é como os roteadores se comportam: cada roteador IPv6 se anuncia como gateway para o segmento que pode usá-lo como gateway. E você pode ter vários roteadores para segmento, não está restrito a um único gateway como no IPv4.

Portanto, isso não acontece trocando transmissões DHCP e respostas, mas em vez disso acontece trocando mensagens de solicitação de roteador (RS) e anúncio de roteador (RA) entre hosts e roteadores, conforme definido no IPv6 Neighbor Discovery Protocol .

Portanto, a única maneira de fazer com que os seus hosts IPv6 se configurem com a rota certa é executar radvp (configurado corretamente) além de dhcpd no roteador / gateway. Enquanto você está nisso, você pode habilitar as mensagens RS novamente (delete noipv6rs ), porque se o Linux se considera um roteador (o redirecionamento está ativado) ele não irá (ou pelo menos não deveria) enviar mensagens RS.

E usar radvp é a maneira "menos confusa" - permite que você adicione roteadores ou remova roteadores do seu segmento sem precisar atualizar um arquivo de configuração central.

Além disso, a autoconfiguração sem estado (SLAAC) permitirá que seus hosts gerem endereços IPv6 a partir dos próprios prefixos roteados.

    
por 06.07.2018 / 12:32
4

Pesquisando por "dhcp ipv6 defaultroute", fui a AU Q & A intitulado: como definir o gateway padrão no dhcpd6.conf . De acordo com este Q & Um IPv6:

DHCPv6 does not support options to set routers/gateways.

    
por 05.07.2018 / 22:37
0

Gostaria de responder minha própria pergunta:

As respostas de dirkt são a resposta direta a essa pergunta. As respostas de slm oferecem algumas soluções úteis e sugestões adicionais.

Mas, nenhum deles resolve o problema que encontro.

O caso com que me deparei é que o ambiente de rede está totalmente fora do meu controle. Na verdade, comprei um VPS de um provedor de VPS.

O que eles fornecem é a rede pré-configurada. Eu só queria reinstalar o VPS e mudar o sistema operacional do Debian para outra distro e não tenho escolha para alterar qualquer ambiente de rede além de reproduzir exatamente a mesma configuração de rede após a instalação.

Depois de pesquisar na Internet e pedir ajuda, outro onde eu acho a melhor solução alternativa para configurar um endereço e roteador IPv6 estático é usar netctl . O netctl pode usar o dhcpcd como o backend para negociar o DHCPv4, além de fornecer maneiras simples de configurar o IPv6 estaticamente. Aqui está minha configuração até agora:

Description='A basic dhcp ethernet connection'
Interface=eth0
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no

IP6=static
Address6=('2001:****:****::****/***')
Routes6=('2001:****:****::****')
Gateway6='2001:****:****::****'
    
por 08.08.2018 / 08:37