Comment puis-je effectuer une configuration complète du serveur DNS BIND9 avec un nom d'hôte?


53

J'ai besoin d'un guide complet étape par étape sur la manière de produire une telle configuration de serveur.

Quelqu'un peut-il m'aider?

Réponses:


119

Serveur DNS complet sur le serveur Ubuntu 12.

Commencez par changer l'adresse IP de votre serveur, de DHCP à STATIC, pour cela, utilisez la commande suivante

sudo nano /etc/network/interfaces

et ajouter:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Redémarrez les démons réseau

sudo /etc/init.d/networking restart

Avant de configurer un serveur DNS sous Linux Ubuntu, vous devez d'abord définir le nom de domaine, puis procéder. D'abord, vous allez vérifier votre commande de nom d'hôte pour savoir si

sudo nano /etc/hostname

 nefitari       

(Ceci est mon nom d'hôte de serveur Ubuntu, le vôtre peut être différent. Vous pouvez le modifier en fonction de vos besoins)

Maintenant, après le nom d’hôte, vous devez créer un nom de domaine pour votre serveur. Dites servername.domain.com, il est préférable de ne pas utiliser .com, mais plutôt .hom ou .net ou tout ce que vous voulez, lorsque vous configurez le serveur pour un usage domestique ou autre. Donne la commande ci-dessous

  sudo nano /etc/hosts

ajoutez s'il ne l'a pas:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

Dans mon fichier 127.0.0.1 est pour localhost et j'ai changé la deuxième adresse IP 127.0.1.1 avec mon IP de serveur qui est 192.168.1.5 maintenant j'entre mon nom de domaine ayant mon nom d'hôte nefitari d' abord puis mon nom de domaine autun.hom puis alias nefitari . Vous pouvez choisir votre propre nom d’hôte.abc.net ou votre nom d’hôte.home.lan etc. Redémarrer est indispensable

Maintenant, installez BIND9

 sudo apt-get install bind9

Après l’installation, configurez les fichiers ci-dessous, étape par étape.

  • Nommé.conf.options
  • Nommé.conf.local
  • /etc/resolv.conf

Configurez maintenant le fichier nommé.conf.options. Ce fichier est utilisé pour les adresses IP DNS. Cela signifie que votre serveur doit se connecter à un serveur DNS extérieur. Lorsque vous achetez un nom de domaine chez un fournisseur de services Internet, il vous attribue normalement sa propre adresse IP DNS. Vous pouvez utiliser les adresses IP DNS ouvertes de Google ou autre. Dans mon cas, j'utilise mes propres adresses IP DNS ISP.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Enregistrez le fichier et quittez *** en utilisant les touches de contrôle x, appuyez sur y et écrasez le fichier.

Maintenant, éditez le fichier nommé.conf.local. C'est le fichier dans lequel nous définissons les zones de transfert et les zones inversées. Cela signifie que lorsque nous entrons un nom de domaine, nous le traduisons en adresse IP et lorsque nous entrons une adresse IP, nous le convertissons simplement en nom.

sudo nano /etc/bind/named.conf.local

montrera:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Enregistrez le fichier et quittez *** en utilisant les touches de contrôle x, appuyez sur y et écrasez le fichier.

Nous allons maintenant créer ces deux fichiers de base de données, db.autun.hom et db.192, dans le dossier des zones.

Commencez par créer les zones de répertoire dans / etc / bind /

  sudo mkdir /etc/bind/zones

Avant de créer des fichiers, laissez-moi vous dire que j’ai différents appareils

Périphériques IP

  • Le serveur lui-même 192.168.1.5
  • Passerelle 192.168.1.1
  • Win7pc 192.168.1.50

Maintenant, dans le répertoire des zones, nous allons d’abord créer deux fichiers, db.autun.hom . Je copie simplement le fichier db.local déjà présent dans le dossier / etc / bind dans un dossier de zones en changeant son nom en db.autun.hom . Je vais mettre ces adresses IP dans mon fichier db.autun.hom. Commençons

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Maintenant, utilisez la commande ci-dessous pour éditer le fichier

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Enregistrez-le et quittez

  • Webuser.autun.hom. est l'email qui va accéder au serveur de noms. Vous pouvez écrire n'importe quel nom à la place de l'utilisateur Web comme admin, root ou host master, etc.
  • Autun.hom. est mon NS signifie serveur de noms
  • Autun.hom .passe à IP 192.168.1.5
  • @ IN A 127.0.0.1 et AAAA :: 1 peuvent être commentés, vous ne devriez pas en avoir besoin car db.local est déjà présent dans / etc / bind, il ne s'agit que d'une copie de ce fichier. Donc pas besoin de le supprimer
  • Changer Nefitari en IP 192.168.1.5
  • Passerelle vers IP 192.168.1.1
  • Win7pc vous pouvez nommer vos PC Windows ou vos clients Linux avec n’importe quel nom, mais rappelez-vous que l’IP de ce client doit être correctement inséré dans un fichier. Dans mon cas, j'ai donné l'adresse IP de Windows PC 192.168.1.50
  • Enfin, j'utilise CNAME signifie nom canonique, ce n'est qu'un alias pour nefitari. Cela signifie que vous pouvez accéder à votre serveur en saisissant www.autun.hom à la place nefitari.autun.hom. Vous pouvez l'omettre ou le commenter. C'est juste à vous.

Maintenant, créez un fichier de zone de recherche inversée

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

Maintenant, utilisez la commande ci-dessous pour éditer le fichier

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Enregistrez-le et quittez

Maintenant, quand vous avez fini avec votre fichier de zone, vous devez vérifier s'il fonctionne correctement ou non en entrant la commande ci-dessous pour le fichier de zone à suivre.

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Maintenant, vérifiez le fichier de zone inverse

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Si le résultat de votre nom-checkzone est identique à celui ci-dessus, il fonctionne correctement, sinon vous avez commis une erreur de fichier.

Maintenant, éditez le fichier resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Entrez les lignes suivantes dans votre fichier resolv.conf et enregistrez-le.

Redémarrer la liaison

sudo /etc/init.d/bind9 restart

Après le début de la liaison, vérifiez vos paramètres dans le fichier journal.

tail -f /var/log/syslog

il ne doit y avoir aucune erreur dans le journal

Vérification des zones en avant

host –l autun.hom

La sortie devrait ressembler à ceci

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Maintenant, utilisez NSLOOKUP

nslookup autun.hom

SORTIE

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Utiliser DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

Le résultat doit ressembler à ce qui précède, vérifiez le statut: NOERROR signifie que le problème est résolu. Check REPONSE SECTION: gateway.autun.hom est résolu en 192.168.1.1.

Vérification de la zone inverse

 host 192.168.1.1

Sortie

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Si cela vous donne une erreur comme ci-dessous

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Cela signifie que vous avez commis une erreur dans le fichier /etc/bind/named.conf.local dans la zone inversée. Si l'adresse IP de votre serveur est 192.168.1.5, votre zone inversée ressemble à ceci

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

Parfois, les gens ont fait une erreur en inversant l'adresse IP comme (juste un exemple)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Utiliser NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Si vous obtenez des erreurs semblables à NXDOMAIN ou SERVFAIL, cela signifie qu'un de vos fichiers de zone ne fonctionne pas correctement

Maintenant , vous pouvez ping ubuntu.com ou creuser ubuntu.com pour la première fois , il faudra plusieurs miliseconds pour résoudre le nom ubuntu.com mais lorsque vous l' exécutez deuxième temps il faudra 1, 2 ou 3 secondes forment normalement 1 à 10 Mili les secondes sont normales et cela signifie que votre DNS fonctionne correctement

Configuration des clients

côté fenêtres

  • connexions réseau ouvertes
  • sélectionnez modifier les paramètres de l'adaptateur
  • sélectionner les propriétés
  • sélectionnez la version du protocole Internet IPv4

et donnez ici l’adresse IP (dans mon cas c’est 192.168.1.50 vous souvenez-vous de win7pc)

  • Adresse IP 192.168.1.50
  • Masque de sous-réseau 255.255.255.0
  • Passerelle par défaut 192.168.1.1
  • DNS primaire 192.168.1.5 (mon nouveau serveur ip BIND DNS)
  • dans la même fenêtre, sélectionnez Advance
  • sélectionnez l'onglet DNS
  • Tapez dans la zone de texte ci-dessous ici. Suffixe DNS pour cette connexion: autun.hom
  • cliquez ok
  • cliquer sur valider le réglage à la sortie
  • cliquez sur OK

et vous en avez fini avec CMD ouvert

ping gateway

il doit vous donner des réponses

De même

ping 192.168.1.1 or 5

il doit vous donner des réponses

Testez votre serveur au monde extérieur

Désormais, vous pouvez exécuter une commande ping sur ubuntu.com ou sur dig ubuntu.com pour la première fois. Le nom ubuntu.com ne prend que plusieurs millisecondes. cela signifie que votre DNS fonctionne correctement Configuration des clients

côté fenêtres

connexions réseau ouvertes, sélectionnez Modifier les paramètres de l’adaptateur, sélectionnez Propriétés, sélectionnez la version du protocole Internet IPv4.

et donnez ici l’adresse IP (dans mon cas c’est 192.168.1.50 vous souvenez-vous de win7pc)

Adresse IP 192.168.1.50

Masque de sous-réseau 255.255.255.0

Passerelle par défaut 192.168.1.1

DNS primaire 192.168.1.5 (mon nouveau serveur ip BIND DNS)

sélectionnez Advance (dans la même fenêtre)

sélectionnez l' onglet DNS

Tapez dans la zone de texte ci-dessous ici. Suffixe DNS pour cette connexion: autun.hom

cliquez ok

cliquer sur valider le réglage à la sortie

cliquez ok

et vous en avez fini avec CMD ouvert

Code:

 ping gateway

il doit vous donner des réponses

De même

Code:

 ping 192.168.1.1 or 5

il doit vous donner quelques réponses, vous pouvez utiliser le code NSLOOKUP :

 nslookup gateway

CLIENTS LINUX

Code:

 sudo nano /etc/network/interfaces

tapez les lignes suivantes

Code:

 auto eth0
 iface eth0 inet dhcp

Maintenant, redémarrez les démons réseau

Code:

 sudo /etc/init.d/networking restart

forcer le client à renouveler la commande IP

Code:

 sudo dhclient -r

Maintenant, obtenez une nouvelle adresse IP:

Code:

 sudo dhclient

Si vous utilisez un serveur DHCP sur votre réseau, entrez le nom de domaine et le serveur de noms dans le fichier dhcpd.conf; Par exemple, j'ai un serveur DNS nommé nefitari.autun.hom et l'adresse IP est 192.168.1.5 comme sous

Code:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

la source


7
Il est dommage que cette page contienne 3726 vues uniq et que la réponse n’ait qu’un seul vote positif. Si cela vous a aidé, invitez-le!
fotanus

12
Cette réponse est correcte, à l'exception de la partie concernant l'édition de /etc/resolv.conf. Depuis Ubuntu 12.04, vous ne modifiez pas ce fichier manuellement, mais vous configurez resolvconf pour le faire. Définissez RESOLVCONF = yes dans / etc / default / bind9 pour que BIND 9 named enregistre son adresse d'écoute locale 127.0.0.1 avec resolvconf au démarrage. Assurez-vous que /etc/resolv.conf est un lien symbolique vers ../run/resolvconf/resolv.conf.
Jdthood

1
erreurs syslog - (network unreachable) resolving './NS/IN': 2001:500:3::42#53Est-ce que bind essaie de résoudre les requêtes de manière récursive en utilisant ipv6. L'édition /etc/default/bind9et l'utilisation le OPTIONS="-u bind -4"corrigent. Plus d'infos: serverfault.com/questions/77325/domaine-incontrôlable
pas un correctif

Je viens de recevoir la configuration avec le serveur Ubuntu 16.04 et cela fonctionne toujours. Le tutoriel Serverguide sur DNS est un cauchemar par rapport à cette explication. Cependant, je devais corriger une erreur dans la liste: dans le fichier db.192avant IN NS nefitari.est @manquant. De plus, je devais ajouter le nom de domaine complet. Ainsi, ma ligne de travail ressemblait à ceci. @ IN NS nefitari.autun.hom.J'ai ignoré la section resolv.conf et suivi les conseils de jdthood. Le lien existait déjà depuis l'installation du serveur par défaut.
CatMan

1
@fotanus Je pense que c'est parce que c'est si long que les gens ont oublié de revenir en arrière \
CodyBugstein

1

La réponse n’est qu’un ajout à la description ci-dessus.

Conseil de dépannage

Soyez très prudent avec les nombreux '.' dans les fichiers de configuration car chacun est important. Un seul manquant '.' peut empêcher le serveur DNS de fonctionner. Vous ne devez pas compter sur des messages d'erreur clairs.

J'ai appris sa bonne pratique d'utiliser un numéro de série plus éloquent. Il est très important d’incrémenter le numéro de série chaque fois que la configuration est modifiée, par exemple de nouvelles entrées étant ajoutées. S'il n'est pas incrémenté, un DNS secondaire ne parviendra pas à synchroniser les nouveaux paramètres. Le format suggéré est YYYYMMDDss, où ssest le "vieux" numéro de série. Ainsi, lors de l’incrémentation, vous devez incrémenter ssde +1 et définir la date sur la date actuelle. J'ai trouvé cela très utile pour résoudre les problèmes d'installation. Dans le syslog, vous voyez clairement la date et la série du fichier utilisé.

Dans Ubuntu 16.04, modifier resolv.conf est obsolète. Comme jdthood l'a écrit dans son commentaire, remplacez l'étape par la procédure suivante: - Modifiez / etc / default / bind9: le nouveau testament devrait ressembler à ceci:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

voir les commentaires de not-a-patch pour les problèmes IPV6.

  • placez un lien symbolique de /etc/resolv.conf dans /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Configuration hors ligne

La configuration est exactement la même, et même un peu plus facile, car vous pouvez simplement ignorer les sections de transfert. Ils ne doivent pas obligatoirement être présents, il n’est donc pas nécessaire de les éditer /etc/bind/names.con.options.

Réseaux de classe B

Quelques modifications mineures sont nécessaires pour que cela fonctionne avec les réseaux de classe B (avant qu'il y ait des commentaires, il n'y a aucune raison pour qu'un réseau local, même à domicile, ne puisse pas être un réseau de classe B au lieu d'un réseau de classe C) . Dans cet exemple, j'utilise le numéro de réseau 172.20.xx (je pense que la notation formelle est 172.20.0.0. Pour plus d'informations, google rfc1918).

Utilisez la description de la première réponse, remplacez toutes les IP 192.168.xx par 172.20.xx, utilisez-les pour l'adresse IP du serveur 172.20.0.100 et modifiez les fichiers comme suit:

  • le nom du fichier db.192devient db.172.
  • le fichier named.conf.localobtient une section de zone inverse différente:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • Le fichier de zones inversées devient:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

Le reste est le même.

J'espère que c'est utile pour quelqu'un.


Cela fonctionne-t-il si vous souhaitez utiliser les adresses 172.16 et 172.20?
kojow7

@ Kojow7. Très bonne question. Je ne sais pas, mais pour savoir, vous pouvez soit vérifier simplement d'inclure une deuxième zone et un deuxième fichier inversé. Il est facile à tester avec la commande nslookup. Ou peut-être que le mieux était, utilisez simplement un masque de réseau qui inclut les deux 172.16. et 172.20. Le masque de réseau ne serait pas aussi simple que 255.255.0.0 mais contiendrait d'autres nombres que 0 et 255, mais sur le net vous pouvez trouver des tutoriels pour savoir comment le découvrir si vous ne le connaissez pas déjà. Au cas où vous l'auriez résolu, envisagez de l'afficher ici pour le bénéfice des autres.
CatMan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.