Was ist die Netzwerkdatei in Windows. Was sollte in der Netzwerkdatei stehen

Gute Zeit, liebe Leser. Ich poste den zweiten Teil. Der aktuelle Abschnitt konzentriert sich auf Netzwerkimplementierung unter Linux(wie man ein Netzwerk unter Linux einrichtet, wie man ein Netzwerk unter Linux diagnostiziert und wie man das Netzwerk-Subsystem unter Linux wartet).

Konfigurieren von TCP/IP unter Linux für Ethernet-Netzwerke

Um mit TCP / IP-Netzwerkprotokollen unter Linux zu arbeiten, reicht es aus, nur zu haben Loopback-Schnittstelle, aber wenn Sie Hosts miteinander kombinieren müssen, benötigen Sie natürlich eine Netzwerkschnittstelle, Datenübertragungskanäle (z. B. Twisted Pair), möglicherweise eine Art Netzwerkausrüstung. Außerdem ist es notwendig, installiert zu haben (usw.), normalerweise geliefert in . Es muss auch über ein Netzwerk (z. B. /etc/hosts) und Netzwerkunterstützung verfügen.

Netzwerkeinstellungen

Beginnen wir mit dem Verständnis der Linux-Netzwerkmechanismen, indem wir das Netzwerk manuell konfigurieren, dh von dem Fall an, wann IP Adresse Netzwerkschnittstelle statisch. Wenn Sie also ein Netzwerk einrichten, müssen Sie die folgenden Parameter berücksichtigen und konfigurieren:

IP Adresse- wie bereits im ersten Teil des Artikels erwähnt - ist dies eine eindeutige Adresse der Maschine im Format von vier durch Punkte getrennten Dezimalzahlen. Wenn Sie in einem lokalen Netzwerk arbeiten, wird es normalerweise aus privaten Bereichen ausgewählt, zum Beispiel: 192.168.0.1

Subnetzmaske- außerdem 4 Dezimalzahlen, die bestimmen, welcher Teil der Adresse sich auf die Netzwerk-/Subnetzadresse und welcher Teil auf die Hostadresse bezieht. Die Subnetzmaske ist eine Zahl, die (in binärer Form) zu einer IP-Adresse hinzugefügt wird, um herauszufinden, zu welchem ​​Subnetz die Adresse gehört. Beispielsweise gehört die Adresse 192.168.0.2 mit der Maske 255.255.255.0 zum Subnetz 192.168.0.

Subnetzadresse- bestimmt durch die Subnetzmaske. Gleichzeitig gibt es keine Subnetze für Loopback-Schnittstellen.

Broadcastadresse- Die Adresse, die zum Senden von Broadcast-Paketen verwendet wird, die von allen Hosts im Subnetz empfangen werden. Normalerweise entspricht sie der Subnetzadresse mit einem Hostwert von 255, d. h. für das Subnetz 192.168.0 lautet die Übertragung 192.168.0.255, für das Subnetz 192.168 lautet die Übertragung 192.168.255.255. Es gibt keine Broadcast-Adresse für Loopback-Schnittstellen.

Gateway-IP-Adresse ist die Adresse des Computers, der das Standard-Gateway für die Kommunikation mit der Außenwelt ist. Es kann mehrere Gateways geben, wenn der Computer gleichzeitig mit mehreren Netzwerken verbunden ist. Die Gateway-Adresse wird in isolierten Netzwerken (nicht mit dem WAN verbunden) nicht verwendet, da diese Netzwerke nirgendwo Pakete außerhalb des Netzwerks senden können, dasselbe gilt für Loopback-Schnittstellen.

IP-Adresse des Nameservers (DNS-Server)- Adresse des Servers, der Hostnamen in IP-Adressen umwandelt. Wird normalerweise vom ISP bereitgestellt.

Linux-Netzwerkeinstellungsdateien (Konfigurationsdateien)

Um die Vernetzung unter Linux zu verstehen, würde ich Ihnen auf jeden Fall raten, den Artikel "" zu lesen. Im Allgemeinen basiert alle Linux-Arbeit darauf, was beim Booten des Betriebssystems entsteht und seine Nachkommen produziert, die wiederum alle notwendigen Arbeiten erledigen, unabhängig davon, ob sie Bash oder einen Daemon ausführen. Ja, und der gesamte Linux-Boot basiert darauf, was die gesamte Startsequenz kleiner Dienstprogramme mit verschiedenen Parametern darstellt, die nacheinander gestartet / gestoppt werden, wenn das System startet / stoppt. Das Linux-Netzwerksubsystem startet auf die gleiche Weise.

Jede Linux-Distribution hat einen etwas anderen Netzwerkinitialisierungsmechanismus, aber ich denke, das Gesamtbild wird nach dem Lesen klar sein. Wenn Sie sich die Startskripte des Netzwerk-Subsystems einer beliebigen Linux-Distribution ansehen, wird die Konfiguration des Netzwerks mithilfe von Konfigurationsdateien mehr oder weniger klar, z. B. in Debian (wir nehmen diese Distribution als Grundlage) das Skript ist verantwortlich für die Initialisierung des Netzwerks /etc/init.d/networking indem Sie sich ansehen, welche:

Net-server:~#cat /etc/init.d/networking #!/bin/sh -e ### BEGIN INIT INFO # Bietet: Netzwerk # Erforderlich-Start: mountkernfs $local_fs # Erforderlich-Stopp: $local_fs # Sollte -Start: ifupdown # Sollte-Stop: ifupdown # Default-Start: S # Default-Stop: 0 6 # Short-Description: Erhöhen Sie Netzwerkschnittstellen. ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" [ -x /sbin/ifup ] || Ausgang 0 . /lib/lsb/init-functions process_options() ( [ -e /etc/network/options ] || return 0 log_warning_msg "/etc/network/options existiert noch und wird IGNORIERT! Lesen Sie README.Debian von netbase." ) check_network_file_systems() ( [ -e /proc/mounts ] || return 0 if [ -e /etc/iscsi/iscsi.initramfs ]; then log_warning_msg "keine Dekonfiguration von Netzwerkschnittstellen: iSCSI-Root ist gemountet." exit 0 fi exec 9<&0 < /proc/mounts while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 ;; esac case $FSTYPE in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } check_network_swap() { [ -e /proc/swaps ] || return 0 exec 9<&0 < /proc/swaps while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network swap still mounted." exit 0 ;; esac done exec 0<&9 9<&- } case "$1" in start) process_options log_action_begin_msg "Configuring network interfaces" if ifup -a; then log_action_end_msg $? else log_action_end_msg $? fi ;; stop) check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" if ifdown -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; force-reload|restart) process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; *) echo "Usage: /etc/init.d/networking {start|stop}" exit 1 ;; esac exit 0

finden Sie mehrere Funktionen, die nach gemounteten Netzwerkdateisystemen suchen ( check_network_file_systems(), check_network_swap()) sowie die Überprüfung der Existenz einer noch unverständlichen Konfiguration /etc/network/options ( Funktion Prozessoptionen()) und ganz unten durch das Design Fall "$1" ein und in Übereinstimmung mit den eingegebenen Parametern (Start/Stopp/Neuladen erzwingen|Neustart oder andere) bestimmte Aktionen ausführt. Von diesen sehr bestimmte Aktionen" zeigt das Beispiel des Startarguments, dass die Funktion zuerst gestartet wird Prozessoptionen, dann wird der Ausdruck an das Protokoll gesendet Netzwerkschnittstellen konfigurieren, und führen Sie den Befehl aus ifup -a. Wenn Sie sich man ifup ansehen, können Sie sehen, dass dieser Befehl die Konfiguration aus der Datei liest /etc/network/interfaces und nach Schlüssel -A startet alle Schnittstellen, die den Parameter haben Auto.

Die Befehle ifup und ifdown können verwendet werden, um Netzwerkschnittstellen basierend auf Schnittstellendefinitionen in der Datei /etc/network/interfaces zu konfigurieren (bzw. zu dekonfigurieren).

-a, --alle
Wenn an ifup übergeben, wirkt es sich auf alle Schnittstellen aus, die mit auto gekennzeichnet sind. Schnittstellen werden in der Reihenfolge aufgerufen, in der sie in /etc/network/interfaces definiert sind. Wenn an ifdown übergeben, wirkt es sich auf alle definierten Schnittstellen aus. Schnittstellen werden in der Reihenfolge heruntergefahren, in der sie aktuell in der Zustandsdatei aufgeführt sind. Nur Schnittstellen, die in /etc/network/interfaces definiert sind, werden heruntergefahren.

