Como posso 'mergulhar meus pés' no endereçamento de rede IPv6 dinâmico?

14

Existe alguma maneira no IPv6 de habilitar o endereçamento dinâmico e a configuração de um subconjunto de hosts em uma rede identificada por endereços mac específicos?

Eu tenho trabalhado lentamente na configuração do IPv6. Todos os meus roteadores têm endereços e rotas estáticos e alguns servidores críticos são tratados estaticamente. Agora, quero começar a testar alguns clientes, mas não quero simplesmente ativá-lo para uma rede inteira de uma só vez. Gostaria de poder habilitá-lo apenas para alguns hosts.

No mundo do IPv4, eu configurava um servidor DHCP com 0 endereços gratuitos no escopo e apenas configurava reservas. No mundo do IPv6, isso não parece ser uma opção, pois não consigo definir um gateway padrão via DHCPv6, que aparentemente só pode ser aprendido através de anúncios de roteador.

Como isso é abordado? Simplesmente não é possível ativar o IPv6 seletivamente em uma rede?

Meus roteadores são baseados em Linux e o servidor DHCPv6 seria executado no Linux, se necessário, e estou procurando habilitar clientes de todos os tipos (Windows / Linux / OSX).

Zoredache
fonte
Por que você não pode fazer reservas de DHCPv6? Até meu roteador doméstico pode fazer isso.
Michael Hampton
@MichaelHampton, Sim O DHCPv6 deve ser capaz de entregar um endereço ao cliente, mas como faço para que o cliente tenha uma rota padrão?
Zoredache
No servidor DHCP, você pode fazer algumas regras de iptables que bloqueiam o DHCPv6 de alguns endereços MAC e permitem aqueles que você deseja que o IPv6 esteja ativado.
Atlet
@ Zoredache: a rota padrão é sempre comunicada por mensagens de anúncio de roteador (RA). O DHCPv6 não troca informações de roteamento.
Sander Steffann

Respostas:

7

Não vejo por que você não pode fazê-lo substancialmente da mesma maneira com o IPv6 e com o IPv4 (embora eu recomende a implantação por sub-redes em vez de por hosts únicos; isso poupará muito tempo e dores de cabeça posteriormente).

É assim que o IPv6 funciona aqui (bastante simplificado; consulte a RFC 4861 para obter os detalhes sangrentos):

O roteador padrão envia um anúncio do roteador periodicamente ou quando recebe uma solicitação do roteador de um novo host. O RA contém o endereço do roteador, é claro, e vários sinalizadores. De interesse para nós aqui são a bandeira M (gerenciada) e a bandeira O (outro). Esses sinalizadores especificam que o host deve obter o restante de suas informações de configuração de um servidor DHCPv6:

  • Quando o sinalizador M é definido, todas as informações de configuração (exceto os endereços do roteador) são fornecidas pelo DHCPv6.
  • Quando o sinalizador O é definido, o host configura seu próprio endereço IPv6 com o SLAAC; todas as outras informações de configuração (exceto os endereços do roteador) são fornecidas pelo DHCPv6.

Nesse ponto, é apenas uma questão de usar, por exemplo, fixed-address6na sua dhcpd.confconfiguração para definir reservas; sua configuração do DHCPv6 será substancialmente semelhante à configuração do DHCP para IPv4.

Também pulei o caso em que uma sub-rede pode ter dois ou mais roteadores manipulando a rota "padrão"; nesse caso, observe a preferência do roteador IPv6 para configurar esse aspecto.

Michael Hampton
fonte
Ok, isso parece certo. O desafio é que atualmente estou usando o DnsMasq para anúncios de rota. O que parece não ter os recursos necessários para ativar isso. Acho que vou ter que passar a usar o radvd.
Zoredache
1
@Zoredache dnsmasq é bastante mínimo nesse aspecto, e não acho que ele tenha todos os recursos necessários. Eu mesmo estou usando o radvd. Se você precisar de algo minimalista, por exemplo, para um sistema incorporado, considere 6relayd . Este é um servidor e uma retransmissão combinados de anúncio / roteador DHCPv6, originalmente escrito para o OpenWrt.
Michael Hampton
1

Você pode configurar um servidor DHCPv6 (como WIDE ou ISC) para configuração com estado ou radvd para configuração automática sem estado. IPv6 especifica o intervalo FC00 :: / 7 para endereços locais exclusivos (semelhante aos intervalos de endereços privados no IPv4).

Mark Bidewell
fonte
E você não deve usar fc00 :: ou fd00 :: como vejo algumas pessoas fazendo. Você deve escolher um / 48 aleatório dentro desse intervalo.
Michael Hampton