GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Lernen Sie die Netzwerkgrundlagen kennen, die jeder Systemadministrator kennen muss

Eine der wichtigsten Domänen des Systemadministrators ist das Netzwerk.

Obwohl es ein großes Thema ist, alles zu verstehen, was man über Netzwerke wissen muss, gibt es viel zu lernen vom Netzwerk-Stack Ihres eigenen bescheidenen Linux-Computers.

Das Erlernen grundlegender Netzwerkbefehle kann Ihnen helfen zu verstehen, woher ein Gerät weiß, mit welchem ​​Netzwerk es sich verbinden soll, wie es einen freigegebenen Drucker oder eine Dateifreigabe findet – oder das größte Netzwerk überhaupt, das Internet.

Dieser Artikel behandelt die Grundlagen der Netzwerkverwaltung mit Open Source.

[Sie könnten auch gerne lesen: 5 Linux-Befehle zur Netzwerkfehlerbehebung]

Was ist ein Netzwerk?

In der Computertechnik ist ein Netzwerk eine Ansammlung von zwei oder mehr Computern, die miteinander kommunizieren können.

Damit das Netzwerk die Kommunikation zwischen Geräten erleichtern kann, müssen sich die Computer im Netzwerk finden können.

Die dafür verantwortlichen Systeme sind TCP und IP.

Transmission Control Protocol (TCP)

Die Kommunikation erfordert ein Transportmittel für Nachrichten zwischen ihnen, und Computer kommunizieren mit digitalen Signalen, die über Ethernet-Kabel oder Funkwellen oder Mikrowellen übertragen werden.

Die Spezifikationen hierfür sind formal als TCP-Protokoll definiert.

Internetprotokoll (IP)

Computer in einem Netzwerk identifizieren sich selbst und einander mit IP-Adressen, z. B. 10.0.0.1 oder 192.168.0.8.

Diese werden im Allgemeinen auch Hostnamen zugeordnet, z. B. laptop und desktop oder darkstar oder penguin oder welchen Namen Sie jeder Maschine geben.

Die Spezifikationen hierfür sind formal als IP-Protokoll definiert.

Minimale Vernetzung

Das einfachste mögliche Netzwerk ist ein Single-Node-Netzwerk.

Dies mag wie Betrug erscheinen, aber tatsächlich ist es ein gültiges Netzwerk in dem Sinne, dass ein Computer wissen muss, wie er sich selbst ansprechen soll.

Jeder Computer betrachtet sich selbst als localhost -Knoten mit einer rein internen IP-Adresse von 127.0.0.1.

Sie können dies mit dem ping überprüfen Befehl:

$ ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms

Der localhost Bezeichnung ist in /etc/hosts definiert Datei:

$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Eine interne IP-Adresse ist wichtig, da wichtige Dienste wie der CUPS-Druckserver und das Serververwaltungssystem Cockpit Schnittstellen über TCP/IP-Verbindungen bereitstellen. Um von der Maschine, auf der sie ausgeführt werden, auf sie zuzugreifen, können Sie localhost verwenden plus die Portnummer (zum Beispiel localhost:631 oder 127.0.0.1:631 ) in einem Webbrowser.

Erstellen eines Basisnetzwerks

Während ein Einzelknotennetzwerk für einige Aufgaben nützlich ist, ist ein Netzwerk normalerweise bezieht sich auf mehr als einen Computer.

Linux und der TCP/IP-Stack leisten viel Arbeit, um das Netzwerken zu vereinfachen, aber wenn automatisierte Einstellungen nicht gut genug sind, um Ihnen die Einrichtung zu ermöglichen, die Ihre Organisation benötigt, liegt es an Ihnen als Systemadministrator, zu verstehen, wie Netzwerkkonfigurationen erstellt werden.

Fangen Sie zunächst einfach an und versuchen Sie, ein Netzwerk mit zwei Computern zu erstellen.

Um automatische Einstellungen zu eliminieren, damit Sie sich daran gewöhnen können, selbst ein Netzwerk aufzubauen, versuchen Sie es mit einem speziell verdrahteten Ethernet-Kabel, einem so genannten Crossover-Kabel .

Ein Crossover-Kabel verbindet Sendesignale, die von einem Computer kommen, mit den entsprechenden Empfängern auf einem anderen Computer.

Da zwischen den Computern kein Router vorhanden ist, muss die gesamte Netzwerkverwaltung auf jedem Computer manuell durchgeführt werden, was dies zu einer guten Einführungsübung für die Netzwerkgrundlagen macht.

Wenn Sie ein Crossover-Kabel verwenden, um zwei Computer miteinander zu verbinden, eliminieren Sie jeden externen Netzwerkcontroller, der Anleitungen bietet, sodass keiner der Computer irgendetwas tut, um ein Netzwerk zu erstellen oder einem Netzwerk beizutreten.

