Quando sono necessari rete, broadcast e gateway per configurare manualmente un'interfaccia di rete?


10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

L'URL sopra riportato dice quanto segue. Ma non mi è chiaro quando sono opzionali e quando non lo sono. Potresti fornirmi qualche link ai riferimenti che descrivono questo? Grazie.

Se lo stai configurando manualmente, qualcosa del genere imposterà il gateway predefinito (rete, broadcast e gateway sono opzionali):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254

2
Nelle recenti versioni di Ubuntu, che utilizzano dnsmasq, è necessario dichiarare anche i nameserver DNS.
chili555

@ chili555, che funziona se aggiungi il pacchetto resolvconf. Leggi la mia risposta qui sotto. ;-) Stai bene con la risposta, user1424739?
Anders,

Credo nelle recenti versioni di Ubuntu, che resolvconf sia installato di default; no??
chili555

1
Potresti dedicare del tempo per rivedere la risposta di @Anders. Vedi Cosa devo fare quando qualcuno risponde alla mia domanda?
user.dz,

@ chili555 Sì, lo è. Ma volevo solo chiarire la connessione tra quel pacchetto e dns-server in / e / n / interfaces. Scusa se non ero chiaro.
Anders,

Risposte:


25

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.


1
Bella spiegazione, grazie. Poiché chili555 menziona l'importanza del DNS per risolvere i nomi di dominio, sarà utile aggiungere un punto al riguardo. (Per quanto riguarda le connessioni Internet o WAN, è necessario impostare tutto)
user.dz

Qualcosa come questo?
Anders,

1
Prego. :-) Mi chiedo se è una risposta abbastanza buona per l'utente 1424739
Anders

Ad ogni modo, /etc/internet/interfacesstanno per essere obsoleti da Ubuntu, a favore del loro NetPlan, vedere /etc/netplan/*.yamle NM(che può essere modificato con nm-tools).
Anders,
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.