Red Hat Enterprise Linux 3: Referenzhandbuch | ||
---|---|---|
Zurück | Nach vorne |
Mit dem Netzwerk-Dateisystem (NFS) können Remote-Hosts Dateisysteme auf einem System mounten und verwenden, als wären sie lokal gemountet. Dies ermöglicht den Systemadministratoren, Ressourcen auf zentralen Servern im Netzwerk sicherzustellen.
Dieses Kapitel konzentriert sich auf fundamentale NFS-Konzepte und ergänzende Information. Für detaillierte Anweisungen bezüglich Konfiguration und Funktion von NFS-Servern und Client-Software siehe Kapitel Network File System (NFS) im Red Hat Enterprise Linux Handbuch zur System-Administration.
Zur Zeit werden zwei Versionen von NFS verwendet. Die Version 2 von NFS (NFSv2) ist älter, wird aber von vielen Systemen unterstützt. Die NFS-Version 3 (NFSv3) verfügt über mehr Features, einschließlich einer variablen Dateigröße und einem besseren Fehlerreport, ist aber mit NFSv2-Clients nicht vollständig kompatibel. Red Hat Enterprise Linux unterstützt sowohl NFSv2- als auch NFSv3- Clients, und wenn ein Dateisystem via NFS gemountet wird, verwendet Red Hat Enterprise Linux NFSv3 als Standard, wenn der Server es unterstützt.
NFSv2 verwendet das User Datagram Protocol (UDP) um eine Netzwerkverbindung ohne Statuszwischen dem Client und dem Server herzustellen. NFSv3 kann entweder UDP oder Transmission Control Protocol (TCP) verwenden, wenn es auf einem Netzwerk läuft.
Die statuslose UDP-Verbindung minimiert unter normalen Umständen den Netzwerkverkehr, da der NFS-Server dem Client ein Cookie sendet, nachdem der Client für den Zugriff auf die gemeinsamen Dateien autorisiert worden ist. Dieses Cookie ist ein zufälliger Wert, der im Server gespeichert ist und gemeinsam mit RPC-Anfragen vom Client übermittelt wird. Der NFS-Server kann ohne Auswirkung auf die Clients neu gestartet werden, das Cookie bleibt dabei intakt. Da aber UDP statuslos ist, bestürmen die UD- Clients das Netzwerk weiterhin mit Anfragen für den Server, auch wenn der Server unerwarteterweise herunterfährt. Deswegen ist TCP das bevorzugte Protokoll beim Verbinden mit einem NFSv3-Server.
![]() | Anmerkung |
---|---|
Aus Gründen der Kompatibilität ist UDP das standardmäßige Transport-Protokoll für NFS unter Red Hat Enterprise Linux. Siehe Kapitel Network File System (NFS) im Red Hat Enterprise Linux Handbuch zur System-Administration für weitere Informationen über Verbindung zum Server mittels TCP. |
NFS führt Authentifizierungen nur dann durch, wenn ein Client versucht, die gemeinsame NFS-Ressource zu mounten. Um Zugriffe auf den NFS-Server zu limitieren werden TCP-Wrapper verwendet. Die TCP-Wrapper lesen die Dateien /etc/hosts.allow und /etc/hosts.deny, um festzulegen, ob einem bestimmten Client oder einem Netzwerk der Zugriff auf den NFS-Server erlaubt oder verwehrt wird. Weitere Informationen zum Konfigurieren der Zugriffssteuerung mit TCP-Wrapper finden Sie unter Kapitel 16.
Erhält der Client die Berechtigung, die TCP-Wrapper zu passieren, verweist der NFS-Server auf die Konfigurationsdatei /etc/exports, um festzulegen, ob der Client über ausreichende Privilegien zum Zugreifen auf eine der exportierten Dateisysteme verfügt. Wird der Zutritt gewährt, kann der User über alle Datei- und Verzeichnisvorgänge verfügen.
![]() | Warnung |
---|---|
NFS-Mount-Privilegien werden dem Client Host gewährt, nicht dem Benutzer. Deswegen kann jeder Benutzer auf einem Client Host mit Zugangsberechtigung auf die exportierten Dateisysteme zugreifen. Wenn Sie die gemeinsamen NFS- Dateien konfigurieren, seien Sie vorsichtig, welche Hosts eine Lese- und Schreibberechtigung erhalten (rw). |
Red Hat Enterprise Linux verwendet für das NFS Datei-Sharing eine Kombination aus dem Kernel-Level-Support und den Daemon-Prozessen. NFS verlässt sich auf Remote Procedure Calls (RPC), um Anfragen zwischen Clients und Servern zu routen. Bei Linux werden RPC-Dienste durch den portmap Dienst gesteuert. Beim gemeinsamen Verwenden oder mounten von NFS-Dateisystemen arbeiten folgende Dienste zusammen:
nfs — Startet die passenden RPC-Prozesse, um Anfragen für gemeinsame NFS-Dateisysteme zu handhaben.
nfslock — ein fakultativer Dienst, der die passenden RPC-Prozesse startet, damit NFS-Clients Dateien auf dem Server festmachen können.
portmap — Der RPC-Dienst für Linux; er reagiert auf Anfragen für RPC-Dienste und und baut Verbindungen zu den erfragten RPC-Diensten auf
Die folgenden RPC-Prozesse arbeiten im Hintergrund zusammen, um die NFS-Dienste zu unterstützen:
rpc.mountd — Dieser Prozess empfängt die Mount-Anfrage der NFS-Clients und kontrolliert, ob das erfragte Dateisystem zu diesem Zeitpunkt exportiert ist. Der Prozess wird automatisch durch den nfs Dienst gestartet und erfordert keine Benutzer- Konfiguration.
rpc.nfsd — Dieser Prozess ist der NFS-Server. Er arbeitet mit dem Linux-Kernel, um mit den dynamischen Vorgaben des NFS-Clients übereinzustimmen. Zum Beispiel das Bereitstellen zusätzlicher Server-Threads, immer wenn sich ein NFS-Client verbindet. Dieser Prozess korrespondiert mit dem nfs Dienst.
rpc.lockd — Ein fakultativer Prozess, der NFS-Clients erlaubt, Dateien am Server festzumachen. Dieser Prozess korrespondiert mit demnfslock Dienst.
rpc.statd — Implementiert das Network Status Monitor (NSM)-RPC- Protokoll. Dies verständigt NFS-Clients, wenn ein NFS-Server neu gestartet wird, ohne dass er ordentlich heruntergefahren wurde. Dieser Prozess wird automatisch durch den nfslock Dienst gestartet und erfordert keine Benutzer-Konfiguration.
rpc.rquotad — Dieser Prozess stellt Information über Benutzerquoten für Remote-Benutzer zur Verfügung. Der Prozess wird automatisch durch den nfs Dienst gestartet und erfordert keine Benutzer-Konfiguration.
Der portmap Dienst von Linux wird benötigt, um die RPC-Anfragen den korrekten Dienste zuzuordnen. portmap wird von den RPC-Prozessen benachrichtigt, wenn sie starten. Des Weiteren teilen die Anfragen die überwachte Port-Nummer sowie die Nummern des RPS-Programms mit, die aufgerufen werden. Der Client kontaktiert portmap auf dem Server mit einer bestimmten RPC-Programmnummer. Der portmap Dienst leitet dann den Client zur richtigen Port-Nummer um, damit er mit dem gewünschten Dienst kommunizieren kann.
Da Dienste. die auf RPC-basieren, für die Verbindungen mit ankommenden Client-Anfragen von portmap abhängig sind, muss portmap verfügbar sein, bevor einer dieser Dienste gestartet wird.
Der portmap-Dienst verwendet TCP-Wrapper für die Zugriffskontrolle, die Zugriffs-Kontrollregeln für portmap beeinflussen alle auf RPC basierenden Dienste. Als Alternative können Sie auch Zugriffs-Kontrollregeln für jeden der NFS-RPC-Daemonen einzeln bestimmen. Die man-Seiten für rpc.mountd und rpc.statd enthalten Informationen über die genaue Syntax dieser Regeln.
Da portmap die Koordination zwischen RPC- Diensten und den Port-Nummern übernimmt, die für die Kommunikation mit den Diensten verwendet werden, ist es beim Lösen von Problemen sehr hilfreich, eine Übersicht über die aktuellen RPC- Dienste zu haben, die portmap verwenden. Der Befehl rpcinfo zeigt jeden auf RPC-basierenden Dienst mit Port-Nummern, RPC-Programmnummer, Version und dem Typ des IP- Protokolls (TCP oder UDP) an.
Um sicherzustellen, dass die richtigen NFS-RPC-basierten Dienste für portmap aktiviert sind, geben Sie den folgenden Befehl als Root ein:
rpcinfo -p |
Im folgenden ein Probe-Output dieses Befehls:
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100021 1 udp 32774 nlockmgr 100021 3 udp 32774 nlockmgr 100021 4 udp 32774 nlockmgr 100021 1 tcp 34437 nlockmgr 100021 3 tcp 34437 nlockmgr 100021 4 tcp 34437 nlockmgr 100011 1 udp 819 rquotad 100011 2 udp 819 rquotad 100011 1 tcp 822 rquotad 100011 2 tcp 822 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100005 1 udp 836 mountd 100005 1 tcp 839 mountd 100005 2 udp 836 mountd 100005 2 tcp 839 mountd 100005 3 udp 836 mountd 100005 3 tcp 839 mountd |
Im oben aufgeführten Output wird angezeigt, dass die richtigen NFS-Dienste ausgeführt sind. Wenn einer der NFS-Dienste nicht korrekt startet, kann portmap die RPC-Anfragen von Clients für diesen Dienst nicht dem richtigen Port zuordnen. Wenn NFS im rpcinfo Output nicht vorhanden ist, führt in vielen Fällen das Neustarten von NFS dazu, dass der Dienst korrekt in portmap registriert werden und arbeiten kann. Anweisungen für das Starten von NFS finden Sie unter Abschnitt 9.2.
Andere hilfreiche Optionen sind für den rpcinfo Befehl vorhanden. Siehe rpcinfo man Seite für weitere Informationen.
Zurück | Zum Anfang | Nach vorne |
Zusätzliche Ressourcen | Nach oben | Starten und Anhalten von NFS |