In diesem einfachen Setup sind Sie die ultimative Netzwerkautorität.

Um ein Netzwerk zu erstellen, müssen Sie zunächst jedem Computer eine IP-Adresse zuweisen.

Der für selbst zugewiesene IP-Adressen reservierte Block ist 169.254.x.x.

Zeigen Sie Ihre Netzwerkschnittstellen unter Linux an

Um ein Netzwerk zu erstellen, benötigen Sie Netzwerkschnittstellen.

Der Ethernet-Port wird üblicherweise mit dem Begriff eth bezeichnet plus eine Zahl beginnend mit 0 , aber einige Geräte werden mit anderen Begriffen gemeldet.

Sie können die Schnittstellen auf einem Computer mit dem ip entdecken Befehl:

$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
    link/loopback 00:00:00:00:00:00 brd ...
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    link/ether dc:a6:32:be:a3:e1 brd ...
3: wlan0: <BROADCAST,MULTICAST> ...
    link/ether dc:a6:32:be:a3:e2 brd ...

In diesem Fall eth0 stellt sich als korrekter Schnittstellenname heraus.

Sie sehen jedoch en0 oder enp0s1 oder ähnliches in einigen Fällen, daher ist es wichtig, einen Gerätenamen immer zu überprüfen, bevor Sie ihn verwenden.

Weisen Sie unter Linux eine statische IP-Adresse zu

Normalerweise wird eine IP-Adresse dynamisch von einem dedizierten DHCP-Server oder einem Router zugewiesen, auf dem ein eingebetteter DHCP-Server ausgeführt wird.

Es ist die Aufgabe des DHCP-Servers, Angebote für Adressen über sein Netzwerk zu senden.

Wenn ein Computer mit einem Netzwerk verbunden wird, fordert er eine Adresse an.

Der DHCP-Server weist ihm eine zu und registriert, welchem ​​Gerät im Netzwerk, identifiziert durch seine MAC-Adresse (Media Access Control), welche Adresse zugewiesen wurde.

So wissen Computer, wie sie sich in einem Netzwerk finden können.

Bei diesem einfachen Netzwerk gibt es jedoch keinen DHCP-Server, der IP-Adressen vergibt oder Geräte registriert, also müssen Sie selbst eine IP-Adresse erstellen.

Um einem Computer eine IP-Adresse zuzuweisen, verwenden Sie den ip Befehl:

$ sudo ip address add 169.254.0.1 dev eth0

Und wieder auf dem anderen Computer, diesmal die IP-Adresse um 1:

erhöhend
$ sudo ip address add 169.254.0.2 dev eth0

Jetzt hat jeder Computer ein Transportmittel (das Crossover-Kabel) und einen Weg, um im Netzwerk gefunden zu werden (eine eindeutige IP-Adresse).

Das Problem ist, dass keiner der Computer weiß, dass er Mitglied eines Netzwerks ist.

Einrichten einer Netzwerkroute unter Linux

Normalerweise definiert ein externer Router die Pfade, die der Netzwerkverkehr nehmen muss, um von Punkt A nach Punkt B zu gelangen.

Dies wird als Routing-Tabelle bezeichnet , und es ist im Wesentlichen ein "Stadtplan" für Ihr Netzwerk.

Für das von Ihnen erstellte einfache Netzwerk existiert noch keine Routing-Tabelle.

Sie können dies mit route überprüfen Befehl auf einem oder beiden Computern:

$ route
Kernel IP routing table
Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
$ 

Alternativ können Sie auch die ip verwenden Befehl:

$ ip route
$ 

In beiden Fällen gibt es keine sinnvolle Ausgabe, da derzeit keine Route definiert ist.

Aber Sie können eine Route mit dem ip hinzufügen Befehl:

$ sudo ip route \
add 169.254.0.0/24 \
dev eth0 \
proto static

Dieser Befehl fügt eine Route zu einem Adressbereich hinzu, der bei 169.254.0.0 beginnt und bei 169.254.0.255 endet, über eth0 Schnittstelle.

Es setzt das Routing-Protokoll auf static um anzuzeigen, dass die Route von Ihnen, dem Administrator, als absichtliche Überschreibung für jegliches dynamische Routing erstellt wurde.

Überprüfen Sie Ihre Routing-Tabelle mit route Befehl:

$ route
Kernel IP routing table
Destination | Gateway | Genmask       | ... | Iface
link-local  | 0.0.0.0 | 255.255.255.0 | ... | eth0

Oder verwenden Sie die ip Befehl für eine andere Ansicht:

$ ip route
169.254.0.0/24 dev eth0 proto static scope link 

Pingen Sie Ihren Nachbarn

Ihr Netzwerk hat jetzt:

  • Ein Transportmittel
  • Ein Mittel zur Adressierung
  • Eine Netzwerkroute

