web-dev-qa-db-fra.com

Serveur DNS local

J'essaie actuellement de mettre en place un réseau ad-hoc pour passer des notes en cours. L'idée est de faire fonctionner un serveur de discussion sur mon ordinateur portable (j'utilise prosody, c'est déjà fait) pour que nous puissions partager des informations.

J'ai également configuré un serveur DNS BIND sur mon ordinateur portable afin que mes amis puissent simplement se connecter en utilisant mon nom d'hôte au lieu de configurer manuellement leurs comptes pour qu'ils pointent vers mon adresse IP.

J'ai deux problèmes distincts à cet égard. 1) Je ne sais pas vraiment comment faire en sorte que leurs ordinateurs utilisent mon ordinateur portable comme serveur DNS. Devrais-je installer un serveur DHCP aussi? 2) Mon ordinateur refuse d'utiliser mon propre serveur DNS. Je pense que c'est à cause du dnsmasq que networkmanager est exécuté. Je peux contourner ce problème en modifiant/etc/hosts, mais je souhaite utiliser mon serveur localement.

Je suis en cours d'exécution 16.04.

Pour les générations futures: en ce qui concerne le numéro 2, je viens d'aller dans le fichier de configuration NetworkManagers et supprime la ligne incluant dnsmasq. Sinon, Dnsmasq refuse d'utiliser un serveur DNS sur localhost.

De plus, j’ai configuré mon réseau ad-hoc pour qu’il me fournisse une adresse IP manuelle, car la technique automatique ne fonctionnait pas du tout pour moi. J'ai donc utilisé NetworkManager pour me donner une adresse IP statique, puis tous mes clients utilisent bien le DHCP de Dnsmasq.

2
A Gold Man

Vous pouvez le faire avec dnsmasq.

Dnsmasq accepte les requêtes DNS et y répond à partir d'un petit cache local ou les transmet à un serveur DNS réel et récursif. Il charge le contenu de/etc/hosts afin que les noms d'hôte locaux qui n'apparaissent pas dans le DNS global puissent être résolus et réponde également aux requêtes DNS pour les hôtes configurés par DHCP.

Installer dnsmasq est juste un cas d'utilisation d'apt-get.

Sudo apt-get install dnsmasq

Configurez dnsmasq en tant que DNS DHCP

En regardant le fichier /etc/dnsmasq.conf en premier. Les lignes répertoriées sont celles que j'ai modifiées par défaut. Décompressez simplement et corrigez-les si nécessaire. (Supprimez le "#" du début de la ligne).

Sudo nano /etc/dnsmasq.conf
domain-needed
bogus-priv
no-resolv
no-poll
server=/example.com/192.168.0.5
server=8.8.8.8
server=208.67.220.220
local=/example.com/
address=/doubleclick.net/127.0.0.1
no-hosts
addn-hosts=/etc/dnsmasq_static_hosts.conf
expand-hosts
domain=example.com
dhcp-range=192.168.0.20,192.168.0.50,72h  
dhcp-Host=mylaptop,192.168.0.199,36h
dhcp-option=option:router,192.168.0.1
dhcp-option=option:ntp-server,192.168.0.5
dhcp-option=19,0 # ip-forwarding off
dhcp-option=44,192.168.0.5 # set netbios-over-TCP/IP aka WINS
dhcp-option=45,192.168.0.5 # netbios datagram distribution server
dhcp-option=46,8           # netbios node type

Qu'est-ce que ces lignes vont faire pour vous?.

  • domain-required Ceci indique à dnsmasq de ne jamais transmettre de noms abrégés aux serveurs DNS en amont. Si le nom ne figure pas dans le fichier local /etc/hosts, le message “non trouvé” sera renvoyé.

  • bogus-priv Toutes les recherches IP inversées (192.168.x.x) qui ne figurent pas dans /etc/hosts seront renvoyées sous la forme "aucun domaine de ce type" et ne seront pas transmises aux serveurs en amont.

  • no-resolv Ne lisez pas resolv.conf pour trouver les serveurs sur lesquels rechercher DNS.

  • no-poll Ne pas interroger resolv.conf pour les modifications

  • serveur = 8.8.8.8 Définissez un ou plusieurs serveurs DNS à utiliser lorsque les adresses ne sont pas locales. Ce sont des serveurs DNS ouverts.

  • local =/example.com / Notre domaine local, les requêtes de ces domaines reçoivent une réponse à partir de /etc/hosts ou des fichiers static-hosts.

  • address =/doubleclick.net/127.0.0.1 Utilisez cette force pour forcer une adresse pour les domaines spécifiés. par exemple, pour bloquer des publicités, forcer doubleclck.net à localhost

  • no-hosts Cette option arrête dnsmasq en utilisant le fichier local /etc/hosts comme source de recherche.

  • addn-hosts =/etc/dnsmasq_static_hosts.conf Forcer dnsmasq à utiliser ce fichier pour les recherches. Il a le même format que /etc/hosts.

  • expand_hosts Nous pouvons donc voir nos hôtes locaux via notre domaine de base sans avoir à spécifier à plusieurs reprises le domaine dans notre fichier /etc/hosts.

  • domaine Ceci est votre nom de domaine local. Il indiquera au serveur DHCP l'hôte à attribuer aux adresses IP.

  • dhcp-range Il s'agit de la plage d'adresses IP que DHCP servira: 192.168.0.20 à 192.168.0.50, avec une durée de bail de 72 heures. La durée du bail est la durée pendant laquelle cette adresse IP sera liée à un hôte.

  • dhcp-Host = mylaptop, 192.168.0.199,36h Toute machine qui dit qu'ils sont hostname = ‘mylaptop’ obtient cette adresse IP

  • dhcp-option = option: router, 192.168.0.1 Lorsqu'un hôte demande une adresse IP via DHCP, indiquez-lui également la passerelle à utiliser.

  • dhcp-option = option: ntp-server, 192.168.0.5 Lorsqu'un hôte demande une adresse IP via DHCP lui indique également le NTP à utiliser.

Dans le fichier /etc/dnsmasq_static_hosts.conf, vous pouvez ajouter une liste de machines locales avec des adresses IP statiques au même format que le fichier hosts. C'est également un moyen facile de créer des alias ou des enregistrements CNAME.

192.168.0.8  mail mail.example.com
192.168.0.9  smtp smtp.example.com
192.168.0.120 mythtvbox mythtvbox.example.com

Démarrer et arrêter le service

Sudo service dnsmasq start
Sudo service dnsmasq stop
Sudo service dnsmasq restart

Et encore une chose à faire. Mettez fin à tous les autres DHCP serveurs du réseau local. Votre serveur DHCP/DNS ne doit en être qu'un.

1
2707974

Configurer un serveur DNS local semble être une lourde tâche pour votre problème. Idem pour la création d'un serveur DHCP. Les deux approches fonctionneraient probablement, mais combien de temps voulez-vous investir dans cet exercice?

Je pense que le moyen le plus simple et le plus simple de faire ce que vous voulez est que chaque utilisateur ajoute une ligne à son fichier local/etc/Host:

nom d'hôte adresse_IP

Ensuite, une fois l’exercice terminé, cette ligne pourrait être supprimée ou commentée.

En fonction de vos commentaires, cela ressemble à la construction d’un réseau local privé que vous contrôlez complètement, avec vos propres serveurs DHCP et DNS. Évidemment, pas besoin d’expliquer comment faire cela ici car c’est un processus compliqué que vous semblez être capable de vendre et d’exécuter.

0
jones0610