Alias ​​per IP nella rete LAN domestica


23

È possibile assegnare un alias di stringa leggibile a un indirizzo IP come 192.168.1.1? Forse qualcosa del genere:

192.168.1.1 -> router.home

o

192.168.1.22 -> printer.home

Non è necessario che router.home sia raggiungibile dal web esterno, ma solo nella LAN. In realtà, non dovrebbe essere raggiungibile dall'esterno del web.

Immagino che l'obiettivo sia avere un server DNS locale, che risponda all'indirizzo router.home. Qualche idea su come creare un tale alias?

EDIT: la risposta di Yamakaja funziona alla grande, ma richiede la modifica del file hosts su tutti i computer della LAN. È possibile invece effettuare la ricerca DNS locale sul router di casa? Ciò salterebbe molto lavoro manuale.


2
Nota che alcuni router lo fanno da soli, ad esempio se usi i router Asus e vai su router.asus.com si aprirà la pagina di configurazione del router. Anche altri router hanno "trucchi" simili per fare simili a questo.
acejavelin,

No, non utilizzo il router ASUS. La domanda è in realtà un po 'più generale ... Non solo vorrei accedere al router senza IP, ma anche altri dispositivi collegati alla rete. Aggiungerò una modifica.
Sanjihan,

2
Il mio punto era che alcuni router hanno questa funzionalità integrata poiché spesso fungono da server di cache DNS, poiché non hai indicato quale router stai usando, l'ho lasciato aperto a "altri router hanno trucchi simili per fare anche questo"
acejavelin

1
si si, ho capito e grazie! il router era solo un esempio. immagina di eseguire anche la stampante o il sistema di ventilazione con lampone PI o Internet su LAN.
Sanjihan,

@sanjihan Penso che dovrai rivelare la marca e il modello del tuo router, oppure dire cosa stai usando per il DNS affinché qualcuno ti dia ulteriori istruzioni sulle configurazioni che potresti essere in grado di completare per questo compito. Quindi, per ricapitolare, 1.)creare e modellare il tuo dispositivo router o 2.)cosa stai usando esattamente per il DNS (ad es. DNS di Windows, funzionalità del router integrata, ecc.)
Pimp Juice IT

Risposte:


18

Oltre alla risposta di Yamakaja , ecco come si configura un server DNS locale.

Innanzitutto, è necessario un computer su cui si desidera eseguire il server DNS. Questo può essere uno dei tuoi normali computer (se eseguono Linux e sono attivi per la maggior parte del tempo) o ad esempio un Raspberry Pi . I vantaggi di un tale dispositivo sono che è economico, non ha bisogno di molta energia ed è piccolo.

Impostazione del server DNS

Ho deciso di configurare il server DNS su un Raspberry Pi utilizzando dnsmasq, che è un piccolo strumento server DNS, ideale per l'uso in reti di piccole dimensioni. Potresti anche utilizzare bindlo strumento DNS di fatto standard, ma questo è probabilmente un po 'troppo potente per una piccola rete domestica.

Installa dnsmasqusando il gestore pacchetti, su sistemi basati su Debian (es. Raspbian), il comando sarebbe

sudo apt-get install dnsmasq

Suppongo ora che tu abbia già impostato un'allocazione di indirizzi IP statici (cioè gli indirizzi IP che menzioni nella tua domanda non cambiano). In caso contrario, dnsmasqpuò essere utilizzato anche come server DHCP, ma non l'ho ancora fatto.

dnsmasqrecupera i nomi host da /etc/hosts. Modifica questo file come segue:

# IP address    Host name
192.168.1.1     router
192.168.1.22    printer

Il nome host routerè ora assegnato a 192.168.1.1, printera 192.168.1.22.

Ora hai impostato il tuo server DNS, ma i computer della tua rete non lo usano ancora. Per farli usare questo server, devi fare un passo di preparazione:

Trova l'indirizzo IP del tuo dispositivo dnsmasq utilizzando ip address(supponiamo che sia 192.168.1.42). Aprire /etc/dnsmasq.confe aggiungere le seguenti righe:

listen-address=127.0.0.1
listen-address=192.168.1.42