Wenn diese Komponenten vorhanden sind, kann jeder Computer Hosts jenseits von localhost erreichen .

Testen Sie es mit ping .

Zum Beispiel von dem Computer, dem die Adresse 169.254.0.1 zugewiesen wurde:

$ ping -c1 169.254.0.2
64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms

--- 169.254.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms

Sie können auch die Nachbarn anzeigen, mit denen Sie interagiert haben:

$ ip neighbour
169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE

Der Netzwerk-Switch

Während es für überraschend schnelle Dateiübertragungen großartig ist, gibt es nicht viele andere Anforderungen für festverdrahtete Netzwerke mit zwei Knoten.

Hier wird Hardware wie ein Netzwerk switch eingesetzt kommt rein.

An einen Switch können mehrere Ethernet-Kabel angeschlossen werden, und er verteilt Nachrichten vom Computer, der sie sendet, an das beabsichtigte Ziel, das durch seine IP-Adresse identifiziert wird.

In vielen modernen Allzwecknetzwerken ist ein physischer Schalter für physische Kabel nicht praktikabel oder erwünscht, daher wird stattdessen ein WLAN-Zugangspunkt verwendet, aber es gelten dieselben Prinzipien.

Router

Lokale Netzwerke verbinden in der Praxis viele Geräte, und die Zahl wächst, da immer mehr Geräte netzwerkfähig werden.

Wenn Sie ein Netzwerk mit dem Internet verbinden (ein Netzwerk miteinander verbundener Netzwerke), steigt diese Zahl um Größenordnungen.

Es ist unpraktisch, ein Netzwerk manuell zu konfigurieren. So werden alltägliche Aufgaben bestimmten Knoten im Netzwerk zugewiesen, und jeder Computer führt einen Daemon aus, um die Netzwerkeinstellungen zu füllen, die von autoritativen Servern im Netzwerk empfangen werden.

Jede Aufgabe wird normalerweise einem separaten dedizierten Server in einem großen Netzwerk zugewiesen, um Konzentration und Ausfallsicherheit zu gewährleisten.

Zu diesen Aufgaben gehören:

  • DHCP-Server zum Zuweisen und Verfolgen von IP-Adressen an Geräte, die dem Netzwerk beitreten
  • DNS-Server, um registrierte Domainnamen wie redhat.com in IP-Adressen wie 209.132.183.105 umzuwandeln
  • Firewall zum Schutz Ihres Netzwerks vor unerwünschtem eingehendem Datenverkehr oder verbotenem ausgehendem Datenverkehr
  • Router zur effizienten Weiterleitung des Datenverkehrs im Netzwerk, als Gateway zu anderen Netzwerken (z. B. zum Internet) und zur Durchführung der Netzwerkadressübersetzung (NAT) 

Dank Open-Source-Projekten wie VyOS können Sie sogar Ihren eigenen Open-Source-Router betreiben, der aus handelsüblicher Hardware besteht.

[ Kostenloser Spickzettel:Holen Sie sich eine Liste von Linux-Dienstprogrammen und -Befehlen zum Verwalten von Servern und Netzwerken. ] 

Schluss machen

Je mehr Netzwerkschemata Sie in Ihrem Labor implementieren, desto besser verstehen Sie alle Probleme, die in der realen Welt auftreten können.

Manchmal werden die Probleme von einzelnen Computern und Geräten getragen; manchmal sind es Hardware und Infrastruktur, und wieder andere Male ist es nicht optimales Design.

Üben Sie den Aufbau unterschiedlicher Netzwerktopographien, entweder mit virtuellen Maschinen oder echter Hardware (oder beidem), und lernen Sie die Open-Source-Tools der Branche kennen.

Networking ist ein großes Thema, aber Netzwerke sind überall.

Investieren Sie jetzt darin, es zu lernen, und es wird sich früher oder später auf die eine oder andere Weise auszahlen.


Linux
  1. Lernen Sie die Shortcuts des i3-Linux-Window-Managers kennen

  2. Lernen Sie die Grundlagen der Funktionsweise der E/A-Umleitung (Eingabe/Ausgabe) unter Linux kennen

  3. Analyse des freien Befehls:Was der Linux-Systemadministrator wissen muss

  4. 3 Fähigkeiten, die jeder Linux-Systemadministrator mitbringen sollte

  5. 6 OpenSSL-Befehlsoptionen, die jeder Systemadministrator kennen sollte

Gute Alternativen zu Manpages, die jeder Linux-Benutzer kennen muss

VLANs für Systemadministratoren:Die Grundlagen

Linux-Systemadministratorgrundlagen:NIC beim Booten starten

Lernen Sie verschiedene Netzwerkoptionen in VirtualBox kennen

Wie man die Gruppen eines Linux-Benutzers kennt

Die 20 besten Linux-Gaming-Websites, die jeder Gamer kennen muss