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/interfacesnon 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 gatewaydirettiva. Se un'altra interfaccia ha già impostato un gatewayvalore, non è necessario e non è necessario impostare un'altra direttiva gateway per questa interfaccia. La gatewaydirettiva 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 networkdirettiva.
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 broadcastnell'interfaccia.
L' networkindirizzo dell'interfaccia deve essere calcolato una sola volta e di solito è calcolato correttamente da quello addresse dalle netmaskdirettive. Lo stesso con l' broadcastindirizzo. 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/interfacespotrebbe apparire così per il dispositivo eth1in 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.confe 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/hostsprima il file per i nomi locali statici, quindi avahi mDNSper 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/hostsfile. 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 avahipacchetto 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.confe può essere impostato staticamente. Questo non funziona così bene nel nostro mondo non così statico, quindi di solito hai un pacchetto chiamato resolvconfinstallato. Ciò ti consente di configurare queste impostazioni nel /e/n/interfacesfile.
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.1e il tuo my.example.orgdominio come predefinito, devi solo modificare il /etc/network/interfacesfile 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 manpagina di resolv.conf. Come al solito, è possibile utilizzare il comando man nsswitch.conf, man resolv.confe man resolvconfper 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.conffile e non la /etc/nsswitch.confparte. Potrebbe essere quello che vuoi o no.