4 votes

Remplacer un enregistrement DNS en utilisant BIND9 ?

Désolé si cette question a déjà été posée, mais je ne parviens pas à trouver d'informations spécifiques à mon cas.

Je gère un serveur sur lequel les utilisateurs peuvent se connecter avec un jeu Nintendo DS s'ils changent le serveur DNS primaire de leur DS pour ma boîte. J'utilise actuellement un simple script Python qui transmet essentiellement toutes les requêtes à leurs adresses réelles, sauf une : gamestats2.gs.nintendowifi.net qu'il transmet à mon IP. Le problème est que ce script a tendance à cesser de fonctionner après un jour ou deux, ce qui m'oblige à le redémarrer.

Serait-il possible d'ignorer cet hôte unique dans BIND9 tout en faisant suivre toutes les autres adresses vers leur propre IP ? Ou existe-t-il un autre serveur qui serait meilleur ?

17voto

Eric Noob Points 531

Pour mémoire, vous pouvez aussi le faire avec BIND, mais c'est un peu plus compliqué. plus complexe. Vous devez configurer BIND en tant que serveur de noms faisant autorité pour l'enregistrement de ressource spécifique que vous voulez remplacer. Par exemple, si vous voulez rediriger gamestats2.gs.nintendowifi.net vers votre propre hôte. vous auriez besoin de ceci dans votre named.conf :

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

Et à l'intérieur override.zone une définition de zone comme celle-ci :

$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

En d'autres termes, votre fichier de zone doit fournir, au minimum, un numéro d'identification de la zone. SOA au moins un NS et il doit exister des données valides A records pour la liste serveurs de noms... et vous voudrez probablement un seul enregistrement de A pour fournir votre adresse choisie.

Avec tout ça en place :

$ 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

Ce n'est certainement pas aussi pratique que d'utiliser dnsmasq mais ça vaut la peine de savoir.

0 votes

J'ai quelques mois de retard, mais j'aimerais vous remercier d'avoir écrit cet article. dnsmasq a été formidable, mais ne peut pas gérer un grand nombre de connexions, c'est pourquoi je me suis à nouveau penché sur BIND.

5voto

jamisonLikeCode Points 571

J'utiliserais dnsmasq et je définirais la dérogation spécifique dans la configuration avec l'option

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

Directive...

0 votes

Vous êtes un sauveur de vies ! Ça a marché ! Tout ce que j'ai eu à faire était d'installer dnsmasq et de modifier le fichier /etc/dnsmasq.conf pour inclure la directive. Merci beaucoup !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X