ip-server:~# cat /etc/network/interfaces # Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen # und wie sie aktiviert werden. Weitere Informationen finden Sie unter Schnittstellen(5). # Die Loopback-Netzwerkschnittstelle auto lo iface lo inet loopback # Die primäre Netzwerkschnittstelle allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug eth2 iface eth2 inet static address 192.168.1.1 netmask 255.255.255.0 Gateway 192.168.1.254 Broadcast 192.168.1.255

In dieser Konfigurationszeile Hotplug zulassen Und Auto sind Synonyme und Schnittstellen werden auf Befehl aufgerufen ifup -a. Das ist tatsächlich die gesamte Operationskette des Netzwerksubsystems. Ähnlich bei anderen Distributionen: Bei RedHat und SUSE wird das Netzwerk per Skript gestartet /etc/init.d/network. Nachdem Sie es untersucht haben, können Sie ebenfalls feststellen, wo die Netzwerkkonfiguration liegt.

/etc/hosts

Diese Datei enthält eine Liste IP-Adressen Und ihnen entsprechende Hostnamen (Adressen).Das Dateiformat unterscheidet sich nicht von der Masterdatei:

IP-Server:~# cat /etc/hosts # ip host.in.domain host 127.0.0.1 localhost 127.0.1.1 ip-server.domain.local ip-server 192.168.1.1 ip-server.domain.local ip-server

In der Vergangenheit wurde diese Datei anstelle des DNS-Dienstes verwendet. Derzeit kann die Datei auch anstelle des DNS-Dienstes verwendet werden, jedoch nur unter der Bedingung, dass die Anzahl der Computer in Ihrem Netzwerk in Einheiten gemessen wird und nicht in Zehnern oder Hunderten, denn in diesem Fall müssen Sie die steuern Korrektheit dieser Datei auf jeder Maschine.

/etc/hostname

Diese Datei enthält NetBIOS-Hostname:

IP-Server:~# cat /etc/hostname IP-Server

Diese Datei speichert die Namen und Adressen von lokalen und anderen Netzwerken. Beispiel:

IP-Server:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 home-network 192.168.1.0

Bei Verwendung dieser Datei können Netzwerke nach Namen verwaltet werden. Fügen Sie beispielsweise eine Route nicht hinzu Route hinzufügen 192.168.1.12 , A Route hinzufügen.

/etc/nsswitch.conf

Die Datei definiert Reihenfolge der Suche nach Hostnamen/networks sind folgende Zeilen für diese Einstellung zuständig:

Für Hosts: Hosts: Dateien DNS Für Netzwerke: Netzwerke: Dateien

Parameter Dateien gibt an, die angegebenen Dateien zu verwenden (/etc/hosts Und /etc/networks bzw.), Parameter DNS gibt an, den Dienst zu verwenden DNS.

/etc/host.conf

Die Datei gibt Namensauflösungsoptionen für den Resolver an

IP-Server:~# cat /etc/host.conf multi an

Diese Datei weist die resolv-Bibliothek an, alle gültigen Hostadressen zurückzugeben, die in der Datei /etc/hosts gefunden werden, nicht nur die erste.

/etc/resolv.conf

Diese Datei definiert die Parameter des Mechanismus zur Übersetzung des Netzwerknamens in die IP-Adresse. Im Klartext definiert DNS-Einstellungen. Beispiel:

IP-Server:~# cat /etc/resolv.conf nameserver 10.0.0.4 nameserver 10.0.0.1 suche domain.local

Die ersten 2 Zeilen geben DNS-Server an. Die dritte Zeile gibt die Suchdomänen an. Wenn beim Auflösen eines Namens der Name kein FQDN-Name ist, dann wird diese Domäne als "Ende" ersetzt. Wenn Sie beispielsweise den Befehl ping host ausführen, wird die gepingte Adresse in host.domain.local konvertiert. Andere Parameter können in man resolv.conf nachgelesen werden. Sehr oft verwendet Linux die dynamische Generierung dieser Datei unter Verwendung der sogenannten. Programme /sbin/resolvconf. Dieses Programm ist ein Vermittler zwischen Diensten, die Nameserver dynamisch bereitstellen (zum Beispiel DHCP-Client) und Dienste, die Nameserverdaten verwenden. So verwenden Sie eine dynamisch generierte Datei /etc/resolv.conf, müssen Sie diese Datei zu einem symbolischen Link machen /etc/resolvconf/run/resolv.conf. Bei manchen Distributionen kann der Pfad anders sein, das wird auf jeden Fall eingeschrieben man resolvconf.

Netzwerkkonfiguration

Nachdem Sie sich mit den wichtigsten Konfigurationsdateien vertraut gemacht haben, können Sie sich die . Der Befehl wurde bereits oben erwähnt. ifup, wenn unten, aber diese Tools sind nicht ganz universell, zum Beispiel sind diese Befehle in RH-Distributionen nicht standardmäßig verfügbar. Außerdem verfügen neue Distributionen über ein neues High-Level-Netzwerkverwaltungstool - , das zum iproute-Paket gehört. Ihm (dem iproute-Paket) werde ich widmen. Und im aktuellen Beitrag werde ich es nicht berücksichtigen. Die unten beschriebenen Befehle gehören zu .

