Como eu implanto o IPv6 dentro de uma LAN usando roteador baseado no Debian e prefixo de delegação?

5

Meu ISP começou a usar o DHCPv6, o que significa que com este / etc / network / interfaces ...

auto lo eth0 eth1

iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.1
    netmask 255.255.255.0

allow-hotplug eth1
iface eth1 inet dhcp
iface eth1 inet6 dhcp

... meu roteador Debian Wheezy finalmente recebe um endereço IPv6 atribuído (yay!).

Mas o que preciso fazer em seguida para que meu roteador atribua endereços IPv6 a todas as estações de trabalho da LAN?

Com o IPv4, tudo o que eu precisava fazer era ativar o cliente DHCP na interface WAN, atribuir endereços IPv4 estáticos ao roteador e às estações de trabalho e finalmente configurar o NAT (usei iptables -t nat -a POSTROUTING -s 192.168.0.0/32 ! -d 192.168.0.0/32 -j MASQUERADE para isso).

Com o IPv6 não há NAT. Eu olhei em radvd e isc-dhcp-server , mas ambos parecem exigir um prefixo definido em seus arquivos de configuração (ou seja, um prefixo que não muda) . Meu ISP, no entanto, parece me fornecer um novo prefixo toda vez que eu me reconecto.

Estou realmente perdido.

    
por Oliver M. 17.04.2014 / 08:48

2 respostas

9

Você não disse quem era seu ISP, mas o seguinte funciona na Comcast em áreas onde eles implementaram o IPv6.

Eu tive que usar o wide-dhcpv6-client já que nenhum dos outros clientes DHCPv6 poderia manipular todos os endereços para a interface ISP, prefixo de delegação e a máscara de rede máxima / 60 da Comcast ao mesmo tempo.

Depois de instalar o wide-dhcpv6-client, edite o arquivo / etc / network / interfaces, para que as configurações do eth1 IPv6 sejam assim:

iface eth1 inet6 auto
        post-up sysctl -w net.ipv6.conf.ext0.accept_ra=2

Edite /etc/wide-dhcpv6/dhcp6c.conf para que fique assim:

profile default
{
  information-only;

  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script";
};

interface eth1 {
    send rapid-commit;

    send ia-na 0;
    send ia-pd 0;
};

id-assoc na 0 {

};

id-assoc pd 0 {
    prefix ::/60 infinity;

    # Internal interface (LAN)
    prefix-interface eth0 {
        sla-len 4;
        sla-id 0;
        ifid 1;
    };
};

A seção "na" obtém um endereço IPv6 para eth1 (voltado para o seu ISP). A seção "pd" obtém uma delegação de prefixo para sua rede interna e atribuirá o endereço IPv6 "[prefixo] :: 1" a eth0 (sua interface interna). Se você tiver redes internas adicionais, você pode adicionar seções adicionais de "interface de prefixo" para essas interfaces e incrementar o "sla-id" para cada uma.

Então você precisa de um daemon de anúncio de roteador no sistema para sua rede interna. Você pode usar radvd ou dnsmasq.

Se você estiver usando o dnsmasq, as adições necessárias ao /etc/dnsmasq.conf para IPv6 são

# Enable IPv6 Router Advertisement (RA) features.
enable-ra

# Advertise delegated prefix based on the IPv6 address of eth0.
dhcp-range = ::1,constructor:eth0,   ra-stateless, ra-names, 4h

Você precisará instalar o dnsmasq do teste Debian, já que a versão que acompanha o Debian wheezy não faz propagandas de roteador corretamente.

Em seguida, ifdown e ifup sua interface externa, certifique-se de que o dhcp6c esteja em execução e veja se ambas as interfaces externas e internas possuem endereços IPv6 diferentes dos links locais (os endereços "fe80 :: ..."). Se tudo isso funcionou, reinicie o dnsmasq e os sistemas em sua LAN devem começar a configurar automaticamente endereços IPv6 para eles mesmos.

    
por 24.04.2014 / 08:44
0

Se você está disposto a substituir o Debian por OpenWRT , então tudo é configurado automaticamente - versões recentes do OpenWRT solicitarão um prefixo DHCPv6 delegação na interface Wan, dividi-lo em / 64 bits e usá-los para suas interfaces LAN usando RA e DHCPv6. Nenhuma configuração é necessária, tudo isso é configurado fora da caixa.

Se você tiver vários roteadores em sua rede, convém experimentar configurá-los automaticamente usando o Homenet suite de protocolos. O Homenet é implementado para o OpenWRT usando hnetd e para o Linux usando shncpd . (Integrar shncpd no Debian é um trabalho contínuo, podemos usar sua ajuda.)

    
por 18.12.2015 / 16:44