Como configurar o radvd, dhcpd6, roteamento e / 64 sub-rede com base no prefixo delegado pelo servidor DHCPv6-PD?

10

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?

takaomag
fonte

Respostas:

4

Não sei a resposta para sua pergunta, mas só quero avisá-lo sobre o uso do endereço do servidor DHCP como seu roteador padrão. Se isso funcionar, é por acaso ... No IPv6, a rota padrão é comunicada pelos RAs e não pelo DHCP.

Você precisará habilitar o encaminhamento, a aceitação de RA e o envio de RS. Um problema aqui é que o kernel incluído no Centos6 não permite que você faça isso. Quando o encaminhamento está ativado, a aceitação de RA e o envio de RS são desativados. No entanto, deve haver um kernel CentosPlus com os patches relevantes. Veja o thread / mensagem da lista de discussão em http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

As configurações relevantes do sysctl.conf são:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1
Sander Steffann
fonte
2
Na verdade, você deseja que o accept_ra seja 2 (aceite mesmo se o roteamento estiver ativado). Caso contrário, o kernel o ignora em um roteador.
Kyle Bundas
2
  • Uma rota padrão do IPv6 deve ser configurada com qualquer conexão à Internet padrão (upstream), antes de você usar o DHCPv6 PD para obter as sub-redes adicionais. Você não mencionou como está realmente se conectando a montante, por isso não posso ajudá-lo lá.
  • 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:

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    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 a eth0( prefix-interface eth0).

  • Configure o radvd com interfaceestrofes apropriadas (existem bons exemplos na radvd.confpágina de manual para trabalhar) e funcionará.
  • Eu não posso te ajudar lá; além do teste, não uso o serviço DHCPv6 (recebo todas as minhas informações de DHCP do meu servidor DHCP).
mulher
fonte
Obrigado pela sua resposta. 1. Como conectar a montante é apenas conectar um cabo Ethernet a um FTTH GE-PON. No momento, não há como especificar a rota IPv6 padrão através do DHCPv6. Tenho que considerar o endereço local do link do servidor DHCPv6 como uma rota padrão.
precisa saber é o seguinte
2. Embora eu não tenha mencionado, a razão pela qual 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.
precisa saber é o seguinte
2
3,4 Talvez eu consiga escrever alguns scripts ruins para construir radvd.conf e dhcpd6.conf com base em informações (prefixo, etc) do servidor DHCPv6. Mas 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?
precisa saber é o seguinte
De qualquer forma, eu quero conhecer o prático script dhclient.
takaomag
Não adicione todas essas informações nos comentários de uma resposta; adicione-o à sua pergunta .
womble
-1

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.

BillThor
fonte
Mesmo que eu use o servidor DHCPv6 ou o radvd, preciso escrever alguns scripts para construir o dhcpd6.conf ou o radvd.conf dinamicamente, com base nas informações (prefixo, etc) do servidor DHCPv6. Mas quando a reconfiguração do DHCPv6 acontece, como anunciar informações novas e obsoletas aos hosts do lado da LAN? Se eu construir novo dhcpd6.conf ou radvd.conf dinamicamente com base apenas em novas informações do servidor DHCPv6, o radvd anunciará automaticamente que o prefixo anterior está obsoleto? O servidor DHCPv6 anuncia automaticamente que os servidores de nomes anteriores estão obsoletos?
takaomag
O radvd pode usar o prefixo :: / 64 para obter automaticamente seus endereços da interface. Você não precisa reescrever a configuração. Servidores DNS e lista de pesquisa devem ser dados estáticos. A configuração automática do IPv6 foi projetada para lidar com endereços de migração. Não sei até que ponto o seu ISP suporta a transição. Eu não olhei para o DHCPv6.
BillThor