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

9

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 de tal CPE, porque meu roteador tem muitas funções (muitas regras iptables e três interfaces Ethernet, proxy reverso http, cache http, memcached, servidor smtp / pop e proxy DNS). Quero permitir 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 CentOS-updates
  • radvd (versão 1.6) instalado por "# yum install radvd" do repositório base do CentOS
  • [EDIT] O motivo pelo qual eu uso o dhclient do ISC é que meu roteador tem que enviar uma opção de DHCPv6 16 (classe de fornecedor) em suas mensagens de solicitação e solicitação, para obter a opção de informações específicas do fornecedor que inclui alguns ISP- informações específicas (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 sei em WIDE-dhcpv6. E eu não consigo encontrar essas configurações como "id-assoc" no dhclient ISC.

Meu objetivo

    O prefixo
  • / 48 é delegado ao cliente DHCPv6-PD (Delegação de Prefixo DHCPv6) (dhclient) em eth0.
  • Uma rota padrão do IPv6 é definida para o ISP. Eu tenho que considerar o endereço de link local 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 LAN I / F (eth1 / eth2).
  • radvd on eth1 e eth2 anunciam o RA baseado na sub-rede / 64 atribuída.
  • dhcpd6 em eth1 e eth2 anunciam informações adicionais de rede (servidores de nomes, lista de busca 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 terminar com sucesso.

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;
}

Pergunta

O cliente DHCPv6-PD é delegado / 48 com prefixo. Mas depois disso,

  • Como definir uma rota padrão do IPv6 na tabela de roteamento do roteador?
  • Como atribuir um endereço IPv6 global e / sub-rede 64 a cada LAN I / F (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 disparar o servidor DHCPv6 (dhcpd6) em cada LAN I / F para anunciar informações de rede adicionais (servidores de nomes, 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 configurar tais configurações, e oferece alguns ganchos. Mas agora, não faz nada para o cliente DHCPv6-PD.

Sim, posso ter que 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 avise as configurações acima em dhclient-script? [EDIT] Eu quero saber o prático script do dhclient.

E eu me preocupo, algumas considerações especiais devem ser tomadas. Por exemplo, como cada endereço IPv6 tem tempo de vida preferido / válido, quando atribuo um endereço IPv6 global a uma interface LAN com base no prefixo delegado, preciso atribuir não apenas um endereço IPv6, mas também suas vidas úteis, que devem ser derivadas do delegado vida útil preferida / válida do prefixo?

Além disso, o servidor radvd e o servidor DHCPv6 em interfaces LAN podem ter que ser reconfigurados quando ocorrer a reconfiguração do DHCPv6? Qual gancho deve ser usado?

[EDIT] Quando ocorre a reconfiguração do DHCPv6, como anunciar informações novas e obsoletas? radvd anunciar automaticamente o prefixo anterior é obsoleto? Servidor DHCPv6 anuncia automaticamente que os servidores de nomes anteriores estão obsoletos?

    
por takaomag 04.08.2011 / 20:54

3 respostas

4

Não sei a resposta à sua pergunta, mas quero apenas 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 pela RA e não pelo DHCP.

Você precisará ativar o encaminhamento, aceitando RA e enviando RS's. Um problema aqui é que o kernel incluído no Centos6 não permite que você faça isso. Quando o encaminhamento está habilitado, a aceitação do RA e o envio do RS está desativada. Deve haver um kernel CentosPlus com os patches relevantes. Veja o tópico / mensagem da lista de discussão no link

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
    
por 06.08.2011 / 17:54
2
  • Uma rota padrão do IPv6 deve ser configurada por qualquer que tenha recebido sua conexão de Internet padrão (upstream), antes de usar o PD do DHCPv6 para obter as sub-redes adicionais. Você não mencionou como você está realmente se conectando com o upstream, então eu não posso te ajudar lá.
  • Eu uso o cliente WIDE DHCPv6, em vez de ISC, então não sei como fazê-lo especificamente, mas espero que o ISC tenha algo equivalente a essa 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: "Eu estou ficando 4 bits de prefixo delegada a mim ( sla-len 4 ), pegue a primeira sub-rede disponível ( sla-id 1 ) e atribuí-la a eth0 ( prefix-interface eth0 ).

  • Configure o radvd com as sub-rotinas interface apropriadas (há bons exemplos na página radvd.conf man para trabalhar) e o Just Work.
  • Eu não posso te ajudar lá; Além de testar, eu não uso o serviço DHCPv6 (recebo todas as minhas informações DHCP do meu servidor DHCP).
por 05.08.2011 / 01:54
0

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 pode anunciar servidores a partir do /etc/resolv.conf. Novas versões do radvd também implementaram a distribuição de listas de busca.

Eu configurei o avahi-daemon para distribuir serviços e servidores de nomes para os clientes. Você precisará de clientes capazes de fazer a descoberta de serviços. Eu não fiz muitos testes de descoberta de serviços enquanto executo uma rede de pilha dupla através da placa.

    
por 05.08.2011 / 02:16