books/handbook/mirrors/chapter.sgml 1.326 -> 1.327 books/handbook/users/chapter.sgml 1.38 -> 1.39 [*] books/handbook/serialcomms/chapter.sgml header update [*] [*] and all further fixes Submitted by: Oliver Fischer <plexus@snafu.de>
5012 lines
199 KiB
Text
5012 lines
199 KiB
Text
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD German Documentation Project
|
|
|
|
$FreeBSD$
|
|
$FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.78 2003/11/23 16:18:28 mheinen Exp $
|
|
basiert auf: 1.242
|
|
-->
|
|
|
|
<chapter id="advanced-networking">
|
|
<chapterinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Johann</firstname>
|
|
<surname>Kois</surname>
|
|
<contrib>Übersetzt von </contrib>
|
|
<!-- j.kois@web.de, 02. Februar 2003 -->
|
|
</author>
|
|
</authorgroup>
|
|
</chapterinfo>
|
|
|
|
<title>Weiterführende Netzwerkthemen</title>
|
|
|
|
<sect1 id="advanced-networking-synopsis">
|
|
|
|
<title>Übersicht</title>
|
|
|
|
<para>Dieses Kapitel beschreibt einige der häufiger
|
|
verwendeten Netzwerkdienste auf UNIX-Systemen. Es wird
|
|
beschrieben, wie die von FreeBSD verwendeten Netzwerkdienste
|
|
installiert, getestet und gewartet werden. Zusätzlich sind
|
|
im ganzen Kapitel Beispielkonfigurationsdateien vorhanden, von
|
|
denen Sie sicherlich profitieren werden.</para>
|
|
|
|
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Die Grundlagen von Gateways und Routen kennen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Eine Bridge unter FreeBSD einrichten können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Ein Netzwerkdateisystem (NFS) einrichten können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Einen plattenlosen Rechner über das Netzwerk starten
|
|
können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Einen Netzwerkinformationsserver (NIS) für gemeinsame
|
|
Benutzerkonten einrichten können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Automatische Netzwerkeinstellungen mittels DHCP vornehmen
|
|
können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Einen Domain Name Server (DNS) einrichten können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Unter Verwendung des NTP-Protokolls Uhrzeit und Datum
|
|
synchronisieren, sowie einen Zeitserver einrichten können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wissen, wie man NAT (Network Address Translation)
|
|
einrichtet.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>In der Lage sein, den <command>inetd</command>-Daemon
|
|
einzurichten.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Zwei Computer über PLIP verbinden können.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>IPv6 auf einem FreeBSD-Rechner einrichten können.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Bevor Sie dieses Kapitel lesen, sollten Sie</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Die Grundlagen der <filename>/etc/rc</filename>-Skripte
|
|
verstanden haben.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Mit der grundlegenden Netzwerkterminologie vertraut
|
|
sein.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="network-routing">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Coranth</firstname>
|
|
<surname>Gryphon</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Gateways und Routen</title>
|
|
|
|
<indexterm>
|
|
<primary>Routing</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>Gateway</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>Subnetz</primary>
|
|
</indexterm>
|
|
|
|
<para>Damit ein Rechner einen anderen über ein Netzwerk
|
|
finden kann, muss ein Mechanismus vorhanden sein, der
|
|
beschreibt, wie man von einem Rechner zum anderen gelangt.
|
|
Dieser Vorgang wird als <firstterm>Routing</firstterm>
|
|
bezeichnet. Eine <quote>Route</quote> besteht aus einem
|
|
definierten Adressenpaar: Einem <quote>Ziel</quote> und einem
|
|
<quote>Gateway</quote>. Dieses Paar zeigt an, dass Sie
|
|
über den <emphasis>Gateway</emphasis> zum
|
|
<emphasis>Ziel</emphasis> gelangen wollen. Es gibt drei Arten
|
|
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
|
|
<quote>Standard</quote>ziel. Die <quote>Standardroute</quote>
|
|
wird verwendet, wenn keine andere Route zutrifft. Wir werden
|
|
Standardrouten später etwas genauer behandeln. Außerdem
|
|
gibt es drei Arten von Gateways: Einzelne Rechner (Hosts),
|
|
Schnittstellen (Interfaces, auch als <quote>Links</quote>
|
|
bezeichnet), sowie Ethernet Hardware-Adressen
|
|
(MAC-Adressen).</para>
|
|
|
|
<sect2>
|
|
<title>Ein Beispiel</title>
|
|
|
|
<para>Um die verschiedenen Aspekte des Routings zu
|
|
veranschaulichen, verwenden wir folgende Ausgaben von
|
|
<command>netstat</command>:</para>
|
|
|
|
<screen>&prompt.user; <userinput>netstat -r</userinput>
|
|
Routing tables
|
|
|
|
Destination Gateway Flags Refs Use Netif Expire
|
|
|
|
default outside-gw UGSc 37 418 ppp0
|
|
localhost localhost UH 0 181 lo0
|
|
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
|
|
10.20.30.255 link#1 UHLW 1 2421
|
|
example.com link#1 UC 0 0
|
|
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
|
|
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
|
|
host2.example.com link#1 UC 0 0
|
|
224 link#1 UC 0 0
|
|
</screen>
|
|
|
|
<indexterm>
|
|
<primary>Default-Route</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>Standardroute</primary>
|
|
</indexterm>
|
|
|
|
<para>Die ersten zwei Zeilen geben die Standardroute (die wir
|
|
im <link linkend="network-routing-default"> nächsten
|
|
Abschnitt</link> behandeln), sowie die
|
|
<hostid>localhost</hostid> Route an.</para>
|
|
|
|
<indexterm>
|
|
<primary>Loopback-Gerät</primary>
|
|
</indexterm>
|
|
|
|
<para>Das in der Routingtabelle für
|
|
<literal>localhost</literal> festgelegte Interface
|
|
(<literal>Netif</literal>-Spalte)
|
|
<devicename>lo0</devicename>, ist auch als loopback-Gerät
|
|
(Prüfschleife) bekannt. Das heißt, dass der ganze
|
|
Datenverkehr für dieses Ziel intern (innerhalb des
|
|
Gerätes) bleibt, anstatt ihn über ein Netzwerk (LAN)
|
|
zu versenden, da das Ziel dem Start entspricht.</para>
|
|
|
|
<indexterm>
|
|
<primary>Ethernet</primary>
|
|
<secondary>MAC-Adresse</secondary>
|
|
</indexterm>
|
|
|
|
<para>Der nächste auffällige Punkt sind die mit
|
|
<hostid role="mac">0:e0:</hostid> beginnenden Adressen. Es
|
|
handelt sich dabei um Ethernet Hardwareadressen, die auch als
|
|
MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner im
|
|
lokalen Netz automatisch (im Beispiel <hostid>test0</hostid>)
|
|
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
|
|
passiert über die Ethernet-Schnittstelle
|
|
<devicename>ed0</devicename>. Außerdem existiert ein Timeout
|
|
(in der Spalte <literal>Expire</literal>) für diese Art
|
|
von Routen, der verwendet wird, wenn dieser Rechner in einem
|
|
definierten Zeitraum nicht reagiert. Wenn dies passiert, wird
|
|
die Route zu diesem Rechner automatisch gelöscht.
|
|
Rechner im lokalen Netz werden durch einen als RIP (Routing
|
|
Information Protocol) bezeichneten Mechanismus identifiziert,
|
|
der den kürzesten Weg zu den jeweiligen Rechnern
|
|
bestimmt.</para>
|
|
|
|
<indexterm>
|
|
<primary>Subnetz</primary>
|
|
</indexterm>
|
|
|
|
<para>FreeBSD fügt außerdem Subnetzrouten für das
|
|
lokale Subnetz hinzu (<hostid
|
|
role="ipaddr">10.20.30.255</hostid> ist die Broadcast-Adresse
|
|
für das Subnetz <hostid role="ipaddr">10.20.30</hostid>,
|
|
<hostid role="domainname">example.com</hostid> ist der zu
|
|
diesem Subnetz gehörige Domainname). Das Ziel
|
|
<literal>link#1</literal> bezieht sich auf die erste
|
|
Ethernet-Karte im Rechner. Sie können auch feststellen,
|
|
dass keine zusätzlichen Schnittstellen angegeben
|
|
sind.</para>
|
|
|
|
<para>Routen für Rechner im lokalen Netz und lokale
|
|
Subnetze werden automatisch durch den
|
|
<application>routed</application> Daemon konfiguriert. Ist
|
|
dieser nicht gestartet, sind nur statisch definierte
|
|
(explizit eingegebene) Routen vorhanden.</para>
|
|
|
|
<para>Die Zeile <literal>host1</literal> bezieht sich auf
|
|
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
|
|
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
|
|
das Loopback-Gerät (<devicename>lo0</devicename>),
|
|
anstatt den Datenverkehr über die Ethernetschnittstelle
|
|
zu senden.</para>
|
|
|
|
<para>Die zwei <literal>host2</literal> Zeilen sind ein Beispiel
|
|
dafür, was passiert, wenn wir ein &man.ifconfig.8; Alias
|
|
verwenden (Lesen Sie dazu den Abschnitt über Ethernet,
|
|
wenn Sie wissen wollen, warum wir das tun sollten.). Das
|
|
Symbol <literal>=></literal> (nach der
|
|
<devicename>lo0</devicename>-Schnittstelle) sagt aus, dass wir
|
|
nicht nur das Loopbackgerät verwenden (da sich die
|
|
Adresse auf den lokalen Rechner bezieht), sondern dass es sich
|
|
zusätzlich auch um ein Alias handelt. Solche Routen sind
|
|
nur auf Rechnern vorhanden, die den Alias bereitstellen;
|
|
alle anderen Rechner im lokalen Netz haben für solche
|
|
Routen nur eine einfache <literal>link#1</literal>
|
|
Zeile.</para>
|
|
|
|
<para>Die letzte Zeile (Zielsubnetz <literal>224</literal>)
|
|
behandelt das Multicasting, das wir in einem anderen Abschnitt
|
|
besprechen werden.</para>
|
|
|
|
<para>Schließlich gibt es für Routen noch
|
|
verschiedene Attribute, die Sie in der Spalte
|
|
<literal>Flags</literal> finden. Nachfolgend finden Sie eine
|
|
kurze Übersicht von einigen dieser Flags und ihrer
|
|
Bedeutung:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry>U</entry>
|
|
|
|
<entry>Up: Die Route ist aktiv.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>H</entry>
|
|
|
|
<entry>Host: Das Ziel der Route ist ein einzelner
|
|
Rechner (Host).</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>G</entry>
|
|
|
|
<entry>Gateway: Alle Daten, die an dieses Ziel gesendet
|
|
werden, werden von diesem System an ihr jeweiliges
|
|
Ziel weitergeleitet.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>S</entry>
|
|
|
|
<entry>Static: Diese Route wurde manuell konfiguriert,
|
|
das heißt sie wurde <emphasis>nicht</emphasis>
|
|
automatisch vom System erzeugt.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>C</entry>
|
|
|
|
<entry>Clone: Erzeugt eine neue Route, basierend auf der
|
|
Route für den Rechner, mit dem wir uns verbinden.
|
|
Diese Routenart wird normalerweise für lokale
|
|
Netzwerke verwendet.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>W</entry>
|
|
|
|
<entry>WasCloned: Eine Route, die automatisch
|
|
konfiguriert wurde. Sie basiert auf einer lokalen
|
|
Netzwerkroute (Clone).</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>L</entry>
|
|
|
|
<entry>Link: Die Route beinhaltet einen Verweis auf eine
|
|
Ethernetkarte (MAC-Adresse).</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</sect2>
|
|
|
|
<sect2 id="network-routing-default">
|
|
<title>Standardrouten</title>
|
|
|
|
<indexterm>
|
|
<primary>Default-Route</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>Standardroute</primary>
|
|
</indexterm>
|
|
|
|
<para>Wenn sich der lokale Rechner mit einem entfernten Rechner
|
|
verbinden will, wird die Routingtabelle überprüft,
|
|
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
|
|
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
|
|
Pfad uns bereits bekannt ist (Cloned route), dann versucht der
|
|
lokale Rechner über diese Schnittstelle eine Verbindung
|
|
herzustellen.</para>
|
|
|
|
<para>Wenn alle bekannten Pfade nicht funktionieren, hat der
|
|
lokale Rechner eine letzte Möglichkeit: Die
|
|
Standardroute (Default-Route). Bei dieser
|
|
Route handelt es sich um eine spezielle Gateway-Route
|
|
(gewöhnlich die einzige im System vorhandene), die im
|
|
Flags-Feld immer mit <literal>C</literal> gekennzeichnet ist.
|
|
Für Rechner im lokalen Netzwerk ist dieser Gateway auf
|
|
<emphasis>welcher Rechner auch immer eine Verbindung nach
|
|
außen hat</emphasis> gesetzt (entweder über eine
|
|
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
|
|
andere Netzwerkverbindung).</para>
|
|
|
|
<para>Wenn Sie die Standardroute für einen Rechner
|
|
konfigurieren, der selbst als Gateway zur Außenwelt
|
|
funktioniert, wird die Standardroute zum Gateway-Rechner Ihres
|
|
Internetanbieter (ISP) gesetzt.</para>
|
|
|
|
<para>Sehen wir uns ein Beispiel für Standardrouten an. So
|
|
sieht eine übliche Konfiguration aus:</para>
|
|
|
|
<literallayout>
|
|
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
|
|
</literallayout>
|
|
|
|
<para>Die Rechner <hostid>Local1</hostid> und
|
|
<hostid>Local2</hostid> befinden sich auf Ihrer Seite.
|
|
<hostid>Local1</hostid> ist mit einem ISP über eine
|
|
PPP-Verbindung verbunden. Dieser PPP-Server ist über ein
|
|
lokales Netzwerk mit einem anderen Gateway-Rechner verbunden,
|
|
der über eine Schnittstelle die Verbindung des ISP zum
|
|
Internet herstellt.</para>
|
|
|
|
<para>Die Standardrouten für Ihre Maschinen lauten:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Host</entry>
|
|
|
|
<entry>Standard Gateway</entry>
|
|
|
|
<entry>Schnittstelle</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>Local2</entry>
|
|
|
|
<entry>Local1</entry>
|
|
|
|
<entry>Ethernet</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Local1</entry>
|
|
|
|
<entry>T1-GW</entry>
|
|
|
|
<entry>PPP</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Eine häufig gestellte Frage lautet: <quote>Warum (oder wie)
|
|
sollten wir <hostid>T1-GW</hostid> als Standard-Gateway
|
|
für <hostid>Local1</hostid> setzen,
|
|
statt den (direkt verbundenen) ISP-Server zu
|
|
verwenden?</quote>.</para>
|
|
|
|
<para>Bedenken Sie, dass die PPP-Schnittstelle für die
|
|
Verbindung eine Adresse des lokalen Netzes des ISP verwendet.
|
|
Daher werden Routen für alle anderen Rechner im lokalen
|
|
Netz des ISP automatisch erzeugt. Daraus folgt, dass Sie
|
|
bereits wissen, wie Sie <hostid>T1-GW</hostid> erreichen
|
|
können! Es ist also unnötig, einen Zwischenschritt
|
|
über den ISP-Server zu machen.</para>
|
|
|
|
<para>Es ist üblich, die Adresse <hostid
|
|
role="ipaddr">X.X.X.1</hostid> als Gateway-Adresse für
|
|
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
|
|
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
|
|
<hostid role="ipaddr">10.20.30</hostid> ist und Ihr ISP
|
|
<hostid role="ipaddr">10.9.9</hostid> verwendet, sehen die
|
|
Standardrouten so aus:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Rechner (Host)</entry>
|
|
|
|
<entry>Standardroute</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>Local2 (10.20.30.2)</entry>
|
|
|
|
<entry>Local1 (10.20.30.1)</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Local1 (10.20.30.1, 10.9.9.30)</entry>
|
|
|
|
<entry>T1-GW (10.9.9.1)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Rechner mit zwei Heimatnetzen</title>
|
|
|
|
<indexterm>
|
|
<primary>Dual-Homed-Hosts</primary>
|
|
</indexterm>
|
|
|
|
<para>Es gibt noch eine Konfigurationsmöglichkeit, die wir
|
|
besprechen sollten, und zwar Rechner, die sich in zwei
|
|
Netzwerken befinden. Technisch gesehen, zählt jeder als
|
|
Gateway arbeitende Rechner zu den Rechnern mit zwei
|
|
Heimatnetzen (im obigen Beispiel unter Verwendung einer
|
|
PPP-Verbindung). In der Praxis meint man damit allerdings nur
|
|
Rechner, die sich in zwei lokalen Netzen befinden.</para>
|
|
|
|
<para>Entweder verfügt der Rechner über zwei
|
|
Ethernetkarten und jede dieser Karten hat eine Adresse in
|
|
einem separaten Subnetz, oder der Rechner hat nur eine
|
|
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. Die
|
|
erste Möglichkeit wird verwendet, wenn zwei physikalisch
|
|
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn
|
|
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus
|
|
zwei logisch getrennten Subnetzen besteht.</para>
|
|
|
|
<para>In beiden Fällen werden Routingtabellen erstellt,
|
|
damit jedes Subnetz weiß, dass dieser Rechner als Gateway zum
|
|
anderen Subnetz arbeitet (<foreignphrase>inbound
|
|
route</foreignphrase>). Diese Konfiguration
|
|
(der Gateway-Rechner arbeitet als Router zwischen den
|
|
Subnetzen) wird häufig verwendet, wenn es darum geht,
|
|
Paketfilterung oder eine Firewall (in eine oder beide
|
|
Richtungen) zu implementieren.</para>
|
|
|
|
<para>Wenn Sie möchten, dass dieser Rechner Pakete zwischen
|
|
den beiden Schnittstellen weiterleitet, müssen Sie diese
|
|
Funktion manuell konfigurieren und aktivieren.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="network-dedicated-router">
|
|
<title>Einen Router konfigurieren</title>
|
|
|
|
<indexterm>
|
|
<primary>Router</primary>
|
|
</indexterm>
|
|
|
|
<para>Ein Netzwerkrouter ist einfach ein System, das Pakete von
|
|
einer Schnittstelle zur anderen weiterleitet.
|
|
Internetstandards und gute Ingenieurspraxis sorgten
|
|
dafür, dass diese Funktion in FreeBSD per Voreinstellung
|
|
deaktiviert ist. Sie können diese Funktion aktivieren,
|
|
indem Sie in &man.rc.conf.5; folgende Änderung
|
|
durchführen:</para>
|
|
|
|
<programlisting>gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll</programlisting>
|
|
|
|
<para>Diese Option setzt die &man.sysctl.8;-Variable
|
|
<varname>net.inet.ip.forwarding</varname> auf
|
|
<literal>1</literal>. Wenn Sie das Routing kurzzeitig
|
|
unterbrechen wollen, können Sie die Variable auf
|
|
<literal>0</literal> setzen.</para>
|
|
|
|
<indexterm><primary>BGP</primary></indexterm>
|
|
<indexterm><primary>RIP</primary></indexterm>
|
|
<indexterm><primary>OSPF</primary></indexterm>
|
|
|
|
<para>Ihr neuer Router benötigt nun noch Routen, um zu
|
|
wissen, wohin er den Verkehr senden soll. Haben Sie ein
|
|
(sehr) einfaches Netzwerk, können Sie statische Routen
|
|
verwenden. FreeBSD verfügt über den Standard
|
|
BSD-Routing-Daemon &man.routed.8;, der RIP (sowohl Version 1
|
|
als auch Version 2) und IRDP versteht. BGP v4,
|
|
OSPF v2 und andere Protokolle werden von
|
|
<filename role="package">net/zebra</filename>
|
|
unterstützt. Es stehen auch kommerzielle Produkte
|
|
wie <application>gated</application> zur Verfügung.</para>
|
|
|
|
<para>Selbst wenn FreeBSD auf diese Art konfiguriert wurde,
|
|
entspricht es den Standardanforderungen an Internet-Router
|
|
nicht vollständig. Für den
|
|
<emphasis>normalen</emphasis> Gebrauch kommt es den Standards
|
|
aber nahe genug.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Verteilung von Routing-Informationen</title>
|
|
|
|
<indexterm>
|
|
<primary>routing propagation</primary>
|
|
</indexterm>
|
|
|
|
<para>Wir haben bereits darüber gesprochen, wie wir unsere
|
|
Routen zur Außenwelt definieren, aber nicht darüber, wie
|
|
die Außenwelt uns finden kann.</para>
|
|
|
|
<para>Wir wissen bereits, dass Routing-Tabellen so erstellt
|
|
werden können, dass sämtlicher Verkehr für
|
|
einen bestimmten Adressraum (in unserem Beispiel ein
|
|
Klasse-C-Subnetz) zu einem bestimmten Rechner in diesem
|
|
Netzwerk gesendet wird, der die eingehenden Pakete im Subnetz
|
|
verteilt.</para>
|
|
|
|
<para>Wenn Sie einen Adressraum für Ihre Seite zugewiesen
|
|
bekommen, richtet Ihr Diensteanbieter seine Routingtabellen so
|
|
ein, dass der ganze Verkehr für Ihr Subnetz entlang Ihrer
|
|
PPP-Verbindung zu Ihrer Seite gesendet wird. Aber woher
|
|
wissen die Seiten in der Außenwelt, dass sie die Daten an
|
|
Ihren ISP senden sollen?</para>
|
|
|
|
<para>Es gibt ein System (ähnlich dem verbreiteten DNS),
|
|
das alle zugewiesenen Adressräume verwaltet und ihre
|
|
Verbindung zum Internet-Backbone definiert und dokumentiert.
|
|
Der <quote>Backbone</quote> ist das Netz aus
|
|
Hauptverbindungen, die den Internetverkehr in der ganzen Welt
|
|
transportieren und verteilen. Jeder Backbone-Rechner
|
|
verfügt über eine Kopie von Haupttabellen, die den
|
|
Verkehr für ein bestimmtes Netzwerk über
|
|
hierarchisch vom Backbone über eine Kette von
|
|
Diensteanbietern bis hin zu Ihrer Seite leiten.</para>
|
|
|
|
<para>Es ist die Aufgabe Ihres Diensteanbieters, den
|
|
Backbone-Seiten mitzuteilen, dass sie mit Ihrer Seite
|
|
verbunden wurden. Durch diese Mitteilung der Route ist nun
|
|
auch der Weg zu Ihnen bekannt. Dieser Vorgang wird als
|
|
<emphasis>Bekanntmachung von Routen</emphasis>
|
|
(<foreignphrase>routing propagation</foreignphrase>)
|
|
bezeichnet.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Problembehebung</title>
|
|
|
|
<indexterm>
|
|
<primary><command>traceroute</command></primary>
|
|
</indexterm>
|
|
|
|
<para>Manchmal kommt es zu Problemen bei der Bekanntmachung von
|
|
Routen, und einige Seiten sind nicht in der Lage, Sie zu
|
|
erreichen. Vielleicht der nützlichste Befehl, um
|
|
festzustellen, wo das Routing nicht funktioniert, ist
|
|
&man.traceroute.8;. Er ist außerdem sehr nützlich, wenn
|
|
Sie einen entfernten Rechner nicht erreichen können
|
|
(sehen Sie dazu auch &man.ping.8;).</para>
|
|
|
|
<para>&man.traceroute.8; wird mit dem zu erreichenden Rechner
|
|
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
|
|
entlang des Verbindungspfades. Schließlich wird der
|
|
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
|
|
(beispielsweise durch Nichterreichbarkeit eines
|
|
Gateway-Rechners).</para>
|
|
|
|
<para>Weitere Informationen erhalten Sie in der
|
|
Hilfeseite &man.traceroute.8;.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Multicast-Routing</title>
|
|
<indexterm>
|
|
<primary>Multicast-Routing</primary>
|
|
<secondary>options MROUTING</secondary>
|
|
</indexterm>
|
|
<para>&os; unterstützt sowohl Multicast-Anwendungen als
|
|
auch Multicast-Routing. Multicast-Anwendungen müssen
|
|
nicht konfiguriert werden; sie laufen einfach. Multicast-Routing
|
|
muss in der Kernelkonfiguration aktiviert werden:</para>
|
|
|
|
<programlisting>options MROUTING</programlisting>
|
|
|
|
<para>Zusätzlich müssen für den
|
|
Multicast-Routing-Dæmon, &man.mrouted.8;,
|
|
Tunnel und DVMRP in der Datei <filename>/etc/mrouted.conf</filename>
|
|
eingerichtet werden. Weitere Informationen erhalten
|
|
Sie in der Hilfeseite &man.mrouted.8;.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-wireless">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Eric</firstname>
|
|
<surname>Anderson</surname>
|
|
<contrib>Geschrieben von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Drahtlose Netzwerke</title>
|
|
<indexterm>
|
|
<primary>drahtlose Netzwerke</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>802.11</primary>
|
|
<see>drahtlose Netzwerke</see>
|
|
</indexterm>
|
|
|
|
<sect2>
|
|
<title>Einführung</title>
|
|
|
|
<para>Es kann sehr nützlich sein, einen Computer zu
|
|
verwenden, ohne sich die ganze Zeit mit einem Netzwerkkabel
|
|
herumärgern zu müssen. FreeBSD kann auf drahtlose
|
|
Netzwerke (<foreignphrase>wireless LAN</foreignphrase>)
|
|
zugreifen und sogar als <quote>Zugangspunkt </quote>
|
|
(<foreignphrase>access point</foreignphrase>) für
|
|
drahtlose Netzwerke verwendet werden.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Betriebsmodi drahtloser Geräte</title>
|
|
|
|
<para>Drahtlose Geräte können in zwei Modi konfiguriert
|
|
werden: BSS und IBSS.</para>
|
|
|
|
<sect3>
|
|
<title>BSS-Modus</title>
|
|
<para>Überlicherweise wird der BSS-Modus, der auch
|
|
Infrastruktur-Modus genannt wird, verwendet. In diesem Modus
|
|
sind die Zugangspunkte (<foreignphrase>access
|
|
points</foreignphrase> mit einem Kabel-Netzwerk verbunden. Jedes
|
|
drahtlose Netzwerk besitzt einen Namen, der als die SSID des
|
|
Netzwerks bezeichnet wird.</para>
|
|
|
|
<para>Drahtlose Clients benutzen ein im IEEE-802.11-Standard
|
|
beschriebenes Protokoll, um sich mit den Zugangspunkten zu
|
|
verbinden. Durch die Angabe einer SSID kann sich der Client das
|
|
Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt der
|
|
Client keine SSID an, so wird er mit irgendeinem Netzwerk
|
|
verbunden.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>IBSS-Modus</title>
|
|
<para>Der IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
|
|
für Punkt-zu-Punkt-Verbindungen entworfen. Tatsächlich
|
|
gibt es zwei Modi: Der IBSS-Modus, auch ad-hoc- oder
|
|
IEEE-ad-hoc-Modus, der im IEEE-802.11-Standard definiert wird
|
|
und der demo-ad-hoc-Modus oder Lucent-adhoc-Modus (der zur
|
|
Verwirrung auch schon mal ad-hoc-Modus genannt wird). Der letzte
|
|
Modus stammt aus der Zeit vor IEEE 802.11 und sollte nur noch
|
|
mit alten Installationen verwendet werden. Im folgenden wird
|
|
keiner der ad-hoc-Modi behandelt.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Infrastruktur-Modus</title>
|
|
|
|
<sect3>
|
|
<title>Zugangspunkte</title>
|
|
|
|
<para>Zugangspunkte sind drahtlose Netzwerkgeräte, die es
|
|
einem oder mehreren Clients ermöglichen, diesen als
|
|
einen zentralen Verteiler (Hub) zu benutzen. Wenn ein
|
|
Zugangspunkt verwendet wird, kommunizieren alle Clients
|
|
über diesen Zugangspunkt. Oft werden mehrere
|
|
Zugangspunkte kombiniert, um ein ganzes Gebiet, wie ein
|
|
Haus, ein Unternehmen oder einen Park mit einem drahtlosen
|
|
Netzwerk zu versorgen.</para>
|
|
|
|
<para>Üblicherweise haben Zugangspunkte mehrere
|
|
Netzwerkverbindungen: Die drahtlose Karte, sowie eine oder
|
|
mehrere Ethernetkarten, über die die Verbindung mit dem
|
|
restlichen Netzwerk hergestellt wird.</para>
|
|
|
|
<para>Sie können einen vorkonfigurierten Zugangspunkt
|
|
kaufen, oder Sie können sich unter Verwendung von
|
|
FreeBSD und einer unterstützten drahtlosen Karte einen
|
|
eigenen bauen. Es gibt verschiedene Hersteller, die sowohl
|
|
Zugangspunkte als auch drahtlose Karten mit verschiedensten
|
|
Eigenschaften vertreiben.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Einen FreeBSD-Zugangspunkt installieren</title>
|
|
<indexterm>
|
|
<primary>drahtlose Netzwerke</primary>
|
|
<secondary>Zugangspunkte</secondary>
|
|
</indexterm>
|
|
|
|
<sect4>
|
|
<title>Voraussetzungen</title>
|
|
|
|
<para>Um einen drahtlosen Zugangspunkt unter FreeBSD
|
|
einzurichten, müssen Sie über eine drahtlose
|
|
Karte verfügen. Zurzeit werden dafür von
|
|
FreeBSD nur Karten mit Prism-Chipsatz unterstützt.
|
|
Zusätzlich benötigen Sie eine von FreeBSD
|
|
unterstützte Ethernetkarte (diese sollte nicht schwer
|
|
zu finden sein, da FreeBSD eine Vielzahl von verschiedenen
|
|
Karten unterstützt). Für die weiteren
|
|
Erläuterungen nehmen wir an, dass Sie den ganzen
|
|
Verkehr zwischen dem drahtlosen Gerät und dem an die
|
|
Ethernetkarte angeschlossenen Kabel-Netzwerk über
|
|
die &man.bridge.4;-Funktion realisieren wollen.</para>
|
|
|
|
<para>Die hostap-Funktion, mit der FreeBSD-Zugangspunkte
|
|
implementiert, läuft am besten mit bestimmten
|
|
Firmware-Versionen. Prism 2-Karten sollten die
|
|
Version 1.3.4 oder neuer der Firmware verwenden.
|
|
Prism 2.5- und Prism 3-Karten sollten die
|
|
Version 1.4.9 der Firmware verwenden. Es kann sein, dass
|
|
auch ältere Versionen funktionieren. Zurzeit ist es nur
|
|
mit &windows;-Werkzeugen der Hersteller möglich, die Firmware
|
|
zu aktualisieren.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Einrichtung</title>
|
|
|
|
<para>Stellen Sie als erstes sicher, dass Ihr System die
|
|
drahtlose Karte erkennt:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig -a</userinput>
|
|
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
|
|
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
|
|
ether 00:09:2d:2d:c9:50
|
|
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
|
|
status: no carrier
|
|
ssid ""
|
|
stationname "FreeBSD Wireless node"
|
|
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
|
|
wepmode OFF weptxkey 1</screen>
|
|
|
|
<para>Kümmern Sie sich jetzt noch nicht um die Details,
|
|
sondern stellen Sie nur sicher, dass ihre drahtlose Karte
|
|
überhaupt erkannt und angezeigt wird. Wenn die
|
|
Karte eine PC Card ist und überhaupt nicht
|
|
erkannt wird, schauen Sie in den Hilfeseiten
|
|
&man.pccardc.8; und &man.pccardd.8; nach weiteren
|
|
Hinweisen.</para>
|
|
|
|
<para>Danach müssen Sie ein Modul laden, um die
|
|
Bridge-Funktion von FreeBSD für den Zugangspunkt
|
|
vorzubereiten. Um das &man.bridge.4;-Modul zu laden,
|
|
machen Sie Folgendes:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kldload bridge</userinput></screen>
|
|
|
|
<para>Dabei sollten beim Laden des Moduls keine
|
|
Fehlermeldungen auftreten. Geschieht dies doch, kann es
|
|
sein, dass Sie die Bridge-Funktion (&man.bridge.4;)
|
|
in Ihren Kernel kompilieren müssen. Der Abschnitt
|
|
<link linkend="network-bridging">LAN-Kopplung mit einer
|
|
Bridge</link> sollte Ihnen bei dieser Aufgabe
|
|
behilflich sein.</para>
|
|
|
|
<para>Wenn die Bridge-Funktion aktiviert ist,
|
|
müssen wir FreeBSD mitteilen, welche Schnittstellen
|
|
über die Bridge verbunden werden sollen. Dazu
|
|
verwenden wir &man.sysctl.8;:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl net.link.ether.bridge=1</userinput>
|
|
&prompt.root; <userinput>sysctl net.link.ether.bridge_cfg="wi0 xl0"</userinput>
|
|
&prompt.root; <userinput>sysctl net.inet.ip.forwarding=1</userinput></screen>
|
|
|
|
<para>Nun ist es an der Zeit, die drahtlose Karte zu
|
|
installieren.</para>
|
|
|
|
<para>Der folgende Befehl konfiguriert einen Zugangspunkt:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"</userinput></screen>
|
|
|
|
<para>Die &man.ifconfig.8; Zeile aktiviert das
|
|
<devicename>wi0</devicename>-Gerät, und setzt die
|
|
SSID auf <literal>my_net</literal> sowie den Namen des
|
|
Zugangspunkts auf <literal>FreeBSD AP</literal>
|
|
Mit <option>media DS/11Mbps</option> wird die Karte in den
|
|
11 Mbps-Modus versetzt. Diese Option ist nötig,
|
|
damit <option>mediaopt</option>-Optionen wirksam werden. Mit
|
|
<option>mediaopt hostap</option> wird die Schnittstelle als
|
|
Zugangspunkt konfiguriert. Der zu benutzende 802.11b-Kanal
|
|
wird mit <option>channel 11</option> festgelegt. In der
|
|
Hilfeseite &man.wicontrol.8; werden weitere Kanäle
|
|
<!-- für die regulatory domain -->
|
|
aufgezählt.</para>
|
|
|
|
<para>Nun sollten Sie über einen voll
|
|
funktionsfähigen und laufenden Zugangspunkt
|
|
verfügen. Mehr Informationen finden Sie
|
|
in den Hilfeseiten &man.wicontrol.8;, &man.ifconfig.8;
|
|
und &man.wi.4;.</para>
|
|
|
|
<para>Außerdem ist es empfehlenswert, den folgenden
|
|
Abschnitt zu lesen, um sich über die Sicherung bzw.
|
|
Verschlüsselung von Zugangspunkten zu
|
|
informieren.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Status Informationen</title>
|
|
<para>Wenn der Zugangspunkt eingerichtet ist und läuft,
|
|
können Sie die verbundenen Clients mit dem nachstehenden
|
|
Kommando abfragen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>wicontrol -l</userinput>
|
|
1 station:
|
|
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
|
|
</screen>
|
|
|
|
<para>Das Beispiel zeigt eine verbundene Station und die
|
|
dazugehörenden Verbindungsparameter. Die angegebene
|
|
Signalstärke sollte nur relativ interpretiert werden, da
|
|
die Umrechnung in dBm oder andere Einheiten abhängig von
|
|
der Firmware-Version ist.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Clients</title>
|
|
|
|
<para>Ein drahtloser Client ist ein System, das direkt auf
|
|
einen Zugangspunkt oder einen anderen Client
|
|
zugreift.</para>
|
|
|
|
<para>Üblicherweise haben drahtlose Clients nur ein
|
|
Netzwerkgerät, die drahtlose Netzkarte.</para>
|
|
|
|
<para>Es gibt verschiedene Möglichkeiten, einen
|
|
drahtlosen Client zu konfigurieren. Diese hängen von
|
|
den verschiedenen drahtlosen Betriebsmodi ab. Man
|
|
unterscheidet vor allem zwischen BSS (Infrastrukturmodus,
|
|
erfordert einen Zugangspunkt) und IBSS (ad-hoc,
|
|
Peer-to-Peer-Modus, zwischen zwei Clients, ohne
|
|
Zugangspunkt). In unserem Beispiel verwenden wir den weiter
|
|
verbreiteten BSS-Modus, um einen Zugangspunkt anzusprechen.
|
|
</para>
|
|
|
|
<sect4>
|
|
<title>Voraussetzungen</title>
|
|
|
|
<para>Es gibt nur eine Voraussetzung, um FreeBSD als
|
|
drahtlosen Client betreiben zu können: Sie brauchen
|
|
eine von FreeBSD unterstützte drahtlose
|
|
Karte.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Einen drahtlosen FreeBSD-Client einrichten</title>
|
|
|
|
<para>Sie müssen ein paar Dinge über das drahtlose
|
|
Netzwerk wissen, mit dem Sie sich verbinden wollen, bevor
|
|
Sie starten können. In unserem Beispiel verbinden
|
|
wir uns mit einem Netzwerk, das den Namen
|
|
<literal>my_net</literal> hat, und bei dem die
|
|
Verschlüsselung deaktiviert ist.</para>
|
|
|
|
<para>Anmerkung: In unserem Beispiel verwenden wir keine
|
|
Verschlüsselung. Dies ist eine gefährliche
|
|
Situation. Im nächsten Abschnitt werden Sie daher
|
|
lernen, wie man die Verschlüsselung aktiviert, warum
|
|
es wichtig ist, dies zu tun, und warum einige
|
|
Verschlüsselungstechnologien Sie trotzdem nicht
|
|
völlig schützen.</para>
|
|
|
|
<para>Stellen Sie sicher, dass Ihre Karte von FreeBSD
|
|
erkannt wird:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig -a</userinput>
|
|
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
|
|
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
|
|
ether 00:09:2d:2d:c9:50
|
|
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
|
|
status: no carrier
|
|
ssid ""
|
|
stationname "FreeBSD Wireless node"
|
|
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
|
|
wepmode OFF weptxkey 1</screen>
|
|
|
|
<para>Nun werden wir die Einstellungen der Karte unserem
|
|
Netzwerk anpassen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net</userinput></screen>
|
|
|
|
<para>Ersetzen Sie <hostid
|
|
role="IPAddr">192.168.0.20</hostid> und <hostid
|
|
role="Netmask">255.255.255.0</hostid> mit einer
|
|
gültigen IP-Adresse und Netzmaske ihres
|
|
Kabel-Netzwerks. Bedenken Sie außerdem, dass unser
|
|
Zugangspunkt als Bridge zwischen dem drahtlosen und
|
|
dem Kabel-Netzwerk fungiert. Für die anderen
|
|
Rechner Ihres Netzwerks befinden Sie sich, genauso wie
|
|
diese, im gleichen Kabel-Netzwerk, obwohl Sie zum
|
|
drahtlosen Netzwerk gehören.</para>
|
|
|
|
<para>Nachdem Sie dies erledigt haben, sollten Sie andere
|
|
Rechner (Hosts) im Kabel-Netzwerk anpingen können.
|
|
Dies genauso, wie wenn Sie über eine
|
|
Standardkabelverbindung mit ihnen verbunden
|
|
wären.</para>
|
|
|
|
<para>Wenn Probleme mit Ihrer drahtlosen Verbindung
|
|
auftreten, stellen Sie sicher, dass Sie mit dem
|
|
Zugangspunkt verbunden sind:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig wi0</userinput></screen>
|
|
|
|
<para>sollte einige Informationen ausgeben und Sie sollten
|
|
Folgendes sehen:</para>
|
|
|
|
<screen>status: associated</screen>
|
|
|
|
<para>Wird dies nicht angezeigt, sind Sie entweder
|
|
außerhalb der Reichweite des Zugangspunktes, haben die
|
|
Verschlüsselung deaktiviert, oder Sie haben ein
|
|
anderes Konfigurationsproblem.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Verschlüsselung</title>
|
|
<indexterm>
|
|
<primary>drahtlose Netzwerke</primary>
|
|
<secondary>Verschlüsselung</secondary>
|
|
</indexterm>
|
|
|
|
<para>Verschlüsselung ist in einem drahtlosen Netzwerk
|
|
wichtig, da Sie das Netzwerk nicht länger in einem
|
|
geschützten Bereich betreiben können. Ihre Daten
|
|
verbreiten sich in der ganzen Nachbarschaft, das heißt
|
|
jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es die
|
|
Verschlüsselung. Durch die Verschlüsselung der durch
|
|
die Luft versendeten Daten machen Sie es einem Dritten sehr
|
|
viel schwerer, Ihre Daten abzufangen oder auf diese
|
|
zuzugreifen.</para>
|
|
|
|
<para>Die gebräuchlichsten Methoden, um Daten zwischen
|
|
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
|
|
sind WEP und &man.ipsec.4;.</para>
|
|
|
|
<sect4>
|
|
<title>WEP</title>
|
|
<indexterm>
|
|
<primary>WEP</primary>
|
|
</indexterm>
|
|
|
|
<para>WEP ist die Abkürzung für Wired Equivalency
|
|
Protocol ("Verkabelung entsprechendes Protokoll"). WEP
|
|
war ein Versuch, drahtlose Netzwerke genauso sicher und
|
|
geschützt zu machen wie verkabelte Netzwerke.
|
|
Unglücklicherweise wurde es bereits geknackt, und ist
|
|
relativ einfach auszuhebeln. Sie sollten sich also nicht
|
|
darauf verlassen, wenn Sie sensible Daten
|
|
verschlüsseln wollen.</para>
|
|
|
|
<para>Allerdings ist eine schlechte Verschlüsselung
|
|
noch immer besser als gar keine Verschlüsselung.
|
|
Aktivieren Sie daher WEP für Ihren neuen FreeBSD
|
|
Zugangspunkt:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap</userinput></screen>
|
|
|
|
<para>Auf dem Client können Sie WEP wie folgt
|
|
aktivieren:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890</userinput></screen>
|
|
|
|
<para>Beachten Sie bitte, dass Sie
|
|
<literal>0x1234567890</literal> durch einen besseren
|
|
Schlüssel ersetzen sollten.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>IPsec</title>
|
|
|
|
<para>&man.ipsec.4; ist ein viel besseres und robusteres
|
|
Werkzeug, um Daten in einem Netzwerk zu
|
|
verschlüsseln und ist auch der bevorzugte Weg,
|
|
Daten in einem drahtlosen Netzwerk zu verschlüsseln.
|
|
Weitere Informationen über
|
|
&man.ipsec.4;-Sicherheit, und dessen Implementierung
|
|
enthält der Abschnitt <link linkend="ipsec">IPsec</link>
|
|
des Handbuches.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Werkzeuge</title>
|
|
|
|
<para>Es gibt einige Werkzeuge, die dazu dienen, Ihr
|
|
drahtloses Netzwerk zu installieren, und auftretende
|
|
Probleme zu beheben. Wir werden nun versuchen, einige davon
|
|
zu beschreiben.</para>
|
|
|
|
<sect4>
|
|
<title><application>bsd-airtools</application></title>
|
|
|
|
<para>Das Paket <application>bsd-airtools</application>
|
|
enthält einen kompletten Werkzeugsatz zum
|
|
Herausfinden von WEP-Schlüsseln, zum Auffinden von
|
|
Zugangspunkten, usw.</para>
|
|
|
|
<para>Die <application>bsd-airtools</application>
|
|
können Sie über den <filename
|
|
role="package">net/bsd-airtools</filename> Port
|
|
installieren. Wie ein Port installiert wird,
|
|
beschreibt <xref linkend="ports"> des Handbuchs.</para>
|
|
|
|
<para>Das Programm <command>dstumbler</command> ist ein
|
|
Werkzeug, das Sie beim Auffinden von Zugangspunkten
|
|
unterstützt, und das Signal-Rausch-Verhältnis
|
|
graphisch darstellen kann. Wenn Sie Probleme beim
|
|
Einrichten und Betreiben Ihres Zugangspunktes haben,
|
|
könnte <command>dstumbler</command> genau das
|
|
Richtige für Sie sein.</para>
|
|
|
|
<para>Um die Sicherheit Ihres drahtlosen Netzwerks zu
|
|
überprüfen, könnten Sie das Paket
|
|
<quote>dweputils</quote> (<command>dwepcrack</command>,
|
|
<command>dwepdump</command> und
|
|
<command>dwepkeygen</command>) verwenden, um
|
|
festzustellen, ob WEP Ihren Sicherheitsansprüchen
|
|
genügt.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><application>wicontrol</application>,
|
|
<application>ancontrol</application> und
|
|
<application>raycontrol</application></title>
|
|
|
|
<para>Dies sind Werkzeuge, um das Verhalten Ihrer drahtlosen
|
|
Karte im drahtlosen Netzwerk zu kontrollieren. In den
|
|
obigen Beispielen haben wir &man.wicontrol.8; verwendet,
|
|
da es sich bei unser drahtlosen Karte um ein Gerät
|
|
der <devicename>wi0</devicename>-Schnittstelle handelt.
|
|
Hätten Sie eine drahtlose Karte von Cisco,
|
|
würden Sie diese über
|
|
<devicename>an0</devicename> ansprechen, und daher
|
|
&man.ancontrol.8; verwenden.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Das Kommando <application>ifconfig</application></title>
|
|
<indexterm>
|
|
<primary>ifconfig</primary>
|
|
</indexterm>
|
|
|
|
<para>&man.ifconfig.8; kennt zwar viele Optionen von
|
|
&man.wicontrol.8;, einige fehlen jedoch. Die Hilfeseite
|
|
&man.ifconfig.8; zählt weitere Parameter und
|
|
Optionen auf.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Unterstützte Karten</title>
|
|
|
|
<sect4>
|
|
<title>Zugangspunkt</title>
|
|
|
|
<para>Die einzigen Karten, die im BSS-Modus (das heißt als
|
|
Zugangspunkt) derzeit unterstützt werden, sind solche
|
|
mit Prism 2-, 2.5- oder 3-Chipsatz. Für eine
|
|
komplette Übersicht lesen Sie bitte &man.wi.4;.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Clients</title>
|
|
|
|
<para>Beinahe alle nach 802.11b arbeitenden drahtlosen
|
|
Karten werden von FreeBSD unterstützt. Die meisten dieser
|
|
Karten von Prism, Spectrum24, Hermes, Aironet und Raylink
|
|
arbeiten als drahtlose Netzkarten im IBSS-Modus (ad-hoc,
|
|
Peer-to-Peer und BSS).</para>
|
|
</sect4>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-bridging">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Steve</firstname>
|
|
<surname>Peterson</surname>
|
|
<contrib>Geschrieben von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>LAN-Kopplung mit einer Bridge</title>
|
|
|
|
<sect2>
|
|
<title>Einführung</title>
|
|
|
|
<indexterm><primary>Subnetz</primary></indexterm>
|
|
<indexterm><primary>Bridge</primary></indexterm>
|
|
|
|
<para>Manchmal ist es nützlich, ein physikalisches Netzwerk
|
|
(wie ein Ethernetsegment) in zwei separate Netzwerke aufzuteilen,
|
|
ohne gleich IP-Subnetze zu erzeugen, die über einen Router
|
|
miteinander verbunden sind. Ein Gerät, das zwei Netze
|
|
auf diese Weise verbindet, wird als <emphasis>Bridge</emphasis>
|
|
bezeichnet. Jedes FreeBSD-System mit zwei Netzkarten kann
|
|
als Bridge fungieren.</para>
|
|
|
|
<para>Die Bridge arbeitet, indem sie die MAC Layeradressen (Ethernet
|
|
Adressen) der Geräte in ihren Netzsegmenten lernt. Der
|
|
Verkehr wird nur dann zwischen zwei Netzsegmenten weitergeleitet,
|
|
wenn sich Sender und Empfänger in verschiedenen Netzsegmenten
|
|
befinden.</para>
|
|
|
|
<para>In vielerlei Hinsicht entspricht eine Bridge daher einem
|
|
Ethernet-Switch mit sehr wenigen Ports.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Situationen, in denen <emphasis>Bridging</emphasis> angebracht
|
|
ist</title>
|
|
|
|
<para>Eine Bridge wird vor allem in folgenden zwei Situationen
|
|
verwendet.</para>
|
|
|
|
<sect3>
|
|
<title>Hohes Datenaufkommen in einem Segment</title>
|
|
|
|
<para>In der ersten Situation wird Ihr physisches Netz
|
|
mit Datenverkehr überschwemmt. Aus irgendwelchen
|
|
Gründen wollen Sie allerdings keine Subnetze verwenden,
|
|
die über einen Router miteinander verbunden sind.</para>
|
|
|
|
<para>Stellen Sie sich einen Zeitungsverlag vor, in dem sich die
|
|
Redaktions- und Produktionsabteilungen in verschiedenen Subnetzen
|
|
befinden. Die Redaktionsrechner verwenden den Server A für
|
|
Dateioperationen, und die Produktionsrechner verwenden den
|
|
Server B. Alle Benutzer sind über ein gemeinsames
|
|
Ethernet-LAN miteinander verbunden. Durch den hohen Datenverkehr
|
|
sinkt die Geschwindigkeit des gesamten Netzwerks.</para>
|
|
|
|
<para>Würde man die Redaktionsrechner und die
|
|
Produktionsrechner in separate Netzsegmente auslagern,
|
|
könnte man diese beiden Segmente über eine Bridge
|
|
verbinden. Nur der für Rechner im <emphasis>anderen</emphasis>
|
|
Segment bestimmte Verkehr wird dann über die Brigde in
|
|
das andere Netzsegment geleitet. Dadurch verringert sich das
|
|
Gesamtdatenaufkommen in beiden Segmenten.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Filtering/Traffic Shaping Firewall</title>
|
|
|
|
<indexterm><primary>Firewall</primary></indexterm>
|
|
<indexterm><primary>IP-Masquerading</primary></indexterm>
|
|
|
|
<para>Die zweite häufig anzutreffende Situation tritt auf,
|
|
wenn Firewallfunktionen benötigt werden, ohne dass
|
|
IP-Maskierung (NAT – Network Adress Translation)
|
|
verwendet wird.</para>
|
|
|
|
<para>Ein Beispiel dafür wäre ein kleines Unternehmen,
|
|
das über DSL oder ISDN an ihren ISP angebunden ist. Es
|
|
verfügt über 13 weltweit erreichbare IP-Adressen, und
|
|
sein Netzwerk besteht aus 10 Rechnern. In dieser Situation ist
|
|
die Verwendung von Subnetzen sowie einer routerbasierten Firewall
|
|
schwierig.</para>
|
|
|
|
<indexterm><primary>Router</primary></indexterm>
|
|
<indexterm><primary>DSL</primary></indexterm>
|
|
<indexterm><primary>ISDN</primary></indexterm>
|
|
|
|
<para>Eine brigdebasierte Firewall kann konfiguriert und in den
|
|
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
|
|
sich um IP-Adressen kümmern zu müssen.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Die LAN-Kopplung konfigurieren</title>
|
|
|
|
<sect3>
|
|
<title>Auswahl der Netzkarten</title>
|
|
|
|
<para>Eine Bridge benötigt mindestens zwei Netzkarten.
|
|
Leider sind unter FreeBSD 4.x nicht alle verfügbaren
|
|
Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;, um
|
|
sich über Details der unterstützten Karten zu
|
|
informieren.</para>
|
|
|
|
<para>Installieren und testen Sie beide Netzkarten, bevor Sie
|
|
fortfahren.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Anpassen der Kernelkonfiguration</title>
|
|
|
|
<indexterm><primary>Kernelkonfiguration</primary></indexterm>
|
|
<indexterm>
|
|
<primary>Kernelkonfiguration</primary>
|
|
<secondary>options BRIDGE</secondary>
|
|
</indexterm>
|
|
|
|
<para>Um die Kernelunterstützung für die LAN-Kopplung
|
|
zu aktivieren, fügen Sie</para>
|
|
|
|
<programlisting>options BRIDGE</programlisting>
|
|
|
|
<para>in Ihre Kernelkonfigurationsdatei ein, und erzeugen einen
|
|
neuen Kernel.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Firewallunterstützung</title>
|
|
|
|
<indexterm><primary>Firewall</primary></indexterm>
|
|
|
|
<para>Wenn Sie die Bridge als Firewall verwenden wollen, müssen
|
|
Sie zusätzlich die Option <varname>IPFIREWALL</varname>
|
|
einfügen. Die Konfiguration von Firewalls
|
|
wird in <xref linkend="firewalls"> beschrieben.</para>
|
|
|
|
<para>Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
|
|
Bridge leiten wollen, müssen Sie eine zusätzliche,
|
|
undokumentierte Option verwenden. Es handelt sich um
|
|
<literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal>.
|
|
Beachten Sie aber, dass Ihre Firewall durch diese Option per
|
|
Voreinstellung alle Pakete akzeptiert. Sie sollten sich also
|
|
über die Auswirkungen dieser Option im Klaren sein,
|
|
bevor Sie sie verwenden.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Unterstützung für Traffic Shaping</title>
|
|
|
|
<para>Wenn Sie die Bridge als Traffic-Shaper verwenden wollen,
|
|
müssen Sie die Option <literal>DUMMYNET</literal> in
|
|
Ihre Kernelkonfigurationsdatei einfügen. Lesen Sie
|
|
&man.dummynet.4;, um weitere Informationen zu erhalten.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Die LAN-Kopplung aktivieren</title>
|
|
|
|
<para>Fügen Sie die Zeile</para>
|
|
|
|
<programlisting>net.link.ether.bridge=1</programlisting>
|
|
|
|
<para>in <filename>/etc/sysctl.conf</filename> ein, um die Bridge
|
|
zur Laufzeit zu aktivieren, sowie die Zeile</para>
|
|
|
|
<programlisting>net.link.ether.bridge_cfg=<replaceable>if1</replaceable>,<replaceable>if2</replaceable></programlisting>
|
|
|
|
<para>um die LAN-Kopplung für die festgelegten Geräte
|
|
zu ermöglichen (ersetzen Sie dazu <replaceable>if1</replaceable>
|
|
und <replaceable>if2</replaceable> mit den Namen Ihrer Netzkarten).
|
|
Wenn Sie die Datenpakete via &man.ipfw.8; filtern wollen, sollten
|
|
Sie zusätzlich Folgendes einfügen:</para>
|
|
|
|
<programlisting>net.link.ether.bridge_ipfw=1</programlisting>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Sonstige Informationen</title>
|
|
|
|
<para>Wenn Sie via <command>telnet</command> auf die Bridge zugreifen
|
|
wollen, ist es in Ordnung, einer der beiden Netzkarten eine IP-Adresse
|
|
zuzuweisen. Es besteht Einigkeit darüber, dass es eine schlechte
|
|
Idee ist, beiden Karten eine IP-Adresse zuzuweisen.</para>
|
|
|
|
<para>Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann es
|
|
dennoch nicht mehr als einen Weg zwischen zwei Arbeitsplätzen
|
|
geben. Das heißt, Spanning tree link Management wird nicht
|
|
unterstützt.</para>
|
|
|
|
<para>Eine Bridge kann, besonders für Verkehr über
|
|
Segmente, die Laufzeiten von Paketen erhöhen.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-nfs">
|
|
<!-- j.kois@web.de, 04. April 2003 -->
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Tom</firstname>
|
|
<surname>Rhodes</surname>
|
|
<contrib>Reorganisiert und erweitert von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Bill</firstname>
|
|
<surname>Swingle</surname>
|
|
<contrib>Geschrieben von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>NFS – Network File System</title>
|
|
|
|
<indexterm><primary>NFS</primary></indexterm>
|
|
|
|
<para>Eines der vielen von FreeBSD unterstützten Dateisysteme
|
|
ist das Netzwerkdateisystem, das auch als <acronym>NFS</acronym>
|
|
bekannt ist. <acronym>NFS</acronym> ermöglicht es einem
|
|
System, Dateien und Verzeichnisse über ein Netzwerk mit anderen
|
|
zu teilen. Über <acronym>NFS</acronym> können Benutzer
|
|
und Programme auf Daten entfernter Systeme zugreifen, und zwar
|
|
genauso, wie wenn es sich um lokale Daten handeln würde.</para>
|
|
|
|
<para>Einige der wichtigsten Vorteile von <acronym>NFS</acronym>
|
|
sind:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Lokale Arbeitsstationen benötigen weniger Plattenplatz,
|
|
da gemeinsam benutzte Daten nur auf einem einzigen Rechner
|
|
vorhanden sind. Alle anderen Stationen greifen über das
|
|
Netzwerk auf diese Daten zu.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Benutzer benötigen nur noch ein zentrales
|
|
Heimatverzeichnis auf einem <acronym>NFS</acronym>-Server.
|
|
Diese Verzeichnisse sind über das Netzwerk auf allen
|
|
Stationen verfügbar.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Speichergeräte wie Disketten-, CD-ROM-
|
|
oder ZIP-Laufwerke können über das Netzwerk von
|
|
anderen Arbeitstationen genutzt werden. Dadurch sind für
|
|
das gesamte Netzwerk deutlich weniger Speichergeräte
|
|
nötig.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<sect2>
|
|
<title>Wie funktioniert <acronym>NFS</acronym>?</title>
|
|
|
|
<para><acronym>NFS</acronym> besteht aus zwei Hauptteilen: Einem
|
|
Server und einem oder mehreren Clients. Der Client greift
|
|
über das Netzwerk auf die Daten zu, die auf dem Server
|
|
gespeichert sind. Damit dies korrekt funktioniert, müssen
|
|
einige Prozesse konfiguriert und gestartet werden:</para>
|
|
|
|
<note>
|
|
<para>In &os;nbsp;5.X wurde <application>portmap</application>
|
|
durch <command>rpcbind</command> ersetzt. Benutzer von
|
|
&os;nbsp;5.X müssen in den folgenden Beispielen
|
|
<application>portmap</application> durch
|
|
<command>rpcbind</command> ersetzen.</para>
|
|
</note>
|
|
|
|
<para>Der Server benötigt folgende Daemonen:</para>
|
|
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>Server</secondary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary><application>portmap</application></primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary><application>mountd</application></primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary><application>nfsd</application></primary>
|
|
</indexterm>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Daemon</entry>
|
|
|
|
<entry>Beschreibung</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>nfsd</entry>
|
|
|
|
<entry>Der <acronym>NFS</acronym>-Daemon. Er bearbeitet
|
|
Anfragen der <acronym>NFS</acronym>-Clients.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>mountd</entry>
|
|
|
|
<entry>Der <acronym>NFS</acronym>-Mount-Daemon. Er
|
|
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
|
|
weitergibt.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>portmap</entry>
|
|
|
|
<entry> Der Portmapper-Daemon. Durch ihn erkennen die
|
|
<acronym>NFS</acronym>-Clients, welchen Port der
|
|
<acronym>NFS</acronym>-Server verwendet.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Der Client kann ebenfalls einen Daemon aufrufen, und zwar den
|
|
<application>nfsiod</application>-Daemon. Der
|
|
<application>nfsiod</application>-Daemon bearbeitet Anfragen vom
|
|
<acronym>NFS</acronym>-Server. Er ist optional und verbessert
|
|
die Leistung des Netzwerks. Für eine normale und korrekte
|
|
Arbeit ist er allerdings nicht erforderlich. Lesen Sie
|
|
&man.nfsiod.8;, wenn Sie weitere Informationen benötigen.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="network-configuring-nfs">
|
|
|
|
<title><acronym>NFS</acronym> einrichten</title>
|
|
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>einrichten</secondary>
|
|
</indexterm>
|
|
|
|
<para><acronym>NFS</acronym> läßt sich leicht
|
|
einrichten. Die nötigen Prozesse werden durch einige
|
|
Änderungen in <filename>/etc/rc.conf</filename> bei
|
|
jedem Systemstart gestartet.</para>
|
|
|
|
<para>Stellen Sie sicher, dass auf dem <acronym>NFS</acronym>-Server
|
|
folgende Optionen in <filename>/etc/rc.conf</filename>
|
|
gesetzt sind:</para>
|
|
|
|
<programlisting>
|
|
portmap_enable="YES"
|
|
nfs_server_enable="YES"
|
|
mountd_flags="-r"
|
|
</programlisting>
|
|
|
|
<para><command>mountd</command> läuft automatisch, wenn der
|
|
<acronym>NFS</acronym>-Server aktiviert ist.</para>
|
|
|
|
<para>Auf dem Client muss in <filename>/etc/rc.conf</filename>
|
|
folgende Option gesetzt sein:</para>
|
|
|
|
<programlisting>nfs_client_enable="YES"</programlisting>
|
|
|
|
<para>
|
|
<filename>/etc/exports</filename> legt fest, welche Dateisysteme
|
|
<acronym>NFS</acronym> exportieren (manchmal auch als
|
|
<quote>teilen</quote> bezeichnet) soll. Jede Zeile in
|
|
<filename>/etc/exports</filename> legt ein Dateisystem sowie
|
|
die Arbeitsstationen, die darauf Zugriff haben, fest. Außerdem
|
|
ist es möglich, Zugriffsoptionen festzulegen. Es gibt viele
|
|
verschiedene Optionen, allerdings werden hier nur einige von
|
|
ihnen erwähnt. Wenn Sie Informationen über weitere
|
|
Optionen benötigen, lesen Sie &man.exports.5;.</para>
|
|
|
|
<para>Nun folgen einige Beispieleinträge für
|
|
<filename>/etc/exports</filename>:</para>
|
|
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>Export von Dateisystemen</secondary>
|
|
</indexterm>
|
|
|
|
<para>Die folgenden Beispiele geben Ihnen Anhaltspunkte zum
|
|
Exportieren von Dateisystemen, obwohl diese Einstellungen
|
|
natürlich von Ihrer Arbeitsumgebung und Ihrer
|
|
Netzwerkkonfiguration abhängen. Das nächste
|
|
Beispiel exportiert das Verzeichnis <filename>/cdrom</filename>
|
|
für drei Rechner, die sich in derselben Domäne wie
|
|
der Server befinden oder für die entsprechende Einträge
|
|
in <filename>/etc/hosts</filename> existieren.
|
|
Die Option <option>-ro</option> kennzeichnet das
|
|
exportierte Dateisystem als schreibgeschützt. Durch dieses
|
|
Flag ist das entfernte System nicht in der Lage, das exportierte
|
|
Dateisystem zu verändern.</para>
|
|
|
|
<programlisting>/cdrom -ro host1 host2 host3</programlisting>
|
|
|
|
<para>Die nächste Zeile exportiert <filename>/home</filename>
|
|
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
|
|
ist nützlich, wenn Sie über ein privates Netzwerk ohne
|
|
<acronym>DNS</acronym>-Server verfügen. Optional
|
|
könnten interne Rechnernamen auch in
|
|
<filename>/etc/hosts</filename> konfiguriert werden.
|
|
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
|
|
&man.hosts.5;. Durch das Flag <option>-alldirs</option> wird es
|
|
möglich, auch Unterverzeichnisse als Mountpunkte
|
|
festzulegen. Dies bedeutet aber nicht, dass alle
|
|
Unterverzeichnisse eingehängt werden, vielmehr wird es dem
|
|
Client ermöglicht, nur diejenigen Verzeichnisse
|
|
einzuhängen, die auch benötigt werden.</para>
|
|
|
|
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
|
|
|
|
<para>Die nächste Zeile exportiert <filename>/a</filename>,
|
|
damit Clients von verschiedenen Domänen auf das Dateisystem
|
|
zugreifen können. Das <option>-maproot=root</option>-Flag
|
|
erlaubt es dem Benutzer <username>root</username> des entfernten
|
|
Systems, als <username>root</username> auf das exportierte
|
|
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
|
|
kann selbst <username>root</username> nicht auf das exportierte
|
|
Dateisystem schreiben.</para>
|
|
|
|
<programlisting>/a -maproot=root host.example.com box.example.org</programlisting>
|
|
|
|
<para>Damit ein Client auf ein exportiertes Dateisystem zugreifen
|
|
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
|
|
sicher, dass der Client in <filename>/etc/exports</filename>
|
|
aufgeführt wird.</para>
|
|
|
|
<para>Jede Zeile in <filename>/etc/exports</filename> entspricht
|
|
der Exportinformation für ein Dateisystem auf einen Rechner.
|
|
Ein entfernter Rechner kann für jedes Dateisystem nur
|
|
einmal festgelegt werden, und kann auch nur einen Standardeintrag
|
|
haben. Nehmen wir an, dass <filename>/usr</filename>
|
|
ein einziges Dateisystem ist. Dann wären folgende Zeilen
|
|
ungültig:</para>
|
|
|
|
<programlisting>
|
|
/usr/src client
|
|
/usr/ports client
|
|
</programlisting>
|
|
|
|
<para>Das Dateisystem <filename>/usr</filename> wird hier zweimal
|
|
auf den selben Rechner (<hostid>client</hostid>)
|
|
exportiert. Dies ist aber nicht zulässig. Der richtige
|
|
Eintrag sieht daher so aus:</para>
|
|
|
|
<programlisting>/usr/src /usr/ports client</programlisting>
|
|
|
|
<para>Die Eigenschaften eines auf einen anderen Rechner
|
|
exportierten Dateisystems müssen alle in einer Zeile
|
|
stehen. Zeilen, in denen kein Rechner festgelegt wird, werden
|
|
als einzelner Rechner behandelt. Dies schränkt die
|
|
Möglichkeiten zum Export von Dateisystemen ein, für
|
|
die meisten Anwender ist dies aber kein Problem.</para>
|
|
|
|
<para>Eine gültige Exportliste, in der
|
|
<filename>/usr</filename> und <filename>/exports</filename>
|
|
lokale Dateisysteme sind, sieht so aus:</para>
|
|
|
|
<programlisting>
|
|
# Export src and ports to client01 and client02, but only
|
|
# client01 has root privileges on it
|
|
/usr/src /usr/ports -maproot=root client01
|
|
/usr/src /usr/ports client02
|
|
# The client machines have root and can mount anywhere
|
|
# on /exports. Anyone in the world can mount /exports/obj read-only
|
|
/exports -alldirs -maproot=root client01 client02
|
|
/exports/obj -ro
|
|
</programlisting>
|
|
|
|
<para>Sie müssen <command>mountd</command> nach jeder
|
|
Änderung von <filename>/etc/exports</filename> neu
|
|
starten, damit die Änderungen wirksam werden. Dies
|
|
kann durch das Senden des HUP-Signals an den
|
|
<command>mountd</command>-Prozess erfolgen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
|
|
|
|
<para>Alternativ können Sie auch das System neu starten.
|
|
Dies ist allerdings nicht nötig. Wenn Sie die folgenden
|
|
Befehle als <username>root</username> ausführen, sollte
|
|
alles korrekt gestartet werden.</para>
|
|
|
|
<para>Auf dem <acronym>NFS</acronym>-Server:</para>
|
|
|
|
<screen>&prompt.root; <userinput>portmap</userinput>
|
|
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
|
|
&prompt.root; <userinput>mountd -r</userinput></screen>
|
|
|
|
<para>Auf dem <acronym>NFS</acronym>-Client:</para>
|
|
|
|
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
|
|
|
|
<para>Nun sollte alles bereit sein, um ein entferntes Dateisystem
|
|
einhängen zu können. In unseren Beispielen nennen wir
|
|
den Server <literal>server</literal>, den Client
|
|
<literal>client</literal>. Wenn Sie ein entferntes Dateisystem
|
|
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
|
|
testen möchten, führen Sie auf dem Client als
|
|
<username>root</username> einen Befehl ähnlich dem
|
|
folgenden aus:</para>
|
|
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>Dateisysteme einhängen</secondary>
|
|
</indexterm>
|
|
|
|
<screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen>
|
|
|
|
<para>Dadurch wird das Verzeichnis <filename>/home</filename> des
|
|
Servers auf dem Client unter <filename>/mnt</filename> eingehängt.
|
|
Wenn alles korrekt konfiguriert wurde, sehen Sie auf dem Client
|
|
im Verzeichnis <filename>/mnt</filename> alle Dateien des
|
|
Servers.</para>
|
|
|
|
<para>Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
|
|
automatisch einhängen wollen, fügen Sie das Dateisystem
|
|
in <filename>/etc/fstab</filename> ein. Dazu ein Beispiel:</para>
|
|
|
|
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
|
|
|
|
<para>Für Informationen zu allen möglichen Optionen lesen
|
|
Sie bitte &man.fstab.5;.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Praktische Anwendungen</title>
|
|
|
|
<para><acronym>NFS</acronym> ist in vielen Situationen
|
|
nützlich. Einige Anwendungsbereiche finden Sie in der
|
|
folgenden Liste:</para>
|
|
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>Anwendungsbeispiele</secondary>
|
|
</indexterm>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Mehrere Maschinen können sich ein CD-ROM-Laufwerk
|
|
oder andere Medien teilen. Dies ist billiger und außerdem
|
|
praktischer, um Programme auf mehreren Rechnern zu
|
|
installieren.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>In größeren Netzwerken ist es praktisch,
|
|
einen zentralen <acronym>NFS</acronym>-Server einzurichten,
|
|
auf dem die Heimatverzeichnisse der Benutzer gespeichert
|
|
werden. Diese Heimatverzeichnisse werden über das
|
|
Netzwerk exportiert. Dadurch haben die Benutzer immer das
|
|
gleiche Heimatverzeichnis zur Verfügung,
|
|
unabhängig davon, an welchem Arbeitsplatz sie sich
|
|
anmelden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Verschiedene Rechner können auf ein gemeinsames
|
|
<filename>/usr/ports/distfiles</filename>-Verzeichnis
|
|
zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern
|
|
installieren wollen, greifen Sie einfach auf dieses
|
|
Verzeichnis zu, ohne die Quelldateien auf jede Maschine
|
|
zu kopieren.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2 id="network-amd">
|
|
<!-- j.kois@web.de, 05. April 2003 -->
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Wylie</firstname>
|
|
<surname>Stilwell</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Chern</firstname>
|
|
<surname>Lee</surname>
|
|
<contrib>Überarbeitet von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title><application>AMD</application></title>
|
|
|
|
<indexterm><primary>amd</primary></indexterm>
|
|
<indexterm><primary>Automatic Mounter Daemon</primary></indexterm>
|
|
|
|
<para>&man.amd.8; (Automatic Mounter Daemon) hängt ein
|
|
entferntes Dateisystem automatisch ein,
|
|
wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem
|
|
zugegriffen wird. Dateisysteme, die über einen gewissen
|
|
Zeitraum inaktiv sind, werden von <application>amd</application>
|
|
automatisch abgehängt.
|
|
<application>amd</application> ist eine einfache
|
|
Alternative zum dauerhaften Einhängen von Dateisystemen
|
|
in <filename>/etc/fstab</filename>.</para>
|
|
|
|
<para>In der Voreinstellung stellt <application>amd</application>
|
|
die Verzeichnisse <filename>/host</filename> und
|
|
<filename>/net</filename> als NFS-Server bereit. Wenn auf eine Datei
|
|
in diesen Verzeichnissen zugegriffen wird, sucht
|
|
<application>amd</application> den entsprechenden Mountpunkt
|
|
und hängt das Dateisystem automatisch ein.
|
|
<filename>/net</filename> wird zum Einhängen von
|
|
exportierten Dateisystemen von einer IP-Adresse verwendet,
|
|
während <filename>/host</filename> zum Einhängen
|
|
von exportierten Dateisystemen eines durch seinen Namen
|
|
festgelegten Rechners dient.</para>
|
|
|
|
<para>Ein Zugriff auf eine Datei in
|
|
<filename>/host/foobar/usr</filename> würde
|
|
<application>amd</application> veranlassen,
|
|
das von <hostid>foobar</hostid> exportierte Dateisystem
|
|
<filename>/usr</filename> einzuhängen.</para>
|
|
|
|
<example>
|
|
<title>Ein exportiertes Dateisystem mit
|
|
<application>amd</application> in den Verzeichnisbaum
|
|
einhängen</title>
|
|
|
|
<para>Sie können sich die verfügbaren Mountpunkte
|
|
eines entfernten Rechners mit <command>showmount</command>
|
|
ansehen. Wollen Sie sich die Mountpunkte des Rechners
|
|
<hostid>foobar</hostid> ansehen, so verwenden Sie:</para>
|
|
|
|
<screen>&prompt.user; <userinput>showmount -e foobar</userinput>
|
|
Exports list on foobar:
|
|
/usr 10.10.10.0
|
|
/a 10.10.10.0
|
|
&prompt.user; <userinput>cd /host/foobar/usr</userinput></screen>
|
|
</example>
|
|
|
|
<para>Wie Sie an diesem Beispiel erkennen können, zeigt
|
|
<command>showmount</command> <filename>/usr</filename>
|
|
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
|
|
<filename>/host/foobar/usr</filename> wechselt, versucht
|
|
<application>amd</application> den Rechnernamen
|
|
<hostid>foobar</hostid> aufzulösen und den gewünschten
|
|
Export in den Verzeichnisbaum einzuhängen.</para>
|
|
|
|
<para><application>amd</application> kann durch das Einfügen
|
|
der folgenden Zeile in <filename>/etc/rc.conf</filename>
|
|
automatisch gestartet werden:</para>
|
|
|
|
<programlisting>amd_enable="YES"</programlisting>
|
|
|
|
<para>Mit der Option <varname>amd_flags</varname> kann
|
|
<application>amd</application> angepasst werden.
|
|
Die Voreinstellung für <varname>amd_flags</varname> sieht
|
|
so aus:</para>
|
|
|
|
<programlisting>amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"</programlisting>
|
|
|
|
<para><filename>/etc/amd.map</filename> legt die Standardoptionen
|
|
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
|
|
eingehängt werden. <filename>/etc/amd.conf</filename>
|
|
hingegen legt einige der erweiterten Optionen von
|
|
<application>amd</application> fest.</para>
|
|
|
|
<para>Weitere Informationen finden Sie in den Hilfeseiten
|
|
&man.amd.8; und &man.amd.conf.5;.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="network-nfs-integration">
|
|
<!-- j.kois@web.de, 05. April 2003 -->
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>John</firstname>
|
|
<surname>Lind</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>Integrationsprobleme mit anderen Systemen</title>
|
|
|
|
<para>Bestimmte ISA-Ethernetadapter haben Beschränkungen, die
|
|
zu ernsthaften Netzwerkproblemen, insbesondere mit NFS
|
|
führen können. Es handelt sich dabei nicht um ein
|
|
FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon
|
|
ebenfalls betroffen.</para>
|
|
|
|
<para>Das Problem tritt fast ausschließlich dann auf, wenn
|
|
(FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
|
|
wie Systemen von Silicon Graphics, Inc. oder
|
|
Sun Microsystems, Inc. Das Einhängen via NFS funktioniert
|
|
problemlos, auch einige Dateioperationen können erfolgreich
|
|
sein. Plötzlich aber wird der Server nicht mehr auf den
|
|
Client reagieren, obwohl Anfragen an und von anderen Rechnern
|
|
weiter bearbeitet werden. Dieses Problem betrifft stets den
|
|
Client, egal ob es sich beim Client um das FreeBSD-System oder
|
|
den Hochleistungsrechner handelt. Auf vielen Systemen gibt es
|
|
keine Möglichkeit mehr, den Client ordnungsgemäß
|
|
zu beenden. Die einzige Lösung ist oft, den Rechner neu
|
|
zu starten, da dieses NFS-Problem nicht mehr behoben werden kann.</para>
|
|
|
|
<para>Die <quote>korrekte</quote> Lösung für dieses
|
|
Problem ist es, sich eine schnellere Ethernetkarte für
|
|
FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und
|
|
meist zufriedenstellende Lösung, um dieses Problem zu
|
|
umgehen. Wenn es sich beim FreeBSD-System um den
|
|
<emphasis>Server</emphasis> handelt, verwenden Sie beim
|
|
Einhängen in den Verzeichnisbaum auf der Clientseite
|
|
zusätzlich die Option <option>-w=1024</option> . Wenn es
|
|
sich beim FreeBSD-System um den <emphasis>Client</emphasis>
|
|
handelt, dann hängen Sie das NFS-Dateisystem mit der
|
|
zusätzlichen Option <option>-r=1024</option> ein.
|
|
Diese Optionen können auf der Clientseite auch durch
|
|
das vierte Feld der Einträge in <filename>/etc/fstab</filename>
|
|
festgelegt werden, damit die Dateisysteme automatisch eingehängt
|
|
werden. Um die Dateisysteme manuell einzuhängen, verwendet
|
|
man bei <command>mount</command> zusätzlich die Option
|
|
<option>-o</option>.</para>
|
|
|
|
<para>Es gibt ein anderes Problem, das oft mit diesem verwechselt
|
|
wird. Dieses andere Problem tritt auf, wenn sich über NFS
|
|
verbundene Server und Clients in verschiedenen Netzwerken
|
|
befinden. Wenn dies der Fall ist, stellen Sie
|
|
<emphasis>sicher</emphasis>, dass Ihre Router die
|
|
nötigen UDP-Informationen weiterleiten, oder Sie werden
|
|
nirgends hingelangen, egal was Sie machen.</para>
|
|
|
|
<para>In den folgenden Beispielen ist <hostid>fastws</hostid> der
|
|
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
|
|
<hostid>freebox</hostid> hingegen ist der Name des
|
|
FreeBSD-Systems, das über eine Netzkarte mit geringer
|
|
Leistung verfügt. <filename>/sharedfs</filename> ist das
|
|
exportierte NFS -Dateisystem (lesen Sie dazu auch
|
|
&man.exports.5;). Bei <filename>/project</filename> handelt es
|
|
sich um den Mountpunkt, an dem das exportierte Dateisystem auf
|
|
der Clientseite eingehängt wird. In allen Fällen
|
|
können zusätzliche Optionen, wie z.B.
|
|
<option>hard</option>, <option>soft</option> oder
|
|
<option>bg</option> wünschenswert sein.</para>
|
|
|
|
<para>FreeBSD als Client (eingetragen in
|
|
<filename>/etc/fstab</filename> auf <hostid>freebox</hostid>):</para>
|
|
|
|
<programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
|
|
|
|
<para>Manuelles Einhängen auf <hostid>freebox</hostid>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
|
|
|
|
<para>FreeBSD als Server (eingetragen in
|
|
<filename>/etc/fstab</filename> auf <hostid>fastws</hostid>):</para>
|
|
|
|
<programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
|
|
|
|
<para>Manuelles Einhängen auf <hostid>fastws</hostid>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
|
|
|
|
<para>Nahezu alle 16-bit Ethernetadapter erlauben Operationen
|
|
ohne obengenannte Einschränkungen auf die Lese- oder
|
|
Schreibgröße.</para>
|
|
|
|
<para>Für alle technisch Interessierten wird nun beschrieben,
|
|
was passiert, wenn dieser Fehler auftritt, und warum er
|
|
irreversibel ist. NFS arbeitet üblicherweise mit einer
|
|
<quote>Blockgröße</quote> von 8 kByte (obwohl
|
|
es kleinere Fragmente zulassen würde). Da die maximale
|
|
Rahmengröße von Ethernet 1500 Bytes
|
|
beträgt, wird der NFS-<quote>Block</quote> in einzelne
|
|
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
|
|
Einheit handelt, die auch als Einheit empfangen, verarbeitet
|
|
und <emphasis>bestätigt</emphasis> werden muss. Der
|
|
Hochleistungsrechner verschickt die Pakete, aus denen der
|
|
NFS-Block besteht, so eng hintereinander, wie es der Standard
|
|
erlaubt. Auf der anderen Seite (auf der sich die langsamere
|
|
Netzkarte befindet), überschreiben die späteren
|
|
Pakete ihre Vorgänger, bevor diese vom System verarbeitet
|
|
werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block
|
|
nicht mehr rekonstruiert und bestätigt werden kann. Als
|
|
Folge davon glaubt der Hochleistungsrechner, dass der andere
|
|
Rechner nicht erreichbar ist (Timeout!) und versucht die
|
|
Sendung zu wiederholen. Allerdings wird wiederum der komplette
|
|
NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt,
|
|
und zwar immer wieder (oder bis zum Systemneustart).</para>
|
|
|
|
<para>Indem wir die Einheitengröße unter der maximalen
|
|
Größe der Ethernetpakete halten, können wir
|
|
sicherstellen, dass jedes vollständig erhaltene
|
|
Ethernetpaket individuell angesprochen werden kann und vermeiden
|
|
die Blockierung des Systems.</para>
|
|
|
|
<para>Überläufe können zwar nach wie vor auftreten,
|
|
wenn ein Hochleistungsrechner Daten auf ein PC-System
|
|
transferiert. Durch die besseren (und schnelleren) Netzkarten
|
|
treten solche Überläufe allerdings nicht mehr
|
|
<emphasis>zwingend</emphasis> auf, wenn
|
|
NFS-<quote>Einheiten</quote> übertragen werden. Tritt nun
|
|
ein Überlauf auf, wird die betroffene Einheit erneut
|
|
verschickt, und es besteht eine gute Chance, dass sie nun
|
|
erhalten, verarbeitet und bestätigt werden kann.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-diskless">
|
|
<!-- j.kois@web.de, 05.05.2003 -->
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jean-François</firstname>
|
|
<surname>Dockès</surname>
|
|
<contrib>Aktualisiert von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Start und Betrieb von FreeBSD über ein Netzwerk</title>
|
|
|
|
<indexterm>
|
|
<primary>plattenloser Arbeitsplatz</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>plattenloser Betrieb</primary>
|
|
</indexterm>
|
|
|
|
<para>FreeBSD kann über ein Netzwerk starten und arbeiten, ohne
|
|
eine lokale Festplatte zu verwenden, indem es Dateisysteme eines
|
|
NFS-Servers in den eigenen Verzeichnisbaum einhängt. Dazu
|
|
sind, von den Standardkonfigurationsdateien abgesehen, keine
|
|
Systemänderungen nötig. Ein solches System kann leicht
|
|
installiert werden, da alle notwendigen Elemente bereits vorhanden
|
|
sind:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Es gibt mindestens zwei Möglichkeiten, den Kernel
|
|
über das Netzwerk zu laden:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>PXE</emphasis>: Das
|
|
<quote>Preboot Execution Environment System</quote> von
|
|
&intel; ist eine Art intelligentes Boot-ROM, das in einigen
|
|
Netzkarten oder Hauptplatinen verwendet wird. Mehr
|
|
Informationen finden Sie in der Hilfeseite
|
|
&man.pxeboot.8;.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Der Port
|
|
<emphasis><application>etherboot </application></emphasis>
|
|
(<filename role="package">net/etherboot</filename>) erzeugt
|
|
ROM-fähigen Code, um einen Kernel über das
|
|
Netzwerk zu laden. Dieser Code kann entweder auf ein
|
|
Boot-PROM einer Netzkarte gebrannt werden, was von vielen
|
|
Netzkarten unterstützt wird. Oder er kann von einer
|
|
lokalen Diskette, Festplatte oder von einem laufenden
|
|
&ms-dos;-System geladen werden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Das Beispielskript
|
|
(<filename>/usr/share/examples/diskless/clone_root</filename>)
|
|
erleichtert die Erzeugung und die Wartung des root-Dateisystems
|
|
auf dem Server. Das Skript muss wahrscheinlich angepasst
|
|
werden, dennoch werden Sie schnell zu einem Ergebnis kommen.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die Startdateien, die einen plattenlosen Systemstart
|
|
erkennen und unterstützen, sind nach der Installation
|
|
in <filename>/etc</filename> vorhanden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Dateiauslagerungen können sowohl via NFS als auch
|
|
auf die lokale Platte erfolgen.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Es gibt verschiedene Wege, einen plattenlosen Rechner
|
|
einzurichten. Viele Elemente sind daran beteiligt, die fast
|
|
immer an den persönlichen Geschmack angepasst werden
|
|
können. Die folgende Beschreibung erklärt die
|
|
Installation eines kompletten Systems, wobei der Schwerpunkt auf
|
|
Einfachheit und Kompatibilität zu den Standardstartskripten
|
|
von FreeBSD liegt. Das beschriebene System hat folgende
|
|
Eigenschaften:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Die plattenlosen Rechner haben ein gemeinsames
|
|
<filename>root</filename>- sowie ein gemeinsames
|
|
<filename>/usr</filename>-Dateisystem, die jeweils
|
|
schreibgeschützt sind.</para>
|
|
|
|
<para>Das <filename>root</filename>-Dateisystem ist eine Kopie
|
|
eines Standardwurzelverzeichnisses von FreeBSD
|
|
(üblicherweise das des Servers), bei dem einige
|
|
Konfigurationsdateien durch für den plattenlosen
|
|
Betrieb geeignete Versionen ersetzt wurden.</para>
|
|
|
|
<para>Für die Bereiche von <filename>root</filename>, die
|
|
beschreibbar sein müssen, werden mit &man.mfs.8;
|
|
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
|
|
alle Veränderungen verloren gehen, wenn das System neu
|
|
gestartet wird.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Der Kernel wird von <application>etherboot</application>
|
|
geladen. Dazu werden DHCP (oder BOOTP) und TFTP verwendet.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<caution><para>Das hier beschriebene System ist nicht sicher. Es
|
|
sollte nur in einem gesicherten Bereich eines Netzwerks verwendet
|
|
werden und für andere Rechner nicht erreichbar sein.</para>
|
|
</caution>
|
|
|
|
<sect2>
|
|
<title>Installationsanweisungen</title>
|
|
<indexterm>
|
|
<primary>plattenloser Betrieb</primary>
|
|
<secondary>Systemstart</secondary>
|
|
</indexterm>
|
|
|
|
<sect3>
|
|
<title>DHCP/BOOTP konfigurieren</title>
|
|
|
|
<para>Es gibt zwei häufig verwendete Protokolle, um Rechner
|
|
zu starten, die ihre Konfiguration über ein Netzwerk
|
|
erhalten: BOOTP und DHCP. Diese werden in verschiedenen
|
|
Phasen des Startvorganges verwendet:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para><application>etherboot</application> verwendet
|
|
DHCP (Voreinstellung) oder BOOTP (muss vorher konfiguriert
|
|
werden), um den Kernel zu finden (PXE verwendet DHCP).</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Der Kernel verwendet BOOTP, um das
|
|
NFS-Wurzelverzeichnis zu finden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Es ist möglich, das System so zu konfigurieren, dass
|
|
es nur BOOTP verwendet. Das &man.bootpd.8;-Serverprogramm ist
|
|
bereits im Basissystem enthalten.</para>
|
|
|
|
<para>DHCP hat im Vergleich zu BOOTP allerdings mehrere Vorteile
|
|
(bessere Konfigurationsdateien, die Möglichkeit zur
|
|
Verwendung von PXE, sowie viele andere, die nicht in direktem
|
|
Zusammenhang mit dem plattenlosen Betrieb stehen), daher werden
|
|
hier beide Methoden, die ausschließliche Verwendung von
|
|
BOOTP sowie die gemeinsame Nutzung von BOOTP und DHCP
|
|
beschrieben. Der Schwerpunkt liegt dabei auf der Betrachtung
|
|
von DHCP. Dazu wird das Softwarepaket ISC-DHCP verwendet.</para>
|
|
|
|
<sect4>
|
|
<title>Konfiguration unter Verwendung von ISC DHCP</title>
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>plattenloser Betrieb</secondary>
|
|
</indexterm>
|
|
|
|
<para>Der <application>isc-dhcp</application>-Server kann
|
|
Anfragen sowohl von BOOTP als auch von DHCP beantworten.
|
|
</para>
|
|
|
|
<para><application>isc-dhcp 3.0</application> ist nicht Teil
|
|
des Basissystems. Sie müssen es daher zuerst
|
|
installieren. Verwenden Sie dazu den Port
|
|
<filename role="package">net/isc-dhcp3</filename> oder das
|
|
entsprechende Paket. Für allgemeine Informationen zu
|
|
Ports und Paketen lesen Sie bitte <xref linkend="ports">.
|
|
</para>
|
|
|
|
<para>Nachdem <application>isc-dhcp</application> installiert
|
|
ist, muss das Programm konfiguriert werden (normalerweise in
|
|
<filename>/usr/local/etc/dhcpd.conf</filename>). Nachfolgend
|
|
finden Sie dazu ein kommentiertes Beispiel:</para>
|
|
|
|
<programlisting>
|
|
default-lease-time 600;
|
|
max-lease-time 7200;
|
|
authoritative;
|
|
|
|
option domain-name "example.com";
|
|
option domain-name-servers 192.168.4.1;
|
|
option routers 192.168.4.1;
|
|
|
|
subnet 192.168.4.0 netmask 255.255.255.0 {
|
|
use-host-decl-names on; <co id="co-dhcp-host-name">
|
|
option subnet-mask 255.255.255.0;
|
|
option broadcast-address 192.168.4.255;
|
|
|
|
host margaux {
|
|
hardware ethernet 01:23:45:67:89:ab;
|
|
fixed-address margaux.example.com;
|
|
next-server 192.168.4.4;<co id="co-dhcp-next-server">
|
|
filename "/tftpboot/kernel.diskless";<co id="co-dhcp-filename">
|
|
option root-path "192.168.4.4:/data/misc/diskless";<co id="co-dhcp-root-path">
|
|
}
|
|
}
|
|
</programlisting>
|
|
|
|
<calloutlist>
|
|
<callout arearefs="co-dhcp-host-name"><para>Diese Option
|
|
weist <command>dhcpd</command> an, den Wert der
|
|
<literal>host</literal>-Deklaration als Rechnernamen des
|
|
plattenlosen Rechners zu senden. Alternativ kann man der
|
|
Hostdeklaration Folgendes hinzufügen:
|
|
<literal>option host-name
|
|
<replaceable>margaux</replaceable></literal></para>
|
|
</callout>
|
|
|
|
<callout arearefs="co-dhcp-next-server"><para>Die Anweisung
|
|
<literal>next-server</literal> bestimmt den TFTP-Server
|
|
(in der Voreinstellung ist das der DHCP-Server
|
|
selbst).</para>
|
|
</callout>
|
|
|
|
<callout arearefs="co-dhcp-filename"><para>Die Anweisung
|
|
<literal>filename</literal> bestimmt die Datei, die
|
|
<application>etherboot</application> als Kernel lädt.
|
|
<note><para>PXE erfordert einen relativen Dateinamen und
|
|
lädt <command>pxeboot</command> (dies geschieht
|
|
also nicht über die Kerneloption
|
|
<literal>option filename "pxeboot"</literal>).</para>
|
|
</note>
|
|
</para>
|
|
</callout>
|
|
|
|
<callout arearefs="co-dhcp-root-path"><para>Die Option
|
|
<literal>root-path</literal> bestimmt den Pfad des
|
|
root-Dateisystems in normaler NFS-Schreibweise.</para>
|
|
</callout>
|
|
</calloutlist>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Konfiguration bei Verwendung von BOOTP</title>
|
|
<indexterm>
|
|
<primary>BOOTP</primary>
|
|
<secondary>plattenloser Betrieb</secondary>
|
|
</indexterm>
|
|
|
|
<para>Es folgt nun eine der Konfiguration von DHCP
|
|
entsprechende Konfiguration für
|
|
<command>bootpd</command>. Zu finden ist die
|
|
Konfigurationsdatei unter <filename>/etc/bootptab</filename>.
|
|
</para>
|
|
|
|
<para>Beachten Sie bitte, dass
|
|
<application>etherboot</application> mit der Option
|
|
<literal>NO_DHCP_SUPPORT</literal> kompiliert werden muss,
|
|
damit BOOTP verwendet werden kann. PXE hingegen
|
|
<emphasis>benötigt</emphasis> DHCP. Der einzige
|
|
offensichtliche Vorteil von <application>bootpd</application>
|
|
ist, dass es bereits im Basissystem vorhanden ist.</para>
|
|
|
|
<programlisting>
|
|
.def100:\
|
|
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
|
|
:sm=255.255.255.0:\
|
|
:ds=192.168.4.1:\
|
|
:gw=192.168.4.1:\
|
|
:hd="/tftpboot":\
|
|
:bf="/kernel.diskless":\
|
|
:rp="192.168.4.4:/data/misc/diskless":
|
|
|
|
margaux:ha=0123456789ab:tc=.def100
|
|
</programlisting>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Ein Startprogramm unter Verwendung von
|
|
<application>Etherboot</application> erstellen</title>
|
|
|
|
<indexterm>
|
|
<primary>Etherboot</primary>
|
|
</indexterm>
|
|
|
|
<para><ulink url="http://etherboot.sourceforge.net">
|
|
Die Internetseite von Etherboot</ulink> enthält
|
|
<ulink url="http://etherboot.sourceforge.net/doc/html/userman.html">
|
|
ausführliche Informationen</ulink>, die zwar vor allem
|
|
für Linux gedacht sind, aber dennoch nützliche
|
|
Informationen enthalten. Im Folgenden wird daher nur grob
|
|
beschrieben, wie Sie <application>etherboot</application> auf
|
|
einem FreeBSD-System einsetzen können.</para>
|
|
|
|
<para>Als erstes müssen Sie
|
|
<filename role="package">net/etherboot</filename> als Paket
|
|
oder als Port installieren. Der Port
|
|
<application>etherboot</application> befindet sich unter
|
|
<filename>/usr/ports/net/etherboot</filename>. Wenn Sie
|
|
die Portssammlung installiert haben, reicht es aus, in dieses
|
|
Verzeichnis zu wechseln, und <command>make install</command>
|
|
aufzurufen.
|
|
Alles Weitere sollte automatisch ablaufen. Ist dies nicht der
|
|
Fall, lesen Sie bitte <xref linkend="ports">, das
|
|
Informationen zu Ports und Paketen enthält.</para>
|
|
|
|
<para>Für unsere Installation verwenden wir eine
|
|
Startdiskette. Für Informationen zu anderen Methoden
|
|
(PROM oder DOS-Programme) lesen Sie bitte die Dokumentation zu
|
|
<application>etherboot</application>.</para>
|
|
|
|
<para>Um eine Startdiskette zu erzeugen, legen Sie eine Diskette
|
|
in das Laufwerk des Rechners ein, auf dem Sie
|
|
<application>etherboot</application> installiert haben. Danach
|
|
wechseln Sie in das Verzeichnis <filename>src</filename> des
|
|
<application>etherboot</application>-Verzeichnisbaums und geben
|
|
Folgendes ein:</para>
|
|
|
|
<screen>
|
|
&prompt.root; <userinput>gmake bin32/<replaceable>devicetype</replaceable>.fd0</userinput>
|
|
</screen>
|
|
|
|
<para><replaceable>devicetype</replaceable> hängt vom Typ
|
|
der Ethernetkarte ab, über die der plattenlose Rechner
|
|
verfügt. Lesen Sie dazu <filename>NIC</filename> im
|
|
gleichen Verzeichnis, um den richtigen Wert für
|
|
<replaceable>devicetype</replaceable> zu bestimmen.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Serverkonfiguration - TFTP und NFS</title>
|
|
|
|
<indexterm>
|
|
<primary>TFTP</primary>
|
|
<secondary>plattenloser Betrieb</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>NFS</primary>
|
|
<secondary>plattenloser Betrieb</secondary>
|
|
</indexterm>
|
|
|
|
<para>Sie müssen auf dem TFTP-Server
|
|
<command>tftpd</command> aktivieren:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Erzeugen Sie ein Verzeichnis, in dem
|
|
<command>tftpd</command> seine Dateien ablegt,
|
|
beispielsweise <filename>/tftpboot</filename>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Fügen Sie folgende Zeile in
|
|
<filename>/etc/inetd.conf</filename> ein:</para>
|
|
|
|
<programlisting>tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot</programlisting>
|
|
|
|
<note><para>Anscheinend benötigen zumindest einige
|
|
PXE-Versionen die TCP-Version von TFTP. Sollte dies der
|
|
Fall sein, fügen Sie eine zweite Zeile ein, in der
|
|
Sie <literal>dgram udp</literal> durch
|
|
<literal>stream tcp</literal> ersetzen.</para>
|
|
</note>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Weisen Sie <command>inetd</command> an, seine
|
|
Konfiguration erneut einzulesen:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Sie können das Verzeichnis
|
|
<filename>/tftpboot</filename> an einem beliebigen Ort auf dem
|
|
Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
|
|
sowohl in <filename>inetd.conf</filename> als auch in
|
|
<filename>dhcpd.conf</filename> eingetragen.</para>
|
|
|
|
<para>Außerdem müssen Sie NFS aktivieren und die
|
|
entsprechenden Verzeichnisse exportieren.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Fügen Sie folgende Zeile in
|
|
<filename>/etc/rc.conf</filename> ein:</para>
|
|
|
|
<programlisting>nfs_server_enable="YES"</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Exportieren Sie das Verzeichnis, in dem sich das
|
|
Wurzelverzeichnis für den plattenlosen Betrieb
|
|
befindet, indem Sie folgende Zeile in
|
|
<filename>/etc/exports</filename> einfügen (passen
|
|
Sie dabei den Einhängpunkt an und ersetzen Sie
|
|
<replaceable>margaux</replaceable> durch den Namen Ihres
|
|
plattenlosen Rechners):</para>
|
|
|
|
<programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux</replaceable></programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Weisen sie nun <command>mountd</command> an, seine
|
|
Konfigurationsdatei erneut einzulesen. Wenn Sie NFS erst
|
|
in <filename>/etc/rc.conf</filename> aktivieren mussten,
|
|
sollten Sie stattdessen den Rechner neu starten. Dadurch
|
|
wird die Konfigurationsdatei ebenfalls neu eingelesen.
|
|
</para>
|
|
|
|
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Einen plattenlosen Kernel erzeugen</title>
|
|
|
|
<indexterm>
|
|
<primary>plattenloser Betrieb</primary>
|
|
<secondary>Kernelkonfiguration</secondary>
|
|
</indexterm>
|
|
|
|
<para>Fügen Sie in Ihre Kernelkonfigurationsdatei
|
|
zusätzlich folgende Optionen ein:</para>
|
|
|
|
<programlisting>
|
|
options BOOTP # Use BOOTP to obtain IP address/hostname
|
|
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
|
|
options BOOTP_COMPAT # Workaround for broken bootp daemons.
|
|
</programlisting>
|
|
|
|
<para>Außerdem können Sie die Optionen
|
|
<literal>BOOTP_NFSV3</literal> und
|
|
<literal>BOOTP_WIRED_TO</literal> verwenden (sehen Sie sich
|
|
dazu auch <filename>LINT</filename> an).</para>
|
|
|
|
<para>Erzeugen Sie den neuen Kernel (lesen Sie dazu auch
|
|
<xref linkend="kernelconfig">) und kopieren Sie ihn unter dem
|
|
in <filename>dhcpd.conf</filename> angegebenen Namen ins
|
|
TFTP-Verzeichnis.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Das root-Dateisystem erzeugen</title>
|
|
|
|
<indexterm>
|
|
<primary>Root-Dateisystem</primary>
|
|
<secondary>plattenloser Betrieb</secondary>
|
|
</indexterm>
|
|
|
|
<para>Sie müssen für den plattenlosen Rechner ein
|
|
root-Dateisystem erzeugen, und zwar an dem in
|
|
<filename>dhcpd.conf</filename> als
|
|
<literal>root-path</literal> festgelegten Ort.</para>
|
|
|
|
<para>Der einfachste Weg, dies zu tun, ist die Verwendung des
|
|
Shellskripts
|
|
<filename>/usr/share/examples/diskless/clone_root</filename>.
|
|
Dieses Skript muss von Ihnen allerdings noch angepasst werden.
|
|
Unbedingt nötig ist der Ort, an dem das Dateisystem
|
|
erzeugt werden soll. Dies geschieht über die Variable
|
|
<literal>DEST</literal>.</para>
|
|
|
|
<para>Die Kommentare am Anfang des Skripts enthalten
|
|
weitere Informationen. Dort wird erklärt, wie das
|
|
Basisdateisystem erzeugt wird und wie einzelne Dateien durch
|
|
angepasste Versionen für den plattenlosen Betrieb,
|
|
für ein Subnetzwerk oder für einen speziellen
|
|
Rechner ersetzt werden. Ebenfalls enthalten sind Beispiele
|
|
für <filename>/etc/fstab</filename> und
|
|
<filename>/etc/rc.conf</filename>, die für den
|
|
plattenlosen Betrieb angepasst sind.</para>
|
|
|
|
<para>Die <filename>README</filename>-Dateien unter
|
|
<filename>/usr/share/examples/diskless</filename> enthalten
|
|
sehr viele interessante Hintergrundinformationen. Gemeinsam
|
|
mit den Beispielen im Verzeichnis <filename>diskless</filename>
|
|
beschreiben sie allerdings eine Konfigurationsmethode, die von
|
|
der in <filename>clone_root</filename> und
|
|
<filename>/etc/rc.diskless[12]</filename> abweicht. Dies kann
|
|
etwas verwirrend sein. Verwenden Sie diese Dateien also nur,
|
|
wenn Sie weitere Informationen benötigen. Es sei denn,
|
|
Sie wollen die dort beschriebene Methode verwenden. In diesem
|
|
Fall müssen Sie allerdings die
|
|
<filename>rc</filename>-Skripte anpassen.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Den Auslagerungsbereich konfigurieren</title>
|
|
|
|
<para>Falls nötig, kann eine auf dem NFS-Server liegende
|
|
Datei als Auslagerungsdatei eingerichtet werden. Die
|
|
genauen Optionen für <filename>bootptab</filename>
|
|
oder <filename>dhcpd.conf</filename> sind zurzeit allerdings
|
|
nicht vollständig dokumentiert. Die folgenden
|
|
Einstellungen wurden bereits auf einigen Systemen mit
|
|
<filename>isc-dhcp 3.0rc11</filename> erfolgreich getestet.
|
|
</para>
|
|
|
|
<procedure>
|
|
<step><para>Fügen Sie folgende Zeilen in
|
|
<filename>dhcpd.conf</filename> ein:</para>
|
|
|
|
<programlisting>
|
|
# Global section
|
|
option swap-path code 128 = string;
|
|
option swap-size code 129 = integer 32;
|
|
|
|
host margaux {
|
|
... # Standard lines, see above
|
|
option swap-path <replaceable>"192.168.4.4:/netswapvolume/netswap"</replaceable>;
|
|
option swap-size <replaceable>64000</replaceable>;
|
|
}
|
|
</programlisting>
|
|
|
|
<para>Die Idee dahinter ist, dass es sich bei der Option 128
|
|
von DHCP/BOOTP (zumindest auf einem FreeBSD-Client) um den
|
|
Pfad zur NFS-Auslagerungsdatei handelt. Option 129
|
|
hingegen gibt die Größe der Auslagerungsdatei
|
|
in Kilobytes an. Ältere Versionen von
|
|
<command>dhcpd</command> erlaubten auch Folgendes:
|
|
<literal>option option-128 "...</literal>. Diese Option
|
|
scheint allerdings nicht mehr zu funktionieren.</para>
|
|
|
|
<para><filename>/etc/bootptab</filename> würde hingegen
|
|
folgende Syntax verwenden:</para>
|
|
|
|
<para>
|
|
<literal>T128="192.168.4.4:/netswapvolume/netswap":T129=64000</literal>
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Erzeugen Sie die Auslagerungsdatei(en) auf dem
|
|
NFS-Server.</para>
|
|
|
|
<screen>
|
|
&prompt.root; <userinput>mkdir <replaceable>/netswapvolume/netswap</replaceable></userinput>
|
|
&prompt.root; <userinput>cd <replaceable>/netswapvolume/netswap</replaceable></userinput>
|
|
&prompt.root; <userinput>dd if=/dev/zero bs=1024 count=<replaceable>64000</replaceable> of=swap.<replaceable>192.168.4.6</replaceable></userinput>
|
|
&prompt.root; <userinput>chmod 0600 swap.<replaceable>192.168.4.6</replaceable></userinput>
|
|
</screen>
|
|
|
|
<para><replaceable>192.168.4.6</replaceable> ist die
|
|
IP-Adresse des plattenlosen Clients.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Auf dem NFS-Server, auf dem die Auslagerungsdatei
|
|
liegt, fügen Sie in <filename>/etc/exports</filename>
|
|
folgende Zeile ein:</para>
|
|
|
|
<programlisting>
|
|
<replaceable>/netswapvolume</replaceable> -maproot=0:10 -alldirs <replaceable>margaux</replaceable>
|
|
</programlisting>
|
|
|
|
<para>Anschließend weisen Sie (wie bereits
|
|
beschrieben) <application>mountd</application> an, die
|
|
Exportdatei erneut einzulesen.</para>
|
|
</step>
|
|
</procedure>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Verschiedenes</title>
|
|
|
|
<sect4>
|
|
<title>Schreibgeschütztes Dateisystem
|
|
<filename>/usr</filename></title>
|
|
|
|
<indexterm>
|
|
<primary>plattenloser Betrieb</primary>
|
|
<secondary>/usr schreibgeschützt</secondary>
|
|
</indexterm>
|
|
|
|
<para>Wenn am plattenlosen Rechner X läuft, müssen
|
|
Sie die Konfigurationsdatei von <filename>xdm</filename>
|
|
anpassen, da Fehlermeldungen per Voreinstellung auf
|
|
<filename>/usr</filename> geschrieben werden.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Der Server läuft nicht unter FreeBSD</title>
|
|
|
|
<para>Wenn das root-Dateisystem nicht auf einem FreeBSD-Rechner
|
|
liegt, muss das Dateisystem zuerst unter FreeBSD erzeugt
|
|
werden. Anschließend wird es beispielsweise mit
|
|
<command>tar</command> oder <command>cpio</command>
|
|
an den gewünschten Ort kopiert.</para>
|
|
|
|
<para>Dabei kann es Probleme mit den Gerätedateien
|
|
in <filename>/dev</filename> geben, die durch eine
|
|
unterschiedliche Darstellung der Major- und Minor-Number
|
|
von Geräten auf beiden Systemen hervorgerufen werden.
|
|
Eine Problemlösung besteht darin, das root-Verzeichnis
|
|
auf einem FreeBSD einzuhängen und die
|
|
Gerätedateien dort mit <command>MAKEDEV</command>
|
|
zu erzeugen (seit FreeBSD 5.0
|
|
werden Gerätedateien allerdings mit
|
|
&man.devfs.5; erzeugt, ein Ausführen von
|
|
<command>MAKEDEV</command> ist unter diesen Versionen
|
|
daher sinnlos).</para>
|
|
</sect4>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-isdn">
|
|
<!-- j.kois@web.de, 10. Mai 2003 -->
|
|
<title>ISDN – diensteintegrierendes digitales Netzwerk</title>
|
|
|
|
<indexterm>
|
|
<primary>ISDN</primary>
|
|
</indexterm>
|
|
|
|
<para>Eine gute Quelle für Informationen zu ISDN ist die
|
|
<ulink url="http://alumni.caltech.edu/~dank/isdn/">
|
|
ISDN-Seite</ulink> von Dan Kegel.</para>
|
|
|
|
<para>Welche Informationen finden Sie in diesem Abschnitt?</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Wenn Sie in Europa leben, könnte der Abschnitt
|
|
über ISDN-Karten für Sie interessant sein.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie ISDN hauptsächlich dazu verwenden wollen, um
|
|
sich über einen Anbieter ins Internet einzuwählen,
|
|
sollten Sie den Abschnitt über Terminaladapter lesen.
|
|
Dies ist die flexibelste Methode, die auch die wenigsten
|
|
Probleme verursacht.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie zwei Netzwerke miteinander verbinden, oder sich
|
|
über eine ISDN-Standleitung mit dem Internet verbinden
|
|
wollen, finden Sie entsprechende Informationen im Abschnitt
|
|
über Router und Bridges.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Bei der Wahl der gewünschten Lösung sind die
|
|
entstehenden Kosten ein entscheidender Faktor. Die folgenden
|
|
Beschreibungen reichen von der billigsten bis zur teuersten
|
|
Variante.</para>
|
|
|
|
<sect2 id="network-isdn-cards">
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Hellmuth</firstname>
|
|
<surname>Michaelis</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>ISDN-Karten</title>
|
|
|
|
<indexterm>
|
|
<primary>ISDN</primary>
|
|
<secondary>Karten</secondary>
|
|
</indexterm>
|
|
|
|
<para>Das ISDN-Subsystem von FreeBSD unterstützt den
|
|
DSS1/Q.931- (oder Euro-ISDN)-Standard nur für passive
|
|
Karten. Beginnend mit FreeBSD 4.4 werden auch einige
|
|
aktive Karten unterstützt, bei denen die Firmware auch
|
|
andere Signalprotokolle unterstützt; dies schließt
|
|
auch die erste ISDN-Karte mit
|
|
Primärmultiplex-Unterstützung mit ein.</para>
|
|
|
|
<para><application>isdn4bsd</application> erlaubt es Ihnen, sich
|
|
unter Verwendung von <emphasis>IP over raw HDLC</emphasis> oder
|
|
<emphasis>synchronem PPP</emphasis> mit anderen ISDN-Routern zu
|
|
verbinden. Dazu verwenden Sie entweder Kernel-&man.ppp.8;
|
|
(via isppp, einem modifizierten sppp-Treiber), oder Sie benutzen
|
|
User-&man.ppp.8;. Wenn Sie User-&man.ppp.8; verwenden,
|
|
können Sie zwei oder mehrere ISDN-B-Kanäle
|
|
bündeln. Im Paket enthalten ist auch ein Programm mit
|
|
Anrufbeantworterfunktion sowie verschiedene Werkzeuge, wie ein
|
|
Softwaremodem, das 300 Baud unterstützt.</para>
|
|
|
|
<para>FreeBSD unterstützt eine ständig wachsende Anzahl
|
|
von PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.
|
|
</para>
|
|
|
|
<para>Von FreeBSD unterstützte passive ISDN-Karten enthalten
|
|
fast immer den ISAC/HSCX/IPAC ISDN-Chipsatz von Infineon
|
|
(ehemals Siemens). Unterstützt werden aber auch Karten mit
|
|
Cologne Chip (diese allerdings nur für den ISA-Bus),
|
|
PCI-Karten mit Winbond W6692 Chipsatz, einige Karten mit dem
|
|
Tiger 300/320/ISAC Chipsatz sowie einige Karten mit einem
|
|
herstellerspezifischen Chipsatz, wie beispielsweise die
|
|
Fritz!Card PCI V.1.0 und die Fritz!Card PnP von AVM.</para>
|
|
|
|
<para>An aktiven ISDN-Karten werden derzeit die AVM B1 BRI-Karten
|
|
(ISA und PCI-Version) sowie die AVM T1 PRI-Karten (PCI-Version)
|
|
unterstützt.</para>
|
|
|
|
<para>Informationen zu <application>isdn4bsd</application> finden
|
|
Sie im Verzeichnis <filename>/usr/share/examples/isdn/</filename>
|
|
Ihres FreeBSD-Systems, oder auf der
|
|
<ulink url="http://www.freebsd-support.de/i4b/">Internetseite</ulink>
|
|
von <application>isdn4bsd</application>. Dort finden Sie auch
|
|
Verweise zu Tipps, Korrekturen, sowie weiteren Informationen,
|
|
wie dem
|
|
<ulink url="http://people.FreeBSD.org/~hm/">isdn4bsd-Handbuch</ulink>.
|
|
</para>
|
|
|
|
<para>Falls Sie an der Unterstützung eines zusätzlichen
|
|
ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
|
|
Erweiterung von <application>isdn4bsd</application> interessiert
|
|
sind, wenden Sie sich bitte an &a.hm;.</para>
|
|
|
|
<para>Für Fragen zur Installation, Konfiguration und zu
|
|
sonstigen Problemen von <application>isdn4bsd</application> gibt
|
|
es die Mailingliste &a.isdn.name;.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>ISDN-Terminaladapter</title>
|
|
|
|
<indexterm>
|
|
<primary>Terminaladapter</primary>
|
|
</indexterm>
|
|
|
|
<para>Terminaladapter (TA) sind für ISDN, was Modems für
|
|
analoge Telefonleitungen sind.</para>
|
|
|
|
<indexterm>
|
|
<primary>Modem</primary>
|
|
</indexterm>
|
|
|
|
<para>Die meisten Terminaladapter verwenden den Standardbefehlssatz
|
|
für Modems von Hayes (AT-Kommandos) und können daher als
|
|
Modemersatz verwendet werden.</para>
|
|
|
|
<para>Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
|
|
allerdings erfolgt der Verbindungsaufbau um einiges schneller. Die
|
|
Konfiguration von <link linkend="ppp">PPP</link> entspricht
|
|
dabei exakt der eines Modems. Stellen Sie dabei allerdings
|
|
die serielle Geschwindigkeit so hoch wie möglich ein.</para>
|
|
|
|
<indexterm>
|
|
<primary>PPP</primary>
|
|
</indexterm>
|
|
|
|
<para>Der Hauptvorteil bei der Verwendung eines Terminaladapters zur
|
|
Verbindung mit einem Internetanbieter ist die Möglichkeit
|
|
zur Nutzung von dynamischem PPP. Da IP-Adressen immer knapper
|
|
werden, vergeben die meisten Provider keine statischen
|
|
IP-Adressen mehr. Die meisten Router unterstützen
|
|
allerdings keine dynamische Zuweisung von IP-Adressen.</para>
|
|
|
|
<para>Der PPP-Daemon bestimmt die Stabilität und
|
|
Eigenschaften der Verbindung, wenn Sie einen Terminaladapter
|
|
verwenden. Daher können Sie unter FreeBSD einfach von einer
|
|
Modemverbindung auf eine ISDN-Verbindung wechseln, wenn
|
|
Sie PPP bereits konfiguriert haben. Allerdings bedeutet
|
|
dies auch, das bereits bestehende Probleme mit PPP auch unter
|
|
ISDN auftreten werden.</para>
|
|
|
|
<para>Wenn Sie an maximaler Stabilität interessiert sind,
|
|
verwenden Sie Kernel-<link linkend="ppp">PPP</link>, und
|
|
nicht das User-<link linkend="userppp">PPP</link>.
|
|
</para>
|
|
|
|
<para>Folgende Terminaladapter werden von FreeBSD
|
|
unterstützt:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Motorola BitSurfer und Bitsurfer Pro</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Adtran</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Die meisten anderen Terminaladapter werden wahrscheinlich
|
|
ebenfalls funktionieren, da die Hersteller von Terminaladaptern
|
|
darauf achten, dass ihre Produkte den Standardbefehlssatz
|
|
möglichst gut unterstützen.</para>
|
|
|
|
<para>Das wirkliche Problem mit einem externen Terminaladapter ist,
|
|
dass, ähnlich wie bei Modems, eine gute serielle Karte
|
|
eine Grundvoraussetzung ist.</para>
|
|
|
|
<para>Sie sollten sich die
|
|
<ulink url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/serial-uart/index.html">
|
|
Anleitung für die Nutzung serieller Geräte unter
|
|
FreeBSD</ulink> ansehen, wenn Sie detaillierte Informationen
|
|
über serielle Geräte und die Unterschiede zwischen
|
|
asynchronen und synchronen seriellen Ports benötigen.</para>
|
|
|
|
<para>Ein Terminaladapter, der an einem (asynchronen)
|
|
seriellen Standardport angeschlossen ist, beschränkt
|
|
Sie auf 115,2 Kbs. Dies
|
|
selbst dann, wenn Sie eine Verbindung mit 128 Kbs haben.
|
|
Um die volle Leistungsfähigkeit von ISDN (128 Kbs)
|
|
nutzen zu können, müssen Sie den Terminaladapter
|
|
daher an eine synchrone serielle Karte anschließen.</para>
|
|
|
|
<para>Kaufen Sie keinen internen Terminaladapter in der Hoffnung,
|
|
damit das synchron/asynchron-Problem vermeiden zu können.
|
|
Interne Terminaladapter haben einen (asynchronen) seriellen
|
|
Standardportchip eingebaut. Der einzige Vorteil interner
|
|
Terminaladapter ist es, dass Sie sich den Kauf eines seriellen
|
|
Kabels ersparen und dass Sie ein Stromkabel weniger haben.</para>
|
|
|
|
<para>Eine synchrone Karte mit einem Terminaladapter ist
|
|
mindestens so schnell wie ein autonomer ISDN-Router,
|
|
und, in Kombination mit einem einfachen 386-FreeBSD-System,
|
|
wahrscheinlich flexibler.</para>
|
|
|
|
<para>Die Entscheidung zwischen synchroner Karte/Terminaladapter
|
|
und einem autonomen ISDN-Router ist eine beinahe religiöse
|
|
Angelegenheit. Zu diesem Thema gibt es viele Diskussionen
|
|
in den Mailinglisten. Suchen Sie in den
|
|
<ulink url="http://www.freebsd.org/search/index.html">
|
|
Archiven</ulink> danach, wenn Sie an der kompletten Diskussion
|
|
interessiert sind.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>ISDN-Bridges und Router</title>
|
|
|
|
<indexterm>
|
|
<primary>ISDN</primary>
|
|
<secondary>Autonome Bridge/Router</secondary>
|
|
</indexterm>
|
|
|
|
<para>ISDN-Bridges und Router sind keine Eigenheit von
|
|
FreeBSD oder eines anderen Betriebssystems. Für eine
|
|
vollständigere Beschreibung von Routing und
|
|
Netzwerkkopplungen mit einer Bridge informieren Sie sich
|
|
bitte durch weiterführende Literatur.</para>
|
|
|
|
<para>In diesem Abschnitt werden die Begriffe Router und
|
|
Bridge synonym verwendet.</para>
|
|
|
|
<para>ISDN-Router und Bridges werden immer günstiger und damit
|
|
auch immer beliebter. Ein ISDN-Router ist eine kleine Box, die
|
|
direkt an Ihr lokales Ethernet-Netzwerk angeschlossen wird und
|
|
sich mit mit einem Router oder einer Bridge verbindet. Die
|
|
eingebaute Software ermöglicht die Kommunikation über
|
|
PPP oder andere beliebte Protokolle.</para>
|
|
|
|
<para>Ein Router ermöglicht einen deutlich höheren
|
|
Datendurchsatz als ein herkömmlicher Terminaladapter,
|
|
da er eine vollsynchrone ISDN-Verbindung nutzt.</para>
|
|
|
|
<para>Das Hauptproblem mit ISDN-Routern und Bridges ist,
|
|
dass die Zusammenarbeit zwischen Geräten verschiedener
|
|
Hersteller nach wie vor ein Problem ist. Wenn Sie sich auf
|
|
diese Weise mit einem Internetanbieter verbinden wollen,
|
|
klären Sie daher vorher ab, welche Anforderungen Ihre
|
|
Geräte erfüllen müssen.</para>
|
|
|
|
<para>Eine ISDN-Bridge ist eine einfache und wartungsarme
|
|
Lösung, zwei Netze, beispielsweise Ihr privates Netz
|
|
und Ihr Firmennetz, miteinander zu verbinden. Da Sie die
|
|
technische Ausstattung für beide Seiten kaufen müssen,
|
|
ist sichergestellt, dass die Verbindung funktionieren
|
|
wird.</para>
|
|
|
|
<para>Um beispielsweise einen privaten Computer oder eine
|
|
Zweigstelle mit dem Hauptnetzwerk zu verbinden, könnte
|
|
folgende Konfiguration verwendet werden:</para>
|
|
|
|
<example>
|
|
<title>Kleines Netzwerk (Privatnetz)</title>
|
|
|
|
<indexterm>
|
|
<primary>10 base 2</primary>
|
|
</indexterm>
|
|
|
|
<para>Das Netzwerk basiert auf der Bustopologie mit 10base2
|
|
Ethernet (<quote>Thinnet</quote>). Falls nötig, stellen
|
|
Sie die Verbindung zwischen Router und Netzwerkkabel mit einem
|
|
AUI/10BT-Transceiver her.</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="advanced-networking/isdn-bus">
|
|
</imageobject>
|
|
|
|
<textobject>
|
|
<literallayout class="monospaced">
|
|
---Sun Workstation
|
|
|
|
|
---FreeBSD Rechner
|
|
|
|
|
---Windows 95
|
|
|
|
|
Autonomer Router
|
|
|
|
|
ISDN BRI Verbindung
|
|
</literallayout>
|
|
</textobject>
|
|
|
|
<textobject>
|
|
<phrase>10Base2 - Ethernet</phrase>
|
|
</textobject>
|
|
</mediaobject>
|
|
|
|
<para>Wenn Sie nur einen einzelnen Rechner verbinden wollen,
|
|
können Sie auch ein Twisted-Pair-Kabel (Cross-Over)
|
|
verwenden, das direkt an den Router angeschlossen wird.</para>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Großes Netzwerk (Firmennetz)</title>
|
|
|
|
<indexterm>
|
|
<primary>10 base T</primary>
|
|
</indexterm>
|
|
|
|
<para>Dieses Netzwerk basiert auf der Sterntopologie und 10baseT
|
|
Ethernet (<quote>Twisted Pair</quote>).</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="advanced-networking/isdn-twisted-pair">
|
|
</imageobject>
|
|
|
|
<textobject>
|
|
<literallayout class="monospaced">
|
|
-------Novell Server
|
|
| H |
|
|
| ---Sun
|
|
| |
|
|
| U ---FreeBSD
|
|
| |
|
|
| ---Windows 95
|
|
| B |
|
|
|___---Autonomer Router
|
|
|
|
|
ISDN BRI Verbindung
|
|
</literallayout>
|
|
</textobject>
|
|
|
|
<textobject>
|
|
<phrase>ISDN Netzwerkdiagramm</phrase>
|
|
</textobject>
|
|
</mediaobject>
|
|
</example>
|
|
|
|
<para>Ein großer Vorteil der meisten Router und Bridges
|
|
ist es, dass man <emphasis>gleichzeitig</emphasis> zwei
|
|
<emphasis>unabhängige</emphasis> PPP-Verbindungen
|
|
zu zwei verschiedenen Zielen aufbauen kann. Diese
|
|
Funktion bieten die meisten Terminaladapter nicht. Die
|
|
Ausnahme sind spezielle (meist teure) Modelle, die über
|
|
zwei getrennte serielle Ports verfügen. Verwechseln Sie
|
|
dies aber nicht mit Kanalbündelung oder MPP.</para>
|
|
|
|
<para>Dies kann sehr nützlich sein, wenn Sie eine
|
|
ISDN-Standleitung in Ihrem Büro haben, die sie
|
|
aufteilen wollen, ohne eine zusätzliche ISDN-Leitung
|
|
zu installieren. Ein ISDN-Router kann über einen B-Kanal
|
|
(64 Kbps) eine dedizierte Verbindung ins Internet aufbauen,
|
|
und gleichzeitig den anderen B-Kanal für eine separate
|
|
Datenverbindung nutzen. Der zweite B-Kanal kann beispielsweise
|
|
für ein- oder ausgehende Verbindungen verwendet werden.
|
|
Sie können ihn aber auch dynamisch mit dem ersten B-Kanal
|
|
bündeln, um Ihre Bandbreite zu erhöhen.</para>
|
|
|
|
<indexterm>
|
|
<primary>IPX/SPX</primary>
|
|
</indexterm>
|
|
|
|
<para>Eine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll,
|
|
sondern auch in beliebigen anderen Protokollen versenden.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-nis">
|
|
<!-- j.kois@web.de, 10. Juli 2003 -->
|
|
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Bill</firstname>
|
|
<surname>Swingle</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Eric</firstname>
|
|
<surname>Ogren</surname>
|
|
<contrib>Erweitert von </contrib>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Udo</firstname>
|
|
<surname>Erdelhoff</surname>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>NIS/YP (Network Information Service)</title>
|
|
|
|
<sect2>
|
|
<title>Was ist NIS?</title>
|
|
|
|
<indexterm><primary>NIS</primary></indexterm>
|
|
<indexterm><primary>Solaris</primary></indexterm>
|
|
<indexterm><primary>HP-UX</primary></indexterm>
|
|
<indexterm><primary>AIX</primary></indexterm>
|
|
<indexterm><primary>Linux</primary></indexterm>
|
|
<indexterm><primary>NetBSD</primary></indexterm>
|
|
<indexterm><primary>OpenBSD</primary></indexterm>
|
|
|
|
<para>NIS (Network Information Service) wurde von Sun Microsystems
|
|
entwickelt, um &unix;-Systeme (ursprünglich &sunos;) zentral
|
|
verwalten zu können. Mittlerweile hat es sich zu einem
|
|
Industriestandard entwickelt, der von allen wichtigen
|
|
&unix;-Systemen (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD,
|
|
FreeBSD und anderen) unterstützt wird.</para>
|
|
|
|
<indexterm>
|
|
<primary>yellow pages</primary>
|
|
<see>NIS</see>
|
|
</indexterm>
|
|
|
|
<para>NIS war ursprünglich als
|
|
<emphasis>Yellow Pages</emphasis> bekannt, aus markenrechtlichen
|
|
Gründen wurde der Name aber geändert. Die alte
|
|
Bezeichnung (sowie die Abkürzung YP) wird aber nach wie vor
|
|
häufig verwendet.</para>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Domänen</secondary>
|
|
</indexterm>
|
|
|
|
<para>Bei NIS handelt es sich um ein RPC-basiertes
|
|
Client/Server-System. Eine Gruppe von Rechnern greift dabei
|
|
innerhalb einer NIS-Domäne auf gemeinsame
|
|
Konfigurationsdateien zu. Ein Systemadministrator wird dadurch
|
|
in die Lage versetzt, NIS-Clients mit minimalem Aufwand
|
|
einzurichten, sowie Änderungen an der Systemkonfiguration
|
|
von einem zentralen Ort aus durchzuführen.</para>
|
|
|
|
<indexterm>
|
|
<primary>Windows NT</primary>
|
|
</indexterm>
|
|
|
|
<para>Die Funktion entspricht dem Domänensystem von
|
|
&windowsnt;; auch wenn sich die interne Umsetzung unterscheidet,
|
|
sind die Basisfunktionen vergleichbar.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Wichtige Prozesse und Begriffe</title>
|
|
|
|
<para>Es gibt verschiedene Begriffe und Anwenderprozesse, auf die
|
|
Sie stoßen werden, wenn Sie NIS unter FreeBSD einrichten,
|
|
egal ob Sie einen Server oder einen Client konfigurieren:</para>
|
|
|
|
<indexterm>
|
|
<primary><application>portmap</application></primary>
|
|
</indexterm>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Begriff</entry>
|
|
|
|
<entry>Beschreibung</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>NIS-Domänenname</entry>
|
|
|
|
<entry>Ein NIS-Masterserver sowie alle Clients (inklusive
|
|
der Slaveserver) haben einen NIS-Domänennamen.
|
|
Dieser hat (ähnlich den &windowsnt;-Domänennamen)
|
|
nichts mit DNS zu tun.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>portmap</entry>
|
|
|
|
<entry>Muss laufen, damit RPC (Remote Procedure Call, ein
|
|
von NIS verwendetes Netzwerkprotokoll) funktioniert.
|
|
NIS-Server sowie Clients funktionieren ohne
|
|
<command>portmap</command> nicht.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ypbind</entry>
|
|
|
|
<entry><quote>Bindet</quote> einen NIS-Client an seinen
|
|
NIS-Server. Der Client bezieht den
|
|
NIS-Domänennamen vom System und stellt über
|
|
das RPC-Protokoll eine Verbindung zum NIS-Server her.
|
|
<command>ypbind</command> ist der zentrale Bestandteil
|
|
der Client-Server-Kommunikation in einer NIS-Umgebung.
|
|
Wird <command>ypbind</command> auf einem Client beendet,
|
|
ist dieser nicht mehr in der Lage, auf den NIS-Server
|
|
zuzugreifen.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ypserv</entry>
|
|
|
|
<entry>Sollte nur auf dem NIS-Server laufen, da es sich um
|
|
den Serverprozess selbst handelt. Wenn &man.ypserv.8;
|
|
nicht mehr läuft, kann der Server nicht mehr auf
|
|
NIS-Anforderungen reagieren (wenn ein Slaveserver
|
|
existiert, kann dieser als Ersatz fungieren). Einige
|
|
NIS-Systeme (allerdings nicht das von
|
|
FreeBSD) versuchen allerdings erst gar nicht, sich mit
|
|
einem anderen Server zu verbinden, wenn der bisher
|
|
verwendete Server nicht mehr reagiert. Die einzige
|
|
Lösung dieses Problems besteht dann darin, den
|
|
Serverprozess (oder gar den Server selbst) oder den
|
|
<command>ypbind</command>-Prozess auf dem Client neu
|
|
zu starten.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>rpc.yppasswdd</entry>
|
|
|
|
<entry>Ein weiterer Prozess, der nur auf dem
|
|
NIS-Masterserver laufen sollte. Es handelt sich um einen
|
|
Daemonprozess, der es NIS-Clients ermöglicht, sich
|
|
auf dem NIS-Masterserver anzumelden, um ihr Passwort zu
|
|
ändern.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<!-- XXX Missing: rpc.ypxfrd (not important, though) May only run
|
|
on the master -->
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Wie funktioniert NIS?</title>
|
|
|
|
<para>In einer NIS-Umgebung gibt es drei Rechnerarten:
|
|
Masterserver, Slaveserver und Clients. Server dienen als
|
|
zentraler Speicherort für Rechnerkonfigurationen.
|
|
Masterserver speichern die maßgebliche Kopie dieser
|
|
Informationen, während Slaveserver diese Informationen
|
|
aus Redundanzgründen spiegeln. Die Clients beziehen
|
|
ihre Informationen immer vom Server.</para>
|
|
|
|
<para>Auf diese Art und Weise können Informationen aus
|
|
verschiedenen Dateien von mehreren Rechnern gemeinsam
|
|
verwendet werden. <filename>master.passwd</filename>,
|
|
<filename>group</filename>, und <filename>hosts</filename>
|
|
werden oft gemeinsam über NIS verwendet. Immer, wenn
|
|
ein Prozess auf einem Client auf Informationen zugreifen will,
|
|
die normalerweise in lokalen Dateien vorhanden wären,
|
|
wird stattdessen eine Anfrage an den NIS-Server gestellt, an
|
|
den der Client gebunden ist.</para>
|
|
|
|
<sect3>
|
|
<title>Arten von NIS-Rechnern</title>
|
|
|
|
<itemizedlist>
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Masterserver</secondary>
|
|
</indexterm>
|
|
|
|
<listitem>
|
|
<para>Ein <emphasis>NIS-Masterserver</emphasis> verwaltet,
|
|
ähnlich einem &windowsnt;-Domänencontroller, die
|
|
von allen NIS-Clients gemeinsam verwendeten Dateien.
|
|
<filename>passwd</filename>, <filename>group</filename>,
|
|
sowie verschiedene andere von den Clients verwendete
|
|
Dateien existieren auf dem Masterserver.</para>
|
|
|
|
<note><para>Ein Rechner kann auch für mehrere
|
|
NIS-Domänen als Masterserver fungieren. Dieser
|
|
Abschnitt konzentriert sich im Folgenden allerdings auf
|
|
eine relativ kleine NIS-Umgebung.</para></note>
|
|
</listitem>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Slaveserver</secondary>
|
|
</indexterm>
|
|
|
|
<listitem>
|
|
<para><emphasis>NIS-Slaveserver</emphasis>. Ähnlich
|
|
einem &windowsnt;-Backupdomänencontroller, verwalten
|
|
NIS-Slaveserver Kopien der Daten des NIS-Masterservers.
|
|
NIS-Slaveserver bieten die Redundanz, die für
|
|
kritische Umgebungen benötigt wird. Zusätzlich
|
|
entlasten Slaveserver den Masterserver: NIS-Clients
|
|
verbinden sich immer mit dem NIS-Server, der zuerst
|
|
reagiert. Dieser Server kann auch ein Slaveserver sein.</para>
|
|
</listitem>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Client</secondary>
|
|
</indexterm>
|
|
|
|
<listitem>
|
|
<para><emphasis>NIS-Clients</emphasis>. NIS-Clients
|
|
identifizieren sich gegenüber dem NIS-Server
|
|
(ähnlich den &windowsnt;-Workstations), um sich am Server
|
|
anzumelden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>NIS/YP konfigurieren</title>
|
|
|
|
<para>Dieser Abschnitt beschreibt an Hand eines Beispiels die
|
|
Einrichtung einer NIS-Umgebung.</para>
|
|
|
|
<note><para>Es wird dabei davon ausgegangen, dass Sie
|
|
FreeBSD 3.3 oder eine aktuellere Version verwenden.
|
|
<emphasis>Wahrscheinlich</emphasis> funktioniert diese Anleitung
|
|
auch für FreeBSD-Versionen ab 3.0, es gibt dafür aber
|
|
keine Garantie.</para></note>
|
|
|
|
<sect3>
|
|
<title>Planung</title>
|
|
|
|
<para>Nehmen wir an, Sie seien der Administrator eines kleinen
|
|
Universitätsnetzes. Dieses Netz besteht aus
|
|
fünfzehn FreeBSD-Rechnern, für die derzeit keine
|
|
zentrale Verwaltung existiert, jeder Rechner hat also eine
|
|
eigene Version von <filename>/etc/passwd</filename> und
|
|
<filename>/etc/master.passwd</filename>. Diese Dateien werden
|
|
manuell synchron gehalten; legen Sie einen neuen Benutzer an,
|
|
so muss dies auf allen fünfzehn Rechnern manuell
|
|
erledigt werden (unter Verwendung von
|
|
<command>adduser</command>). Da diese Lösung sehr
|
|
ineffizient ist, soll das Netzwerk in Zukunft NIS verwenden,
|
|
wobei zwei der Rechner als Server dienen sollen.</para>
|
|
|
|
<para>In Zukunft soll das Netz also wie folgt aussehen:</para>
|
|
|
|
<informaltable>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Rechnername</entry>
|
|
<entry>IP-Adresse</entry>
|
|
<entry>Rechneraufgabe</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><hostid>ellington</hostid></entry>
|
|
<entry><hostid role="ipaddr">10.0.0.2</hostid></entry>
|
|
<entry>NIS-Master</entry>
|
|
</row>
|
|
<row>
|
|
<entry><hostid>coltrane</hostid></entry>
|
|
<entry><hostid role="ipaddr">10.0.0.3</hostid></entry>
|
|
<entry>NIS-Slave</entry>
|
|
</row>
|
|
<row>
|
|
<entry><hostid>basie</hostid></entry>
|
|
<entry><hostid role="ipaddr">10.0.0.4</hostid></entry>
|
|
<entry>Workstation der Fakultät</entry>
|
|
</row>
|
|
<row>
|
|
<entry><hostid>bird</hostid></entry>
|
|
<entry><hostid role="ipaddr">10.0.0.5</hostid></entry>
|
|
<entry>Clientrechner</entry>
|
|
</row>
|
|
<row>
|
|
<entry><hostid>cli[1-11]</hostid></entry>
|
|
<entry><hostid role="ipaddr">10.0.0.[6-17]</hostid></entry>
|
|
<entry>Verschiedene andere Clients</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Wenn Sie NIS das erste Mal einrichten, ist es ratsam, sich
|
|
zuerst über die Vorgangsweise Gedanken zu machen.
|
|
Unabhängig von der Größe Ihres Netzwerks
|
|
müssen Sie stets einige Entscheidungen treffen.</para>
|
|
|
|
<sect4>
|
|
<title>Einen NIS-Domänennamen wählen</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Domänenname</secondary>
|
|
</indexterm>
|
|
|
|
<para>Dies muss nicht der <quote>Domainname</quote> sein. Es
|
|
handelt sich vielmehr um den <quote>NIS-Domainnamen</quote>.
|
|
Wenn ein Client Informationen anfordert, ist in dieser
|
|
Anforderung der Name der NIS-Domäne enthalten.
|
|
Dadurch weiß jeder Server im Netzwerk, auf welche
|
|
Anforderung er antworten muss. Stellen Sie sich den
|
|
NIS-Domänennamen als den Namen einer Gruppe von
|
|
Rechnern vor, die etwas gemeinsam haben.</para>
|
|
|
|
<para>Manchmal wird der Name der Internetdomäne auch
|
|
für die NIS-Domäne verwendet. Dies ist allerdings
|
|
nicht empfehlenswert, da dies bei der Behebung von Problemen
|
|
verwirrend sein kann. Der Name der NIS-Domäne sollte
|
|
innerhalb Ihres Netzwerks einzigartig sein. Hilfreich ist
|
|
es, wenn der Name die Gruppe der in ihr zusammengefassten
|
|
Rechner beschreibt. Die Kunstabteilung von Acme Inc.
|
|
hätte daher die NIS-Domäne
|
|
<quote>acme-art</quote>. Für unser Beispiel verwenden
|
|
wir den NIS-Domänennamen
|
|
<emphasis>test-domain</emphasis>.</para>
|
|
|
|
<indexterm><primary>SunOS</primary></indexterm>
|
|
|
|
<para>Es gibt jedoch auch Betriebssysteme (vor allem &sunos;),
|
|
die als NIS-Domänennamen den Name der
|
|
Internetdomäne verwenden. Wenn dies für einen
|
|
oder mehrere Rechner Ihres Netzwerks zutrifft,
|
|
<emphasis>müssen</emphasis> Sie den Namen der
|
|
Internetdomäne als Ihren NIS-Domänennamen
|
|
verwenden.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Anforderungen an den Server</title>
|
|
|
|
<para>Wenn Sie einen NIS-Server einrichten wollen, müssen
|
|
Sie einige Dinge beachten. Eine unangenehme Eigenschaft
|
|
von NIS ist die Abhängigkeit der Clients vom Server.
|
|
Wenn sich der Client nicht über den Server mit seiner
|
|
NIS-Domäne verbinden kann, wird der Rechner oft
|
|
unbenutzbar, da das Fehlen von Benutzer- und
|
|
Gruppeninformationen zum Einfrieren des Clients führt.
|
|
Daher sollten Sie für den Server einen Rechner
|
|
auswählen, der nicht regelmäßig neu
|
|
gestartet werden muss und der nicht für Testversuche
|
|
verwendet wird. Idealerweise handelt es sich um einen
|
|
alleinstehenden Rechner, dessen einzige Aufgabe es ist, als
|
|
NIS-Server zu dienen. Wenn Sie ein Netzwerk haben, das
|
|
nicht zu stark ausgelastet ist, ist es auch möglich,
|
|
den NIS-Server als weiteren Dienst auf einem anderen Rechner
|
|
laufen zu lassen. Denken Sie aber daran, dass ein Ausfall
|
|
des NIS-Servers <emphasis>alle</emphasis> NIS-Clients
|
|
betrifft.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>NIS-Server</title>
|
|
|
|
<para>Die verbindlichen Kopien aller NIS-Informationen befinden
|
|
sich auf einem einzigen Rechner, dem NIS-Masterserver. Die
|
|
Datenbanken, in denen die Informationen gespeichert sind,
|
|
bezeichnet man als NIS-Maps. Unter FreeBSD werden diese
|
|
Maps unter <filename>/var/yp/[domainname]</filename>
|
|
gespeichert, wobei <filename>[domainname]</filename> der
|
|
Name der NIS-Domäne ist. Ein einzelner NIS-Server
|
|
kann gleichzeitig mehrere NIS-Domänen verwalten, daher
|
|
können auch mehrere Verzeichnisse vorhanden sein. Jede
|
|
Domäne verfügt über ein eigenes Verzeichnis
|
|
sowie einen eigenen, von anderen Domänen
|
|
unabhängigen Satz von NIS-Maps.</para>
|
|
|
|
<para>NIS-Master- und Slaveserver verwenden den
|
|
<command>ypserv</command>-Daemon, um NIS-Anfragen zu
|
|
bearbeiten. <command>ypserv</command> empfängt
|
|
eingehende Anfragen der NIS-Clients, ermittelt aus der
|
|
angeforderten Domäne und Map einen Pfad zur
|
|
entsprechenden Datenbank, und sendet die angeforderten
|
|
Daten von der Datenbank zum Client.</para>
|
|
|
|
<sect4>
|
|
<title>Einen NIS-Masterserver einrichten</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Serverkonfiguration</secondary>
|
|
</indexterm>
|
|
|
|
<para>Abhängig von Ihren Anforderungen ist die
|
|
Einrichtung eines NIS-Masterservers relativ einfach, da
|
|
NIS von FreeBSD bereits in der Standardkonfiguration
|
|
unterstützt wird. Sie müssen nur folgende
|
|
Zeilen in <filename>/etc/rc.conf</filename> einfügen:
|
|
</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<programlisting>nisdomainname="test-domain"</programlisting>
|
|
|
|
<para>Diese Zeile setzt den NIS-Domänennamen auf
|
|
<emphasis>test-domain</emphasis>, wenn Sie das Netzwerk
|
|
initialisieren (beispielsweise nach einem Systemstart).
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para><programlisting>nis_server_enable="YES"</programlisting>
|
|
Dadurch werden die NIS-Serverprozesse gestartet.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para><programlisting>nis_yppasswdd_enable="YES"</programlisting>
|
|
Durch diese Zeile wird der
|
|
<command>rpc.yppasswdd</command>-Daemon aktiviert, der,
|
|
wie bereits erwähnt, die Änderung von
|
|
NIS-Passwörtern von einem Client aus
|
|
ermöglicht.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<note>
|
|
<para>In Abhängigkeit von Ihrer NIS-Konfiguration
|
|
können weitere Einträge erforderlich sein.
|
|
Weitere Informationen finden Sie im Abschnitt
|
|
<link linkend="nis-server-is-client">NIS-Server, die auch
|
|
als NIS-Clients arbeiten</link>.</para>
|
|
</note>
|
|
|
|
<para>Nun müssen Sie nur noch
|
|
<command>/etc/netstart</command> als Superuser
|
|
ausführen, um alles entsprechend Ihren Vorgaben in
|
|
<filename>/etc/rc.conf</filename> einzurichten.</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Die NIS-Maps initialisieren</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>maps</secondary>
|
|
</indexterm>
|
|
|
|
<para><emphasis>NIS-Maps</emphasis> sind Datenbanken, die
|
|
sich im Verzeichnis <filename>/var/yp</filename> befinden.
|
|
Sie werden am NIS-Masterserver aus den Konfigurationsdateien
|
|
unter <filename>/etc</filename> erzeugt. Einzige Ausnahme:
|
|
<filename>/etc/master.passwd</filename>. Dies ist auch
|
|
sinnvoll, da Sie die Passwörter für Ihr
|
|
<username>root</username>- bzw. andere
|
|
Administratorkonten nicht an alle Server der NIS-Domäne
|
|
verteilen wollen. Bevor Sie also die NIS-Maps des
|
|
Masterservers einrichten, sollten Sie Folgendes tun:</para>
|
|
|
|
<screen>
|
|
&prompt.root; <userinput>cp /etc/master.passwd /var/yp/master.passwd</userinput>
|
|
&prompt.root; <userinput>cd /var/yp</userinput>
|
|
&prompt.root; <userinput>vi master.passwd</userinput>
|
|
</screen>
|
|
|
|
<para>Entfernen Sie alle Systemkonten
|
|
(wie <username>bin</username>, <username>tty</username>,
|
|
<username>kmem</username> oder <username>games</username>),
|
|
sowie alle Konten, die Sie nicht an die NIS-Clients
|
|
weitergeben wollen (beispielsweise <username>root</username>
|
|
und alle Konten mit der UID 0 (=Superuser).</para>
|
|
|
|
<note><para>Stellen Sie sicher, dass
|
|
<filename>/var/yp/master.passwd</filename> weder von der
|
|
Gruppe noch von der Welt gelesen werden kann (Zugriffsmodus
|
|
600)! Ist dies nicht der Fall, ändern Sie dies mit
|
|
<command>chmod</command>.</para></note>
|
|
|
|
<indexterm><primary>Tru64 UNIX</primary></indexterm>
|
|
|
|
<para>Nun können Sie die NIS-Maps initialisieren.
|
|
FreeBSD verwendet für diese Aufgabe das Skript
|
|
<command>ypinit</command> (weiteres erfahren Sie
|
|
in der Hilfeseite &man.ypinit.8;). Dieses Skript ist auf
|
|
fast allen UNIX-Betriebssystemen verfügbar. Bei
|
|
Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings
|
|
<command>ypsetup</command>. Da wir Maps für einen
|
|
NIS-Masterserver erzeugen, verwenden wir
|
|
<command>ypinit</command> mit der Option
|
|
<option>-m</option>. Nachdem Sie die beschriebenen
|
|
Aktionen durchgeführt haben, erzeugen Sie nun die
|
|
NIS-Maps:</para>
|
|
|
|
<screen>
|
|
ellington&prompt.root; <userinput>ypinit -m test-domain</userinput>
|
|
Server Type: MASTER Domain: test-domain
|
|
Creating an YP server will require that you answer a few questions.
|
|
Questions will all be asked at the beginning of the procedure.
|
|
Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
|
|
Ok, please remember to go back and redo manually whatever fails.
|
|
If you don't, something might not work.
|
|
At this point, we have to construct a list of this domains YP servers.
|
|
rod.darktech.org is already known as master server.
|
|
Please continue to add any slave servers, one per line. When you are
|
|
done with the list, type a <control D>.
|
|
master server : ellington
|
|
next host to add: <userinput>coltrane</userinput>
|
|
next host to add: <userinput>^D</userinput>
|
|
The current list of NIS servers looks like this:
|
|
ellington
|
|
coltrane
|
|
Is this correct? [y/n: y] <userinput>y</userinput>
|
|
|
|
[..output from map generation..]
|
|
|
|
NIS Map update completed.
|
|
ellington has been setup as an YP master server without any errors.
|
|
</screen>
|
|
|
|
<para>Dadurch erzeugt <command>ypinit</command>
|
|
<filename>/var/yp/Makefile</filename> aus der Datei
|
|
<filename>/var/yp/Makefile.dist</filename>.
|
|
Durch diese Datei wird festgelegt, dass Sie in einer
|
|
NIS-Umgebung mit nur einem Server arbeiten und dass alle
|
|
Clients unter FreeBSD laufen. Da
|
|
<emphasis>test-domain</emphasis> aber auch über einen
|
|
Slaveserver verfügt, müssen Sie
|
|
<filename>/var/yp/Makefile</filename> entsprechend anpassen:
|
|
</para>
|
|
|
|
<screen>ellington&prompt.root; <userinput>vi /var/yp/Makefile</userinput></screen>
|
|
|
|
<para>Sie sollten die Zeile</para>
|
|
|
|
<programlisting>NOPUSH = "True"</programlisting>
|
|
|
|
<para>auskommentieren (falls dies nicht bereits der Fall ist).</para>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Einen NIS-Slaveserver einrichten</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Slaveserver</secondary>
|
|
</indexterm>
|
|
|
|
<para>Ein NIS-Slaveserver ist noch einfacher einzurichten als
|
|
ein Masterserver. Melden Sie sich am Slaveserver an und
|
|
ändern Sie <filename>/etc/rc.conf</filename> analog
|
|
zum Masterserver. Der einzige Unterschied besteht in der
|
|
Verwendung der Option <option>-s</option>, wenn Sie
|
|
<command>ypinit</command> aufrufen. Die Option
|
|
<option>-s</option> erfordert den Namen des
|
|
NIS-Masterservers, daher sieht unsere Ein- und Ausgabe wie
|
|
folgt aus:</para>
|
|
|
|
<screen>
|
|
coltrane&prompt.root; <userinput>ypinit -s ellington test-domain</userinput>
|
|
|
|
Server Type: SLAVE Domain: test-domain Master: ellington
|
|
|
|
Creating an YP server will require that you answer a few questions.
|
|
Questions will all be asked at the beginning of the procedure.
|
|
|
|
Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
|
|
|
|
Ok, please remember to go back and redo manually whatever fails.
|
|
If you don't, something might not work.
|
|
There will be no further questions. The remainder of the procedure
|
|
should take a few minutes, to copy the databases from ellington.
|
|
Transferring netgroup...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring netgroup.byuser...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring netgroup.byhost...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring master.passwd.byuid...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring passwd.byuid...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring passwd.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring group.bygid...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring group.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring services.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring rpc.bynumber...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring rpc.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring protocols.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring master.passwd.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring networks.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring networks.byaddr...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring netid.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring hosts.byaddr...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring protocols.bynumber...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring ypservers...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
Transferring hosts.byname...
|
|
ypxfr: Exiting: Map successfully transferred
|
|
|
|
coltrane has been setup as an YP slave server without any errors.
|
|
Don't forget to update map ypservers on ellington.
|
|
</screen>
|
|
|
|
<para>Sie sollten nun über das Verzeichnis
|
|
<filename>/var/yp/test-domain</filename> verfügen.
|
|
Die Kopien der NIS-Masterserver-Maps sollten sich in diesem
|
|
Verzeichnis befinden. Allerdings müssen Sie diese
|
|
auch aktuell halten. Die folgenden Einträge in
|
|
<filename>/etc/crontab</filename> erledigen diese Aufgabe:
|
|
</para>
|
|
|
|
<programlisting>
|
|
20 * * * * root /usr/libexec/ypxfr passwd.byname
|
|
21 * * * * root /usr/libexec/ypxfr passwd.byuid
|
|
</programlisting>
|
|
|
|
<para>Diese zwei Zeilen zwingen den Slaveserver, seine Maps
|
|
mit denen des Masterservers zu synchronisieren. Diese
|
|
Einträge sind nicht zwingend, da der Masterserver
|
|
versucht, alle Änderungen seiner NIS-Maps an seine
|
|
Slaveserver weiterzugeben. Da Passwortinformationen aber
|
|
für vom Server abhängige Systeme vital sind, ist
|
|
es eine gute Idee, diese Aktualisierungen zu erzwingen.
|
|
Besonders wichtig ist dies in stark ausgelasteten Netzen,
|
|
in denen Map-Aktualisierungen unvollständig sein
|
|
könnten.</para>
|
|
|
|
<para>Führen Sie nun <command>/etc/netstart</command>
|
|
auch auf dem Slaveserver aus, um den NIS-Server erneut zu
|
|
starten.</para>
|
|
</sect4>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>NIS-Clients</title>
|
|
|
|
<para>Ein NIS-Client <literal>bindet</literal> sich unter
|
|
Verwendung des <command>ypbind</command>-Daemons an einen
|
|
NIS-Server. <command>ypbind</command> prüft die
|
|
Standarddomäne des Systems (die durch
|
|
<command>domainname</command> gesetzt wird), und beginnt
|
|
RPCs über das lokale Netzwerk zu verteilen (broadcast).
|
|
Diese Anforderungen legen den Namen der Domäne fest,
|
|
für die <command>ypbind</command> eine Bindung erzeugen
|
|
will. Wenn der Server der entsprechenden Domäne eine
|
|
solche Anforderung erhält, schickt er eine Antwort an
|
|
<command>ypbind</command>. <command>ybind</command> speichert
|
|
daraufhin die Adresse des Servers. Wenn mehrere Server
|
|
verfügbar sind (beispielsweise ein Master- und mehrere
|
|
Slaveserver), verwendet <command>ypbind</command> die erste
|
|
erhaltene Adresse. Ab diesem Zeitpunkt richtet der Client alle
|
|
Anfragen an genau diesen Server. <command>ypbind</command>
|
|
<quote>pingt</quote> den Server gelegentlich an, um
|
|
sicherzustellen, dass der Server funktioniert. Antwortet der
|
|
Server innerhalb eines bestimmten Zeitraums nicht (Timeout),
|
|
markiert <command>ypbind</command> die Domäne als
|
|
ungebunden und beginnt erneut, RPCs über das Netzwerk zu
|
|
verteilen, um einen anderen Server zu finden.</para>
|
|
|
|
<sect4>
|
|
<title>Einen NIS-Client konfigurieren</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Client konfigurieren</secondary>
|
|
</indexterm>
|
|
|
|
<para>Einen FreeBSD-Rechner als NIS-Client einzurichten, ist
|
|
recht einfach.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Fügen Sie folgende Zeilen in
|
|
<filename>/etc/rc.conf</filename> ein, um den
|
|
NIS-Domänennamen festzulegen, und um
|
|
<command>ypbind</command> bei der Initialisierung des
|
|
Netzwerks zu starten:</para>
|
|
|
|
<programlisting>
|
|
nisdomainname="test-domain"
|
|
nis_client_enable="YES"
|
|
</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Um alle Passworteinträge des NIS-Servers zu
|
|
importieren, löschen Sie alle Benutzerkonten in
|
|
<filename>/etc/master.passwd</filename> und fügen
|
|
mit <command>vipw</command> folgende Zeile am Ende der
|
|
Datei ein:</para>
|
|
|
|
<programlisting>+:::::::::</programlisting>
|
|
|
|
<note>
|
|
<para>Diese Zeile legt für alle gültigen
|
|
Benutzerkonten der NIS-Server-Maps einen Zugang an.
|
|
Es gibt verschiedene Wege, Ihren NIS-Client durch
|
|
Änderung dieser Zeile zu konfigurieren. Lesen
|
|
Sie dazu auch den Abschnitt über
|
|
<link linkend="netgroups">Netzgruppen </link> weiter
|
|
unten. Weitere detaillierte Informationen finden Sie
|
|
im Buch <literal>Managing NFS and NIS</literal> von
|
|
O'Reilly.</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para>Sie sollten zumindest ein lokales Benutzerkonto,
|
|
das nicht über NIS importiert wird, in Ihrer
|
|
<filename>/etc/master.passwd</filename> behalten.
|
|
Dieser Benutzer sollte außerdem ein Mitglied der
|
|
Gruppe <groupname>wheel</groupname> sein. Wenn es
|
|
mit NIS Probleme gibt, können Sie diesen Zugang
|
|
verwenden, um sich anzumelden,
|
|
<username>root</username> zu werden und das Problem
|
|
zu beheben.</para>
|
|
</note>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Um alle möglichen Gruppeneinträge vom
|
|
NIS-Server zu importieren, fügen sie folgende Zeile
|
|
in <filename>/etc/group</filename> ein:</para>
|
|
|
|
<programlisting>+:*::</programlisting>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Nachdem Sie diese Schritte erledigt haben, sollten Sie
|
|
mit <command>ypcat passwd</command> die
|
|
<literal>passwd-Map</literal> des NIS-Server anzeigen
|
|
können.
|
|
</para>
|
|
</sect4>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Sicherheit unter NIS</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Sicherheit</secondary>
|
|
</indexterm>
|
|
|
|
<para>Im Allgemeinen kann jeder entfernte Anwender einen RPC an
|
|
&man.ypserv.8; schicken, um den Inhalt Ihrer NIS-Maps abzurufen,
|
|
falls er Ihren NIS-Domänennamen kennt. Um solche
|
|
unautorisierten Transaktionen zu verhindern, unterstützt
|
|
&man.ypserv.8; <literal>securenets</literal>, durch die man den
|
|
Zugriff auf bestimmte Rechner beschränken kann.
|
|
&man.ypserv.8; versucht, beim Systemstart die Informationen
|
|
über <literal>securenets</literal> aus der Datei
|
|
<filename>/var/yp/securenets</filename> zu laden.</para>
|
|
|
|
<note>
|
|
<para>Die Datei <filename>securenets</filename> kann auch
|
|
in einem anderen Verzeichnis stehen, das mit der Option
|
|
<option>-p</option> angegeben wird. Diese Datei
|
|
enthält Einträge, die aus einer Netzwerkadresse und
|
|
einer Netzmaske bestehen, die durch Leerzeichen getrennt
|
|
werden. Kommentarzeilen beginnen mit <quote>#</quote>.
|
|
<filename>/var/yp/securnets</filename> könnte
|
|
beispielsweise so aussehen:</para>
|
|
</note>
|
|
|
|
<programlisting>
|
|
# allow connections from local host -- mandatory
|
|
127.0.0.1 255.255.255.255
|
|
# allow connections from any host
|
|
# on the 192.168.128.0 network
|
|
192.168.128.0 255.255.255.0
|
|
# allow connections from any host
|
|
# between 10.0.0.0 to 10.0.15.255
|
|
# this includes the machines in the testlab
|
|
10.0.0.0 255.255.240.0
|
|
</programlisting>
|
|
|
|
<para>Wenn &man.ypserv.8; eine Anforderung von einer zu diesen
|
|
Regeln passenden Adresse erhält, wird die Anforderung
|
|
bearbeitet. Gibt es keine passende Regel, wird die
|
|
Anforderung ignoriert und eine Warnmeldung aufgezeichnet. Wenn
|
|
<filename>/var/yp/securenets</filename> nicht vorhanden ist,
|
|
erlaubt <command>ypserv</command> Verbindungen von jedem Rechner
|
|
aus.</para>
|
|
|
|
<para><command>ypserv</command> unterstützt auch das
|
|
<application>tcpwrapper</application>-Paket von Wietse Venema.
|
|
Mit diesem Paket kann der Administrator für
|
|
Zugriffskontrollen die Konfigurationsdateien von
|
|
<application>tcpwrapper</application> anstelle von
|
|
<filename>/var/yp/securenets</filename> verwenden.</para>
|
|
|
|
<note>
|
|
<para>Während beide Kontrollmechanismen einige Sicherheit
|
|
gewähren, beispielsweise durch privilegierte Ports, sind
|
|
sie gegenüber <quote>IP spoofing</quote>-Attacken
|
|
verwundbar. Jeder NIS-Verkehr sollte daher von Ihrer Firewall
|
|
blockiert werden.</para>
|
|
|
|
<para>Server, die <filename>/var/yp/securenets</filename>
|
|
verwenden, können Schwierigkeiten bei der Anmeldung von
|
|
Clients haben, die ein veraltetes TCP/IP-Subsystem
|
|
besitzen. Einige dieser TCP/IP-Subsysteme setzen alle
|
|
Rechnerbits auf Null, wenn Sie einen
|
|
<literal>Broadcast</literal> durchführen und/oder
|
|
können die Subnetzmaske nicht auslesen, wenn sie die
|
|
Broadcast-Adresse berechnen. Einige Probleme können durch
|
|
Änderungen der Clientkonfiguration behoben werden.
|
|
Andere hingegen lassen sich nur durch das Entfernen des
|
|
betreffenden Rechners aus dem Netzwerk oder den Verzicht auf
|
|
<filename>/var/yp/securenets</filename> umgehen.</para>
|
|
|
|
<para>Die Verwendung von <filename>/var/yp/securenets</filename>
|
|
auf einem Server mit einem solch veralteten
|
|
TCP/IP-Subsystem ist eine sehr schlechte Idee, die zu
|
|
einem Verlust der NIS-Funktionalität für große
|
|
Teile Ihres Netzwerks führen kann.</para>
|
|
|
|
<indexterm>
|
|
<primary>tcpwrapper</primary>
|
|
</indexterm>
|
|
|
|
<para>Die Verwendung von <application>tcpwrapper</application>
|
|
verlangsamt die Reaktion Ihres NIS-Servers. Diese
|
|
zusätzliche Reaktionszeit kann in Clientprogrammen zu
|
|
Timeouts führen. Dies vor allem in Netzwerken, die
|
|
stark ausgelastet sind, oder nur über langsame NIS-Server
|
|
verfügen. Wenn ein oder mehrere Ihrer Clientsysteme
|
|
dieses Problem aufweisen, sollten Sie die betreffenden Clients
|
|
in NIS-Slaveserver umwandeln, und diese an sich selbst binden.
|
|
</para>
|
|
</note>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Bestimmte Benutzer an der Anmeldung hindern</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Benutzer blockieren</secondary>
|
|
</indexterm>
|
|
|
|
<para>In unserem Labor gibt es den Rechner <hostid>basie</hostid>,
|
|
der nur für Mitarbeiter der Fakultät bestimmt ist.
|
|
Wir wollen diesen Rechner nicht aus der NIS-Domäne
|
|
entfernen, obwohl <filename>passwd</filename> des
|
|
NIS-Masterservers Benutzerkonten sowohl für
|
|
Fakultätsmitarbeiter als auch für Studenten
|
|
enthält. Was können wir also tun?</para>
|
|
|
|
<para>Es gibt eine Möglichkeit, bestimmte Benutzer an der
|
|
Anmeldung an einem bestimmten Rechner zu hindern, selbst wenn
|
|
diese in der NIS-Datenbank vorhanden sind. Dazu müssen
|
|
Sie lediglich an diesem Rechner den Eintrag
|
|
<emphasis>-<replaceable>Benutzername</replaceable></emphasis> an
|
|
das Ende von <filename>/etc/master.passwd</filename> setzen,
|
|
wobei <replaceable>Benutzername</replaceable> der zu
|
|
blockierende Benutzername ist. Diese Änderung sollte
|
|
bevorzugt durch <command>vipw</command> erledigt werden, da
|
|
<command>vipw</command> Ihre Änderungen an
|
|
<filename>/etc/master.passwd</filename> auf Plausibilität
|
|
überprüft und nach erfolgter Änderung die
|
|
Passwortdatenbank automatisch aktualisiert. Um also den
|
|
Benutzer <emphasis>bill</emphasis> an der Anmeldung am Rechner
|
|
<hostid>basie</hostid> zu hindern, gehen wir wie folgt vor:
|
|
</para>
|
|
|
|
<screen>
|
|
basie&prompt.root; <userinput>vipw</userinput>
|
|
<userinput>[add -bill to the end, exit]</userinput>
|
|
vipw: rebuilding the database...
|
|
vipw: done
|
|
|
|
basie&prompt.root; <userinput>cat /etc/master.passwd</userinput>
|
|
|
|
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
|
|
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
|
|
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
|
|
operator:*:2:5::0:0:System &:/:/sbin/nologin
|
|
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
|
|
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
|
|
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
|
|
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
|
|
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
|
|
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
|
|
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
|
|
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
|
|
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
|
|
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
|
|
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
|
|
+:::::::::
|
|
-bill
|
|
|
|
basie&prompt.root;
|
|
</screen>
|
|
</sect2>
|
|
|
|
<sect2 id="netgroups">
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Udo</firstname>
|
|
<surname>Erdelhoff</surname>
|
|
<contrib>Beigetragen von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>Netzgruppen verwenden</title>
|
|
|
|
<indexterm><primary>Netzgruppen</primary></indexterm>
|
|
|
|
<para>Die im letzten Abschnitt beschriebene Methode eignet sich
|
|
besonders, wenn Sie spezielle Regeln für wenige
|
|
Benutzer oder wenige Rechner benötigen. In großen
|
|
Netzwerken werden Sie allerdings
|
|
<emphasis>mit Sicherheit</emphasis> vergessen, einige Benutzer
|
|
von der Anmeldung an bestimmten Rechnern auszuschließen.
|
|
Oder Sie werden gezwungen sein, jeden Rechner einzeln zu
|
|
konfigurieren. Dadurch verlieren Sie aber den Hauptvorteil von
|
|
NIS, die <emphasis>zentrale</emphasis> Verwaltung.</para>
|
|
|
|
<para>Die Lösung für dieses Problem sind
|
|
<emphasis>Netzgruppen</emphasis>. Ihre Aufgabe und Bedeutung
|
|
ist vergleichbar mit normalen, von UNIX-Dateisystemen
|
|
verwendeten Gruppen. Die Hauptunterschiede sind das Fehlen
|
|
einer numerischen ID sowie die Möglichkeit, Netzgruppen
|
|
zu definieren, die sowohl Benutzer als auch andere Netzgruppen
|
|
enthalten.</para>
|
|
|
|
<para>Netzgruppen wurden entwickelt, um große, komplexe
|
|
Netzwerke mit Hunderten Benutzern und Rechnern zu verwalten.
|
|
Sie sind also von Vorteil, wenn Sie von dieser Situation
|
|
betroffen sind. Andererseits ist es dadurch beinahe
|
|
unmöglich, Netzgruppen mit einfachen Beispielen zu
|
|
erklären. Das hier verwendete Beispiel veranschaulicht
|
|
dieses Problem.</para>
|
|
|
|
<para>Nehmen wir an, dass Ihre erfolgreiche Einführung von
|
|
NIS die Aufmerksamkeit Ihrer Vorgesetzten geweckt hat. Ihre
|
|
nächste Aufgabe besteht nun darin, Ihre NIS-Domäne
|
|
um zusätzliche Rechner zu erweitern. Die folgenden
|
|
Tabellen enthalten die neuen Benutzer und Rechner inklusive
|
|
einer kurzen Beschreibung.</para>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Benutzername(n)</entry>
|
|
<entry>Beschreibung</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>alpha, beta</entry>
|
|
<entry>Beschäftigte der IT-Abteilung</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>charlie, delta</entry>
|
|
<entry>Die neuen Lehrlinge der IT-Abteilung</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>echo, foxtrott, golf, ...</entry>
|
|
<entry>Normale Mitarbeiter</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>able, baker, ...</entry>
|
|
<entry>Externe Mitarbeiter</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Rechnername(n)</entry>
|
|
<entry>Beschreibung</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<!-- Names taken from "Good Omens" by Neil Gaiman and Terry
|
|
Pratchett. Many thanks for a brilliant book. -->
|
|
<entry>war, death, famine, pollution</entry>
|
|
<entry>Ihre wichtigsten Server. Nur IT-Fachleute
|
|
dürfen sich an diesen Rechnern anmelden.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<!-- gluttony was omitted because it was too fat -->
|
|
<entry>pride, greed, envy, wrath, lust, sloth</entry>
|
|
<entry>Weniger wichtige Server. Alle Mitarbeiter der
|
|
IT-Abteilung dürfen sich auf diesen Rechnern
|
|
anmelden.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>one, two, three, four, ...</entry>
|
|
<entry>Gewöhnliche Arbeitsrechner. Nur die
|
|
<emphasis>wirklichen</emphasis> Mitarbeiter dürfen
|
|
diese Rechner verwenden.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>trashcan</entry>
|
|
<entry>Ein sehr alter Rechner ohne kritische Daten. Sogar
|
|
externe Mitarbeiter dürfen diesen Rechner
|
|
verwenden.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Wollten Sie diese Einschränkungen umsetzen, indem Sie
|
|
jeden Benutzer einzeln blockieren, müssten Sie auf jedem
|
|
System für jeden Benutzer eine Zeile in
|
|
<filename>passwd</filename> einfügen. Wenn Sie nur einen
|
|
Eintrag vergessen, haben Sie ein Problem. Es mag noch angehen,
|
|
dies während der ersten Installation zu erledigen, im
|
|
täglichen Betrieb werden Sie allerdings
|
|
<emphasis>mit Sicherheit</emphasis> einmal vergessen, die
|
|
entsprechenden Einträge anzulegen. Vergessen Sie nicht:
|
|
Murphy war Optimist.</para>
|
|
|
|
<para>Die Verwendung von Netzgruppen hat in dieser Situation
|
|
mehrere Vorteile. Sie müssen nicht jeden Benutzer einzeln
|
|
verwalten; weisen Sie stattdessen den Benutzer einer Netzgruppe
|
|
zu und erlauben oder verbieten Sie allen Mitglieder dieser
|
|
Gruppe die Anmeldung an einem Server. Wenn Sie einen neuen
|
|
Rechner hinzufügen, müssen Sie
|
|
Zugangsbeschränkungen nur für die Netzgruppen
|
|
festlegen. Legen Sie einen neuen Benutzer an, müssen Sie
|
|
ihn nur einer oder mehrere Netzgruppen zuweisen. Diese
|
|
Veränderungen sind voneinander unabhängig; Anweisungen
|
|
der Form <quote>für diese Kombination aus Benutzer und
|
|
Rechner mache Folgendes ...</quote> sind nicht mehr nötig.
|
|
Wenn Sie die Einrichtung von NIS sorgfältig geplant haben,
|
|
müssen Sie nur noch eine zentrale Konfigurationsdatei
|
|
bearbeiten, um den Zugriff auf bestimmte Rechner zu erlauben
|
|
oder zu verbieten.</para>
|
|
|
|
<para>Der erste Schritt ist die Initialisierung der NIS-Maps
|
|
der Netzgruppe. &man.ypinit.8; kann dies unter FreeBSD nicht
|
|
automatisch durchführen. Sind die Maps aber erst einmal
|
|
erzeugt, werden sie jedoch von NIS problemlos unterstützt.
|
|
Um eine leere Map zu erzeugen, geben Sie Folgendes ein:</para>
|
|
|
|
<screen>
|
|
ellington&prompt.root; <userinput>vi /var/yp/netgroup</userinput>
|
|
</screen>
|
|
|
|
<para>Danach legen Sie die Einträge an. Für unser
|
|
Beispiel benötigen wir mindestens vier Netzgruppen:
|
|
IT-Beschäftige, IT-Lehrlinge, normale Beschäftigte
|
|
sowie Externe.</para>
|
|
|
|
<programlisting>
|
|
IT_EMP (,alpha,test-domain) (,beta,test-domain)
|
|
IT_APP (,charlie,test-domain) (,delta,test-domain)
|
|
USERS (,echo,test-domain) (,foxtrott,test-domain) \
|
|
(,golf,test-domain)
|
|
INTERNS (,able,test-domain) (,baker,test-domain)
|
|
</programlisting>
|
|
|
|
<para>Bei <literal>IT_EMP</literal>, <literal>IT_APP</literal>
|
|
usw. handelt es sich um Netzgruppennamen. In den Klammern
|
|
werden diesen Netzgruppen jeweils ein oder mehrere
|
|
Benutzerkonten hinzugefügt. Die drei Felder in der
|
|
Klammer haben folgende Bedeutung:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Der Name des Rechners, auf dem die folgenden Werte
|
|
gültig sind. Legen Sie keinen Rechnernamen fest, ist
|
|
der Eintrag auf allen Rechnern gültig. Dadurch
|
|
gehen Sie vielen Problemen aus dem Weg.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Der Name des Benutzerkontos, der zu dieser Netzgruppe
|
|
gehört.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die NIS-Domäne für das Benutzerkonto. Sie
|
|
können Benutzerkonten von anderen NIS-Domänen in
|
|
Ihre Netzgruppe importieren, wenn Sie mehrere
|
|
NIS-Domänen verwalten.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Jedes Feld kann Wildcards enthalten. Die Einzelheiten
|
|
entnehmen Sie bitte &man.netgroup.5;.</para>
|
|
|
|
<note>
|
|
<indexterm><primary>Netzgruppen</primary></indexterm>
|
|
|
|
<para>Netzgruppennamen sollten nicht länger als 8 Zeichen
|
|
sein, vor allem dann, wenn Sie Rechner mit verschiedenen
|
|
Betriebssystemen in Ihrer NIS-Domäne haben. Es wird
|
|
zwischen Groß- und Kleinschreibung unterschieden.
|
|
Die Verwendung von Großbuchstaben für
|
|
Netzgruppennamen ermöglicht eine leichte Unterscheidung
|
|
zwischen Benutzern, Rechnern und Netzgruppen.</para>
|
|
|
|
<para>Einige NIS-Clients (dies gilt nicht für FreeBSD)
|
|
können keine Netzgruppen mit einer großen Anzahl
|
|
von Einträgen verwalten. Einige ältere Versionen
|
|
von &sunos; haben beispielsweise Probleme, wenn Netzgruppen mehr
|
|
als fünfzehn <emphasis>Einträge</emphasis>
|
|
enthalten. Sie können dieses Problem umgehen, indem Sie
|
|
mehrere Subnetzgruppen mit weniger als fünfzehn Benutzern
|
|
anlegen und diese Subnetzgruppen wiederum in einer Netzgruppe
|
|
zusammenfassen:</para>
|
|
|
|
<programlisting>
|
|
BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
|
|
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
|
|
BIGGRP3 (,joe31,domain) (,joe32,domain)
|
|
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3
|
|
</programlisting>
|
|
|
|
<para>Sie können diesen Vorgang wiederholen, wenn Sie mehr
|
|
als 255 Benutzer in einer einzigen Netzgruppe benötigen.
|
|
</para>
|
|
</note>
|
|
|
|
<para>Das Aktivieren und Verteilen Ihre neuen NIS-Map ist
|
|
einfach:</para>
|
|
|
|
<screen>
|
|
ellington&prompt.root; <userinput>cd /var/yp</userinput>
|
|
ellington&prompt.root; <userinput>make</userinput>
|
|
</screen>
|
|
|
|
<para>Dadurch werden die NIS-Maps <filename>netgroup</filename>,
|
|
<filename>netgroup.byhost</filename> und
|
|
<filename>netgroup.byuser</filename> erzeugt. Prüfen Sie
|
|
die Verfügbarkeit Ihrer neuen NIS-Maps mit &man.ypcat.1;.
|
|
</para>
|
|
|
|
<screen>
|
|
ellington&prompt.user; <userinput>ypcat -k netgroup</userinput>
|
|
ellington&prompt.user; <userinput>ypcat -k netgroup.byhost</userinput>
|
|
ellington&prompt.user; <userinput>ypcat -k netgroup.byuser</userinput>
|
|
</screen>
|
|
|
|
<para>Die Ausgabe des ersten Befehls gibt den Inhalt von
|
|
<filename>/var/yp/netgroup</filename> wieder. Der zweite Befehl
|
|
erzeugt nur dann eine Ausgabe, wenn Sie rechnerspezifische
|
|
Netzgruppen erzeugt haben. Der dritte Befehl gibt die
|
|
Netzgruppen nach Benutzern sortiert aus.</para>
|
|
|
|
<para>Die Einrichtung der Clients ist einfach. Sie müssen
|
|
lediglich auf dem Server <replaceable>war</replaceable>
|
|
&man.vipw.8; aufrufen und die Zeile</para>
|
|
|
|
<programlisting>+:::::::::</programlisting>
|
|
|
|
<para>durch</para>
|
|
|
|
<programlisting>+@IT_EMP:::::::::</programlisting>
|
|
|
|
<para>ersetzen.</para>
|
|
|
|
<para>Ab sofort werden nur noch die Daten der in der Netzgruppe
|
|
<replaceable>IT_EMP</replaceable> vorhandenen Benutzer in die
|
|
Passwortdatenbank von <replaceable>war</replaceable> importiert.
|
|
Nur diese Benutzer dürfen sich am Server anmelden.</para>
|
|
|
|
<para>Unglücklicherweise gilt diese Einschränkung auch
|
|
für die ~-Funktion der Shell und für alle Routinen,
|
|
die auf Benutzernamen und numerische Benutzer-IDs zugreifen.
|
|
Oder anders formuliert,
|
|
<command>cd ~<replaceable>user</replaceable></command> ist nicht
|
|
möglich, <command>ls -l</command> zeigt die numerische
|
|
Benutzer-ID statt dem Benutzernamen und
|
|
<command>find . -user joe -print</command> erzeugt die
|
|
Fehlermeldung <errorname>No such user</errorname>. Um dieses
|
|
Problem zu beheben, müssen Sie alle Benutzereinträge
|
|
importieren, <emphasis>ohne ihnen jedoch zu erlauben, sich an
|
|
Ihrem Server anzumelden</emphasis>.</para>
|
|
|
|
<para>Dazu fügen Sie eine weitere Zeile in
|
|
<filename>/etc/master.passwd</filename> ein. Diese Zeile sollte
|
|
ähnlich der folgenden aussehen:</para>
|
|
|
|
<para><literal>+:::::::::/sbin/nologin</literal>, was in etwa
|
|
<quote>Importiere alle Einträge, aber ersetze die Shell in
|
|
den importierten Einträgen durch
|
|
<filename>/sbin/nologin</filename></quote> entspricht. Sie
|
|
können jedes Feld dieses Eintrages ersetzen, indem Sie
|
|
einen Standardwert in <filename>/etc/master.passwd</filename>
|
|
eintragen.</para>
|
|
|
|
<warning>
|
|
<para>Stellen Sie sicher, dass die Zeile
|
|
<literal>+:::::::::/sbin/nologin</literal>
|
|
<emphasis>nach </emphasis> der Zeile
|
|
<literal>+@IT_EMP:::::::::</literal> eingetragen ist. Sonst
|
|
haben alle via NIS importierten Benutzerkonten
|
|
<filename>/sbin/nologin</filename> als Loginshell.</para>
|
|
</warning>
|
|
|
|
<para>Danach müssen Sie nur mehr eine einzige NIS-Map
|
|
ändern, wenn ein neuer Mitarbeiter berücksichtigt
|
|
werden muss. Für weniger wichtige Server gehen Sie analog
|
|
vor, indem Sie den alten Eintrag <literal>+:::::::::</literal>
|
|
in den lokalen Versionen von
|
|
<filename>/etc/master.passwd</filename> durch folgende
|
|
Einträge ersetzen:</para>
|
|
|
|
<programlisting>
|
|
+@IT_EMP:::::::::
|
|
+@IT_APP:::::::::
|
|
+:::::::::/sbin/nologin
|
|
</programlisting>
|
|
|
|
<para>Die entsprechenden Zeilen für normale Arbeitsplätze
|
|
lauten:</para>
|
|
|
|
<programlisting>
|
|
+@IT_EMP:::::::::
|
|
+@USERS:::::::::
|
|
+:::::::::/sbin/nologin
|
|
</programlisting>
|
|
|
|
<para>Ab jetzt wäre alles wunderbar, allerdings ändert
|
|
sich kurz darauf die Firmenpolitik: Die IT-Abteilung beginnt
|
|
damit, externe Mitarbeiter zu beschäftigen. Externe
|
|
dürfen sich an normalen Arbeitsplätzen sowie an den
|
|
weniger wichtigen Servern anmelden. Die IT-Lehrlinge
|
|
dürfen sich nun auch an den Hauptservern anmelden. Sie
|
|
legen also die neue Netzgruppe IT_INTERN an, weisen Ihr die
|
|
neuen IT-Externen als Benutzer zu und beginnen damit,
|
|
die Konfiguration auf jedem einzelnen Rechner zu ändern ...
|
|
Halt. Sie haben gerade die alte Regel <quote>Fehler in der
|
|
zentralisierten Planung führen zu globaler
|
|
Verwirrung.</quote> bestätigt.</para>
|
|
|
|
<para>Da NIS in der Lage ist, Netzgruppen aus anderen Netzgruppen
|
|
zu bilden, lassen sich solche Situationen leicht vermeiden.
|
|
Eine Möglichkeit ist die Erzeugung rollenbasierter
|
|
Netzgruppen. Sie könnten eine Netzgruppe
|
|
<replaceable>BIGSRV</replaceable> erzeugen, um den Zugang zu
|
|
den wichtigsten Servern zu beschränken, eine weitere
|
|
Gruppe <replaceable>SMALLSRV</replaceable> für die weniger
|
|
wichtigen Server und eine dritte Netzgruppe
|
|
<replaceable>USERBOX</replaceable> für die normalen
|
|
Arbeitsplatzrechner. Jede dieser Netzgruppen enthält die
|
|
Netzgruppen, die sich auf diesen Rechnern anmelden dürfen.
|
|
Die Einträge der Netzgruppen in der NIS-Map sollten
|
|
ähnlich den folgenden aussehen:</para>
|
|
|
|
<programlisting>
|
|
BIGSRV IT_EMP IT_APP
|
|
SMALLSRV IT_EMP IT_APP ITINTERN
|
|
USERBOX IT_EMP ITINTERN USERS
|
|
</programlisting>
|
|
|
|
<para>Diese Methode funktioniert besonders gut, wenn Sie
|
|
Rechner in Gruppen mit identischen Beschränkungen einteilen
|
|
können. Unglücklicherweise ist dies die Ausnahme und
|
|
nicht die Regel. Meistens werden Sie die Möglichkeit zur
|
|
rechnerspezischen Zugangsbeschränkung benötigen.</para>
|
|
|
|
<para>Rechnerspezifische Netzgruppen sind die zweite
|
|
Möglichkeit, um mit den oben beschriebenen Änderungen
|
|
umzugehen. In diesem Szenario enthält
|
|
<filename>/etc/master.passwd</filename> auf jedem Rechner zwei
|
|
mit <quote>+</quote> beginnende Zeilen. Die erste Zeile
|
|
legt die Netzgruppe mit den Benutzern fest, die sich auf diesem
|
|
Rechner anmelden dürfen. Die zweite Zeile weist allen
|
|
anderen Benutzern <filename>/sbin/nologin</filename> als Shell
|
|
zu. Verwenden Sie auch hier (analog zu den Netzgruppen)
|
|
Großbuchstaben für die Rechnernamen. Die Zeilen
|
|
sollten also ähnlich den folgenden aussehen:</para>
|
|
|
|
<programlisting>
|
|
+@<replaceable>BOXNAME</replaceable>:::::::::
|
|
+:::::::::/sbin/nologin
|
|
</programlisting>
|
|
|
|
<para>Wenn Sie dies für alle Rechner erledigt haben, werden
|
|
Sie die lokalen Versionen von
|
|
<filename>/etc/master.passwd</filename> nie mehr verändern
|
|
müssen. Alle weiteren Änderungen geschehen über
|
|
die NIS-Maps. Nachfolgend ein Beispiel für eine
|
|
mögliche Netzgruppen-Map, die durch einige Besonderheiten
|
|
erweitert wurde:</para>
|
|
|
|
<programlisting># Define groups of users first
|
|
IT_EMP (,alpha,test-domain) (,beta,test-domain)
|
|
IT_APP (,charlie,test-domain) (,delta,test-domain)
|
|
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
|
|
DEPT2 (,golf,test-domain) (,hotel,test-domain)
|
|
DEPT3 (,india,test-domain) (,juliet,test-domain)
|
|
ITINTERN (,kilo,test-domain) (,lima,test-domain)
|
|
D_INTERNS (,able,test-domain) (,baker,test-domain)
|
|
#
|
|
# Now, define some groups based on roles
|
|
USERS DEPT1 DEPT2 DEPT3
|
|
BIGSRV IT_EMP IT_APP
|
|
SMALLSRV IT_EMP IT_APP ITINTERN
|
|
USERBOX IT_EMP ITINTERN USERS
|
|
#
|
|
# And a groups for a special tasks
|
|
# Allow echo and golf to access our anti-virus-machine
|
|
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
|
|
#
|
|
# machine-based netgroups
|
|
# Our main servers
|
|
WAR BIGSRV
|
|
FAMINE BIGSRV
|
|
# User india needs access to this server
|
|
POLLUTION BIGSRV (,india,test-domain)
|
|
#
|
|
# This one is really important and needs more access restrictions
|
|
DEATH IT_EMP
|
|
#
|
|
# The anti-virus-machine mentioned above
|
|
ONE SECURITY
|
|
#
|
|
# Restrict a machine to a single user
|
|
TWO (,hotel,test-domain)
|
|
# [...more groups to follow]
|
|
</programlisting>
|
|
|
|
<para>Wenn Sie eine Datenbank verwenden, um Ihre Benutzerkonten zu
|
|
verwalten, sollten Sie den ersten Teil der NIS-Map mit Ihren
|
|
Datenbanktools erstellen können. Auf diese Weise haben
|
|
neue Benutzer automatisch Zugriff auf die Rechner.</para>
|
|
|
|
<para>Eine letzte Warnung: Es ist nicht immer ratsam,
|
|
rechnerbasierte Netzgruppen zu verwenden. Wenn Sie Dutzende
|
|
oder gar Hunderte identische Rechner einrichten müssen,
|
|
sollten Sie rollenbasierte Netzgruppen verwenden, um die
|
|
Grösse der NIS-Maps in Grenzen zu halten.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Weitere wichtige Punkte</title>
|
|
|
|
<para>Nachdem Sie Ihre NIS-Umgebung eingerichtet haben,
|
|
müssen Sie einige Dinge anders als bisher erledigen.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen,
|
|
tun Sie dies <emphasis>ausschließlich</emphasis> am
|
|
NIS-Masterserver. Außerdem
|
|
<emphasis>müssen</emphasis> Sie anschließend die
|
|
NIS-Maps neu erzeugen. Wenn Sie diesen Punkt vergessen,
|
|
kann sich der neue Benutzer <emphasis>nur</emphasis> am
|
|
NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer
|
|
<quote>jsmith</quote> anlegen, gehen Sie wie folgt vor:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pw useradd jsmith</userinput>
|
|
&prompt.root; <userinput>cd /var/yp</userinput>
|
|
&prompt.root; <userinput>make test-domain</userinput></screen>
|
|
|
|
<para>Statt <command>pw useradd jsmith</command> könnten
|
|
Sie auch <command>adduser jsmith</command> verwenden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>Tragen Sie die Administratorkonten nicht
|
|
in die NIS-Maps ein</emphasis>. Administratorkonten und
|
|
Passwörter dürfen nicht auf Rechnern verbreitet
|
|
werden, auf denen sich Benutzer anmelden können, die
|
|
auf diese Konten keine Zugriff haben sollen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>Sichern Sie die NIS-Master- und Slaveserver
|
|
und minimieren Sie die Ausfallzeiten</emphasis>. Wenn
|
|
diese Rechner gehackt oder einfach nur ausgeschaltet werden,
|
|
haben viele Leute keinen Netzwerkzugriff mehr.</para>
|
|
|
|
<para>Dies ist die größte Schwäche
|
|
jeder zentralen Verwaltung. Wenn Sie Ihre NIS-Server nicht
|
|
schützen, werden Sie viele verärgerte Anwender
|
|
haben.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Kompatibilität zu NIS v1</title>
|
|
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Kompatibilität zu NIS v1</secondary>
|
|
</indexterm>
|
|
|
|
<para><application>ypserv</application> unterstützt NIS v1
|
|
unter FreeBSD nur eingeschränkt. Die NIS-Implementierung
|
|
von FreeBSD verwendet nur NIS v2, andere Implementierungen
|
|
unterstützen aus Gründen der
|
|
Abwärtskompatibilität mit älteren Systemen auch
|
|
NIS v1. Die mit diesen Systemen gelieferten
|
|
<application>ypbind</application>-Daemonen versuchen, sich an
|
|
einen NIS-v1-Server zu binden (Dies selbst dann, wenn sie ihn
|
|
nie benötigen. Außerdem versuchen Sie auch dann, einen
|
|
v1-Server zu erreichen, wenn Sie zuvor eine Antwort von einem
|
|
v2-Server erhalten.). Während normale Clientaufrufe
|
|
unter FreeBSD unterstützt werden, sind Anforderungen zum
|
|
Transfer von v1-Maps nicht möglich. Daher kann FreeBSD
|
|
nicht als Client oder Server verwendet werden, wenn ein
|
|
NIS-Server vorhanden ist, der nur NIS v1 unterstützt.
|
|
Glücklicherweise sollte es heute keine Server mehr geben,
|
|
die nur NIS v1 unterstützen.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="nis-server-is-client">
|
|
<title>NIS-Server, die auch als NIS-Clients arbeiten</title>
|
|
|
|
<para>Wenn Sie ypserv in einer Multi-Serverdomäne verwenden,
|
|
in der NIS-Server gleichzeitig als NIS-Clients arbeiten, ist es
|
|
eine gute Idee, diese Server zu zwingen, sich an sich selbst zu
|
|
binden. Damit wird verhindert, dass Bindeanforderungen gesendet
|
|
werden und sich die Server gegenseitig binden. Sonst
|
|
könnten seltsame Fehler auftreten, wenn ein Server
|
|
ausfällt, auf den andere Server angewiesen sind. Letztlich
|
|
werden alle Clients einen Timeout melden, und versuchen, sich an
|
|
andere Server zu binden. Die dadurch entstehende
|
|
Verzögerung kann beträchtlich sein. Außerdem kann
|
|
der Fehler erneut auftreten, da sich die Server wiederum
|
|
aneinander binden könnten.</para>
|
|
|
|
<para>Sie können einen Rechner durch die Verwendung von
|
|
<command>ypbind</command> sowie der Option <option>-S</option>
|
|
zwingen, sich an einen bestimmten Server zu binden. Um diesen
|
|
Vorgang zu automatisieren, können Sie folgende Zeilen in
|
|
<filename>/etc/rc.conf</filename> einfügen:</para>
|
|
|
|
<programlisting>
|
|
nis_client_enable="YES" # run client stuff as well
|
|
nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</replaceable>"
|
|
</programlisting>
|
|
|
|
<para>Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen
|
|
benötigen.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Passwort Formate</title>
|
|
<indexterm>
|
|
<primary>NIS</primary>
|
|
<secondary>Passwort Formate</secondary>
|
|
</indexterm>
|
|
<para>Unterschiedliche Passwort-Formate sind die Hauptprobleme,
|
|
die beim Einrichten eines NIS-Servers auftreten können.
|
|
Wenn der NIS-Server mit DES verschlüsselte Passwörter
|
|
verwendet, werden nur Clients unterstützt, die ebenfalls
|
|
DES benutzen. Wenn sich auf Ihrem Netzwerk beispielsweise
|
|
&solaris; NIS-Clients befinden, müssen die Passwörter
|
|
mit DES verschlüsselt werden.</para>
|
|
|
|
<para>Welches Format die Server und Clients verwenden,
|
|
steht in <filename>/etc/login.conf</filename>. Wenn ein
|
|
System Passwörter mit DES verschlüsselt,
|
|
enthält die <literal>default</literal>-Klasse einen
|
|
Eintrag wie den folgenden:</para>
|
|
|
|
<programlisting>default:\
|
|
:passwd_format=des:\
|
|
:copyright=/etc/COPYRIGHT:\
|
|
[weitere Einträge]</programlisting>
|
|
|
|
<para>Mögliche Werte für <literal>passwd_format</literal>
|
|
sind unter anderem <literal>blf</literal> und
|
|
<literal>md5</literal> (mit Blowfish und MD5 verschlüsselte
|
|
Passwörter).</para>
|
|
|
|
<para>Wenn die Datei <filename>/etc/login.conf</filename>
|
|
geändert wird, muss die Login-Capability Datenbank
|
|
neu erstellt werden. Setzen Sie dazu als <username>root</username>
|
|
den folgenden Befehl ab:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
|
|
|
|
<note>
|
|
<para>Das Format der schon in
|
|
<filename>/etc/master.passwd</filename> befindlichen
|
|
Passwörter wird erst aktualisiert, wenn ein Benutzer
|
|
sein Passwort ändert, <emphasis>nachdem</emphasis>
|
|
die Datenbank neu erstellt wurde.</para>
|
|
</note>
|
|
|
|
<para>Damit die Passwörter auch im gewählten
|
|
Format abgespeichert werden, muss mit
|
|
<literal>crypt_default</literal> in der Datei
|
|
<filename>/etc/auth.conf</filename> die richtige
|
|
Priorität der Formate eingestellt werden. Das
|
|
gewählte Format sollte als erstes in der Liste
|
|
stehen. Sollen die Passwörter mit DES verschlüsselt
|
|
werden, verwenden Sie den folgenden Eintrag:</para>
|
|
|
|
<programlisting>crypt_default = des blf md5</programlisting>
|
|
|
|
<para>Wenn Sie alle &os; NIS-Server und NIS-Clients entsprechend
|
|
den obigen Schritten eingestellt haben, wird im ganzen
|
|
Netzwerk dasselbe Passwort-Format verwendet. Falls Sie
|
|
Probleme mit der Authentifizierung eines NIS-Clients
|
|
haben, kontrollieren Sie die verwendeten Passwort-Formate.
|
|
In einer heterogenen Umgebung werden Sie DES benutzen
|
|
müssen, da dies der meist unterstützte Standard
|
|
ist.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-dhcp">
|
|
<!-- j.kois@web.de, 24. August 2003 -->
|
|
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Greg</firstname>
|
|
<surname>Sutter</surname>
|
|
<contrib>Geschrieben von </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>DHCP - Dynamic Host Configuration Protocol</title>
|
|
|
|
<sect2>
|
|
<title>Was ist DHCP?</title>
|
|
|
|
<indexterm>
|
|
<primary>Dynamic Host Configuration Protocol</primary>
|
|
<see>DHCP</see>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Internet Software Consortium (ISC)</primary>
|
|
</indexterm>
|
|
|
|
<para>Über DHCP, das Dynamic Host Configuration Protocol,
|
|
kann sich ein System mit einem Netzwerk verbinden und die
|
|
für die Kommunikation mit diesem Netzwerk nötigen
|
|
Informationen beziehen. FreeBSD verwendet die
|
|
DHCP-Implementation von ISC (Internet Software Consortium),
|
|
daher beziehen sich alle implementationsspezifischen
|
|
Informationen in diesem Abschnitt auf die ISC-Distribution.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Übersicht</title>
|
|
|
|
<para>Dieser Abschnitt beschreibt sowohl die Client- als auch die
|
|
Serverseite des DHCP-Systems von ISC. Das Clientprogramm
|
|
<command>dhclient</command> ist in FreeBSD integriert, das
|
|
Serverprogramm kann über den Port
|
|
<filename role="package">net/isc-dhcp3</filename> installiert
|
|
werden. Mehr Informationen finden Sie in den Hilfeseiten
|
|
&man.dhclient.8;, &man.dhcp-options.5; sowie
|
|
&man.dhclient.conf.5;.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Wie funktioniert DHCP?</title>
|
|
|
|
<indexterm><primary>UDP</primary></indexterm>
|
|
|
|
<para>Der DHCP-Client <command>dhclient</command> beginnt von
|
|
einem Clientrechner aus über den UDP-Port 68
|
|
Konfigurationsinformationen anzufordern. Der Server antwortet
|
|
auf dem UDP-Port 67, indem er dem Client eine IP-Adresse
|
|
zuweist und ihm weitere wichtige Informationen über das
|
|
Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt. Diese
|
|
Informationen werden als
|
|
<firstterm>DHCP-Lease</firstterm> bezeichnet und
|
|
sind nur für eine bestimmte Zeit, die vom Administrator des
|
|
DHCP-Servers vorgegeben wird, gültig. Dadurch fallen
|
|
verwaiste IP-Adressen, deren Clients nicht mehr mit dem Netzwerk
|
|
verbunden sind, automatisch an den Server zurück.</para>
|
|
|
|
<para>DHCP-Clients können sehr viele Informationen von einem
|
|
DHCP-Server erhalten. Eine ausführliche Liste finden Sie
|
|
in &man.dhcp-options.5;.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Integration in FreeBSD</title>
|
|
|
|
<para>Der ISC-DHCP-Client ist seit FreeBSD 3.2
|
|
vollständig in FreeBSD integriert. Sowohl während
|
|
der Installation als auch im Basissystem steht der
|
|
DHCP-Client zur Verfügung. In Netzen mit
|
|
DHCP-Servern wird dadurch die Konfiguration von
|
|
Systemen erheblich vereinfacht.</para>
|
|
|
|
<indexterm>
|
|
<primary><application>sysinstall</application></primary>
|
|
</indexterm>
|
|
|
|
<para>DHCP wird von <application>sysinstall</application>
|
|
unterstützt. Richten Sie eine Netzkarte unter
|
|
<application>sysinstall</application> ein, wird Ihnen zuerst
|
|
folgende Frage gestellt: <quote>Wollen Sie diese Karte über
|
|
DHCP einrichten?</quote> Wenn Sie diese Frage bejahen, wird
|
|
<command>dhclient</command> aufgerufen, und die Netzkarte wird
|
|
automatisch eingerichtet.</para>
|
|
|
|
<para>Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei
|
|
Dinge erledigen:</para>
|
|
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>Anforderungen</secondary>
|
|
</indexterm>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Stellen Sie sicher, dass <devicename>bpf</devicename> in
|
|
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
|
|
<literal>pseudo-device bpf</literal> in Ihre
|
|
Kernelkonfigurationsdatei ein und erzeugen einen neuen
|
|
Kernel. Mehr über die Kernelkonfiguration
|
|
erfahren Sie in <xref linkend="kernelconfig">.</para>
|
|
|
|
<para>Das Gerät <devicename>bpf</devicename> ist im
|
|
<filename>GENERIC</filename>-Kernel bereits enthalten.
|
|
Für die Nutzung von DHCP muss also kein angepasster
|
|
Kernel erzeugt werden.</para>
|
|
|
|
<note>
|
|
<para>Wenn Sie um die Sicherheit Ihres Systems besorgt
|
|
sind, sollten Sie wissen, dass
|
|
<devicename>bpf</devicename> auch zur Ausführung
|
|
von Paketsniffern erforderlich ist (obwohl diese dennoch
|
|
als <username>root</username> ausgeführt werden
|
|
müssen). <devicename>bpf</devicename>
|
|
<emphasis>muss</emphasis> vorhanden sein, damit DHCP
|
|
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
|
|
Sie <devicename>bpf</devicename> aus Ihrem Kernel
|
|
entfernen, wenn Sie DHCP nicht verwenden.</para>
|
|
</note>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Fügen Sie folgende Zeile in
|
|
<filename>/etc/rc.conf</filename> ein:</para>
|
|
|
|
<programlisting>ifconfig_fxp0="DHCP"</programlisting>
|
|
|
|
<note>
|
|
<para>Ersetzen Sie <literal>fxp0</literal> durch den
|
|
Eintrag für die Netzkarte, die Sie dynamisch
|
|
einrichten wollen. Lesen Sie dazu auch
|
|
<xref linkend="config-network-setup">.</para>
|
|
</note>
|
|
|
|
<para>Wenn Sie <command>dhclient</command> an einem anderen
|
|
Ort installiert haben, oder zusätzliche Flags an
|
|
<command>dhclient</command> übergeben wollen,
|
|
fügen Sie auch folgende (entsprechend angepasste)
|
|
Zeilen ein:</para>
|
|
|
|
<programlisting>
|
|
dhcp_program="/sbin/dhclient"
|
|
dhcp_flags=""
|
|
</programlisting>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>Server</secondary>
|
|
</indexterm>
|
|
|
|
<para>Der DHCP-Server <command>dhcpd</command> ist als Teil des
|
|
<filename role="package">net/isc-dhcp3</filename>-Ports
|
|
verfügbar. Dieser Port enthält die komplette
|
|
ISC-DHCP-Distribution, inklusive Client, Server, Relay-Agent und
|
|
der Dokumentation.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Dateien</title>
|
|
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>Konfigurationsdateien</secondary>
|
|
</indexterm>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><filename>/etc/dhclient.conf</filename></para>
|
|
|
|
<para><command>dhclient</command> benötigt die
|
|
Konfigurationsdatei <filename>/etc/dhclient.conf</filename>.
|
|
Diese Datei enthält normalerweise nur Kommentare,
|
|
da die Vorgabewerte meistens ausreichend sind.
|
|
Die Hilfeseite &man.dhclient.conf.5; beschreibt
|
|
diese Konfigurationsdatei.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/sbin/dhclient</filename></para>
|
|
|
|
<para><command>dhclient</command> ist statisch gelinkt und
|
|
befindet sich in <filename>/sbin</filename>. Mehr
|
|
Informationen finden Sie in der Hilfeseite
|
|
&man.dhclient.8;.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/sbin/dhclient-script</filename></para>
|
|
|
|
<para>Bei <command>dhclient-script</command> handelt es sich
|
|
um das FreeBSD-spezifische Konfigurationsskript des
|
|
DHCP-Clients. Es wird in &man.dhclient-script.8;
|
|
beschrieben und kann meist unverändert übernommen
|
|
werden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/var/db/dhclient.leases</filename></para>
|
|
|
|
<para>Der DHCP-Client verfügt über eine Datenbank,
|
|
die alle derzeit gültigen Leases enthält und als
|
|
Logdatei erzeugt wird. Weitere Informationen finden Sie in
|
|
&man.dhclient.8;.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Weitere Informationen</title>
|
|
|
|
<para>Das DHCP-Protokoll wird vollständig im
|
|
<ulink url="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</ulink>
|
|
beschrieben. Eine weitere, lehrreiche Informationsquelle
|
|
existiert unter
|
|
<ulink url="http://www.dhcp.org/">dhcp.org</ulink>.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="network-dhcp-server">
|
|
<title>Einen DHCP-Server installieren und einrichten</title>
|
|
|
|
<sect3>
|
|
<title>Übersicht</title>
|
|
|
|
<para>Dieser Abschnitt beschreibt die Einrichtung eines
|
|
FreeBSD-Systems als DHCP-Server. Dazu wird die
|
|
DHCP-Implementation von ISC (Internet Software Consortium)
|
|
verwendet.</para>
|
|
|
|
<para>Der DHCP-Server ist nicht im Basissystem von FreeBSD
|
|
enthalten, daher müssen Sie als erstes den Port
|
|
<filename role="package">net/isc-dhcp3</filename>
|
|
installieren. Lesen Sie <xref linkend="ports">, wenn Sie
|
|
weitere Informationen zur Portssammlung benötigen.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Den DHCP-Server installieren</title>
|
|
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>installieren</secondary>
|
|
</indexterm>
|
|
|
|
<para>Stellen Sie sicher, dass <devicename>bpf</devicename> in
|
|
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
|
|
<literal>pseudo-device bpf</literal> in Ihre
|
|
Kernelkonfigurationsdatei ein und erzeugen einen neuen
|
|
Kernel. Die Kernelkonfiguration wird in
|
|
<xref linkend="kernelconfig"> beschrieben.</para>
|
|
|
|
<para>Das Gerät <devicename>bpf</devicename> ist im
|
|
<filename>GENERIC</filename>-Kernel bereits enthalten.
|
|
Für die Nutzung von DHCP muss also kein angepasster
|
|
Kernel erzeugt werden.</para>
|
|
|
|
<note>
|
|
<para>Wenn Sie um die Sicherheit Ihres Systems besorgt
|
|
sind, sollten Sie wissen, dass
|
|
<devicename>bpf</devicename> auch zur Ausführung
|
|
von Paketsniffern erforderlich ist (obwohl diese dennoch
|
|
als <username>root</username> ausgeführt werden
|
|
müssen). <devicename>bpf</devicename>
|
|
<emphasis>muss</emphasis> vorhanden sein, damit DHCP
|
|
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
|
|
Sie <devicename>bpf</devicename> aus Ihrem Kernel
|
|
entfernen, wenn Sie DHCP nicht verwenden.</para>
|
|
</note>
|
|
|
|
<para>Danach müssen Sie die vom Port
|
|
<filename role="package">net/isc-dhcp3</filename> erzeugte
|
|
Vorlage für <filename>dhcpd.conf</filename> anpassen.
|
|
Die bei der Installation erzeugte Datei
|
|
<filename>/usr/local/etc/dhcpd.conf.sample</filename>
|
|
sollten Sie nach
|
|
<filename>/usr/local/etc/dhcpd.conf</filename> kopieren,
|
|
bevor Sie Veränderungen vornehmen.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Den DHCP-Server einrichten</title>
|
|
|
|
<indexterm>
|
|
<primary>DHCP</primary>
|
|
<secondary>dhcpd.conf</secondary>
|
|
</indexterm>
|
|
|
|
<para><filename>dhcpd.conf</filename> besteht aus Festlegungen
|
|
zu Subnetzen und Rechnern und lässt sich am besten an
|
|
einem Beispiel erklären:</para>
|
|
|
|
<programlisting>
|
|
option domain-name "example.com";<co id="domain-name">
|
|
option domain-name-servers 192.168.4.100;<co id="domain-name-servers">
|
|
option subnet-mask 255.255.255.0;<co id="subnet-mask">
|
|
|
|
default-lease-time 3600;<co id="default-lease-time">
|
|
max-lease-time 86400;<co id="max-lease-time">
|
|
ddns-update-style none;<co id="ddns-update-style">
|
|
|
|
subnet 192.168.4.0 netmask 255.255.255.0 {
|
|
range 192.168.4.129 192.168.4.254;<co id="range">
|
|
option routers 192.168.4.1;<co id="routers">
|
|
}
|
|
|
|
host mailhost {
|
|
hardware ethernet 02:03:04:05:06:07;<co id="hardware">
|
|
fixed-address mailhost.example.com;<co id="fixed-address">
|
|
} </programlisting>
|
|
|
|
<calloutlist>
|
|
<callout arearefs="domain-name">
|
|
<para>Diese Option beschreibt die Domäne, die den
|
|
Clients als Standardsuchdomäne zugewiesen wird.
|
|
Weitere Informationen finden Sie in der Hilfeseite
|
|
&man.resolv.conf.5;.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="domain-name-servers">
|
|
<para>Diese Option legt eine, durch Kommata getrennte
|
|
Liste von DNS-Servern fest, die von den Clients
|
|
verwendet werden sollen.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="subnet-mask">
|
|
<para>Die den Clients zugewiesene Netzmaske.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="default-lease-time">
|
|
<para>Ein Client kann eine Lease einer bestimmten Dauer
|
|
anfordern. Geschieht dies nicht, weist der Server eine
|
|
Lease mit einer vorgegebenen Ablaufdauer (in Sekunden)
|
|
zu.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="max-lease-time">
|
|
<para>Die maximale Zeitdauer, für die der Server
|
|
Konfigurationsinformationen vergibt. Sollte ein Client
|
|
eine längere Zeitspanne anfordern, wird dennoch
|
|
nur der Wert <literal>max-lease-time</literal> in
|
|
Sekunden zugewiesen.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="ddns-update-style">
|
|
<para>Diese Option legt fest, ob der DHCP-Server eine
|
|
DNS-Aktualisierung versuchen soll, wenn
|
|
Konfigurationsdateien vergeben oder zurückgezogen
|
|
werden. In der ISC-Implementation
|
|
<emphasis>muss</emphasis> diese Option gesetzt sein.
|
|
</para>
|
|
</callout>
|
|
|
|
<callout arearefs="range">
|
|
<para>Dadurch werden die IP-Adressen festgelegt, die den
|
|
Clients zugewiesen werden können. IP-Adressen
|
|
zwischen diesen Grenzen sowie die einschließenden
|
|
Adressen werden den Clients zugewiesen.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="routers">
|
|
<para>Legt den Standard-Gateway fest, der den Clients
|
|
zugewiesen wird.</para>
|
|
</callout>
|
|
|
|
<callout arearefs="hardware">
|
|
<para>Die (Hardware-)MAC-Adresse eines Rechners (durch die
|
|
der DHCP-Server den Client erkennt, der eine Anforderung
|
|
an ihn stellt).</para>
|
|
</callout>
|
|
|
|
<callout arearefs="fixed-address">
|
|
<para>Einem Rechner soll immer die gleiche IP-Adresse
|
|
zugewiesen werden. Beachten Sie, dass hier auch ein
|
|
Rechnername gültig ist, da der DHCP-Server den
|
|
Rechnernamen auflöst, bevor er die
|
|
Konfigurationsinformationen zuweist.</para>
|
|
</callout>
|
|
</calloutlist>
|
|
|
|
<para>Nachdem Sie <filename>dhcpd.conf</filename> fertig
|
|
konfiguriert haben, können Sie den DHCP-Server starten:
|
|
</para>
|
|
|
|
<screen>
|
|
&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd.sh start</userinput>
|
|
</screen>
|
|
|
|
<para>Sollten Sie die Konfiguration Ihres Servers einmal
|
|
verändern müssen, reicht es nicht aus, ein
|
|
<literal>SIGHUP</literal>-Signal an
|
|
<application>dhcpd</application> zu senden, weil damit die
|
|
Konfiguration <emphasis>nicht</emphasis> erneut geladen wird
|
|
(im Gegensatz zu den meisten Daemonen). Sie müssen
|
|
den Prozess vielmehr mit dem Signal
|
|
<literal>SIGTERM</literal> stoppen, um ihn
|
|
anschließend neu zu starten.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Dateien</title>
|
|
|
|
<indexterm>
|
|
<primary>Server</primary>
|
|
<secondary>Konfigurationsdateien</secondary>
|
|
</indexterm>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><filename>/usr/local/sbin/dhcpd</filename></para>
|
|
|
|
<para><application>dhcpd</application> ist statisch
|
|
gelinkt und befindet sich in
|
|
<filename>/usr/local/sbin</filename>. Lesen Sie auch die
|
|
mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn Sie
|
|
weitere Informationen zu <application>dhcpd</application>
|
|
benötigen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/usr/local/etc/dhcpd.conf</filename></para>
|
|
|
|
<para><application>dhcpd</application> benötigt die
|
|
Konfigurationsdatei
|
|
<filename>/usr/local/etc/dhcpd.conf</filename>, damit
|
|
der Server den Clients seine Dienste anbieten kann.
|
|
Diese Datei muss alle Informationen enthalten, die an
|
|
die Clients weitergegeben werden soll. Außerdem
|
|
sind hier Informationen zur Konfiguration des Servers
|
|
enthalten. Die mit dem Port installierte Hilfeseite
|
|
&man.dhcpd.conf.5; enthält weitere Informationen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/var/db/dhcpd.leases</filename></para>
|
|
|
|
<para>Der DHCP-Server hat eine Datenbank, die alle
|
|
vergebenen Leases enthält. Diese wird als Logdatei
|
|
erzeugt. Weitere Informationen finden Sie in der vom
|
|
Port installierten Hilfeseite &man.dhcpd.leases.5;.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>/usr/local/sbin/dhcrelay</filename></para>
|
|
|
|
<para><application>dhcrelay</application> wird in
|
|
komplexen Umgebungen verwendet, in denen ein DHCP-Server
|
|
eine Anfrage eines Clients an einen DHCP-Server in einem
|
|
separaten Netzwerk weiterleitet. Die vom Port
|
|
installierte Hilfeseite &man.dhcrelay.8; enthält
|
|
weitere Informationen.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="network-dns">
|
|
<title>DNS (Domain Name Service)</title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/dns.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="network-ntp">
|
|
<title>NTP (Network Time Protocol)</title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ntp.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="network-natd">
|
|
<title>NATD (Network Address Translation Daemon)</title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/natd.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="network-inetd">
|
|
<title>inetd <quote>Super-Server</quote></title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/inetd.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="network-plip">
|
|
<title>Parallel Line IP (PLIP)</title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/plip.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="network-ipv6">
|
|
<title>IPv6</title>
|
|
|
|
<para>Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
|
|
bitte <ulink
|
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ipv6.html">
|
|
das Original in englischer Sprache</ulink>.</para>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<!--
|
|
Local Variables:
|
|
mode: sgml
|
|
sgml-declaration: "../chapter.decl"
|
|
sgml-indent-data: t
|
|
sgml-omittag: nil
|
|
sgml-always-quote-attributes: t
|
|
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
|
End:
|
|
-->
|