Wann sind Netzwerk, Broadcast und Gateway erforderlich, um eine Netzwerkschnittstelle manuell zu konfigurieren?

10

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

Die obige URL sagt Folgendes aus. Aber es ist mir nicht klar, wann sie optional sind und wann nicht. Können Sie mir einen Link zu Referenzen geben, die dies beschreiben? Vielen Dank.

Wenn Sie es manuell konfigurieren, wird so etwas das Standard-Gateway festlegen (Netzwerk, Broadcast und Gateway sind optional):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
user1424739
quelle
2
In neueren Ubuntu-Versionen, die dnsmasq verwenden, müssen Sie auch DNS-Nameserver deklarieren.
Chili555
@ chili555, das funktioniert, wenn Sie das Paket resolvconf hinzufügen. Lesen Sie meine Antwort unter dieser. ;-) Bist du mit der Antwort einverstanden, user1424739?
Anders
Ich glaube in neueren Ubuntu-Versionen, dass resolvconf standardmäßig installiert ist; Nein??
Chili555
1
Könnten Sie sich etwas Zeit nehmen, um die Antwort von @Anders zu überprüfen? Siehe Was soll ich tun, wenn jemand meine Frage beantwortet?
user.dz
@ chili555 Ja, das ist es. Aber ich wollte nur die Verbindung zwischen diesem Paket und DNS-Servern in / e / n / interfaces klarstellen. Entschuldigung, wenn ich unklar war.
Anders

Antworten:

25

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/interfaceswerden 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 addressist 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 gatewayAnweisung festgelegt wurde. Wenn eine andere Schnittstelle bereits einen gatewayWert festgelegt hat, sollten und sollten Sie keine andere Gateway-Direktive für diese Schnittstelle festlegen. Die gatewayDirektive 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 networkDirektive 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 broadcastin der Schnittstelle festgelegt.

Die Schnittstellenadresse muss networknur einmal berechnet werden und wird normalerweise korrekt aus dieser addressund den netmaskAnweisungen berechnet . Gleiches gilt für die broadcastAdresse. 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/interfaceskönnte für das Gerät eth1in 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.confund die Zeile gesteuert , die mit beginnen hosts:. Wenn Sie den Computer auffordern, eine Verbindung zum Computer my.example.comherzustellen, 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/hostsDatei zuerst für statische lokale Namen, dann avahi mDNSfü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/hostsDatei 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 avahiPaket 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.confund kann statisch eingerichtet werden. Dies funktioniert in unserer nicht so statischen Welt nicht so gut, daher haben Sie normalerweise ein Paket namens resolvconfinstalliert. Auf diese Weise können Sie diese Einstellungen in der /e/n/interfacesDatei einrichten .

Wenn wir also davon ausgehen, dass wir einen der Googles-DNS-Server, 8.8.8.8den DNS-Server Ihres Internetdienstanbieters 192.0.2.1und Ihre my.example.orgDomänendomäne als Standard hinzufügen möchten, bearbeiten Sie einfach die /etc/network/interfacesDatei 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 manSeite von nach resolv.conf. Wie üblich, können Sie den Befehl verwenden man nsswitch.conf, man resolv.confund man resolvconffü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.confDatei und nicht über das /etc/nsswitch.confTeil testen . Es könnte sein, was Sie wollen oder nicht.

Anders
quelle
1
Schöne Erklärung, danke. Da chili555 die DNS-Bedeutung für die Auflösung von Domain-Namen erwähnt, ist es hilfreich, wenn Sie einen Punkt dazu hinzufügen. (Für Internet- oder WAN-Verbindungen ist es erforderlich, alle
einzurichten
Etwas wie das?
Anders
1
Bitte schön. :-) Ich frage mich, ob es eine gute Antwort auf user1424739
Anders
Wie auch immer, /etc/internet/interfacessind kurz davor, von Ubuntu zugunsten ihrer eigenen veraltet zu werden NetPlan, siehe /etc/netplan/*.yamlund NM(die mit modifiziert werden können nm-tools).
Anders