So richten Sie eine statische IP-Adresse ein und warum
Beachten! Ich spreche nicht über andere Möglichkeiten zum Einrichten eines Netzwerks wie mit NetworkManager. Alle in genannten Geräte /etc/network/interfaces
werden von NM nicht berührt
Um über ein IP-Netzwerk (IPv4 und IPv6) kommunizieren zu können, muss der Computer wissen, über welche IP-Adresse er verfügt. Daher address
ist eine Anweisung erforderlich, um dem Computer dies mitzuteilen.
Wenn der Computer dann mit einem anderen Computer kommunizieren möchte, verwendet er die IP-Adresse dieses anderen Computers, um zu überprüfen, ob sich dieser Computer im selben Netzwerk, LAN, befindet. In diesem Fall kann der Computer direkt mit dem anderen Computer kommunizieren.
Woher weiß der Computer, wann er mit einem Computer im selben LAN kommuniziert? Bei Verwendung der Netzwerke netmask
, in denen der Netzteil der Adresse auf Einsen und der Hostteil auf Null gesetzt ist. Wenn Sie also eine bitweise UND-Verknüpfung zwischen jedem Bit in einer IP-Adresse und der Netzmaske ausführen, erhalten Sie die Netzwerkadresse der IP-Adresse, wobei der Host-Teil Null ist. Wenn wir dies also auf der IP-Adresse des Computers und der IP-Adresse des anderen Computers tun, erhalten wir jede Netzwerkadresse. Wenn sie gleich sind, bedeutet dies, dass sich die Computer im selben Netzwerk befinden und direkt miteinander kommunizieren können.
Wenn die Netzwerkadressen nicht gleich sind, befinden sie sich in einem anderen LAN und können nicht direkt miteinander kommunizieren. Dann muss der Computer einen speziellen Computer verwenden, der mit anderen LANs verbunden ist. Dieser Computer ist ein Router (der auch eine Firewall und NAT haben kann). Wenn der Computer mit anderen Computern außerhalb des LAN kommunizieren möchte, muss er die Adresse des Computers kennen, der mit der gateway
Anweisung festgelegt wurde. Wenn eine andere Schnittstelle bereits einen gateway
Wert festgelegt hat, sollten und sollten Sie keine andere Gateway-Direktive für diese Schnittstelle festlegen. Die gateway
Direktive legt die Standardroute für den Computer fest, sodass Sie auf jedem Computer nur eine für IPv4 und nur eine für IPv6 benötigen. Diese Netzwerkadresse kann manuell mit der network
Direktive eingestellt werden.
Manchmal möchte der Computer mit allen Computern im LAN kommunizieren und verwendet die Broadcast-Adresse. Diese Adresse wird von allen Computern im selben LAN abgehört. Dies entspricht im Wesentlichen der Netzwerkadresse, außer dass der Host-Teil nicht alle Nullen und stattdessen alle Einsen enthält. Diese Broadcast-Adresse wird durch die Direktive broadcast
in der Schnittstelle festgelegt.
Die Schnittstellenadresse muss network
nur einmal berechnet werden und wird normalerweise korrekt aus dieser address
und den netmask
Anweisungen berechnet . Gleiches gilt für die broadcast
Adresse. Sie müssen sie also nicht einstellen. Wenn Sie einen oder beide auf die falschen Werte einstellen, kann die Verbindung zum Internet und zu anderen Computern in Ihrem LAN unterbrochen werden. Wenn Sie also keine seltsamen Werte haben, lassen Sie sie vom Computer für Sie berechnen.
Eine minimale statische Einstellung oder Zeilengruppe in /etc/network/interfaces
könnte für das Gerät eth1
in einem privaten Netzwerk folgendermaßen aussehen :
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
Wie die Namensauflösung funktioniert und wie sie an DNS gebunden ist.
Domain-Namen werden verwendet, um zwischen für Menschen leicht lesbaren und zu merkenden Domain-Namen und den oben nicht so leicht zu merkenden IP-Adressen der Computer zu konvertieren. Dies wird als Namensauflösung bezeichnet .
Dies wird normalerweise durch die Datei /etc/nsswitc.conf
und die Zeile gesteuert , die mit beginnen hosts:
. Wenn Sie den Computer auffordern, eine Verbindung zum Computer my.example.com
herzustellen, prüft er diese Datei und versucht, die IP-Adresse anhand des Namens zu ermitteln my.example.com
. Diese Datei beantwortet nicht die Frage "Welche IP hat my.example.com?", Sondern teilt dem Computer nur mit, wo er die Antwort finden könnte.
Normalerweise versucht es die /etc/hosts
Datei zuerst für statische lokale Namen, dann avahi mDNS
für dynamische lokale Namen und dann einen DNS-Domainnamen-Resovler, um einen Namen aus dem Internet zu erhalten.
Wenn einige von ihnen Ihre Fragen nur langsam beantworten, sieht es möglicherweise so aus, als würde der Computer für eine Weile hängen bleiben. Wenn Sie das bekommen, überprüfen Sie zuerst die Namensauflösung.
Wenn Sie also statische Adressen hinzufügen, können Sie diese einfach zu Ihrer /etc/hosts
Datei hinzufügen . Übrigens, wenn Sie eine statische Adresse haben, sollten Sie dort wahrscheinlich die IP-Adresse Ihres Computers in Ihre IP-Adresse ändern und nicht in die Standardadresse 127.0.1.1
(die sich im lokalen Netzwerk befindet, in dem sich localhost befindet 127.0.0.1
). Das funktioniert nur für Clients und nicht für Server.
Die dynamischen Adressen, die Sie von Linux-Computern mit dem avahi
Paket und von Apple-Computern (und MS Windows mit iTunes?) Erhalten. Das wird von "Magie" erledigt und Sie müssen das nicht beheben.
Der DNS wird verwendet, um das Internet zu erreichen, und Sie müssen dem Computer mitteilen, wo sich die DNS-Server befinden, die Sie verwenden möchten, welche IP-Adresse verwendet werden soll und wie Ihre Standard-DNS-Domäne lautet.
Dies erfolgt in der Datei /etc/resolv.conf
und kann statisch eingerichtet werden. Dies funktioniert in unserer nicht so statischen Welt nicht so gut, daher haben Sie normalerweise ein Paket namens resolvconf
installiert. Auf diese Weise können Sie diese Einstellungen in der /e/n/interfaces
Datei einrichten .
Wenn wir also davon ausgehen, dass wir einen der Googles-DNS-Server, 8.8.8.8
den DNS-Server Ihres Internetdienstanbieters 192.0.2.1
und Ihre my.example.org
Domänendomäne als Standard hinzufügen möchten, bearbeiten Sie einfach die /etc/network/interfaces
Datei und fügen diese beiden Zeilen in die Zeilengruppe für das statische Gerät ein.
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
Möglicherweise stellen Sie auch fest, dass der DNS-Resolver nur maximal drei DNS-Server verwendet. Bitte schauen Sie auf der man
Seite von nach resolv.conf
. Wie üblich, können Sie den Befehl verwenden man nsswitch.conf
, man resolv.conf
und man resolvconf
für weitere Informationen.
Beachten Sie auch, dass ich für den ISP-Beispiel-DNS-Server die Domain example.com und example.org sowie das IP-Netzwerk 192.0.2.0/24 verwende. Diese sind explizit definiert, um in Beispielen verwendet zu werden. Siehe http://example.com/ oder http://tools.ietf.org/html/rfc2606 und rfc5735
Wie überprüfen Sie dann, ob es funktioniert?
Sie können das auf viele Arten tun, aber ich benutze normalerweise
getent hosts my.test.com
um das gesamte Setup auf Namensauflösung zu testen. Wenn ich nur überprüfen möchte, ob DNS funktioniert, verwende ich einen der folgenden Befehle:
host my.test.com
dig my.test.com
Denken Sie jedoch daran, dass diese DNS nur über die Einstellungen in der /etc/resolv.conf
Datei und nicht über das /etc/nsswitch.conf
Teil testen . Es könnte sein, was Sie wollen oder nicht.