Ciò dice dnsmasqche dovrebbe ascoltare le richieste quando vengono indirizzate a 127.0.0.1(ovvero quando si desidera utilizzare il proprio server DNS) o 192.168.1.42(ovvero quando altri computer vogliono utilizzare il proprio server DNS).

Utilizzando il server DNS

Devi dire a ogni computer della tua rete che dovrebbe (anche) usare 192.168.1.42come server DNS. Il modo in cui lo fai dipende dal tuo sistema operativo. È possibile cercare facilmente il sistema operativo specificato su Internet (basta cercare "Cambia server DNS su <OS>" o qualcosa del genere).

Per Windows 7, puoi seguire questo tutorial: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .

Sul mio sistema (Arch Linux), ho dovuto aggiungere la seguente riga a /etc/resolvconf.conf

name_servers=192.168.1.42

Nota che il file che devi usare dipende dalla configurazione del tuo gestore di rete. Aggiungi l'IP del server DNS su ogni computer che desideri utilizzare il tuo DNS.

Probabilmente dovrai riavviare i dispositivi se non funziona immediatamente.

Ecco fatto, il gioco è fatto. Ora puoi accedere a tutti i dispositivi che hai inserito nel /etc/hostsserver dnsmasq semplicemente usando il nome host che gli hai dato.

(Facoltativo) Verifica della funzionalità

Se vuoi verificare se la risoluzione DNS funziona correttamente, installa dnsutils(Linux) sul sistema che dovrebbe usare il tuo server. Quindi eseguire

$ dig router

Questo dovrebbe restituire qualcosa del genere

; <<>> 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

Ti mostra il nome host che desideri risolvere, l'indirizzo IP a cui è stato risolto e il server DNS utilizzato. Come vedi, va tutto bene.

(Facoltativo) Specifica di un TLD

Se si desidera accedere ai dispositivi non solo con routero printerma con router.homee printer.home, aggiungere le seguenti righe al proprio /etc/dnsmasq.conf:

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

Potrebbe essere necessario riavviare di nuovo.

Fonti / ulteriori letture

Circa dnsmasq:

Informazioni bind(se ti interessa):


11

Sì, lo sono e ci sono due (o più?) Opzioni:


Modifica del file hosts (il modo pigro)

A seconda del sistema operativo in uso, dovrai aggiungere una voce al file "hosts". Puoi trovarlo /etc/hostssu quasi tutti gli Unixoids e su C:\Windows\system32\drivers\etc\hostssu Windows.

Per aggiungere la tua voce vai in fondo al file e aggiungi una riga in questo formato:

<IP>       <the hostname to assign>

per esempio.

192.168.1.1      router

(Nota, lo spazio tra l'ip e il nome host non ha importanza. Ma sembra migliore se si abbina con le altre voci. Puoi usare tab o spazi)

Quindi puoi accedere al tuo router in un browser semplicemente accedendo

http://router/

o

router/

Server DNS locale

Per ulteriori informazioni, consultare la risposta di TuringTux


Grazie uomo! Funziona benissimo per un singolo computer. È possibile estenderlo a tutti i computer della LAN senza modificare manualmente il file hosts in ogni singolo computer?
Sanjihan,

@sanjihan Non è così facile, ad esempio potresti comprare il tuo nome di dominio per meno di 1 $ su namecheap e usarlo per indicare le tue cose. Ad esempio, è possibile configurare il router. <tuodominio>. <tld> per puntare a 192.168.1.1 Ma ciò allungherà i nomi. Inoltre, contrassegna la mia risposta come accettata, in modo che altri utenti sappiano che questa domanda ha ricevuto risposta.
Yamakaja,

Puoi semplicemente usare il nome PC se fanno parte dello stesso gruppo di lavoro?
jiggunjer,

@jiggunjer in realtà non lo so. Non ho molta familiarità con Windows
Yamakaja,

2

Voglio aggiornare la risposta eccellente sopra:

Potresti voler esaminare il tuo router e verificare se dispone del supporto di immissione DNS manuale.

In tal caso, puoi semplicemente aggiungere il tuo 192.168.1.22indirizzo locale come printer.home. Altrimenti, temo che tu sia limitato alla modifica dei file degli host locali o alla configurazione del tuo server DNS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.