Además de la respuesta de Yamakaja , así es como configura un servidor DNS local.
Primero, necesita una computadora en la que desea ejecutar el servidor DNS. Esta puede ser una de sus computadoras normales (si ejecutan Linux y están en la mayoría del tiempo) o, por ejemplo, una Raspberry Pi . Las ventajas de este dispositivo son que es barato, no necesita mucha energía y es pequeño.
Configurar el servidor DNS
Decidí configurar el servidor DNS en una Raspberry Pi usando dnsmasq
, que es una pequeña herramienta de servidor DNS, ideal para usar en redes pequeñas. También podría usar bind
la herramienta de DNS estándar de facto, pero probablemente sea demasiado poderosa para una red doméstica pequeña.
Instale dnsmasq
usando el administrador de paquetes, en sistemas basados en Debian (por ejemplo, Raspbian), el comando sería
sudo apt-get install dnsmasq
Ahora supongo que ya ha configurado una asignación de dirección IP estática (es decir, las direcciones IP que menciona en su pregunta no cambian). Si no lo ha hecho, dnsmasq
también se puede usar como servidor DHCP, pero aún no lo he hecho.
dnsmasq
recupera los nombres de host de /etc/hosts
. Edite este archivo de la siguiente manera:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
El nombre de host router
ahora está asignado a 192.168.1.1
, printer
a 192.168.1.22
.
Ahora, ha configurado su propio servidor DNS, pero las computadoras en su red aún no lo usan. Para que usen este servidor, debe realizar un paso de preparación:
Encuentre la dirección IP de su dispositivo dnsmasq usando ip address
(supongamos que es 192.168.1.42
). Abra /etc/dnsmasq.conf
y agregue las siguientes líneas:
listen-address=127.0.0.1
listen-address=192.168.1.42
Esto le dice dnsmasq
que debe escuchar las solicitudes cuando se dirigen a 127.0.0.1
(es decir, cuando quiere usar su servidor DNS) o 192.168.1.42
(es decir, cuando otras computadoras quieren usar su servidor DNS).
Usando el servidor DNS
Debe decirle a cada computadora de su red que debe (también) usarla 192.168.1.42
como servidor DNS. La forma de hacerlo depende de su sistema operativo. Puede buscar esto fácilmente para su sistema operativo especificado en Internet (simplemente busque "Cambiar servidor DNS en <OS>", o algo así).
Para Windows 7, puede seguir este tutorial: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .
En mi sistema (Arch Linux), tuve que agregar la siguiente línea a /etc/resolvconf.conf
name_servers=192.168.1.42
Tenga en cuenta que el archivo que debe usar depende de la configuración de su administrador de red. Agregue la IP del servidor DNS en cada computadora que desea usar su DNS.
Probablemente tendrá que reiniciar los dispositivos si no funciona de inmediato.
Eso es todo, ya terminaste. Ahora puede acceder a todos los dispositivos que ha ingresado en /etc/hosts
el servidor dnsmasq simplemente usando el nombre de host que le ha dado.
(Opcional) Comprobación de funcionalidad
Si desea verificar si la resolución de DNS funciona correctamente, instale dnsutils
(Linux) en el sistema que debe usar su servidor. Luego ejecuta
$ dig router
Esto debería devolver algo como esto
; <<>> 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
Le muestra el nombre de host que quería resolver, la dirección IP a la que se resolvió y el servidor DNS utilizado. Como ves, todo está bien.
(Opcional) Especificar un TLD
Si desea acceder a los dispositivos no solo con router
o printer
sino con router.home
y printer.home
, agregue las siguientes líneas a su /etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
Es posible que deba reiniciar nuevamente.
Fuentes / lecturas adicionales
Acerca de dnsmasq
:
Acerca de bind
(si le interesa):