Su Internet, comprese le reti locali, le macchine si chiamano per indirizzo IP . Per accedere alla macchina B dalla macchina A usando il nome della macchina B, la macchina A deve avere un modo per mappare il nome di B al suo indirizzo IP. Esistono tre modi per dichiarare i nomi delle macchine su A:
- un file hosts . Questo è un semplice file di testo che mappa i nomi agli indirizzi.
- il sistema dei nomi di dominio (DNS) . Questo è il metodo utilizzato su Internet globale. Ad esempio, quando carichi questa pagina in un browser, la prima cosa che fa il tuo computer è fare una richiesta DNS per conoscere l'indirizzo di
unix.stackexchange.com
.
- altri database di nomi come NIS , LDAP o Active Directory . Questi vengono utilizzati in alcune reti aziendali, ma non molto spesso (molte reti che utilizzano NIS, LDAP o AD per i database degli utenti utilizzano DNS per i nomi dei computer). Se la tua rete utilizza una di queste, hai un amministratore di rete professionale e dovresti chiedergli cosa fare.
Ci sono molti modi in cui questi possono funzionare nella pratica; è impossibile coprirli tutti. In questa risposta, descriverò alcune situazioni comuni.
File host
Il metodo del file hosts ha il vantaggio di non richiedere alcun metodo speciale. Può essere complicato se si dispone di più macchine, poiché è necessario aggiornare ogni macchina quando cambia il nome di una macchina. Non è adatto se l'indirizzo IP di B è assegnato in modo dinamico (in modo da ottenerne uno diverso ogni volta che ti connetti alla rete).
Un file hosts è un semplice elenco di linee che associano i nomi agli indirizzi IP. Sembra così:
127.0.0.1 localhost localhost.localdomain
198.51.100.42 darkstar darkstar.bands
Sui sistemi unix, il file hosts è /etc/hosts
. Su Windows, lo è c:\windows\system32\drivers\etc\hosts
. Quasi tutti i sistemi operativi che è possibile connettersi a Internet hanno un file simile; Wikipedia ha un elenco .
Per aggiungere una voce per B nel file hosts di A:
Determinare l'indirizzo IP di B. Su B, eseguire il comando ifconfig
(se il comando non viene trovato, provare /sbin/ifconfig
). L'output conterrà righe come questa:
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
inet addr:10.3.1.42 Bcast:10.3.1.255 Mask:255.255.255.0
In questo esempio, l'indirizzo IP di B è 10.3.1.42. Se ci sono più inet addr:
linee, scegli quella corrispondente alla tua scheda di rete, mai la lo
voce o un tunnel o voce virtuale.
- Modifica il file hosts su A. Se A esegue un sistema unix, dovrai modificarlo
/etc/hosts
come superutente; vedi Come posso eseguire un comando come amministratore di sistema (root) .
DHCP + DNS su reti domestiche o di piccoli uffici
Questo metodo è di gran lunga il più semplice se si dispone dell'attrezzatura necessaria. Devi solo configurare un dispositivo e tutti i tuoi computer conosceranno i nomi degli altri. Questo metodo presuppone che i tuoi computer ottengano i loro indirizzi IP tramite DHCP , che è un metodo che consente ai computer di recuperare automaticamente un indirizzo IP quando si connettono alla rete. Se non sai cos'è il DHCP, probabilmente lo fanno.
Se la tua rete ha un router di casa , è il posto migliore per configurare i nomi per le macchine connesse a quel router. Innanzitutto, è necessario capire l' indirizzo MAC di B. Ogni dispositivo di rete ha un indirizzo MAC univoco. Su B, esegui il comando ifconfig -a
(se il comando non viene trovato, prova /sbin/ifconfig -a
). L'output conterrà righe come questa:
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
In questo esempio l'indirizzo MAC è 01:23:45:67:89:ab
. Devi scegliere la linea HWaddr che corrisponde alla porta di rete connessa al router tramite un cavo (o la scheda wifi se sei connesso tramite wifi). Se hai più voci e non sai quale sia, collega il cavo e vedi quale dispositivo di rete riceve un indirizzo IP ( inet addr
riga appena sotto).
Ora, nell'interfaccia web del router, cerca un'impostazione come "DHCP". Il nome e la posizione dell'impostazione dipendono completamente dal modello di router, ma la maggior parte ha un set simile di impostazioni di base. Ecco come appare su un firmware Tomato :
Immettere l'indirizzo MAC, un indirizzo IP e il nome desiderato. Puoi scegliere qualsiasi indirizzo IP nell'intervallo di indirizzi della tua rete locale. La maggior parte dei router domestici è preconfigurata per un intervallo di indirizzi nel formato 192.168. x . y o 10. x . y . z . Ad esempio, sul router Tomato mostrato sopra, nella scheda "Rete", c'è un'impostazione "indirizzo IP router" con il valore 10.3.0.1 e un'impostazione "subnet mask" con il valore 255.255.255.0, il che significa che i computer sono accesi la rete locale deve avere un indirizzo nel modulo 10.3.0. z . C'è anche una gamma di indirizzi per gli indirizzi DHCP assegnati automaticamente (10.3.0.129–10.3.0.254); per il tuo indirizzo DHCP assegnato manualmente, scegline uno che non rientri in questo intervallo.
Ora collega B alla rete e dovrebbe ottenere l'indirizzo IP specificato e sarà raggiungibile con il nome specificato da qualsiasi macchina della rete.
Crea il tuo server DNS con Dnsmasq
Se non si dispone di un router domestico abilitato, è possibile impostare la stessa funzionalità su qualsiasi macchina Linux. Spiegherò come usare Dnsmasq per configurare il DNS . Esistono molti altri programmi simili; Ho scelto Dnsmasq perché è facile da configurare e leggero (è quello che utilizza il router Tomato sopra illustrato, ad esempio). Dnsmasq è disponibile sulla maggior parte delle distribuzioni Linux e BSD per PC, server e apparecchiature di rete.
Scegli un computer sempre acceso, con un indirizzo IP statico e che esegua una sorta di Linux o BSD; chiamiamolo S (per server). Su S, installa il dnsmasq
pacchetto (se non è già lì). Di seguito suppongo che il file di configurazione sia /etc/dnsmasq.conf
; la posizione può variare in base alla distribuzione. Ora devi fare diverse cose.
È inoltre possibile utilizzare Dnsmasq come server DHCP , in modo che le macchine possano ottenere automaticamente l'indirizzo corrispondente al loro nome. Questo va oltre lo scopo di questa risposta; consultare la documentazione di Dnsmasq (non è difficile). Si noti che su una determinata rete locale può esistere un solo server DHCP (l'esatta definizione di rete locale va oltre lo scopo di questa risposta).
Nomi su Internet globale
Finora ho assunto una rete locale. E se vuoi dare un nome a una macchina che si trova in un angolo diverso del mondo? Puoi comunque utilizzare una qualsiasi delle tecniche sopra descritte, ad eccezione del fatto che le parti che coinvolgono DHCP sono applicabili solo all'interno di una rete locale. In alternativa, se le macchine hanno indirizzi IP pubblici, è possibile registrare il proprio nome pubblico per loro. (Puoi anche assegnare un indirizzo IP privato a un nome pubblico; è meno comune e meno utile, ma non ci sono difficoltà tecniche.)
Ottieni il tuo nome di dominio
Puoi ottenere il tuo nome di dominio e assegnare indirizzi IP ai nomi host all'interno di questo dominio. È necessario registrare il nome di dominio con un provider di nomi di dominio; questo in genere costa $ 10– $ 15 / anno (per i domini più economici). Utilizzare l'interfaccia Web del provider del nome di dominio per assegnare gli indirizzi ai nomi host.
DNS dinamico
Se le macchine dispongono di un indirizzo IP dinamico, è possibile utilizzare il protocollo DNS dinamico per aggiornare l'indirizzo IP associato al nome della macchina quando l'indirizzo cambia. Non tutti i provider di nomi di dominio supportano DNS dinamico, quindi acquista prima di acquistare. Per uso personale, No-IP fornisce un servizio DNS dinamico gratuito, se si utilizzano i propri domini (ad es example.ddns.net
.).
ping
) o su una macchina che il client consulta. Qual è il sistema operativo sul client? Qual è la sua configurazione DNS?