Meu ISP acabou de iniciar o serviço de pilha dupla IPv4 / IPv6. Para conectar a Internet IPv4 / IPv6, quase todos os usuários geralmente usam um CPE alugado pelo ISP. Mas eu quero usar meu roteador Linux em vez desse CPE, porque meu roteador tem muitas funções (muitas regras de iptables e 3 interfaces Ethernet, proxy reverso http, cache http, cache de memcached, servidor smtp / pop e proxy DNS). Quero que seja um roteador de pilha dupla IPv4 / IPv6.
Meu roteador
- CentOS6.0 i686
- eth0 para WAN
- eth1,2 para LAN
- ISC dhcp (versão 4.1.1) instalado por "# yum install dhcp" do repositório de atualizações do CentOS
- radvd (versão 1.6) instalado por "# yum install radvd" do repositório do CentOS-base
- [EDIT] A razão pela qual eu uso o dhclient ISC é que meu roteador precisa enviar uma opção 16 do DHCPv6 (classe Vendor) em suas mensagens de solicitação e solicitação, para obter a opção de informações específicas do fornecedor, que inclui algumas informações específicas do ISP ( Número de telefone SIP, endereço do servidor de firmware). Eu sei como definir a opção 16 no dhclient ISC, mas não o conheço no WIDE-dhcpv6. E não consigo encontrar configurações como "id-assoc" no dhclient do ISC.
Meu gol
- O prefixo / 48 é delegado ao cliente DHCPv6-PD (delegação de prefixo DHCPv6) (dhclient) em eth0.
- Uma rota padrão do IPv6 é configurada para ISP. Eu tenho que considerar o endereço local do link do servidor DHCPv6 do ISP como uma rota padrão.
- Uma sub-rede / 64 e um endereço global (que estão no prefixo delegado) são atribuídos a cada I / F da LAN (eth1 / eth2).
- O radvd em eth1 e eth2 anuncia o RA com base na sub-rede / 64 atribuída.
- O dhcpd6 no eth1 e o eth2 anuncia informações adicionais da rede (servidores de nomes, lista de pesquisa de domínio e endereços de servidores sip) recebidas do servidor DHCPv6 do ISP.
Minha configuração atual
/ etc / sysconfig / network
NETWORKING=yes
HOSTNAME=xxx.yyy.zzz
# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes
/ etc / sysconfig / scripts de rede / ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"
# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no
/etc/dhcp/dhclient6.conf
script "/sbin/dhclient-script";
interface "eth0" {
send dhcp6.reconf-accept;
also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}
Resultado
Após "# service network restart", o cliente DHCPv6-PD parece concluir com êxito.
lease6 {
interface "eth0";
ia-pd xx:xx:xx:xx {
starts 1312464004;
renew 7200;
rebind 10800;
iaprefix 24xx:xxxx:xxxx::/48 {
starts 1312464004;
preferred-life 12600;
max-life 14400;
}
}
option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
option dhcp6.reconf-accept ;
option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}
Questão
O cliente DHCPv6-PD é delegado / prefixo 48 com êxito. Mas depois disso,
- Como definir uma rota padrão IPv6 na tabela de roteamento do roteador?
- Como atribuir um endereço IPv6 global e uma sub-rede / 64 a cada I / F da LAN (eth1 e eth2) com base no prefixo delegado?
- Como acionar o radvd para anunciar o RA em cada LAN I / F (eth1 e eth2)?
- Como acionar o servidor DHCPv6 (dhcpd6) em cada LAN I / F para anunciar informações adicionais da rede (servidores de nome, lista de pesquisa de domínio e endereços de servidores sip) recebidas do servidor DHCPv6 do ISP?
Meu palpite
De acordo com "$ man dhclient" e "$ man dhclient-script", o dhclient-script parece ser usado para definir essas configurações e oferece alguns ganchos. Mas agora, ele não faz nada para o cliente DHCPv6-PD.
Sim, talvez seja necessário escrever alguns scripts adequados ao meu ambiente DHCPv6-PD, embora eu não esteja familiarizado com as configurações de rede IPv6. Alguém me informou as configurações acima em dhclient-script? [EDIT] Quero conhecer o roteiro prático do dhclient.
E eu me preocupo, alguma consideração especial deve ser tomada. Por exemplo, como cada endereço IPv6 tem vida útil preferida / válida, quando atribuo um endereço IPv6 global a uma interface LAN com base no prefixo delegado, tenho que atribuir não apenas um endereço IPv6, mas também a vida útil que deve ser derivada do delegado vida útil preferida / válida do prefixo?
Além disso, o servidor de radvd e DHCPv6 nas interfaces da LAN pode precisar ser reconfigurado quando a reconfiguração do DHCPv6 ocorrer? Qual gancho deve ser usado?
[EDIT] Quando a reconfiguração do DHCPv6 acontece, como anunciar informações novas e obsoletas? O radvd anuncia automaticamente que o prefixo anterior está obsoleto? O servidor DHCPv6 anuncia automaticamente que os servidores de nomes anteriores estão obsoletos?
Eu uso o cliente WIDE DHCPv6, em vez do ISC, por isso não sei como fazê-lo especificamente, mas espero que o ISC tenha algo equivalente a esta opção de configuração WIDE:
Basicamente, você diz ao cliente DHCP como atribuir sub-redes a interfaces internas; a configuração acima diz "Estou recebendo 4 bits do prefixo delegado para mim (
sla-len 4
), pegue a primeira sub-rede disponível (sla-id 1
) e atribua-a aeth0
(prefix-interface eth0
).interface
estrofes apropriadas (existem bons exemplos naradvd.conf
página de manual para trabalhar) e funcionará.fonte
O Wombie deu a mesma resposta que eu usaria para configurar o radv e o roteamento. O Inet6 foi projetado para fazer a autoconfiguração sem a necessidade de um servidor DHCP.
Eu não uso o DHCPv6, pois ele pode ser manipulado por radvd e zeroconf. O radvd pode ser configurado para fornecer servidores de nomes e anunciar servidores em /etc/resolv.conf. Novas versões do radvd também implementaram a distribuição de listas de pesquisa.
Eu configurei o avahi-daemon para distribuir serviços e servidores de nomes aos clientes. Você precisará que os clientes possam fazer a descoberta do serviço. Não testei muito a descoberta de serviços, pois administro uma rede de pilha dupla.
fonte