web-dev-qa-db-fra.com

Alias ​​for IP in the local local

Est-il possible d'attribuer un alias de chaîne lisible à une adresse IP telle que 192.168.1.1? Peut-être quelque chose comme ça:

192.168.1.1 -> router.home

ou

192.168.1.22 -> printer.home

Router.home n'est pas nécessaire pour être accessible à partir du Web externe, mais uniquement sur le réseau local. En fait, il ne devrait pas être accessible de l'extérieur du Web.

Je suppose que l'objectif est d'avoir un serveur DNS local, qui répond à l'adresse router.home. Une idée de comment créer un tel alias?

EDIT: La réponse de Yamakaja fonctionne très bien, mais elle nécessite de changer le fichier hosts sur chaque ordinateur du réseau local. La recherche DNS locale peut-elle être effectuée sur le routeur domestique? Cela éviterait beaucoup de travail manuel.

23
sanjihan

En plus de la réponse de Yamakaja , vous configurez un serveur DNS local.

Tout d'abord, vous avez besoin d'un ordinateur sur lequel vous souhaitez exécuter le serveur DNS. Cela peut être l’un de vos ordinateurs normaux (s’ils fonctionnent sous Linux et sont sur la plupart du temps) ou par exemple un Raspberry Pi . Les avantages d'un tel appareil sont qu'il est bon marché, qu'il ne nécessite pas beaucoup d'énergie et qu'il est petit.

Mise en place du serveur DNS

J'ai décidé de configurer le serveur DNS sur un Raspberry Pi à l'aide de dnsmasq , qui est un petit outil de serveur DNS, idéal pour une utilisation dans les petits réseaux. Vous pouvez également utiliser bind , l'outil DNS standard de facto, mais c'est probablement un peu trop puissant pour un petit réseau domestique.

Installez dnsmasq à l’aide du gestionnaire de paquets, sur les systèmes Debian (par exemple, Raspbian), la commande serait

Sudo apt-get install dnsmasq

Je suppose maintenant que vous avez déjà configuré une allocation d'adresse IP statique (c'est-à-dire que les adresses IP que vous mentionnez dans votre question ne changent pas). Sinon, dnsmasq peut également être utilisé comme serveur DHCP, mais je ne l'ai pas encore fait.

dnsmasq récupère les noms d'hôte à partir du /etc/hosts. Editez ce fichier comme suit:

# IP address    Host name
192.168.1.1     router
192.168.1.22    printer

Le nom d'hôte router est maintenant attribué à 192.168.1.1, printer à 192.168.1.22.

Vous avez maintenant configuré votre propre serveur DNS, mais les ordinateurs de votre réseau ne l'utilisent pas encore. Pour leur faire utiliser ce serveur, vous devez effectuer une étape de préparation:

Recherchez l'adresse IP de votre périphérique dnsmasq à l'aide de ip address (supposons qu'il s'agisse de 192.168.1.42). Ouvrez le /etc/dnsmasq.conf et ajoutez les lignes suivantes:

listen-address=127.0.0.1
listen-address=192.168.1.42

Cela indique à dnsmasq qu'il doit écouter les demandes quand elles sont adressées à 127.0.0.1 (c'est-à-dire quand il veut utiliser son serveur DNS) ou à 192.168.1.42 (c'est-à-dire lorsque d'autres ordinateurs veulent utiliser son serveur DNS).

Utiliser le serveur DNS

Vous devez indiquer à chaque ordinateur de votre réseau qu’il doit (aussi) utiliser 192.168.1.42 comme serveur DNS. La façon dont vous faites cela dépend de votre système d'exploitation. Vous pouvez facilement rechercher ceci sur votre système d'exploitation spécifié sur Internet (il suffit de chercher "Changer le serveur DNS sur <OS>" ou quelque chose du genre).

Pour Windows 7, vous pouvez suivre ce tutoriel: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .

Sur mon système (Arch Linux), j'ai dû ajouter la ligne suivante à /etc/resolvconf.conf

name_servers=192.168.1.42

Notez que le fichier que vous devez utiliser dépend de la configuration de votre gestionnaire de réseau. Ajoutez l'adresse IP du serveur DNS sur chaque ordinateur sur lequel vous souhaitez utiliser votre DNS.

Vous devrez probablement redémarrer les périphériques si cela ne fonctionne pas immédiatement.

Ça y est, vous avez terminé. Vous pouvez maintenant accéder à tous les périphériques que vous avez entrés dans /etc/hosts du serveur Dnsmasq en utilisant simplement le nom d'hôte que vous lui avez attribué.

(Facultatif) Vérification de la fonctionnalité

Si vous souhaitez vérifier si la résolution DNS fonctionne correctement, installez dnsutils (Linux) sur le système devant utiliser votre serveur. Puis exécuter

$ Dig router

Cela devrait retourner quelque chose comme ça

; <<>> Dig 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router.                        IN      A

;; ANSWER SECTION:
router.                 0       IN      A       192.168.1.1

;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE  rcvd: 50

Il vous indique le nom d'hôte que vous souhaitez résoudre, l'adresse IP à laquelle il a été résolu et le serveur DNS utilisé. Comme vous le voyez, tout va bien.

(Facultatif) Spécification d'un TLD

Si vous souhaitez accéder aux périphériques non seulement avec router ou printer mais également avec router.home et printer.home, ajoutez les lignes suivantes à votre /etc/dnsmasq.conf:

expand-hosts # Tells dnsmasq to add a TLD to each Host name
domain=home # The TLD

Vous devrez peut-être redémarrer à nouveau.

Sources/lectures supplémentaires

À propos de dnsmasq:

À propos de bind (si cela vous intéresse):

18
TuringTux

Oui, et il y a deux (ou plus?) Options:


Modification de votre fichier hosts (paresseux)

En fonction de votre système d'exploitation, vous devrez ajouter une entrée à votre fichier "hôtes". Vous pouvez le trouver à /etc/hosts sur la plupart des Unixoids et dans C:\Windows\system32\drivers\etc\hosts sur Windows.

Pour ajouter votre entrée, allez au bas du fichier et ajoutez une ligne dans ce format:

<IP>       <the hostname to assign>

par exemple.

192.168.1.1      router

(Remarque, l'espace entre l'ip et le nom d'hôte n'a pas d'importance. Mais il est préférable de faire correspondre les autres entrées. Vous pouvez utiliser des tabulations ou des espaces.)

Ensuite, vous pouvez accéder à votre routeur dans un navigateur en accédant simplement à

http://router/

ou

router/

Serveur DNS local

Veuillez consulter la réponse de de TuringTux pour plus d'informations.

9
Yamakaja

Je veux mettre à jour la grande réponse ci-dessus:

Vous voudrez peut-être examiner votre routeur et vérifier s'il est compatible avec les entrées DNS manuelles.

Si tel est le cas, vous pouvez simplement y ajouter votre adresse 192.168.1.22 locale sous la forme printer.home. Sinon, vous êtes limité à l'édition de fichiers sur les hôtes locaux ou à votre propre configuration de serveur DNS, je le crains.

2
Valentin