Come impostare un indirizzo IP statico e perché
Avviso! Non parlo di altri modi di configurare la rete come con NetworkManager. Qualsiasi dispositivo menzionato in /etc/network/interfaces
non viene toccato da NM
Per poter comunicare attraverso una rete IP (IPv4 e IPv6), il computer deve sapere quale indirizzo IP ha. Quindi address
è necessaria una direttiva per dirlo al computer.
Quando il computer desidera quindi parlare con un altro computer, utilizza l'indirizzo IP di altri computer per verificare se quel computer si trova nella stessa rete, LAN. In tal caso, il computer può comunicare direttamente con l'altro computer.
Quindi, come fa il computer a sapere quando sta comunicando con un computer sulla stessa LAN? Usando le reti netmask
, dove la parte netta dell'indirizzo è impostata su una e la parte host è impostata su zero. Quindi eseguendo un'operazione AND bit a bit tra ciascun bit in un indirizzo IP e la maschera di rete otterremo l'indirizzo di rete dell'indirizzo IP, dove la parte host è zero. Quindi, se lo facciamo sull'indirizzo IP del computer e sull'indirizzo IP degli altri computer, otteniamo ciascun indirizzo di rete. Se sono uguali, significa che i computer si trovano nella stessa rete e possono parlare direttamente tra loro.
Se gli indirizzi di rete non sono uguali, si trovano su LAN diverse e non possono comunicare direttamente tra loro. Quindi il computer deve utilizzare un computer speciale collegato ad altre LAN. Quel computer è un router (che potrebbe anche avere un firewall e un NAT). Quindi, quando il computer desidera parlare con altri computer al di fuori della LAN, deve conoscere l'indirizzo di quel computer impostato con la gateway
direttiva. Se un'altra interfaccia ha già impostato un gateway
valore, non è necessario e non è necessario impostare un'altra direttiva gateway per questa interfaccia. La gateway
direttiva imposta il percorso predefinito per il computer, quindi è necessario solo uno per IPv4 e solo uno per IPv6 su ciascun computer. Questo indirizzo di rete può essere impostato manualmente con la network
direttiva.
A volte il computer desidera comunicare con tutti i computer della LAN e utilizza l'indirizzo di trasmissione. Questo indirizzo è ascoltato da tutti i computer nella stessa LAN. Questo è fondamentalmente lo stesso dell'indirizzo di rete, tranne che la parte host non è tutti zeri e invece tutti. Questo indirizzo di trasmissione è impostato dalla direttiva broadcast
nell'interfaccia.
L' network
indirizzo dell'interfaccia deve essere calcolato una sola volta e di solito è calcolato correttamente da quello address
e dalle netmask
direttive. Lo stesso con l' broadcast
indirizzo. Quindi non è necessario impostarli. In effetti, se si imposta uno o entrambi i valori errati, si potrebbe perdere la connessione a Internet e altri computer nella LAN. Quindi, a meno che tu non abbia alcuni strani valori su di essi, lascia che il computer li calcoli per te.
Quindi una minima impostazione statica, o stanza, /etc/network/interfaces
potrebbe apparire così per il dispositivo eth1
in una rete privata:
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
Come funziona la risoluzione dei nomi e come è legato al DNS.
I nomi di dominio vengono utilizzati per convertire tra facili per gli umani leggere e ricordare i nomi di dominio e i computer non così facili da ricordare l'indirizzo IP, di cui sopra. Questo si chiama risoluzione dei nomi .
Questo di solito è controllato dal file /etc/nsswitc.conf
e dalla linea che inizia con hosts:
. Se chiedi al computer di connettersi al computer my.example.com
, cercherà in questo file e tenterà di risolvere l'indirizzo IP dal nome my.example.com
. Questo file in realtà non risponde alla domanda "quale IP ha my.example.com", dice semplicemente al computer dove è possibile trovare la risposta.
Di solito cerca /etc/hosts
prima il file per i nomi locali statici, quindi avahi mDNS
per i nomi locali dinamici e quindi un resovler di nomi di dominio DNS per ottenere un nome da Internet.
Se alcuni di questi sono lenti nel rispondere alle tue domande, potrebbe sembrare che il computer si blocchi per un po '. Quindi, se lo ottieni, controlla prima la risoluzione dei nomi.
Quindi aggiungendo indirizzi statici puoi semplicemente aggiungerlo al tuo /etc/hosts
file. A proposito, se hai un indirizzo statico, probabilmente dovresti cambiare l'indirizzo IP lì per il tuo computer con il tuo indirizzo IP e non quello predefinito 127.0.1.1
(che si trova nella rete localnet in cui si trovano localhost, 127.0.0.1
). Funziona bene solo per i client e non per i server.
Gli indirizzi dinamici che ottieni dalle macchine Linux con il avahi
pacchetto e dalle macchine Apple (e MS Windows con iTunes?). Questo è gestito da "magia" e non sarà necessario risolverlo.
Il DNS viene utilizzato per accedere a Internet ed è necessario indicare al computer dove si trovano i server DNS che si desidera utilizzare, quale indirizzo IP utilizzare e quale dominio DNS predefinito sono.
Questo viene fatto nel file /etc/resolv.conf
e può essere impostato staticamente. Questo non funziona così bene nel nostro mondo non così statico, quindi di solito hai un pacchetto chiamato resolvconf
installato. Ciò ti consente di configurare queste impostazioni nel /e/n/interfaces
file.
Quindi, se assumiamo di voler aggiungere uno dei server DNS di Google 8.8.8.8
, e il server DNS del tuo ISP 192.0.2.1
e il tuo my.example.org
dominio come predefinito, devi solo modificare il /etc/network/interfaces
file e aggiungere queste due righe nella stanza per il dispositivo statico.
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
È possibile inoltre notare che il resolver DNS utilizzerà solo un massimo di tre server DNS. Si prega di cercare questo nella man
pagina di resolv.conf
. Come al solito, è possibile utilizzare il comando man nsswitch.conf
, man resolv.conf
e man resolvconf
per ulteriori informazioni.
Inoltre, utilizzo il dominio example.com, example.org e la rete IP 192.0.2.0/24 per il server DNS di esempio ISP. Questi sono esplicitamente definiti per essere utilizzati negli esempi. Vedi http://example.com/ o http://tools.ietf.org/html/rfc2606 e rfc5735
Come si controlla che funzioni?
Puoi farlo in molti modi, ma di solito lo uso
getent hosts my.test.com
per testare l'intera configurazione per la risoluzione dei nomi. Se voglio solo verificare se il DNS funziona, utilizzo uno di questi comandi:
host my.test.com
dig my.test.com
Ma ricorda che quelli testano solo DNS attraverso le impostazioni nel /etc/resolv.conf
file e non la /etc/nsswitch.conf
parte. Potrebbe essere quello che vuoi o no.