Substituir um registro DNS usando o BIND9?

4

Desculpe se isso foi perguntado antes, mas não consigo encontrar nenhuma informação específica para o meu caso.

Eu corro um servidor onde os usuários podem se conectar com um jogo do Nintendo DS se eles mudarem o servidor DNS primário do DS para minha caixa. Atualmente, estou usando um script python simples que basicamente encaminha todas as solicitações para seus endereços reais, exceto uma: gamestats2.gs.nintendowifi.net , que encaminha para meu IP. O problema é que esse script tende a parar de funcionar depois de um dia ou dois, exigindo que eu o reinicie.

Eu seria capaz de substituir esse host único no BIND9 ao encaminhar todos os outros endereços para o IP adequado? Ou há outro servidor que seria melhor?

    
por Patrick 18.01.2011 / 18:05

2 respostas

5

Eu usaria o dnsmasq e configuraria o override específico na configuração com o

address=/gamestats2.gs.nintendowifi.net/Yo.Ur.Ip.Ad

Diretiva ...

    
por 18.01.2011 / 20:37
17

Para o registro: você também pode fazer isso com o BIND, mas é um pouco mais envolvido. Você precisa configurar a ligação como o servidor de nomes autoritativo para o registro de recurso específico que você deseja substituir. Por exemplo, se você quisesse redirecionar gamestats2.gs.nintendowifi.net para o seu próprio host, você precisaria disso no seu named.conf :

zone "gamestats2.gs.nintendowifi.net" {
        type master;
        file "override.zone";
};

E dentro de override.zone , uma definição de zona como esta:

$TTL 3600
$ORIGIN gamestats2.gs.nintendowifi.net.

@       IN SOA localhost. lars.localhost. (
        2010011800 ; sn = serial number
        172800     ; ref = refresh = 2d
        900        ; ret = update retry = 15m
        1209600    ; ex = expiry = 2w
        3600       ; min = minimum = 1h
        )

        ; we need one nameserver
        IN NS ns0

        ; and we're overriding the public ip address with
        ; this address.
        IN A 10.0.0.1

ns0     IN A 127.0.0.1

Ou seja, seu arquivo de zona deve fornecer, no mínimo, um registro SOA , pelo menos um NS , e devem existir registros A válidos para os registros listados nameservers ... e você provavelmente desejará que um único registro A forneça endereço selecionado.

Com tudo isso no lugar:

$ host gamestats2.gs.nintendowifi.net localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

gamestats2.gs.nintendowifi.net has address 10.0.0.1

Certamente não é tão conveniente quanto usar dnsmasq , mas vale a pena sabendo.

    
por 18.01.2011 / 22:36