Como configurar o dhcpd para registrar o ipv4 com o bind ao ter endereços ipv6 estáticos?

2

Eu tenho IPv6 configurado na minha rede local via radvd ; ele anuncia um bloco IPv6 roteável, que todas as máquinas se auto-configuram.s

Eu tenho o IPv4 atribuído a um bloco NAT via dhcpd e as atualizações nomeadas.

Meu problema é que quando eu configuro o registro AAAA para um host para seu endereço IPv6 (que não muda), o named irá então começar a rejeitar as atualizações de nome do dhcpd para o registro A.

chamado relata o seguinte erro:

'name not in use' prerequisite not satisfied (YXDOMAIN)

O dhcpd reportará o seguinte erro:

Has an A record but no DHCID, not mine

Como eu posso convencer o dhcpd a ignorar o registro AAAA ao fazer a atualização nomeada.

    
por utopiabound 01.10.2012 / 18:29

2 respostas

0

Encontrei uma resposta aqui link

Essencialmente, o dhcpd tem uma maneira de adicionar ganchos para eventos, portanto, em um registro IPv4, chame um script que gere o endereço IPv6 padrão baseado em MAC e registre isso.

ATUALIZAÇÃO: (Estou usando o ICH DHCP 4.1)

Ao usar o gancho "on commit", ele remove a atualização dinâmica existente e você precisa copiá-la para a seção "on commit", a minha agora é assim:

on commit {
    if (not static) {
        # Setup IPv6 Address
        set new-ddns-fwd-name = pick-first-value(ddns-hostname, host-decl-name);
        if (exists host-name and option host-name ~~ "^[a-z0-9.-]+$") {
                set new-ddns-fwd-name = option host-name;
        } elsif (exists dhcp-client-identifier and option dhcp-client-identifier ~~ "^[a-z0-9.-]+$") {
                set new-ddns-fwd-name = substring(option dhcp-client-identifier, 1, 50);
        } elsif (new-ddns-fwd-name = "") {
                set new-ddns-fwd-name = binary-to-ascii (16, 8, "-",
                                 substring (hardware, 1, 6));
        }
        set ddns-fwd-name = new-ddns-fwd-name;
        execute ("/opt/bin/ddns-ipv6", ddns-fwd-name, ucase(
                binary-to-ascii(16, 8, ":", substring(hardware, 1, 6))),
                binary-to-ascii(10, 8, ".", leased-address));
        unset new-ddns-fwd-name;

        switch (ns-update (not exists (IN, A, ddns-fwd-name, null),
                           add (IN, A, ddns-fwd-name, leased-address,
                                lease-time / 2))) {
        default:
            unset ddns-fwd-name;
            break;

        case NOERROR:
            set ddns-rev-name =
                concat (binary-to-ascii (10, 8, ".", reverse (1, leased-address)), ".", 
                        pick (config-option server.ddns-rev-domainname,
                              "in-addr.arpa."));

            switch (ns-update (delete (IN, PTR, ddns-rev-name, null),
                               add (IN, PTR, ddns-rev-name, ddns-fwd-name, lease-time / 2)))
            {
            default:
                unset ddns-rev-name;
                on release or expiry {
                    execute ("/opt/bin/ddns-ipv6", "-d",  pick-first-value(ddns-hostname, host-decl-name));
                    switch (ns-update (delete (IN, A, ddns-fwd-name,
                                           leased-address))) {
                    case NOERROR:
                       unset ddns-fwd-name;
                       break;
                    }
                    on release or expiry;
                }
                break;

            case NOERROR:
                on release or expiry {
                    execute ("/opt/bin/ddns-ipv6", "-d",  pick-first-value(ddns-hostname, host-decl-name));
                    switch (ns-update (delete (IN, PTR, ddns-rev-name, null))) {
                    case NOERROR:
                        unset ddns-rev-name;
                        break;
                    }
                    switch (ns-update (delete (IN, A, ddns-fwd-name,
                                           leased-address))) {
                    case NOERROR:
                        unset ddns-fwd-name;
                        break;
                    }
                    on release or expiry;
                }
            }
            break;
        }
   }
}
    
por 08.12.2014 / 12:40
0

adicione a linha seguinte a /etc/dhcp/dhcpd.conf :

update-conflict-detection false;
    
por 23.08.2014 / 21:34