Um also sicher zu sein, dass der Befehl in jeder Linux-Distribution funktioniert, müssen Sie zwei grundlegende altmodische Befehle verwenden. Dies ist , und arp. Erste Mannschaft (verantwortlich für Netzwerkschnittstellen einrichten(IP, Maske, Gateway), zweite () - Routing-Setup, dritte (arp) - arp-Tabellenverwaltung. Ich möchte darauf hinweisen, dass die Ausführung dieser Befehle ohne Deaktivierung des Standard-SystemV-Startskripts des Netzwerksubsystems nur bis zum ersten Neustart / Neustart des Netzwerkdienstes Änderungen vornimmt, da. Wenn Sie mit Ihrem Gehirn darüber nachdenken, können Sie das Drehbuch verstehen /etc/init.d/networking Beim nächsten Start werden die obigen Konfigurationen erneut gelesen und die alten Einstellungen übernommen. Dementsprechend ist der Ausweg für das dauerhafte Setzen der Einstellungen entweder das ifconfig-Kommando mit den entsprechenden Parametern - einzugeben oder die entsprechenden Netzwerkinterface-Configs manuell zu korrigieren.

Ebenso, wenn der Befehl ifconfig mit fehlenden Optionen(z. B. nur die IP-Adresse), dann wird der Rest automatisch ausgefüllt (z. B. wird die Broadcast-Adresse standardmäßig mit einer Hostadresse hinzugefügt, die auf 255 endet, und die Standard-Subnetzmaske ist 255.255.255.0).

Routing für verfügbare Schnittstellen in modernen Kerneln wird immer automatisch vom Kernel ausgelöst. Oder besser gesagt, der Kernel bildet automatisch direkte Routen zum Netzwerk gemäß den IP-Einstellungen und dem Subnetz, in das die hochgezogene Schnittstelle schaut. Das Feld Gateway (Gateway) für solche Einträge zeigt die Adresse der Ausgangsschnittstelle oder *. In älteren Versionen des Kernels (die Nummer des Kernels, ab dem die Routen automatisch zu steigen begannen - ich werde es Ihnen nicht sagen) war es notwendig, die Route manuell hinzuzufügen.

Wenn Organisationsbedarf besteht Strecken, dann müssen Sie verwenden. Sie können mit diesem Befehl Routen hinzufügen und entfernen, aber auch dies hilft nur, bis Sie /etc/init.d/networking (oder ein anderes Netzwerkskript in Ihrer Distribution) neu starten. Damit Routen automatisch hinzugefügt werden, ist es notwendig, ebenso wie beim ifconfig-Befehl, Befehle zum Hinzufügen von Routen in rc.local hinzuzufügen oder die entsprechenden Netzwvon Hand zu korrigieren (z. B. in Deb - /etc/network/options).

Nach welchen Regeln Routen zu Netzwerken werden gebildet, ich in

Linux-Netzwerkdiagnose

Unter Linux gibt es eine Vielzahl von Netzwerkdiagnosetools, die denen von Microsoft oft sehr ähnlich sind. Ich werde 3 Hauptnetzwerkdiagnoseprogramme betrachten, ohne die es problematisch sein wird, Probleme zu identifizieren.

Ich denke, dass dieses Dienstprogramm fast jedem bekannt ist. Die Aufgabe dieses Dienstprogramms ist es Senden sogenannt ICMP-Pakete Remote-Server, der in den Befehlsparametern angegeben wird, gibt der Server die gesendeten Befehle zurück, und KlingelnZeit zählen erforderlich, damit das gesendete Paket den Server erreicht und zurückkehrt. Zum Beispiel:

# ping ya.ru PING ya.ru (87.250.251.3) 56(84) Datenbytes. 64 Byte von www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=57 Zeit=42,7 ms von www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=57 Zeit=42,5 ms 64 Byte von www .yandex.ru (87.250.251.3): icmp_seq=4 ttl=57 Zeit=42,5 ms 64 Bytes von www .yandex.ru (87.250.251.3): icmp_seq=5 ttl=57 Zeit=41,9 ms ^C --- ja .ru Ping-Statistiken --- 5 Pakete übertragen, 5 empfangen, 0 % Paketverlust, Zeit 4012 ms rtt min/avg/max/mdev = 41,922/42,588/43,255/0,500 ms

Wie aus obigem Beispiel ersichtlich, Klingeln gibt uns viele nützliche Informationen. Vor allem, wir haben erfahren, dass wir können eine Verbindung mit dem Host ya.ru herstellen(Manchmal sagen sie, dass "ya.ru-Host für uns verfügbar ist"). Zweitens, wir sehen das DNS funktioniert korrekt, weil der "gepingte" Name korrekt in eine IP-Adresse umgewandelt wurde (PING ya.ru (87.250.251.3)). Weiter, auf dem Feld icmp_seq= Nummerierung der gesendeten Pakete festlegen. Jedem gesendeten Paket wird fortlaufend eine Nummer zugewiesen, und wenn diese Nummerierung „Lücken“ enthält, sagt uns das, dass die Verbindung mit dem „Ping“ instabil ist, und es kann auch bedeuten, dass der Server, an den die Pakete gesendet werden ist überlastet. Nach Wert Zeit = wir sehen, wie lange war das paket unterwegs bis 87.250.251.3 und zurück. Sie können das Ping-Dienstprogramm stoppen, indem Sie Strg+C drücken.

Auch, Ping-Dienstprogramm interessant, da Sie genau sehen können, wo die Probleme aufgetreten sind. Sagen wir Ping-Dienstprogramm zeigt eine Meldung an Netz nicht erreichbar oder eine ähnliche Nachricht. Dies deutet höchstwahrscheinlich auf eine fehlerhafte Konfiguration Ihres Systems hin. In diesem Fall können Sie Pakete an die IP-Adresse des Internetdienstanbieters senden, um herauszufinden, wo das Problem auftritt (zwischen dem lokalen PC oder „dahinter“). Wenn Sie über einen Router mit dem Internet verbunden sind, können Sie Pakete an dessen IP senden. Tritt das Problem also bereits zu diesem Zeitpunkt auf, deutet dies auf eine fehlerhafte Konfiguration des lokalen Systems oder einen Kabelschaden hin, antwortet der Router und der Server des Providers nicht, dann liegt das Problem im Kommunikationskanal des Providers usw. Wenn schließlich die Konvertierung des Namens in IP fehlschlägt, können Sie die Verbindung über IP überprüfen. Wenn die Antworten korrekt sind, können Sie vermuten, dass das Problem im DNS liegt.

Es sollte beachtet werden, dass dieses Dienstprogramm nicht immer ein zuverlässiges Diagnosetool ist. Der Remote-Server kann Antworten auf ICMP-Anfragen blockieren.

Traceroute

Vereinfacht heißt das Team Streckenverfolgung. Wie Sie dem Namen entnehmen können, zeigt dieses Dienstprogramm an, über welche Route die Pakete zum Host gegangen sind. Traceroute-Dienstprogramm etwas ähnlich Klingeln, zeigt aber interessantere Informationen an. Beispiel:

# traceroute ya.ru traceroute zu ya.ru (213.180.204.3), max. 30 Hops, 60 Byte Pakete 13 ms 5,701 ms 5,636 ms 4 (194.186.6.177) 81,430 ms 81,581 ms 81,687 ms 5 cat26.Moscow.gldn.net (194.186.10.118) 47,789 ms 47,888 ms 48,011 ms 6 213.33.201.230 (213.33.201.230) 43,322 ms 41,783 ms 41 106 ms 7 carmine-red-vlan602.yandex.net (87.250.242.206) 41.199 ms 42.578 ms 42.610 ms 8 www.yandex.ru (213.180.204.3) 43.185 ms 42.126 ms 42.679 ms

Wie Sie sehen, können Sie die Route vom Router des Anbieters 243-083-free.kubtelecom.ru (213.132.83.243) (Südrussland) bis zum endgültigen Host unter www.yandex.ru (213.180.204.3) verfolgen. In Moskau.

graben

Dieses Dienstprogramm sendet Abfragen an DNS-Server und gibt Informationen über die angegebene Domäne zurück. Beispiel:

# dig @ns.kuban.ru roboti.ru ;<<>> DiG 9.3.6-P1<<>> @ns.kuban.ru roboti.ru ; (1 Server gefunden) ;; globale Optionen: print cmd ;; bekam Antwort: ;; ->>KOPF<<- opcode: QUERY, status: NOERROR, id: 64412 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;roboti.ru. IN A ;; ANSWER SECTION: roboti.ru. 448 IN A 72.52.4.90 ;; AUTHORITY SECTION: roboti.ru. 345448 IN NS ns1.sedoparking.com. roboti.ru. 345448 IN NS ns2.sedoparking.com. ;; Query time: 102 msec ;; SERVER: 62.183.1.244#53(62.183.1.244) ;; WHEN: Thu Feb 17 19:44:59 2011 ;; MSG SIZE rcvd: 94

Befehl graben eine Anfrage gesendet DNS Server - ns.kuban.ru (@ns.kuban.ru- dieser Parameter ist optional, in diesem Fall wird die Informationsquelle über DNS vom Server aus Ihren Systemeinstellungen übernommen) über den Domänennamen roboti.ru. Als Ergebnis erhielt ich eine Antwort, in der wir im Abschnitt sehen können ANTWORTABSCHNITT Informationen über die IP-Adressen der Domain, im Abschnitt ABSCHNITT BEHÖRDE Informationen über die sog. autoritative DNS-Server. Die dritte Zeile von unten sagt uns, welcher Server die Antwort geliefert hat.

Andere Diagnoseprogramme

Ping, Dig und andere Diagnoseprogramme mit Parametern finden Sie im Beitrag.

Anschließen einer neuen Netzwerkkarte

Das Anschließen und Starten einer neuen Netzwerkkarte besteht aus wenigen Schritten:

1. Physische Verbindung der Karte

3. Sehen Sie sich die Ausgabe an, damit das System eine neue Netzwerkkarte erkennt:

Sehen wir uns die Ausgabe an BEVOR Sie eine neue Karte anschließen:

Server:~# dmesg | grep eth [4.720550] e1000: eth0: e1000_probe: Intel(R) PRO/1000-Netzwerkverbindung [5.130191] e1000: eth1: e1000_probe: Intel(R) PRO/1000-Netzwerkverbindung [15.285527] e1000: eth2: e1000_watchdog : NIC-Link ist Up 1000 Mbps Full Duplex, Flow Control: RX [15.681056] e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

Die Ausgabe zeigt, dass das System über 2 Netzwerkkarten eth1 und eth2 verfügt. Wir verbinden die dritte und sehen uns die Ausgabe an:

Server:~# dmesg | grep eth [4.720513] e1000: eth0: e1000_probe: Intel(R) PRO/1000-Netzwerkverbindung [5.132029] e1000: eth1: e1000_probe: Intel(R) PRO/1000-Netzwerkverbindung [5.534684] e1000: eth2: e1000_probe: Intel (R ) PRO/1000-Netzwerkverbindung [ 39.274875] udev: Netzwerkschnittstelle eth2 in eth3 umbenannt [ 39.287661] udev: Netzwerkschnittstelle eth1_rename_ren in eth2 umbenannt [ 45.670744] e1000: eth2: e1000_watchdog: NIC-Verbindung ist aktiv 1000 MBit/s Vollduplex, Flusskontrolle: Empfang [ 46.237232] e1000: eth0: e1000_watchdog: NIC-Link ist mit 1000 Mbit/s Vollduplex aktiv, Flusskontrolle: RX [ 96.977468] e1000: eth3: e1000_watchdog: NIC-Link ist mit 1000 MBit/s vollduplex aktiv, Flusskontrolle: RX

IN dmesg Wir sehen, dass eine neue Netzwerkkarte aufgetaucht ist – eth3, die eigentlich eth2 ist, aber vom udev-Gerätemanager in eth3 umbenannt wurde, und eth2 ist eigentlich eine umbenannte eth1 (wir werden in einem separaten Beitrag über udev sprechen). Das Erscheinen unseres neuen Netzwerks in dmesg sagt uns, dass die Netzwerkkarte unterstützt Kern und richtig entschieden. Es bleibt nur noch, eine neue Schnittstelle einzurichten /etc/network/interfaces(Debian), da die angegebene Karte nicht vom Startskript initialisiert wurde /etc/init.d/network. ifconfig sieht diese Karte:

Server:~# ifconfig eth3 eth3 Link encap:Ethernet HWaddr 08:00:27:5f:34:ad inet6 addr: fe80::a00:27ff:fe5f:34ad/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik: 1 RX-Pakete:311847 Fehler:0 Dropped:0 Overruns:0 Frame:0 TX-Pakete:126 Fehler:0 Dropped:0 Overruns:0 Träger:0 Kollisionen:0 txqueuelen:1000 RX-Bytes:104670651 (99,8 MiB) TX-Bytes: 16184 (15,8 KiB)

aber dabei - nicht konfigurieren. Wie man eine Netzwerkkarte konfiguriert, wurde oben besprochen.

Zusammenfassung

Ich denke, das ist alles für heute. Als ich anfing, diesen Artikel zu schreiben, dachte ich, dass ich in einen Beitrag passen würde, aber er stellte sich als riesig heraus. Daher wurde beschlossen, den Artikel in zwei Teile zu unterteilen. Insgesamt habe ich versucht, nicht Schritt für Schritt zu erklären, wie das Netzwerk konfiguriert wird, sondern das Prinzip zu erklären und zu erklären, wie das Netzwerk unter Linux startet und funktioniert. Ich hoffe sehr, dass es mir gelungen ist. Ich freue mich auf Ihre Kommentare und Ergänzungen. Im Laufe der Zeit werde ich den Artikel ergänzen.

Nachdem Sie Ihr Netzwerk subnettiert haben, sollten Sie sich auf eine einfache Adress-nach-Name-Suche mit der Datei /etc/hosts vorbereiten. Wenn Sie hierfür nicht DNS oder NIS verwenden, müssen Sie alle Hosts in die Hosts-Datei einfügen.

Selbst wenn Sie DNS oder NIS verwenden möchten, können Sie auch eine Teilmenge von Namen in /etc/hosts haben. Zum Beispiel, wenn Sie eine Art Namenssuche auch dann haben möchten, wenn Netzwerkschnittstellen nicht ausgeführt werden, z. B. beim Booten. Dies ist nicht nur eine Frage der Bequemlichkeit, sondern ermöglicht es Ihnen auch, symbolische Hostnamen in rc-Skripten zu verwenden. Wenn Sie also IP-Adressen ändern, müssen Sie nur die aktualisierte Hosts-Datei auf alle Computer kopieren, anstatt viele rc-Dateien zu bearbeiten. Typischerweise fügen Sie alle lokalen Namen und Adressen in Hosts ein, indem Sie sie zu einem beliebigen Gateway und NIS-Server hinzufügen, falls verwendet.

Außerdem sollten Sie bei der Überprüfung darauf achten, dass der Nameserver nur Informationen aus der Hosts-Datei verwendet. Die DNS- oder NIS-Software enthält möglicherweise Beispieldateien, die bei Verwendung zu merkwürdigen Ergebnissen führen können. Um zu erzwingen, dass alle Anwendungen ausschließlich /etc/hosts verwenden, wenn sie die IP-Adresse eines Hosts suchen, müssen Sie die Datei /etc/host.conf bearbeiten. Kommentieren Sie alle Zeilen beginnend mit dem Schlüsselwort order aus und fügen Sie die Zeile ein:

Gastgeber bestellen

Die Konfiguration der Nameserver-Bibliothek wird in Kapitel 6 ausführlich beschrieben.

Die hosts-Datei enthält einen Eintrag pro Zeile, der aus einer IP-Adresse, einem Hostnamen und einer optionalen Liste von Aliasnamen besteht. Die Felder sind durch Leerzeichen oder Tabulatoren getrennt, das Adressfeld muss in der ersten Spalte beginnen. Alles nach dem #-Symbol wird als Kommentar behandelt und ignoriert.

Der Hostname kann vollständig qualifiziert oder relativ zur lokalen Domäne sein. Für vale würden Sie den vollständig qualifizierten Namen vale.vbrew.com in hosts sowie vale selbst eingeben, sodass sowohl der offizielle Name als auch der kürzere lokale Name bekannt sind.

Eine beispielhafte Hosts-Datei für Virtual Brewery ist unten angegeben. Zwei spezielle Namen, vlager-if1 und vlager-if2 , geben Adressen für beide Schnittstellen an, die auf vlager verwendet werden.

Was ist der praktische Nutzen der Datei /etc/networks? Soweit ich weiß, ist es möglich, Netzwerknamen in dieser Datei anzugeben. Zum Beispiel:

[E-Mail geschützt]:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 google-dns 8.8.4.4 [E-Mail geschützt]:~#

Wenn ich jedoch versuche, diesen Netzwerknamen zu verwenden, beispielsweise im IP-Dienstprogramm, funktioniert es nicht:

[E-Mail geschützt]:~# ip route add google-dns via 104.236.63.1 dev eth0 Fehler: es wird eher ein inet-Präfix als „google-dns“ erwartet. [E-Mail geschützt]:~# IP-Route 8.8.4.4 über 104.236.64.1 dev eth0 hinzufügen [E-Mail geschützt]:~#

Was ist der praktische Nutzen der Datei /etc/networks?

2 Lösungen sammeln Formular-Web für „praktische Nutzung der Datei /etc/networks“

Wie in der Manpage geschrieben, sollte die Datei /etc/networks symbolische Namen für Netzwerke beschreiben. Bei einem Netzwerk bedeutet dies eine Netzwerkadresse mit einer nachgestellten .0 am Ende. Es werden nur einfache Netzwerke der Klassen A, B oder C unterstützt.

In Ihrem Beispiel ist der google-dns-Eintrag falsch. Es ist nicht Netzwerk A, B oder C. Es ist eine IP-Adresse-Hostname-Beziehung, also gehört es zu /etc/hosts . Tatsächlich stimmt auch der Standardeintrag nicht überein.

Angenommen, Sie haben eine IP-Adresse von 192.168.1.5 aus Ihrem Unternehmensnetzwerk. Ein Eintrag in /etc/network könnte lauten:

Firmenname 192.168.1.0

Wenn Sie Dienstprogramme wie route oder netstat verwenden, werden diese Netzwerke übersetzt (es sei denn, Sie unterdrücken die Berechtigung mit dem Flag -n). Die Routing-Tabelle könnte so aussehen:

Kernel-IP-Routing-Tabelle Ziel-Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 corpname * 255.255.255.0 U 0 0 0 eth0

Der Befehl ip verwendet niemals den Hostnamen für die Eingabe, daher spielt Ihr Beispiel kaum eine Rolle. Außerdem geben Sie den Hostnamen in /etc/networks ein, nicht den Netzwerknamen!

Einträge in /etc/networks werden von Tools verwendet, die versuchen, Zahlen in Namen umzuwandeln, wie etwa der (veraltete) route-Befehl. Ohne passenden Eintrag zeigt es:

# route Kernel-IP-Routing-Tabelle Ziel-Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.254.0 U 0 0 0 eth0

Wenn wir nun die Zeile mylocalnet 192.168.0.0 zu /etc/networks hinzufügen:

# route Kernel-IP-Routing-Tabelle Ziel-Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 mylocalnet * 255.255.254.0 U 0 0 0 eth0

In der Praxis wird dies nie verwendet.

Gehen!

Das Network File Server (NFS)-Protokoll ist ein offener Standard, um einem Benutzer einen Fernzugriff auf Dateisysteme zu ermöglichen. Darauf basierend erleichtern zentralisierte Dateisysteme die Durchführung täglicher Aufgaben wie Backups oder Virenprüfungen, und verkettete Festplattenpartitionen sind einfacher zu warten als viele kleine und verteilte.

Neben der Bereitstellung von zentralisiertem Speicher hat sich NFS als sehr nützlich für andere Anwendungen erwiesen, darunter diskless und Thin Clients, Netzwerk-Clustering und kollaborative Middleware.

Ein besseres Verständnis sowohl des Protokolls selbst als auch der Details seiner Implementierung wird es einfacher machen, mit praktischen Problemen umzugehen. Dieser Artikel ist NFS gewidmet und besteht aus zwei logischen Teilen: Zuerst werden das Protokoll selbst und die während seiner Entwicklung gesetzten Ziele beschrieben, und dann die Implementierung von NFS in Solaris und UNIX.

WO ALLES BEGANN...

Das NFS-Protokoll wurde von Sun Microsystems entwickelt und erschien 1989 im Internet als RFC 1094 unter folgendem Titel: Network File System Protocol Specification (NFS). Es ist interessant festzustellen, dass die damalige Strategie von Novell darin bestand, Dateidienste weiter zu verbessern. Bis vor kurzem, als die Open-Source-Bewegung noch in vollem Gange war, wollte Sun die Geheimnisse seiner Netzwerklösungen nicht preisgeben, aber schon damals wusste das Unternehmen, wie wichtig die Interoperabilität mit anderen Systemen ist.

RFC 1094 enthielt zwei ursprüngliche Spezifikationen. Zum Zeitpunkt ihrer Veröffentlichung entwickelte Sun die nächste, dritte Version der Spezifikation, die in RFC 1813 „NFS Protocol Specification, Version 3“ (NFS Version 3 Protocol Specification) festgelegt ist. Version 4 dieses Protokolls ist in RFC 3010 NFS Protocol Specification Version 4 (NFS Version 4 Protocol) definiert.

NFS wird häufig auf allen Arten von UNIX-Hosts, Microsoft- und Novell-Netzwerken und IBM-Lösungen wie AS400 und OS/390 verwendet. Außerhalb des Netzwerkbereichs unbekannt, ist NFS wohl das am weitesten verbreitete plattformunabhängige Netzwerkdateisystem.

UNIX WAR DER GENERATOR

Obwohl NFS ein plattformunabhängiges System ist, ist UNIX sein Vorfahre. Mit anderen Worten, die hierarchische Architektur und die Methoden für den Zugriff auf Dateien, einschließlich der Struktur des Dateisystems, der Art und Weise, wie Benutzer und Gruppen identifiziert und wie Dateien gehandhabt werden, sind alle dem UNIX-Dateisystem sehr ähnlich. Beispielsweise wird das NFS-Dateisystem, das strukturgleich mit dem UNIX-Dateisystem ist, direkt darauf gemountet. Bei der Arbeit mit NFS auf anderen Betriebssystemen werden Benutzeridentitäten und Dateiberechtigungen zugeordnet.

NFS

Das NFS-System ist für die Verwendung in einer Client-Server-Architektur ausgelegt. Der Client greift über einen Einhängepunkt auf dem Client auf das vom NFS-Server exportierte Dateisystem zu. Ein solcher Zugriff ist normalerweise für die Client-Anwendung transparent.

Im Gegensatz zu vielen Client/Server-Systemen verwendet NFS Remote Procedure Calls (RPC), um Informationen auszutauschen. Typischerweise stellt der Client eine Verbindung zu einem bekannten Port her und sendet dann gemäß dem Protokoll eine Anforderung zur Durchführung einer bestimmten Aktion. Bei einem entfernten Prozeduraufruf erstellt der Client einen Prozeduraufruf und sendet ihn dann zur Ausführung an den Server. Eine detaillierte Beschreibung von NFS wird unten präsentiert.

Angenommen, ein Client hat das Verzeichnis usr2 im lokalen Root-Dateisystem gemountet:

/root/usr2/ -> remote:/root/usr/

Wenn eine Client-Anwendung die Ressourcen dieses Verzeichnisses benötigt, sendet sie einfach eine Anfrage an das Betriebssystem dafür und für den Dateinamen, das den Zugriff über den NFS-Client bereitstellt. Betrachten Sie zum Beispiel den einfachen UNIX-Befehl cd, der „nichts weiß“ über Netzwerkprotokolle. Team

CD /root/usr2/

legt das Arbeitsverzeichnis auf dem entfernten Dateisystem ab, ohne "auch nur zu wissen" (der Benutzer muss es auch nicht wissen), dass das Dateisystem entfernt ist.

Nach Erhalt der Anfrage prüft der NFS-Server, ob der angegebene Benutzer das Recht hat, die angeforderte Aktion auszuführen, und führt sie bei positiver Antwort aus.

LERNEN WIR ES BESSER KENNEN

Aus Sicht des Clients besteht der Prozess des lokalen Mountens eines entfernten Dateisystems mit NFS aus mehreren Schritten. Wie bereits erwähnt, sendet der NFS-Client einen entfernten Prozeduraufruf, um ihn auf dem Server auszuführen. Beachten Sie, dass der Client in UNIX ein einzelnes Programm ist (der Mount-Befehl), während der Server tatsächlich als mehrere Programme mit dem folgenden minimalen Satz implementiert ist: Port-Mapper-Dienst (Port-Mapper), Mount-Daemon (Mount-Daemon) und NFS-Server .

Der Mount-Befehl des Clients kommuniziert zuerst mit dem Portübersetzungsdienst des Servers, der auf Anfragen auf Port 111 wartet. Die meisten Implementierungen des Mount-Befehls des Clients unterstützen mehrere Versionen von NFS, wodurch es wahrscheinlicher wird, dass Client und Server eine gemeinsame Protokollversion finden. Die Suche wird ausgehend von der ältesten Version durchgeführt. Wenn also eine gemeinsame Version gefunden wird, wird sie automatisch zur neuesten Version, die von Client und Server unterstützt wird.

(Dieses Material konzentriert sich auf die dritte Version von NFS, da sie derzeit am weitesten verbreitet ist. Die vierte Version wird von den meisten Implementierungen noch nicht unterstützt.)

Der Server-Port-Übersetzungsdienst antwortet auf Anfragen gemäß dem unterstützten Protokoll und dem Port, auf dem der Mount-Daemon ausgeführt wird. Das Mount-Programm des Clients stellt zunächst eine Verbindung zum Mount-Daemon des Servers her und sendet dann das Mount-Kommando per RPC an diesen. Wenn dieses Verfahren erfolgreich ist, stellt die Client-Anwendung eine Verbindung zum NFS-Server (Port 2049) her und greift unter Verwendung einer der 20 Remote-Prozeduren, die in RFC 1813 definiert und in Tabelle 1 aufgeführt sind, auf das Remote-Dateisystem zu.

Die Bedeutung der meisten Befehle ist intuitiv und bereitet Systemadministratoren keine Schwierigkeiten. Die folgende Auflistung, die mit tcdump erstellt wurde, veranschaulicht den Lesebefehl, der vom UNIX-cat-Befehl verwendet wird, um eine Datei mit dem Namen test-file zu lesen:

10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 lookup fh 32.0/ 224145 "test-file" 10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 lookup fh 32.0/ 224145 "test-file" 10:30:16.012729 eth0 192.168.1.254.3476097947: Antwort ok 128 lookup fh 32.0/22 ​​​​4307 (DF) 10:30: 16.012729 eth0 192.168.1.254.3476097947: Antwort ok 128 Suche fh 32.0/224307 (DF) 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 gelesen fh 32.0/ 224307 4096 Bytes @ 0 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 gelesen fh 32.0/ 224307 4096 bytes @ 0 10:30:16.013650 eth0 192.168.1.254.3492875163: Antwort ok 108 gelesen (DF) 10: 30:16.013650 eth0 192.168.1.254.3492875163 : Antwort ok 108 gelesen (DF)

NFS wurde traditionell über UDP implementiert. Einige Versionen von NFS unterstützen jedoch TCP (die TCP-Unterstützung ist in der Protokollspezifikation definiert). Der Hauptvorteil von TCP ist ein effizienterer Neuübertragungsmechanismus in unzuverlässigen Netzwerken. (Bei UDP wird im Fehlerfall die komplette RPC-Nachricht, bestehend aus mehreren UDP-Paketen, erneut übertragen. Bei TCP wird nur das beschädigte Fragment erneut übertragen.)

ZUGRIFF AUF NFS

NFS-Implementierungen unterstützen normalerweise vier Methoden der Zugriffsgewährung: über Benutzer-/Dateiattribute, auf Share-Ebene, auf Master-Knoten-Ebene und als Kombination anderer Zugriffsmethoden.

Die erste Methode stützt sich auf das integrierte UNIX-System von Dateiberechtigungen für einen einzelnen Benutzer oder eine Gruppe. Um die Wartung zu vereinfachen, sollte die Benutzer- und Gruppenidentifikation auf allen NFS-Clients und -Servern konsistent sein. Sicherheit muss sorgfältig abgewogen werden: NFS kann versehentlich Zugriff auf Dateien gewähren, die bei ihrer Erstellung nicht beabsichtigt waren.

Der Zugriff auf gemeinsam genutzte Ressourcen ermöglicht es Ihnen, Rechte auf nur bestimmte Aktionen einzuschränken, unabhängig von Dateibesitz oder UNIX-Berechtigungen. Beispielsweise kann das Arbeiten mit dem NFS-Dateisystem auf Nur-Lesen beschränkt werden. Die meisten Implementierungen von NFS ermöglichen es Ihnen, den Zugriff auf der Ebene gemeinsam genutzter Ressourcen auf bestimmte Benutzer und/oder Gruppen weiter einzuschränken. Beispielsweise darf die Gruppe Human Resources Informationen einsehen, mehr nicht.

Der Zugriff auf Master-Ebene ermöglicht es Ihnen, ein Dateisystem nur auf bestimmten Knoten zu mounten, was im Allgemeinen eine gute Idee ist, da Dateisysteme einfach auf allen Knoten erstellt werden können, die NFS unterstützen.

Kombinierter Zugriff kombiniert einfach die oben genannten Arten (z. B. Zugriff auf Freigabeebene mit Zugriff, der einem bestimmten Benutzer gewährt wird) oder ermöglicht Benutzern, nur von einem bestimmten Host aus auf NFS zuzugreifen.

NFS PINGUIN-STIL

Das hier vorgestellte Linux-bezogene Material basiert auf einem Red Hat 6.2-System mit Kernel-Version 2.4.9, das mit Version 0.1.6 des nfs-utils-Pakets ausgeliefert wird. Es gibt auch neuere Versionen: Zum Zeitpunkt des Schreibens dieses Artikels ist das neueste Update des nfs-utils-Pakets 0.3.1. Es kann heruntergeladen werden unter: .

Das Paket nfs-utils enthält die folgenden Binärdateien: exportfs, lockd, mountd, nfsd, nfsstat, nhfsstone, rquotad, showmount und statd.

Leider ist die NFS-Unterstützung für Linux-Administratoren manchmal verwirrend, da die Verfügbarkeit einer bestimmten Funktion direkt von den Versionsnummern sowohl des Kernels als auch des Pakets nfs-utils abhängt. Glücklicherweise verbessern sich die Dinge in diesem Bereich jetzt: Die neuesten Distributionskits enthalten die neuesten Versionen von beiden. Für frühere Versionen bietet Abschnitt 2.4 des NFS-HOWTO eine vollständige Liste der Systemfunktionen, die für jede Kombination aus Kernel und nfs-utils-Paket verfügbar sind. Die Entwickler pflegen die Abwärtskompatibilität des Pakets mit früheren Versionen, achten sehr auf Sicherheit und beheben Softwarefehler.

Die NFS-Unterstützung muss zum Zeitpunkt der Kernel-Kompilierung initiiert werden. Gegebenenfalls muss dem Kernel auch die Fähigkeit hinzugefügt werden, mit NFS Version 3 zu arbeiten.

Bei Distributionen, die linuxconf unterstützen, ist es einfach, NFS-Dienste für Clients und Server zu konfigurieren. Der schnelle Weg zum Einrichten von NFS mit linuxconf liefert jedoch keine Informationen darüber, welche Dateien erstellt oder bearbeitet wurden, was für den Administrator im Falle eines Systemausfalls sehr wichtig ist. Die Architektur von NFS unter Linux ist lose an die BSD-Version gekoppelt, sodass die erforderlichen Unterstützungsdateien und -programme für Administratoren, die BSD, Sun OS 2.5 oder frühere Versionen von NFS ausführen, leicht zu finden sind.

Die Datei /etc/exports gibt, wie in früheren Versionen von BSD, die Dateisysteme an, auf die NFS-Clients zugreifen dürfen. Darüber hinaus enthält es eine Reihe zusätzlicher Funktionen in Bezug auf Verwaltungs- und Sicherheitsfragen, die dem Administrator ein Werkzeug zur Feinabstimmung bieten. Dies ist eine Textdatei, die aus Einträgen, Leerzeilen oder kommentierten Zeilen besteht (Kommentare beginnen mit #).

Angenommen, wir möchten Clients nur Lesezugriff auf das /home-Verzeichnis auf dem Lefty-Host gewähren. Dies würde dem folgenden Eintrag in /etc/exports entsprechen:

/home (ro)

Hier müssen wir dem System mitteilen, welche Verzeichnisse wir mit dem Mount-Daemon rpc.mountd verfügbar machen:

# exportfs -r exportfs: Kein Hostname in /home (ro) angegeben, geben Sie *(ro) ein, um eine Warnung zu vermeiden #

Bei der Ausführung warnt der Befehl exportfs, dass /etc/exports den Zugriff auf einen bestimmten Knoten nicht einschränkt, und erstellt einen entsprechenden Eintrag in /var/lib/nfs/etab aus /etc/exports, der Ihnen mitteilt, welche Ressourcen mit cat angezeigt werden können:

# cat /var/lib/nfs/etab /home (ro,async,wdelay,hide,secure,root_squash, no_all_squash,subtree_check, secure_locks, mapping=identity,anonuid= -2,anongid=-2)

Andere in etab aufgeführte Optionen umfassen die von NFS verwendeten Standardeinstellungen. Einzelheiten werden nachstehend beschrieben. Um Zugriff auf das Verzeichnis /home zu gewähren, müssen die entsprechenden NFS-Dienste gestartet werden:

# portmap # rpc.mountd # rpc.nfsd # rpc.statd # rpc.rquotad

Nachdem der Mount-Daemon (rpc.mountd) gestartet wurde, können Sie sich jederzeit nach den einzelnen Dateien erkundigen, die für die Ausgabe verfügbar sind, indem Sie den Inhalt der Datei /proc/fs/nfs/exports anzeigen:

# cat /proc/fs/nfs/exports # Version 1.0 # Pfad Client (Flags) # IPs /home 192.168.1.252(ro,root_squash,async, wdelay) # 192.168.1.252 #

Dasselbe kann mit dem Befehl showmount mit der Option -e angezeigt werden:

# showmount -e Liste für lefty exportieren: /home (jeder) #

Um ein bisschen weiter zu gehen, kann der Befehl showmount auch verwendet werden, um alle gemounteten Dateisysteme zu ermitteln, oder mit anderen Worten, um herauszufinden, welche Hosts NFS-Clients für das System sind, auf dem der Befehl showmount ausgeführt wird. Der Befehl showmount -a listet alle Client-Mount-Punkte auf:

# showmount -a Alle Einhängepunkte links: 192.168.1.252:/home #

Wie oben erwähnt, unterstützen die meisten NFS-Implementierungen verschiedene Versionen dieses Protokolls. Die Linux-Implementierung ermöglicht es Ihnen, die Liste der NFS-Versionen einzuschränken, die ausgeführt werden, indem Sie die Option -N für den Mount-Daemon angeben. Um beispielsweise NFS Version 3 und nur Version 3 zu starten, geben Sie den folgenden Befehl ein:

# rpc.mountd -N 1 -N 2

Für anspruchsvolle Benutzer mag es störend sein, dass unter Linux der NFS-Daemon (rpc.nfsd) auf Version 1- und Version 2-Pakete wartet, obwohl dies den gewünschten Effekt erzielt, das entsprechende Protokoll nicht zu unterstützen. Hoffen wir, dass die Entwickler der nächsten Versionen die notwendigen Korrekturen vornehmen und eine größere Konsistenz zwischen den Paketkomponenten in Bezug auf verschiedene Versionen des Protokolls erreichen können.

"SCHWIMMEN MIT PINGUINEN"

Der Zugriff auf das oben konfigurierte Linux-basierte NFS-exportierbare Dateisystem Lefty ist vom Client-Betriebssystem abhängig. Der Installationsstil für die meisten Betriebssysteme der UNIX-Familie ist der gleiche wie für die ursprünglichen Sun OS- und BSD-Systeme oder die neueren Solaris-Systeme. Da sich dieser Artikel sowohl auf Linux als auch auf Solaris konzentriert, betrachten wir die Solaris 2.6-Client-Konfiguration unter dem Gesichtspunkt, eine Verbindung zu der oben beschriebenen Linux-Version von NFS herzustellen.

Mit den von Solaris 2.6 geerbten Funktionen ist es einfach, es so zu konfigurieren, dass es als NFS-Client fungiert. Dazu ist nur ein Befehl erforderlich:

# mount -F nfs 192.168.1.254:/home /tmp/tmp2

Unter der Annahme, dass der vorherige Mount-Befehl erfolgreich war, gibt der Mount-Befehl ohne Optionen Folgendes aus:

# mount / on /dev/dsk/c0t0d0s0 read/write/setuid/ largefiles on Mo Sep 3 10:17:56 2001 ... ... /tmp/tmp2 on 192.168.1.254:/home read/write/remote on Montag, 3. September, 23:19:25 2001

Analysieren wir die tcpdump-Ausgabe auf dem Lefty-Host, nachdem der Benutzer den Befehl ls /tmp/tmp2 auf dem Sunny-Host eingegeben hat:

# tcpdump Host Lefty und Host Sunny -s512 06:07:43.490583 Sunny.2191983953 > lefty.mcwrite.n.nfs: 128 getattr fh Unknown/1 (DF) 06:07:43.490678 lefty.mcwrite.n.nfs > Sunny. 2191983953: Antwort ok 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 06:07:43.491397 sunny.2191983954 > lefty.mcwrite.n.nfs: 132 Zugriff fh Unknown/10001 (DF) 06:07: 4 3.491463 Linkshänder .mcwrite.n.nfs > sunny.2191983954: Antwort ok 120 Zugriff auf c0001 (DF) 06:07:43.492296 00 (DF) 06:07:43.492417 lefty.mcwrite.n.nfs > sunny.2191983955: Antwort ok 1000 readdirplus ( DF)

Wir sehen, dass der Sunny-Knoten nach einem Dateideskriptor (fh) für ls fragt, woraufhin der Lefty-Knoten OK als Antwort sendet und die Verzeichnisstruktur zurückgibt. Sunny prüft dann die Berechtigung für den Inhalt des Verzeichnisses (132 access fh) und erhält eine Berechtigungsantwort von Lefty. Anschließend liest der Sunny Node den kompletten Inhalt des Verzeichnisses mit der readdirplus-Prozedur. Remoteprozeduraufrufe werden in RFC 1813 beschrieben und am Anfang dieses Artikels aufgelistet.

Obwohl die Befehlsfolge für den Zugriff auf entfernte Dateisysteme sehr einfach ist, kann eine Reihe von Umständen dazu führen, dass das System nicht korrekt gemountet wird. Vor dem Einhängen eines Verzeichnisses muss der Einhängepunkt bereits vorhanden sein, andernfalls muss er mit dem Befehl mkdir erstellt werden. Normalerweise ist die einzige Ursache für Fehler auf der Client-Seite das Fehlen eines lokalen Mount-Verzeichnisses. Die meisten Probleme im Zusammenhang mit NFS sind jedoch auf eine Diskrepanz zwischen Client und Server oder eine falsche Serverkonfiguration zurückzuführen.

Die einfachste Möglichkeit, Probleme auf einem Server zu beheben, ist von dem Host aus, auf dem der Server ausgeführt wird. Wenn jedoch jemand anderes anstelle von Ihnen den Server verwaltet, ist dies nicht immer möglich. Eine schnelle Methode, um sicherzustellen, dass die entsprechenden Serverdienste richtig konfiguriert sind, ist die Verwendung des Befehls rpcinfo mit der Option -p. Vom Solaris Sunny-Host aus können Sie feststellen, welche RPC-Prozesse auf dem Linux-Host registriert sind:

# rpcinfo -p 192.168.1.254 program vers proto port service 100000 2 tcp 111 rpcbind 100000 2 udp 111 rpcbind 100024 1 udp 692 status 100024 1 tcp 694 status 100005 3 udp 102 4 mountd /100005 3 tcp 1024 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100021 1 udp 1026 nlockmgr 100021 3 udp 1026 nlockmgr 100021 4 udp 1026 nlockmgr #

Beachten Sie, dass hier auch Versionsinformationen bereitgestellt werden, was sehr nützlich ist, wenn das System Unterstützung für verschiedene NFS-Protokolle benötigt. Wenn irgendein Dienst auf dem Server nicht läuft, sollte diese Situation korrigiert werden. Wenn das Mounten fehlschlägt, teilt Ihnen der folgende Befehl rpcinfo -p mit, dass der Dienst mountd auf dem Server ausgefallen ist:

# rpcinfo -p 192.168.1.254 program vers proto port service 100000 2 tcp 111 rpcbind ... ... 100021 4 udp 1026 nlockmgr #

Der Befehl rpcinfo ist sehr nützlich, um herauszufinden, ob ein bestimmter entfernter Prozess aktiv ist. Die Option -p ist die wichtigste der Schalter. Siehe die Manpage für alle Funktionen von rpcinfo.

Ein weiteres nützliches Tool ist der Befehl nfsstat. Mit seiner Hilfe können Sie feststellen, ob Clients tatsächlich auf das exportierte Dateisystem zugreifen, sowie statistische Informationen je nach Protokollversion anzeigen.

Schließlich ist tcpdump ein weiteres ziemlich nützliches Werkzeug zum Ermitteln der Ursachen von Systemausfällen:

# tcpdump Host Lefty und Host Sunny -s512 tcpdump: Listening on eth0 06:29:51.773646 sunny.2191984020 > lefty.mcwrite.n.nfs: 140 lookup fh Unknown/1"test.c" (DF) 06:29:51.773819 lefty.mcwrite.n.nfs > sunny.2191984020: Antwort ok 116 Lookup FEHLER: Keine solche Datei oder Verzeichnis (DF) 06:29:51.774593 sunny.2191984021 > lefty.mcwrite.n.nfs: 128 getattr fh Unknown/1 ( DF) 06:29:51.774670 lefty.mcwrite.n.nfs > sunny.2191984021: Antwort ok 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 06:29:51.775289 sunny.2191984022 > lefty.mc schreibe .n.nfs : 140 lookup fh Unknown/1"test.c" (DF) 06:29:51.775357 lefty.mcwrite.n.nfs > sunny.2191984022: Antwort ok 116 lookup ERROR: No such file or directory (DF) 06:29: 51.776029 sunny.2191984023 > lefty.mcwrite.n.nfs: 184 create fh Unknown/1 "test.c" (DF) 06:29:51.776169 lefty.mcwrite.n.nfs > sunny.2191984023: antworte ok 120 create ERROR: Berechtigung verweigert (DF)

Die obige Auflistung, die nach der Ausführung der Anweisung touch test.c erhalten wurde, zeigt die folgende Abfolge von Aktionen: Zuerst versucht der Befehl touch, auf eine Datei namens test.c zuzugreifen, dann sucht er nach einem Verzeichnis mit demselben Namen und danach erfolglos versucht, die Datei test.c zu erstellen, was ebenfalls fehlschlägt.

Wenn das Dateisystem gemountet ist, beziehen sich die meisten häufigen Fehler auf normale UNIX-Berechtigungen. Die Verwendung von uid oder NIS+ durch Sun vermeidet das globale Setzen von Berechtigungen auf allen Dateisystemen. Einige Administratoren praktizieren „offene“ Verzeichnisse, in denen „der ganzen Welt“ Leserechte erteilt werden. Dies sollte jedoch aus Sicherheitsgründen vermieden werden. Abgesehen von Sicherheitsbedenken ist dies immer noch eine schlechte Praxis, da Benutzer selten Daten mit der Absicht erstellen, sie für alle lesbar zu machen.

Zugriffe eines privilegierten Benutzers (root) auf NFS-gemountete Dateisysteme werden anders behandelt. Um zu vermeiden, dass einem privilegierten Benutzer uneingeschränkter Zugriff gewährt wird, werden Anfragen des privilegierten Benutzers so behandelt, als ob sie vom Benutzer "nobody" stammen. Dieser leistungsstarke Mechanismus beschränkt den privilegierten Benutzerzugriff auf global lesbare und beschreibbare Dateien.

NFS-SERVER, SOLARIS-VERSION

Die Konfiguration von Solaris als NFS-Server ist so einfach wie bei Linux. Die Befehle und Dateispeicherorte sind jedoch etwas anders. Wenn Solaris hochfährt, wenn Bootlevel 3 erreicht ist, werden NFS-Dienste automatisch gestartet und alle Dateisysteme exportiert. Um diese Prozesse manuell zu starten, geben Sie den Befehl ein:

#/usr/lib/nfs/mountd

Geben Sie Folgendes ein, um den Mount-Daemon und den NFS-Server zu starten:

#/usr/lib/nfs/nfsd

Ab Version 2.6 verwendet Solaris keine Exportdatei mehr, um anzugeben, welche Dateisysteme exportiert werden sollen. Die Dateien werden nun mit dem Share-Befehl exportiert. Angenommen, wir möchten entfernten Hosts erlauben, /export/home zu mounten. Geben Sie dazu den folgenden Befehl ein:

Teilen Sie -F nfs /export/home

Sicherheitsmaßnahmen

SICHERHEIT UNTER LINUX

Einige Linux-basierte NFS-Systemdienste verfügen über einen zusätzlichen Mechanismus zum Einschränken des Zugriffs durch Kontrolllisten oder Tabellen. Auf der internen Ebene wird dieser Mechanismus mithilfe der tcp_wrapper-Bibliothek implementiert, die zwei Dateien verwendet, um Zugriffskontrolllisten zu bilden: /etc/hosts.allow und /etc/hosts/deny. Ein erschöpfender Überblick über die Regeln für die Arbeit mit tcp_wrapper würde den Rahmen dieses Artikels sprengen, aber das Grundprinzip ist das folgende: Der Abgleich erfolgt zuerst mit etc/hosts.allow und dann mit /etc/hosts. leugnen. Wenn die Regel nicht gefunden wird, wird der angeforderte Systemdienst nicht präsentiert. Um die letzte Anforderung zu umgehen und ein sehr hohes Maß an Sicherheit zu bieten, können Sie den folgenden Eintrag am Ende von /etc/hosts.deny hinzufügen:

Alles alles

Danach kann mit /etc/hosts.allow diese oder jene Betriebsart eingestellt werden. Zum Beispiel die Datei /etc/hosts. allow , das ich beim Schreiben dieses Artikels verwendet habe, enthielt die folgenden Zeilen:

lockd:192.168.1.0/255.255.255.0 mountd:192.168.1.0/255.255.255.0 portmap:192.168.1.0/255.255.255.0 rquotad:192.168.1.0/255.255.255.0 statd:192 .168.1.0/255.255.255.0

Dies ermöglicht eine Art Zugriff auf Knoten, bevor der Zugriff auf Anwendungsebene gewährt wird. Unter Linux wird der Zugriff auf Anwendungsebene durch die Datei /etc/exports gesteuert. Es besteht aus Einträgen im folgenden Format:

Exportverzeichnis (space) host|network(options)

Ein „exportiertes Verzeichnis“ ist ein Verzeichnis, für das der nfsd-Daemon eine Anfrage verarbeiten darf. "Host|Network" ist der Host oder das Netzwerk, das Zugriff auf das exportierte Dateisystem hat, und "Optionen" bestimmt, welche Einschränkungen der nfsd-Daemon der Verwendung dieser gemeinsam genutzten Ressource auferlegt - Nur-Lese-Zugriff oder Benutzer-ID-Zuordnung .

Das folgende Beispiel gewährt der gesamten mcwrite.net-Domäne schreibgeschützten Zugriff auf /home/mcwrite.net:

/home/mcwrite.net *.mcwrite.net(ro)

Weitere Beispiele finden Sie auf der Export-Manpage.

NFS-SICHERHEIT IN SOLARIS

In Solaris ist die Möglichkeit, NFS-Zugriff bereitzustellen, ähnlich wie bei Linux, aber in diesem Fall werden Einschränkungen mithilfe bestimmter Optionen im Share-Befehl mit dem Schalter -o festgelegt. Das folgende Beispiel zeigt, wie Sie das schreibgeschützte Mounten von /export/mcwrite.net auf einem beliebigen Host in der Domäne mcwrite.net aktivieren:

#share -F nfs -o ro=.mcwrite.net/export/mcwrite.net

Auf der Manpage share_nfs wird beschrieben, wie Sie den Zugriff mithilfe von Steuerlisten unter Solaris gewähren.

Internet-Ressourcen

NFS und RPC waren nicht ohne "Löcher". Generell sollte NFS nicht im Internet verwendet werden. Sie können Firewalls nicht "durchlöchern", indem Sie Zugriff jeglicher Art über NFS zulassen. Alle RPC- und NFS-Patches sollten genau überwacht werden, und zahlreiche Quellen für Sicherheitsinformationen können hilfreich sein. Die beiden beliebtesten Quellen sind Bugtraq und CERT:

Die erste kann regelmäßig auf der Suche nach den erforderlichen Informationen eingesehen oder ein Abonnement für einen regelmäßigen Newsletter verwendet werden. Die zweite bietet im Vergleich zu anderen vielleicht nicht so schnelle Informationen, aber in einem ziemlich vollständigen Umfang und ohne einen Hauch von Sensationsgier, der charakteristisch für einige Websites ist, die sich der Informationssicherheit widmen.


Manchmal hängen Netzwerk- und andere Windows-Systemfehler mit Problemen in der Windows-Registrierung zusammen. Mehrere Programme verwenden möglicherweise die Netzwerkdatei, aber wenn diese Programme entfernt oder geändert werden, bleiben manchmal verwaiste (ungültige) Windows-Registrierungseinträge zurück.

Im Grunde bedeutet dies, dass der tatsächliche Pfad zur Datei möglicherweise geändert wurde, der falsche frühere Speicherort jedoch immer noch in der Windows-Registrierung aufgezeichnet ist. Wenn Windows versucht, diesen falschen Dateiverweis (Speicherorte auf Ihrem PC) nachzuschlagen, werden Netzwerke. Zusätzlich könnte eine Infektion mit Schadprogrammen die Registryeinträge, die im Zusammenhang mit Microsoft Windows stehen, beschädigt haben. Daher müssen diese beschädigten Windows-Registrierungseinträge repariert werden, um die Wurzel des Problems zu beheben.

Es wird nicht empfohlen, die Windows-Registrierung manuell zu bearbeiten, um ungültige Netzwerkschlüssel zu entfernen, es sei denn, Sie sind ein PC-Serviceprofi. Fehler beim Bearbeiten der Registrierung können Ihren PC unbrauchbar machen und Ihr Betriebssystem irreparabel beschädigen. Tatsächlich kann sogar ein einziges Komma an der falschen Stelle verhindern, dass Ihr Computer hochfährt!

Aufgrund dieses Risikos empfehlen wir dringend die Verwendung eines vertrauenswürdigen Registry-Cleaners wie z. B. WinThruster (entwickelt von einem zertifizierten Microsoft Gold-Partner), um alle Netzwerke zu scannen und zu reparieren. Die Verwendung eines Registry Cleaners automatisiert den Prozess des Auffindens ungültiger Registrierungseinträge, fehlender Dateiverweise (wie derjenige, der Ihren Netzwerkfehler verursacht) und defekter Links innerhalb der Registrierung. Vor jedem Scan wird automatisch eine Sicherungskopie erstellt, die es Ihnen ermöglicht, alle Änderungen mit einem einzigen Klick rückgängig zu machen und Sie vor möglichen Schäden an Ihrem Computer zu schützen. Das Beste daran ist, dass das Beheben von Registrierungsfehlern die Systemgeschwindigkeit und -leistung drastisch verbessern kann.


Warnung: Sofern Sie kein fortgeschrittener PC-Benutzer sind, empfehlen wir NICHT, die Windows-Registrierung manuell zu bearbeiten. Eine falsche Verwendung des Registrierungseditors kann zu schwerwiegenden Problemen führen und eine Neuinstallation von Windows erforderlich machen. Wir garantieren nicht, dass Probleme, die durch Missbrauch des Registrierungseditors entstehen, gelöst werden können. Sie verwenden den Registrierungseditor auf eigenes Risiko.

Bevor Sie die Windows-Registrierung manuell reparieren, müssen Sie eine Sicherung erstellen, indem Sie den netzwerkbezogenen Teil der Registrierung exportieren (z. B. Microsoft Windows):

  1. Klicken Sie auf die Schaltfläche Start.
  2. Eingeben " Befehl"V Suchleiste... NOCH NICHT DRÜCKEN EINGEBEN!
  3. Schlüssel halten STRG-Umschalt drücken Sie auf der Tastatur EINGEBEN.
  4. Ein Zugriffsdialog wird angezeigt.
  5. Klicken Ja.
  6. Das schwarze Kästchen öffnet sich mit einem blinkenden Cursor.
  7. Eingeben " regedit" und drücke EINGEBEN.
  8. Wählen Sie im Registrierungseditor den netzwerkbezogenen Schlüssel (z. B. Microsoft Windows) aus, den Sie sichern möchten.
  9. Auf der Speisekarte Datei wählen Export.
  10. Gelistet Speichern unter Wählen Sie den Ordner aus, in dem Sie die Microsoft Windows-Schlüsselsicherung speichern möchten.
  11. Auf dem Feld Dateinamen Geben Sie einen Namen für die Sicherungsdatei ein, z. B. „Microsoft Windows-Sicherung“.
  12. Stellen Sie sicher, dass das Feld Sortiment exportieren Wert ausgewählt Ausgewählter Zweig.
  13. Klicken Speichern.
  14. Die Datei wird gespeichert mit .reg-Erweiterung.
  15. Sie haben jetzt ein Backup Ihrer Netzwerke.

Die nächsten Schritte zum manuellen Bearbeiten der Registrierung werden in diesem Artikel nicht behandelt, da sie Ihr System wahrscheinlich beschädigen. Weitere Informationen zum manuellen Bearbeiten der Registrierung finden Sie unter den folgenden Links.

mob_info