diff --git a/de_DE.ISO8859-1/books/fdp-primer/book.sgml b/de_DE.ISO8859-1/books/fdp-primer/book.sgml
index a6dca5a042..7e5472ed9b 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/book.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/book.sgml
@@ -1,304 +1,303 @@
%books.ent;
%chapters;
]>
Die Fibel für neue Mitarbeiter des
FreeBSD-Dokumentationsprojekts199819992000200120022003200420052006
+ 2007
+ 2008The FreeBSD Documentation Project19981999200020012002200320042005200620072008The FreeBSD German Documentation Project$FreeBSD$$FreeBSD$
&bookinfo.legalnotice;
Vielen Dank für Ihr Interesse und Ihre Mitarbeit an
der FreeBSD-Dokumentation. Jeder Beitrag ist für uns sehr
wichtig.In dieser Fibel wird von der eingesetzten Software bis hin
zu den Vorstellungen des FreeBSD-Dokumentationsprojekts alles
behandelt, was Sie wissen müssen, wenn Sie sich am
FreeBSD-Dokumentationsprojekt beteiligen wollen.Bitte beachten Sie, dass diese Fibel
jederzeit unter Bearbeitung und noch
nicht vollständig ist.BenutzungshinweiseDie EingabeaufforderungenDie folgende Tabelle zeigt die normale Eingabeaufforderung
des Systems und die Eingabeaufforderung des Superusers. Die in
diesem Buch vorkommenden Beispiele benutzen die jeweilige
Eingabeaufforderung, um zu zeigen, unter welchem Benutzer die
Beispiele ausgeführt werden sollten.BenutzerEingabeaufforderungNormaler Benutzer&prompt.user;Superuser&prompt.root;Typographische FestlegungenUm die Lesbarkeit zu erhöhen, werden in diesem
Dokument die im folgenden genannten typographischen
Festlegungen verwendet:BedeutungBeispielKommandonamenGeben Sie ls -a ein, um alle
Dateien anzuzeigen.Datei- und VerzeichnisnamenBearbeiten Sie die Datei
.login.Bildschirmein- und ausgabenYou have mail.Referenzen auf Hilfeseiten
- Mit
- su
- 1
- können Sie sich als ein anderer
+ Mit &man.su.1; können Sie sich als ein anderer
Benutzer anmelden.Benutzer- und GruppennamenIch bin root, ich darf
das.HervorhebungenHier müssen Sie
vorsichtig sein.Argumente auf der Kommandozeile, die durch
existierende Namen, Dateien oder Variablen ersetzt
werden müssenDateien können Sie mit dem Befehl
rm
Dateiname
löschen.Umgebungsvariablen$HOME ist Ihr
Benutzerverzeichnis.Anmerkungen, Tips, wichtige Hinweise, Warnungen und
BeispielAn einigen Stellen innerhalb dieses Buchs werden
wichtige oder nützliche Hinweise gegeben, die besonders
hervorgehoben sind. Hier ein kurzer Überblick über
die verwendeten Darstellungen.Anmerkungen werden so dargestellt. Sie enthalten
Informationen die Sie nur zu lesen brauchen, wenn Sie direkt
davon betroffen sind.Tipps sind Informationen, die vielleicht hilfreich sein
könnten oder aufzeigen, wie bestimmte Dinge einfacher
zu bewerkstelligen sind.Besonders wichtige Punkte werden so hervorgehoben. Meist
enthalten sie Hinweise auf vielleicht zusätzlich auszuführende
Schritte oder Dinge, die besonders zu beachten sind.Warnungen werden wie dieser Abschnitt dargestellt und
weisen auf mögliche Schäden hin, die entstehen
können, falls die beschriebenen Schritte nicht genau
befolgt oder Hinweise nicht beachtet werden. Die Palette der
möglichen Schäden reicht von Hardwareschäden
bis hin zu Datendatenverlust durch ein versehentliches
Löschen von wichtigen Dateien oder ganzen
Verzeichnissen.Ein BeispielBeispiele, die so wie hier dargestellt werden, enthalten
meist kleine Übungen, die nachvollzogen werden sollten,
um das vorher beschriebene besser zu verinnerlichen oder mit
den erzeugten Ausgaben vertraut zu werden.DanksagungenIch möchte mich bei Sue Blake, Patrick Durusau, Jon
Hamilton, Peter Flynn und Christopher Maden bedanken, die sich
die Zeit genommen haben, die frühen Entwürfe dieses
Dokuments zu lesen und viele hilfreiche Hinweise und
Ratschläge gegeben haben.
&chap.overview;
&chap.tools;
&chap.sgml-primer;
&chap.sgml-markup;
&chap.stylesheets;
&chap.structure;
&chap.doc-build;
&chap.the-website;
&chap.translations;
&chap.writing-style;
&chap.psgml-mode;
&chap.see-also;
&app.examples;
diff --git a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
index e1f4e22cca..6e3be74ae7 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,5933 +1,5931 @@
JohannKoisÜbersetzt von Weiterführende NetzwerkthemenÜbersichtDieses Kapitel beschreibt verschiedene
weiterführende Netzwerkthemen.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Bluetooth- sowie drahtlose, der Norm IEEE 802.11
entsprechende, Geräte mit FreeBSD verwenden
können.Eine Bridge unter FreeBSD einrichten können.Einen plattenlosen Rechner über das Netzwerk starten
können.Wissen, wie man NAT (Network Address Translation)
einrichtet.Zwei Computer über PLIP verbinden können.IPv6 auf einem FreeBSD-Rechner einrichten
können.ATM einrichten können.CARP, das Common Access Redundancy Protocol, unter
&os; einsetzen können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.Einen neuen FreeBSD-Kernel konfigurieren und installieren
können ().Wissen, wie man zusätzliche Softwarepakete von
Drittherstellern installiert ().CoranthGryphonBeigetragen von Gateways und RoutenRoutingGatewaySubnetzDamit 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 Routing
bezeichnet. Eine Route besteht aus einem
definierten Adressenpaar: Einem Ziel und einem
Gateway. Dieses Paar zeigt an, dass Sie
über das Gateway zum
Ziel gelangen wollen. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
Standardziel. Die Standardroute
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 Links
bezeichnet), sowie Ethernet Hardware-Adressen (MAC-Adressen).
Ein BeispielUm die verschiedenen Aspekte des Routings zu
veranschaulichen, verwenden wir folgende Ausgaben von
netstat:&prompt.user; netstat -r
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
DefaultrouteDie ersten zwei Zeilen geben die Standardroute (die wir
im nächsten
Abschnitt behandeln), sowie die
localhost Route an.Loopback-GerätDas in der Routingtabelle für
localhost festgelegte Interface
(Netif-Spalte)
lo0, 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.EthernetMAC-AdresseDer nächste auffällige Punkt sind die mit
0:e0: 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 test0)
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
passiert über die Ethernet-Schnittstelle
ed0. Außerdem existiert ein Timeout
(in der Spalte Expire) 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.SubnetzFreeBSD fügt außerdem Subnetzrouten für das
lokale Subnetz hinzu (10.20.30.255 ist die Broadcast-Adresse
für das Subnetz 10.20.30,
example.com ist der zu
diesem Subnetz gehörige Domainname). Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner. Sie können auch feststellen,
dass keine zusätzlichen Schnittstellen angegeben
sind.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
routed Daemon konfiguriert. Ist
dieser nicht gestartet, sind nur statisch definierte
(explizit eingegebene) Routen vorhanden.Die Zeile host1 bezieht sich auf
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
das Loopback-Gerät (lo0),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.Die zwei host2 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 => (nach der
lo0-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 link#1
Zeile.Die letzte Zeile (Zielsubnetz 224)
behandelt das Multicasting, das wir in einem anderen Abschnitt
besprechen werden.Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
Flags finden. Nachfolgend finden Sie eine
kurze Übersicht von einigen dieser Flags und ihrer
Bedeutung:UUp: Die Route ist aktiv.HHost: Das Ziel der Route ist ein einzelner
Rechner (Host).GGateway: Alle Daten, die an dieses Ziel gesendet
werden, werden von diesem System an ihr jeweiliges
Ziel weitergeleitet.SStatic: Diese Route wurde manuell konfiguriert,
das heißt sie wurde nicht
automatisch vom System erzeugt.CClone: 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.WWasCloned: Eine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LLink: Die Route beinhaltet einen Verweis auf eine
Ethernetkarte (MAC-Adresse).StandardroutenDefaultrouteStandardrouteDefaultrouteWenn 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.Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Defaultroute). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit C gekennzeichnet ist.
Für Rechner im lokalen Netzwerk ist dieses Gateway auf
welcher Rechner auch immer eine Verbindung nach
außen hat gesetzt (entweder über eine
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
andere Netzwerkverbindung).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.Sehen wir uns ein Beispiel für Standardrouten an. So
sieht eine übliche Konfiguration aus:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Die Rechner Local1 und
Local2 befinden sich auf Ihrer Seite.
Local1 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.Die Standardrouten für Ihre Maschinen lauten:HostStandard GatewaySchnittstelleLocal2Local1EthernetLocal1T1-GWPPPEine häufig gestellte Frage lautet: Warum (oder
wie) sollten wir T1-GW als Standard-Gateway
für Local1 setzen, statt den (direkt
verbundenen) ISP-Server zu verwenden?.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 T1-GW erreichen
können! Es ist also unnötig, einen Zwischenschritt
über den ISP-Server zu machen.Es ist üblich, die Adresse X.X.X.1 als Gateway-Adresse für
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
10.20.30 ist und Ihr ISP
10.9.9 verwendet, sehen die
Standardrouten so aus:Rechner (Host)StandardrouteLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)Sie können die Standardroute ganz einfach in der Datei
/etc/rc.conf festlegen. In unserem
Beispiel wurde auf dem Rechner Local2
folgende Zeile in /etc/rc.conf
eingefügt:defaultrouter="10.20.30.1"Die Standardroute kann über &man.route.8; auch direkt
gesetzt werden:&prompt.root; route add default 10.20.30.1Weitere Informationen zum Bearbeiten von
Netzwerkroutingtabellen finden Sie in &man.route.8;.Rechner mit zwei HeimatnetzenDual-Homed-HostsEs 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.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.In beiden Fällen werden Routingtabellen erstellt,
damit jedes Subnetz weiß, dass dieser Rechner als Gateway
zum anderen Subnetz arbeitet (inbound
route). 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.
Soll dieser Rechner Pakete zwischen den beiden
Schnittstellen weiterleiten, müssen Sie diese Funktion
manuell konfigurieren und aktivieren. Lesen Sie den
nächsten Abschnitt, wenn Sie weitere Informationen zu
diesem Thema benötigen.Einen Router konfigurierenRouterEin 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 in der Voreinstellung
deaktiviert ist. Sie können diese Funktion aktivieren,
indem Sie in &man.rc.conf.5; folgende Änderung
durchführen:gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollDiese Option setzt die &man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Wenn Sie das Routing kurzzeitig
unterbrechen wollen, können Sie die Variable auf
0 setzen.BGPRIPOSPFIhr 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
net/zebra
unterstützt. Es stehen auch kommerzielle Produkte
wie gated zur Verfügung.AlHoangBeigetragen von Statische Routen einrichtenManuelle KonfigurationNehmen wir an, dass wir über folgendes Netzwerk
verfügen:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
RouterA, ein &os;-Rechner, dient als
Router für den Zugriff auf das Internet. Die
Standardroute ist auf 10.0.0.1
gesetzt, damit ein Zugriff auf das Internet möglich wird.
Wir nehmen nun an, dass RouterB bereits
konfiguriert ist und daher weiß, wie er andere Rechner
erreichen kann. Dazu wird die Standardroute von
RouterB auf
192.168.1.1 gesetzt, da dieser
Rechner als Gateway fungiert.Sieht man sich die Routingtabelle für
RouterA an, erhält man folgende Ausgabe:
&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1Mit dieser Routingtabelle kann RouterA
unser internes Netz 2 nicht erreichen, da keine Route zum
Rechner 192.168.2.0/24
vorhanden ist. Um dies zu korrigieren, kann die Route manuell
gesetzt werden. Durch den folgenden Befehl wird das
interne Netz 2 in die Routingtabelle des Rechners
RouterA aufgenommen, indem
192.168.1.2 als nächster
Zwischenschritt verwenden wird:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Ab sofort kann RouterA alle Rechner des
Netzwerks 192.168.2.0/24
erreichen.Routen dauerhaft einrichtenDas obige Beispiel ist für die Konfiguration einer
statischen Route auf einem laufenden System geeignet. Diese
Information geht jedoch verloren, wenn der &os;-Rechner neu
gestartet werden muss. Um dies zu verhindern, wird diese
Route in /etc/rc.conf eingetragen:# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"Die Variable static_routes enthält
eine Reihe von Strings, die durch Leerzeichen getrennt sind.
Jeder String bezieht sich auf den Namen einer Route. In
unserem Beispiel hat static_routesinternalnet2 als einzigen String.
Zusätzlich verwendet man die Konfigurationsvariable
route_internalnet2,
in der alle sonstigen an &man.route.8; zu übergebenden
Parameter festgelegt werden. In obigen Beispiel hätte
man folgenden Befehl verwendet:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Daher wird
"-net 192.168.2.0/24 192.168.1.2" als
Parameter der Variable route_ angegeben.
Wie bereits erwähnt, können bei
static_routes auch mehrere Strings
angegeben werden. Dadurch lassen sich mehrere statische
Routen anlegen. Durch folgende Zeilen werden auf einem
imaginären Rechner statische Routen zu den Netzwerken
192.168.0.0/24 sowie 192.168.1.0/24 definiert:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Verteilung von Routing-Informationenrouting propagationWir haben bereits darüber gesprochen, wie wir unsere
Routen zur Außenwelt definieren, aber nicht darüber,
wie die Außenwelt uns finden kann.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.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?Es gibt ein System (ähnlich dem verbreiteten DNS),
das alle zugewiesenen Adressräume verwaltet und ihre
Verbindung zum Internet-Backbone definiert und dokumentiert.
Der Backbone 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 hierarchisch vom
Backbone über eine Kette von Diensteanbietern bis hin zu
Ihrer Seite leiten.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
Bekanntmachung von Routen
(routing propagation)
bezeichnet.ProblembehebungtracerouteManchmal 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
(lesen Sie dazu auch &man.ping.8;).&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).Weitere Informationen finden Sie in
&man.traceroute.8;.Multicast-RoutingMulticast-RoutingKerneloptionenMROUTING&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:options MROUTINGZusätzlich muss &man.mrouted.8;, der
Multicast-Routing-Daemon, über die Datei
/etc/mrouted.conf eingerichtet werden,
um Tunnel und DVMRP zu aktivieren. Weitere
Informationen zu diesem Thema finden Sie in
&man.mrouted.8;.Ab &os; 7.0 ist &man.mrouted.8; (der Multicast Routing
Daemon) nicht mehr im Basissystem enthalten. Dieser Daemon
verwendet das DVMRP Multicast Routing
Protocol, das inzwischen in den meisten Multicast-Installationen
durch &man.pim.4; ersetzt wurde. Die mit dem Daemon in
Verbindung stehenden Werkzeuge &man.map-mbone.8; und
&man.mrinfo.8; wurden ebenfalls aus dem Basissystem
entfernt. All diese Programme sind aber weiterhin über
die &os;-Ports-Sammlung (genauer den Port net/mrouted) verfügbar.LoaderMarcFonvieilleMurrayStokelyDrahtlose NetzwerkeNetzwerke, drahtlos802.11drahtlose NetzwerkeGrundlagenDie meisten drahtlosen Netzwerke basieren auf dem
Standard IEEE 802.11. Sie bestehen aus Stationen, die
in der Regel im 2,4 GHz- oder im 5 GHz-Band
miteinander kommunizieren. Es ist aber auch
möglich, dass regional andere Frequenzen,
beispielsweise im 2,3 GHz- oder 4,9 GHz-Band,
verwendet werden.802.11-Netzwerke können auf zwei verschiedene
Arten aufgebaut sein: Im
Infrastruktur-Modus agiert eine
Station als Master, mit dem sich alle andere Stationen
verbinden. Die Summe aller Stationen wird als BSS
(Basic Service Set), die Master-Station hingegen als
Access Point (AP) bezeichnet. In einem BSS läuft
jedwede Kommunikation über den Access Point. Die
zweite Form drahtloser Netzwerke sind die sogenannten
Ad-hoc-Netzwerke (auch als IBSS
bezeichnet), in denen es keinen Access Point gibt und
in denen die Stationen direkt miteinander
kommunizieren.Die ersten 802.11-Netzwerke arbeiteten im
2,4 GHz-Band und nutzten dazu Prokolle der
IEEE-Standards 802.11 sowie 802.11b. Diese Standards
legen unter anderem Betriebsfrequenzen sowie Merkmale
des MAC-Layers (wie Frames und Transmissionsraten) fest.
Später kam der Standard 802.11a hinzu, der im
5 GHz-Band, im Gegensatz zu den ersten beiden
Standards aber mit unterschiedlichen Signalmechanismen
und höheren Transmissionsraten arbeitet. Der
neueste Standard 802.11g implementiert die Signal- und
Transmissionsmechanismen von 802.11a im 2,4 GHz-Band,
ist dabei aber abwärtskompatibel zu
802.11b-Netzwerken.Unabhängig von den zugrundeliegenden
Transportmechanismen verfügen 802.11-Netzwerke
über diverse Sicherheitsmechanismen. Der
ursprüngliche 802.11-Standard definierte lediglich
ein einfaches Sicherheitsprotokoll namens WEP. Dieses
Protokoll verwendet einen fixen (gemeinsam verwendeten)
Schlüssel sowie die RC4-Kryptografie-Chiffre,
um Daten verschlüsselt über das drahtlose
Netzwerk zu senden. Alle Stationen des Netzwerks
müssen sich auf den gleichen fixen Schlüssel
einigen, um miteinander kommunizieren zu können. Dieses
Schema ist sehr leicht zu knacken und wird deshalb heute
kaum mehr eingesetzt. Aktuelle Sicherheitsmechanismen
bauen auf dem Standard IEEE 802.11i auf, der neue
kryptografische Schlüssel (Chiffren), ein neues
Protokoll für die Anmeldung von Stationen an einem
Access Point sowie Mechanismen zum Austausch von
Schlüsseln als Vorbereitung der Kommunikation zwischen
verschiedenen Geräten festlegt. Kryptografische
Schlüssel werden regelmäßig getauscht.
Außerdem gibt es Mechanismen, um Einbruchsversuche
zu entdecken (und Gegenmaßnahmen ergreifen zu können).
Ein weiteres häufig verwendetes Sicherheitsprotokoll ist
WPA. Dabei handelt es sich um einen Vorläufer von 802.11i,
der von einem Industriekonsortium als Zwischenlösung bis
zur endgültigen Verabschiedung von 802.11i entwickelt
wurde. WPA definiert eine Untergruppe der Anforderungen des
802.11i-Standards und ist für den Einsatz in älterer
Hardware vorgesehen. WPA benötigt nur den (auf dem
ursprünglichen WEP-Code basierenden) TKIP-Chiffre. 802.11i
erlaubt zwar auch die Verwendung von TKIP, fordert aber
zusätzlich eine stärkere Chiffre (AES-CCM)
für die Datenverschlüsselung. (AES war für
WPA nicht vorgesehen, weil man es als zu rechenintensiv
für den Einsatz in älteren Geräten ansah.)Neben den weiter oben erwähnten Standards ist auch
der Standard 802.11e von großer Bedeutung. Dieser
definiert Protokolle zur Übertragung von
Multimedia-Anwendungen wie das Streaming von Videodateien
oder Voice-over-IP (VoIP) in einem 802.11-Netzwerk. Analog
zu 802.11i verfügt auch 802.11e über eine
vorläufige Spezifikation namens WMM (ursprünglich
WME), die von einem Industriekonsortium als Untergruppe
von 802.11e spezifiziert wurde, um Multimedia-Anwendungen
bereits vor der endgültigen Verabschiedung des
802.11e-Standards implementieren zu können. 802.11e
sowie WME/WMM erlauben eine Prioritätenvergabe beim
Datentransfer im einem drahtlosen Netzwerk. Möglich
wird dies durch den Einsatz von Quality of Service-Protokollen
(QoS) und erweiterten Medienzugriffsprotokollen. Werden
diese Protokolle korrekt implementiert, erlauben sie daher
hohe Datenübertragungsraten und einen priorisierten
Datenfluss.&os; unterstützt seit der Version 6.0 die Standards
802.11a, 802.11b, sowie 802.11g. Ebenfalls unterstützt
werden WPA sowie die Sicherheitsprotokolle gemäß
802.11i (dies sowohl für 11a, 11b als auch 11g). QoS und
Verkehrpriorisierung, die von den WME/WMM-Protokollen
benötigt werden, werden ebenfalls (allerdings nicht
für alle drahtlosen Geräte) unterstützt.BasiskonfigurationKernelkonfigurationUm ein drahtloses Netzwerk zu nutzen, benötigen
Sie eine drahtlose Netzkarte und einen Kernel, der
drahtlose Netzwerke unterstützt. Der &os;-Kernel
unterstützt den Einsatz von Kernelmodulen. Daher
müssen Sie nur die Unterstützung für die
von Ihnen verwendeten Geräte aktivieren.Als Erstes benötigen Sie ein drahtloses Gerät.
Die meisten drahtlosen Geräte verwenden Bauteile von
Atheros und werden deshalb vom &man.ath.4;-Treiber
unterstützt. Um diesen Treiber zu verwenden,
nehmen Sie die folgende Zeile in die Datei
/boot/loader.conf auf:if_ath_load="YES"Der Atheros-Treiber besteht aus drei Teilen:
dem Treiber selbst (&man.ath.4;), dem
Hardware-Support-Layer für die
chip-spezifischen Funktionen (&man.ath.hal.4;)
sowie einem Algorithmus zur Auswahl der korrekten
Frame-Übertragungsrate (ath_rate_sample).
Wenn Sie die Unterstützung für diesen
Treiber als Kernelmodul laden, kümmert sich
dieses automatisch um diese Aufgaben. Verwenden
Sie ein Nicht-Atheros-Gerät, so müssen
Sie hingegen das für dieses Gerät geeignete
Modul laden, beispielsweiseif_wi_load="YES"für Geräte, die auf Bauteilen von
Intersil Prism basieren und daher den Treiber
&man.wi.4; voraussetzen.In den folgenden Abschnitten wird der
&man.ath.4;-Treiber verwendet. Verwenden Sie ein
anderes Gerät, müssen Sie diesen Wert
daher an Ihre Konfiguration anpassen. Eine Liste aller
verfügbaren Treiber für drahtlose Geräte
finden Sie in der Manualpage &man.wlan.4;. Gibt es
keinen nativen &os;-Treiber für Ihr drahtloses
Gerät, können Sie möglicherweise mit
NDIS einen
&windows;-Treiber verwenden.Neben dem korrekten Treiber benötigen Sie auch
die Unterstützung für 802.11-Netzwerke. Für
den &man.ath.4;-Treiber werden dazu mindestens die
Module &man.wlan.4;, wlan_scan_ap
sowie wlan_scan_sta benötigt.
Das &man.wlan.4;-Kernelmodul wird automatisch mit dem
Treiber des drahtlosen Geräts geladen, die beiden
anderen Module werden jeweils durch einen Eintrag in der
Datei /boot/loader.conf beim Systemstart
geladen:wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"Zusätzlich
benötigen Sie noch Module zur Verschlüsselung
ihres drahtlosen Netzwerks. Diese werden normalerweise
dynamisch vom &man.wlan.4;-Modul geladen. Im folgenden
Beispiel erfolgt allerdings eine manuelle Konfiguration.
Folgende Module sind verfügbar: &man.wlan.wep.4;,
&man.wlan.ccmp.4; sowie &man.wlan.tkip.4;. Sowohl
&man.wlan.ccmp.4; als auch &man.wlan.tkip.4; werden nur
benötigt, wenn Sie WPA und/oder die Sicherheitsprotokolle
von 802.11i verwenden wollen. Wollen Sie Ihr Netzwerk
hingegen offen betreiben (also völlig ohne
Verschlüsselung), benötigen Sie nicht einmal
die &man.wlan.wep.4;-Unterstützung. Um alle drei
Module beim Systemstart zu laden, fügen Sie folgende
Zeilen in die Datei /boot/loader.conf
ein:wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"Danach müssen Sie Ihr &os;-System neu starten.
Alternativ können Sie die Kernelmodule aber auch
manuell mit &man.kldload.8; laden.Wollen Sie keine Kernelmodule verwenden, können
Sie die benötigten Treiber auch in Ihren Kernel
kompilieren. Daz nehmen Sie folgende Zeilen in Ihre
Kernelkonfigurationsdatei auf:device ath # Atheros IEEE 802.11 wireless network driver
device ath_hal # Atheros Hardware Access Layer
device ath_rate_sample # John Bicket's SampleRate control algorithm.
device wlan # 802.11 support (Required)
device wlan_scan_ap # 802.11 AP mode scanning
device wlan_scan_sta # 802.11 STA mode scanning
device wlan_wep # WEP crypto support for 802.11 devices
device wlan_ccmp # AES-CCMP crypto support for 802.11 devices
device wlan_tkip # TKIP and Michael crypto support for 802.11 devicesDanach bauen Sie den neuen Kernel und starten Ihr
&os;-System neu.Während des Systemstarts sollten nun einige
Informationen ähnlich den folgenden über das von
Ihnen verwendete drahtlose Gerät ausgegeben
werden:ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
ath0: Ethernet address: 00:11:95:d5:43:62
ath0: mac 7.9 phy 4.5 radio 5.6Infrastruktur-ModusDrahtlose Netzwerke werden in der Regel im
Infrastruktur-Modus (auch BSS-Modus genannt) betrieben.
Dazu werden mehrere drahtlose Access Points zu einem
gemeinsamen drahtlosen Netzwerk verbunden. Jedes dieser
drahtlosen Netzwerke hat einen eigenen Namen, der als
SSID bezeichnet wird. Alle Clients
eines drahtlosen Netzwerks verbinden sich in diesem Modus
mit einem Access Point.&os;-ClientsEinen Access Point findenUm nach drahtlosen Netzwerken zu suchen, verwenden Sie
ifconfig. Dieser Scanvorgang kann einige
Zei in Anspruch nehmen, da dazu jede verfügbare
Frequenz auf verfügbare Access Points hin
überprüft werden muss. Um die Suche zu starten,
müssen Sie als Super-User angemeldet sein:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPAIhre Netzwerkkarte muss in den Status
versetzt werden, bevor Sie den ersten
Scanvorgang starten können. Für spätere
Scans ist dies aber nicht mehr erforderlich.Als Ergebnis erhalten Sie eine Liste mit allen
gefundenen BSS/IBSS-Netzwerken. Zusätzlich zur
SSID (dem Namen des Netzwerks) wird
auch die BSSID ausgegeben. Dabei
handelt es sich um MAC-Adresse des Access Points. Das
Feld CAPS gibt den Typ des Netzwerks
sowie die Fähigkeiten der Stationen innerhalb des
Netzwerks an:EExtended Service Set (ESS). Zeigt an, dass die
Station Teil eines Infrastruktur-Netzwerks ist (und
nicht eines IBSS/Ad-hoc-Netzwerks).IIBSS/Ad-hoc-Netzwerk. Die Station ist Teil eines
Ad-hoc-Netzwerks (und nicht eines
ESS-Netzwerks).PPrivacy. Alle Datenframes, die innerhalb des
BSS ausgetauscht werden, sind verschlüsselt.
Dieses BSS verwendet dazu kryptografische Verfahren
wie WEP, TKIP oder AES-CCMP.SShort Preamble. Das Netzwerk verwendet eine
kurze Präambel (definiert in 802.11b High
Rate/DSSS PHY). Eine kurze Präambel verwendet
ein 56 Bit langes Sync-Feld (im Gegensatz
zu einer langen Präambel, die ein
128 Bit langes Sync-Feld verwendet).sShort slot time. Das 802.11g-Netzwerk verwendet
eine kurze Slotzeit, da es in diesem Netzwerk keine
veralteten (802.11b) Geräte gibt.Um eine Liste der bekannten Netzwerke auszugeben,
verwenden Sie den folgenden Befehl:&prompt.root; ifconfig ath0 list scanDiese Liste kann entweder automatisch durch das
drahtlose Gerät oder manuell durch eine
-Aufforderung aktualisiert werden.
Veraltete Informationen werden dabei automatisch
entfernt.BasiseinstellungenDieser Abschnitt beschreibt, wie Sie ein einfaches
drahtloses Netzerk ohne Verschlüsselung unter &os;
einrichten. Nachdem Sie sich mit den Informationen dieses
Abschnitts vertraut gemacht haben, sollten Sie Ihr
drahtloses Netzwerk mit WPA
verschlüsseln.Das Einrichten eines drahtlosen Netzwerks erfolgt
in drei Schritten: Der Auswahl eines Access Points, der
Anmeldung Ihrer Station sowie der Konfiguration Ihrer
IP-Adresse.Einen Access Point auswählenIm Normalfall wird sich Ihre Station automatisch mit
einem der zur Verfügung stehenden Access Points
verbinden. Sie müssen dazu lediglich Ihr
drahtloses Gerät aktivieren. Alternativ können
Sie auch einen Eintrag ähnlich dem folgenden in
/etc/rc.conf aufnehmen:ifconfig_ath0="DHCP"Wollen Sie sich hingegen mit einem bestimmten
Access Point verbinden, müssen Sie dessen
SSID angeben:ifconfig_ath0="ssid Ihre_SSID DHCP"Gibt es in Ihrem Netzwerk mehrere Access Points
mit der gleichen SSID (was der Einfachheit wegen
häufig der Fall ist), können Sie sich dennoch
mit einem bestimmten Access Point verbinden. Dazu
müssen Sie lediglich die BSSID des Access Points
angeben (die Angabe der SSID ist in diesem Fall nicht
erforderlich):ifconfig_ath0="ssid Ihre_SSID bssid xx:xx:xx:xx:xx:xx DHCP"Es gibt noch weitere Möglichkeiten, den Zugriff
auf bestimmte Access Point zu beschränken,
beispielsweise durch die Begrenzung der Frequenzen, auf
denen eine Station nach einem Acces Point sucht. Sinnvoll
ist ein solches Vorgehen beispielsweise, wenn Ihr
drahtloses Gerät in verschiedenen Frequenzbereichen
arbeiten kann, da in diesem Fall das Prüfen aller
Frequenzen sehr zeitintensiv ist. Um nur innerhalb eines
bestimmten Frequenzbereichs nach einem Access Point zu
suchen, verwenden Sie die Option :ifconfig_ath0="mode 11g ssid Ihre_SSID DHCP"Dadurch sucht Ihr drahtloses Gerät nur im
2,4 GHz-Band (802.11g), aber nicht innerhalb des
5 GHz-Bandes nach einem Access Point. Mit der
Option können Sie eine
bestimmte Frequenz vorgeben, auf der gesucht werden
soll. Die Option erlaubt
die Angabe mehrerer erlaubter Frequenzen. Eine
umfassende Beschreibung dieser Optionen finden Sie in
der Manualpage &man.ifconfig.8;.AuthentifizierungWenn Sie einen Access Point gefunden haben, muss
sich Ihrem Station am Access Point anmelden, bevor
Sie Daten übertragen kann. Dazu gibt es
verschiedene Möglichkeiten. Am häufigsten
wird nach wie vor die sogenannte offene
Authentifizierung verwendet. Dabei wird
es jeder Station erlaubt, sich mit einem Netzwerk
zu verbinden und Daten zu übertragen. Aus
Sicherheitsgründen sollte diese Methode allerdings
nur zu Testzwecken bei der erstmaligen Einrichtung
eines drahtlosen Netzwerks verwendet werden. Andere
Authentifizierungsmechanismen erfordern den Austausch
kryptografischer Informationen, bevor Sie die
Übertragung von Daten erlauben. Dazu gehören
der Austausch fixer (vorher vereinbarter) Schlüssel
oder Kennwörter sowie der Einsatz komplexerer
Verfahren mit Backend-Diensten wie RADIUS. Die meisten
Netzwerke nutzen allerdings nach wie vor die offene
Authentifizierung, da dies die Voreinstellung ist. Am
zweithäufigsten kommt das weiter unten beschriebene
WPA-PSK
(das auch als WPA Personal
bezeichnet wird) zum Einsatz.Verwenden Sie eine
&apple; &airport; Extreme-Basisstation als Access Point,
benötigen Sie wahrscheinlich sowohl die
Shared-Key-Authentifizierung als auch einen
WEP-Schlüssel. Die entsprechende Konfiguration
erfolgt entweder in der Datei
/etc/rc.conf oder über das
Programm &man.wpa.supplicant.8;. Verwenden Sie nur
eine einzige &airport;-Basisstation, benötigen
Sie einen Eintrag ähnlich dem folgenden:ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"Normalerweise sollten Sie
Shared-Key-Authentifizierung aber nicht verwenden,
da diese die Sicherheit des WEP-Schlüssel noch
weiter verringert. Müssen Sie WEP einsetzen
(beispielsweise weil Sie zu veralteten Geräten
kompatibel bleiben müssen), sollten Sie WEP
nur zusammen mit der offenen Authentifizierung
(open authentication) verwenden.
WEP wird im näher
beschrieben.Eine IP-Adresse über DHCP beziehenNachdem Sie einen Access Point gefunden und sich
authentifiziert haben, benötigen Sie noch eine
IP-Adresse, die Sie in der Regel über DHCP
zugewiesen bekommen. Dazu müssen Sie lediglich
die Option DHCP in Ihre
in der Datei /etc/rc.conf
vorhandene Konfiguration Ihres drahtlosen Geräts
aufnehmen:ifconfig_ath0="DHCP"Nun können Sie Ihr drahtloses Gerät
starten:&prompt.root; /etc/rc.d/netif startNachdem Sie das Gerät aktiviert haben,
können Sie mit ifconfig den
Status des Geräts ath0
abfragen:&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid dlinkap channel 6 bssid 00:13:46:49:41:76
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100status: associated besagt, dass
sich Ihr Gerät mit dem drahtlosen Netzwerk verbunden
hat (konkret mit dem Netzwerk dlinkap).
bssid 00:13:46:49:41:76 gibt die
MAC-Adresse Ihres Access Points aus und die Zeile mit
authmode informiert Sie darüber,
dass Ihre Kommunikation nicht verschlüsselt wird
(OPEN).Statische IP-AdressenAlternativ zu dynamischen IP-Adressen
können Sie auch eine statische IP-Adresse verwenden.
Dazu ersetzen Sie in Ihrer Konfiguration
DHCP durch die zu verwendende
IP-Adresse. Beachten Sie dabei, dass Sie die anderen
Konfigurationsparameter nicht versehentlich
verändern:ifconfig_ath0="ssid Ihre_ssid inet 192.168.1.100 netmask 255.255.255.0"WPABei WPA (Wi-Fi Protected Access) handelt es sich um ein
Sicherheitsprotokoll, das in 802.11-Netzwerken verwendet
wird, um die Nachteile von WEP (fehlende
Authentifizierung und schwache Verschlüsselung)
zu vermeiden. WPA stellt das aktuelle
802.1X-Authentifizierungsprotokoll dar und verwendet
eine von mehreren Chiffren, um die Datensicherheit
zu gewährleisten. Die einzige Chiffre, die von
WPA verlangt wird, ist TKIP (Temporary
Key Integrity Protocol), eine Chiffre,
die die von WEP verwendete RC4-Chiffre um Funktionen
zur Prüfung der Datenintegrität und zur
Erkennung und Bekämpfung von Einbruchsversuchen
erweitert.
TKIP ist durch Softwaremodifikationen auch unter
veralteter Hardware lauffähig. Im Vergleich zu
WEP ist WPA zwar sehr viel sicherer, es ist aber dennoch
nicht völlig immun gegen Angriffe. WPA definiert
mit AES-CCMP noch eine weitere Chiffre als Alternative
zu TKIP. AES-CCMP (das häufig als WPA2 oder RSN
bezeichnet wird) sollte, wenn möglich, eingesetzt
werden.WPA definiert Authentifizierungs- und
Verschlüsselungsprotokolle. Die Authentifizierung
erfolgt in der Regel über eine der folgenden
Techniken: 802.1X gemeinsam mit einem
Backend-Authentifizierungsdienst wie RADIUS, oder durch
einen Minimal-Handshake zwischen der Station und dem
Access Point mit einem vorher vereinbarten gemeinsamen
Schlüssel. Die erste Technik wird als
WPA Enterprise, die zweite
hingegen als WPA Personal
bezeichnet. Da sich der Aufwand für das Aufsetzen
eines RADIUS-Backend-Servers für die meisten
drahtlosen Netzwerke nicht lohnt, wird WPA in der Regel
als WPA-PSK (WPA, Pre-Shared-Key) konfiguriert.Die Kontrolle der drahtlosen Verbindung sowie die
vorangehende Authentifizierung (über Schlüssel
oder durch die Kommunikation mit einem Server) erfolgt
über das Programm &man.wpa.supplicant.8;, das
über die Datei
/etc/wpa_supplicant.conf
eingerichtet wird. Ausführliche Informationen
zur Konfiguration des Programms finden sich in der
Manualpage &man.wpa.supplicant.conf.5;.WPA-PSKWPA-PSK oder WPA-Personal basiert auf einem
gemeinsamen (vorher vereinbarten) Schlüssel (PSK),
der aus einem Passwort generiert und danach als
Master-Key des drahtlosen Netzwerks verwendet wird.
Jeder Benutzer des drahtlosen Netzwerks verwendet daher
den gleichen Schlüssel. WPA-PSK
sollte nur in kleinen Netzwerken eingesetzt werden, in
denen die Konfiguration eines Authentifizierungsservers
nicht möglich oder erwünscht ist.Achten Sie darauf, dass Sie immer starke
Passwörter verwenden, die ausreichend lang
sind und, wenn möglich, auch Sonderzeichen
enthalten, damit diese nicht leicht erraten und/oder
geknackt werden können.Der erste Schritt zum Einsatz von WPA-PSK ist die
Konfiguration der SSID und des gemeinsamen Schlüssels
Ihres Netzwerks in der Datei
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
psk="freebsdmall"
}Danach geben Sie in /etc/rc.conf
an, dass WPA zur Verschlüsselung eingesetzt werden
soll und dass die IP-Adresse über DHCP bezogen
wird:ifconfig_ath0="WPA DHCP"Nun können Sie Ihr Netzgerät aktivieren:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Alternativ können Sie die Konfiguration von
WPA-PSK
auch manuell durchführen, wobei Sie wiederum die
Konfigurationsdatei
/etc/wpa_supplicant.conf
verwenden:&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP]Im zweiten Schritt starten Sie nun
dhclient, um eine IP-Adresse vom
DHCP-Server zu beziehen:&prompt.root; dhclient ath0
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Enthält Ihre /etc/rc.conf
bereits die Zeile ifconfig_ath0="DHCP",
müssen Sie dhclient nicht mehr
manuell aufrufen, da dhclient in
diesem Fall automatisch gestartet wird, nachdem
wpa_supplicant die Schlüssel
übergibt.Sollte der Einsatz von DHCP nicht möglich sein,
können Sie auch eine statische IP-Adresse
angeben, nachdem wpa_supplicant Ihre
Station authentifiziert hat:&prompt.root; ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Verwenden Sie DHCP nicht, müssen Sie
zusätzlich noch das Standard-Gateway sowie
den/die Nameserver manuell festlegen:&prompt.root; route add default your_default_router
&prompt.root; echo "nameserver your_DNS_server" >> /etc/resolv.confWPA und EAP-TLSDie zweite Möglichkeit, WPA einzusetzen, ist
die Verwendung eines
802.1X-Backend-Authentifizierungsservers. Diese
Variante wird als WPA-Enterprise bezeichnet, um sie
vom weniger sicheren WPA-Personal abzugrenzen, das
auf dem Austausch gemeinsamer (und vorher vereinbarter
Schlüssel) basiert. Die bei WPA-Enterprise
verwendete Authentifizierung basiert auf EAP
(Extensible Authentication
Protocol).EAP selbst bietet keine Verschlüsselung,
sondern operiert in einem verschlüsselten
Tunnel. Es gibt verschiedene, auf EAP basierende
Authentifizierungsmethoden, darunter EAP-TLS,
EAP-TTLS sowie EAP-PEAP.Bei EAP-TLS (EAP with Transport Layers
Security) handelt es sich um sehr gut
unterstütztes Authentifizierungsprotokoll, da es
sich dabei um die erste EAP-Methode handelt, die von
der Wi-Fi
Alliance zertifiziert wurde. EAP-TLS
erfordert drei Zertifikate: Das (auf allen Rechnern
installierte) CA-Zertifikat, das Server-Zertifikat
Ihres Authentifizierungsservers, sowie ein
Client-Zertifikat für jeden drahtlosen Client.
Sowohl der Authentifizierungsservers als auch die
drahtlosen Clients authentifizieren sich gegenseitig
durch ihre Zertifikate, wobei sie überprüfen,
ob diese Zertifikate auch von der
Zertifizierungs-Authorität (CA) des jeweiligen
Unternehmens signiert wurden.Die Konfiguration erfolgt (analog zu WPA-PSK)
über die Datei
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}Der Name des Netzwerks (die SSID).Das RSN/WPA2-Protokoll (IEEE 802.11i) wird
verwendet.Die key_mgmt-Zeile bezieht
sich auf das verwendete Key-Management-Protokoll.
In diesem Beispiel wird WPA gemeinsam mit der
EAP-Authentifizierung verwendet
(WPA-EAP).Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den von EAP verwendeten Identifizierungsstring.Das Feld ca_cert gibt den Pfad
zum CA-Zertifikat an. Dieses Datei wird benötigt,
um das Server-Zertifikat zu verifizieren.Die client_cert-Zeile gibt den
Pfad zum Client-Zertifikat an. Jeder Client hat ein
eigenes, innerhalb des Netzwerks eindeutiges
Zertifikat.Das Feld private_key gibt den
Pfad zum privaten Schlüssel des
Client-Zertifikat an.Das Feld private_key_passwd
enthält die Passphrase für den privaten
Schlüssel.Danach fügen Sie die folgende Zeile in
/etc/rc.conf ein:ifconfig_ath0="WPA DHCP"Nun können Sie Ihr drahtloses Gerät
über das rc.d-System
aktivieren:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100Alternativ können Sie Ihr drahtloses Gerält
wiederum manuell über
wpa_supplicant und
ifconfig aktivieren.WPA und EAP-TTLSBei EAP-TLS müssen sowohl der
Authentifizierungsserver als auch die Clients jeweils
ein eigenes Zertifikat aufweisen. Setzen Sie hingegen
EAP-TTLS (EAP-Tunneled
Transport Layer Security) ein, ist das
Client-Zertifikat optional. EAP-TTLS geht dabei
ähnlich vor wie verschlüsselte Webseiten,
bei denen der Webserver einen sicheren SSL-Tunnel
erzeugen kann, ohne dass der Besucher dabei über
ein client-seitiges Zertifikat verfügen muss.
EAP-TTLS verwendet einen verschlüsselten
TLS-Tunnel zum sicheren Transport der
Authentifizierungsdaten.Die Konfiguration von EAP-TTLS erfolgt in der
Datei /etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den Identifizierungsstring für die
EAP-Authentifizierung innerhalb des
verschlüsselten TlS-Tunnels.Das password-Feld enthält
die Passphrase für die
EAP-Authentifizierung.Das Feld ca_cert gibt den
Pfad zum CA-Zertifikat an, das benötigt wird,
um das Server-Zertifikat zu verifizieren.Die innerhalb des verschlüsselten TLS-Tunnels
verwendete Authentifizierungsmethode. In unserem
Beispiel handelt es sich dabei um EAP und MD5. Diese
Phase der inneren Authentifizierung wird
oft als phase2 bezeichnet.Folgende Zeile muss zusätzlich in die Datei
/etc/rc.conf aufgenommen werden:ifconfig_ath0="WPA DHCP"Nun können Sie Ihr drahtloses Gerät
aktivieren:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100WPA und EAP-PEAPPEAP (Protected EAP)
wurde als Alternative zu EAP-TTLS entwickelt. Es gibt
zwei verschiedene PEAP-Methoden, wobei es sich bei
PEAPv0/EAP-MSCHAPv2 um die häufiger verwendete
Methode handelt. In den folgenden Ausführungen
wird der Begriff PEAP synonym für diese
EAP-Methode verwendet. PEAP ist nach EAP-TLS der
am häufigsten verwendete und am besten
unterstützte EAP-Standard.PEAP arbeitet ähnlich wie EAP-TTLS: Es
verwendet ein server-seitiges Zertifikat, um
einen verschlüsselten TLS-Tunnel zu erzeugen,
über den die sichere Authentifizierung zwischen
den Clients und dem Authentifizierungsserver erfolgt.
In Sachen Sicherheit unterscheiden sich EAP-TTLS und
PEAP allerdings: PEAP überträgt den
Benutzernamen im Klartext und verschlüsselt nur
das Passwort, während EAP-TTLS sowohl den
Benutzernamen als auch das Passwort über den
TLS-Tunnel überträgt.Um EAP-PEAP einzurichten, müssen Sie die
Konfigurationsdatei
/etc/wpa_supplicant.conf
anpassen:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den Identifizierungsstring für die innerhalb
des verschlüsselten TLS-Tunnels erfolgende
EAP-Authentifizierung.Das Feld password enthält
die Passphrase für die EAP-Authentifizierung.Das Feld ca_cert gibt den Pfad
zum CA-Zertifikat an, das zur Verifizierung des
Server-Zertifikats benötigt wird.Dieses Feld enthält die Parameter für
die erste Phase der Authentifizierung (also den
TLS-Tunnel). Je nach dem, welchen
Authentifizierungsserver Sie verwenden, müssen
Sie hier einen unterschiedlichen Wert angeben.
In den meisten Fällen wird dieses Feld den
Wert client EAP encryption aufweisen,
der durch die Angabe von
peaplabel=0 gesetzt wird. Weitere
Informationen zur Konfiguration von PEAP finden Sie
in der Manualpage &man.wpa.supplicant.conf.5;.Das innerhalb des verschlüsselten TLS-Tunnels
verwendete Authentifizierungsprotokoll. In unserem
Beispiel handelt es sich dabei um
auth=MSCHAPV2.Danach fügen Sie die folgende Zeile in
/etc/rc.conf ein:ifconfig_ath0="WPA DHCP"Zuletzt müssen Sie die Netzkarte noch
aktivieren:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100WEPWEP (Wired Equivalent Privacy) ist Teil des
ursprünglichen 802.11-Standards. Es enthält
keinen Authentifzierungsmechanismus und verfügt
lediglich über eine schwache Zugriffskontrolle,
die sehr leicht geknackt werden kann.WEP kann über ifconfig
aktiviert werden:&prompt.root; ifconfig ath0 ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012 \
inet 192.168.1.100 netmask 255.255.255.0 Mit weptxkey geben Sie an,
welcher WEP-Schlüssel für für die
Datenübertragung verwendet wird (in unserem
Beispiel ist dies der dritte Schlüssel). Der
gleiche Schlüssel muss auch am Access Point
eingestellt sein. Kennen Sie den vom Access Point
verwendeten Schlüssel nciht, sollten Sie zuerst
den Wert 1 (d.h. den ersten
Schlüssel) für diese Variable verwenden.Mit wepkey legen Sie den zu
verwendenden WEP-Schlüssel in der Form
Nummer:Schlüssel fest.
Ist der Schlüssel "Nummer" nicht vorhanden, wird
automatisch Schlüssel 1
verwendet. Die Angabe von "Nummer" ist zwingend
nötig, wenn Sie einen anderen als den ersten
Schlüssel verwenden wollen.In Ihrer Konfiguration müssen Sie
0x3456789012 durch den an
Ihrem Access Point konfigurierten Schlüssel
ersetzen.Weitere Informationen finden Sie in der Manualpage
&man.ifconfig.8;.Das Programm wpa_supplicant
eignet sich ebenfalls dazu, WEP für Ihr drahtloses
Gerät zu aktivieren. Obige Konfiguration lässt
sich dabei durch die Aufnahme der folgenden Zeilen in die
Datei /etc/wpa_supplicant.conf
realisieren:network={
ssid="my_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}Danach müssen Sie das Programm noch aufrufen:&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76Ad-hoc-ModusDer IBSS-Modus (auch als Ad-hoc-Modus bezeichnet), ist
für Punkt-zu-Punkt-Verbindungen vorgesehen. Um
beispielsweise eine Ad-hoc-Verbindung zwischen den Rechnern
A und B aufzubauen,
benötigen Sie lediglich zwei IP-Adressen und eine
SSID.Auf dem Rechner A geben Sie Folgendes
ein:&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100Der adhoc-Parameter gibt an, dass die
Schnittstelle im IBSS-Modus läuft.Rechner B sollte nun in der Lage sein,
Rechner A zu finden:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 ISDer Wert I (Spalte CAPS) gibt an,
dass sich Rechner A im Ad-hoc-Modus befindet.
Nun müssen Sie nur noch Rechner B eine
unterschiedliche IP-Adresse zuweisen:&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100Damit sind die Rechner A und
B bereit und können untereinander
Daten austauschen.&os; Host Access PointsDieser Abschnitt ist noch nicht übersetzt.
Lesen Sie bitte
das Original in englischer Sprache. Wenn Sie helfen
wollen, diesen Abschnitt zu übersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.ProblembehandlungDie folgenden Auflistung zeigt, wie Sie einige
häufig auftretende Probleme bei der Einrichtung
Ihres drahtlosen Netzwerks beheben können.Wird Ihr Access Point bei der Suche nicht gefunden,
sollten Sie überprüfen, ob Sie bei Konfiguration
Ihres drahtlosen Geräts die Anzahl der Kanäle
beschränkt haben.Wenn Sie sich nicht mit Ihrem Access Point verbinden
können, sollten Sie überprüfen, ob die
Konfiguration Ihrer Station auch der des Access Points
entspricht. Achten Sie dabei speziell auf die
Authentifzierungsmethode und die Sicherheitsprotokolle.
Halten Sie Ihre Konfiguration so einfach wie möglich.
Verwenden Sie ein Sicherheitsprotokoll wie WPA oder WEP,
sollten Sie testweise Ihren Access Point auf
offene Authentifizierung und
keine Sicherheit einstellen.
Danach versuchen Sie sich erneut mit Ihren Access Point
zu verbinden.Nachdem Sie sich mit dem Access Point verbinden
können, prüfen Sie die Sicherheitseinstellungen,
beginnend mit einfachen Werkzeugen wie &man.ping.8;.Das Programm wpa_supplicant
kann Ihnen bei der Fehlersuche helfen. Dazu starten
Sie es manuell mit der Option und
durchsuchen anschließend die Protokollinformationen
nach eventuellen Fehlermeldungen.Zusätzlich gibt es auch zahlreiche
Low-Level-Debugging-Werkzeuge. Die Ausgabe von
Debugging-Informationen des 802.11 Protocol Support Layers
lassen sich mit dem Programm wlandebug
(das sich unter
/usr/src/tools/tools/net80211
befindet) aktivieren. Um beispielsweise während
der Suche nach Access Points und des Aufbaus von
802.11-Verbindungen
(Handshake) auftretende
Systemmeldungen auf die Konsole auszugeben, verwenden
Sie den folgenden Befehl:&prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>Der 802.11-Layer liefert umfangreiche Statistiken,
die Sie mit dem Werkzeug wlanstats
abrufen können. Diese Statistiken sollten alle
Fehler identifizieren, die im 802.11-Layer auftreten.
Beachten Sie aber, dass einige Fehler bereits im
darunterliegenden Gerätetreiber auftreten und
daher in diesen Statistiken nicht enthalten sind. Wie
Sie Probleme des Gerätetreibers identifizieren,
entnehmen Sie bitte der Dokumentation Ihres
Gerätetreibers.Können Sie Ihr Problem durch diese
Maßnahmen nicht lösen, sollten Sie einen
Problembericht (PR) erstellen und die Ausgabe der weiter
oben genannten Werkzeuge in den Bericht aufnehmen.PavLucistnikBeigetragen von pav@FreeBSD.orgBluetoothBluetoothÜbersichtBluetooth ermöglicht die Bildung von persönlichen
Netzwerken über drahtlose Verbindungen bei einer maximalen
Reichweite von 10 Metern und operiert im unlizensierten
2,4-GHz-Band. Solche Netzwerke werden normalerweise spontan
gebildet, wenn sich mobile Geräte, wie Mobiltelefone,
Handhelds oder Notebooks miteinander verbinden. Im Gegensatz zu
Wireless LAN ermöglicht Bluetooth auch höherwertige
Dienste, wie FTP-ähnliche Dateiserver, Filepushing,
Sprachübertragung, Emulation von seriellen Verbindungen
und andere mehr.Der Bluetooth-Stack von &os; verwendet das
Netgraph-Framework (&man.netgraph.4;). Viele
Bluetooth-USB-Adapter werden durch den &man.ng.ubt.4;-Treiber
unterstützt. Auf dem Chip BCM2033
von Broadcom basierende Bluetooth-Geräte werden von den
Treibern &man.ubtbcmfw.4; sowie &man.ng.ubt.4; unterstützt.
Die Bluetooth-PC-Card 3CRWB60-A von 3Com verwendet den
&man.ng.bt3c.4;-Treiber. Serielle sowie auf UART basierende
Bluetooth-Geräte werden von &man.sio.4;, &man.ng.h4.4;
sowie &man.hcseriald.8; unterstützt. Dieses Kapitel
beschreibt die Verwendung von USB-Bluetooth-Adaptern.Die Bluetooth-Unterstützung aktivierenBluetooth-Unterstützung ist in der Regel als
Kernelmodul verfügbar. Damit ein Gerät funktioniert,
muss der entsprechende Treiber im Kernel geladen werden:&prompt.root; kldload ng_ubtIst das Bluetooth-Gerät beim Systemstart angeschlossen,
kann das entsprechende Modul auch von
/boot/loader.conf geladen werden:ng_ubt_load="YES"Schließen Sie Ihren USB-Adapter an, sollte eine
Meldung ähnlich der folgenden auf der Konsole (oder in
syslog) erscheinen:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294
- Kopieren Sie
- /usr/share/examples/netgraph/bluetooth/rc.bluetooth
- nach /etc/rc.bluetooth. Über dieses
- Skript wird der Bluetooth-Stack gestartet und beendet. Es ist
+ Zum Starten und Beenden des Bluetooth-Stacks verwenden Sie
+ das Skript /etc/rc.d/bluetooth. Es ist
empfehlenswert, den Bluetooth-Stack zu beenden, bevor Sie den
Adapter entfernen. Selbst wenn Sie dies nicht tun, kommt es
(normalerweise) zu keinem fatalen Fehler. Wenn Sie den
Bluetooth-Stack starten, erhalten Sie eine Meldung ähnlich
der folgenden:
- &prompt.root; /etc/rc.bluetooth start ubt0
+ &prompt.root; /etc/rc.d/bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8HCIDas Host Controller Interface (HCI)Das Host Controller Interface
(HCI) bietet eine Befehlsschnittstelle zum Basisbandcontroller
und Linkmanager, sowie Zugriff auf den Hardwarestatus und die
Kontrollregister. Dadurch wird ein einheitlicher Zugriff auf
die Fähigkeiten des Bluetooth-Basisbands möglich. Die
HCI-Layer des Rechners tauschen Daten und Befehle mit der
HCI-Firmware der Bluetooth-Geräte aus. Über den
Host Controller Transport Layer-Treiber (also den physikalischen
Bus) können beide HCI-Layer miteinander
kommunizieren.Eine einzelne Netgraph-Gerätedatei vom Typ
hci wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die HCI-Gerätedatei ist
normalerweise mit der Bluetooth-Gerätetreiberdatei
(downstream) sowie der L2CAP-Gerätedatei (upstream)
verbunden. Alle HCI-Operationen müssen über die
HCI-Gerätedatei und nicht über die Treiberdatei
erfolgen. Der Standardname für die HCI-Gerätedatei
(die in &man.ng.hci.4; beschrieben wird) lautet
devicehci.Eine der wichtigsten Aufgaben ist das Auffinden von sich
in Reichweite befindenden Bluetooth-Geräten. Diese
Funktion wird als inquiry bezeichnet.
Inquiry sowie andere mit HCI in Verbindung stehende Funktionen
werden von &man.hccontrol.8; zur Verfügung gestellt. Das
folgende Beispiel zeigt, wie man herausfindet, welche
Bluetooth-Geräte sich in Reichweite befinden. Eine solche
Abfrage dauert nur wenige Sekunden. Beachten Sie, dass ein
Gerät nur dann antwortet, wenn es sich im Modus
discoverable befindet.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR stellt, ähnlich der
MAC-Adresse einer Netzkarte, die eindeutige Adresse eines
Bluetooth-Gerätes dar. Diese Adresse ist für die
Kommunikation mit dem Gerät nötig. Es ist aber auch
möglich, BD_ADDR einen Klartextnamen zuzuweisen. Die
Datei /etc/bluetooth/hosts enthält
Informationen über die bekannten Bluetooth-Rechner. Das
folgende Beispiel zeigt, wie man den Klartextnamen eines
entfernten Geräts in Erfahrung bringen kann:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Wenn Sie ein entferntes Bluetooth-Gerät abfragen, wird
dieses Ihren Rechner unter dem Namen
your.host.name (ubt0) finden. Dieser Name kann
aber jederzeit geändert werden.Bluetooth ermöglicht Punkt-zu-Punkt-Verbindungen (an
denen nur zwei Bluetooth-Geräte beteiligt sind), aber auch
Punkt-zu-Multipunkt-Verbindungen, bei denen eine Verbindung von
mehreren Bluetooth-Geräten gemeinsam genutzt wird. Das
folgende Beispiel zeigt, wie man die aktiven
Basisbandverbindungen des lokalen Gerätes anzeigen kann:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENEin connection handle ist für die
Beendigung einer Basisbandverbindung nützlich. Im
Normalfall werden inaktive Verbindungen aber automatisch vom
Bluetooth-Stack getrennt.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Rufen Sie hccontrol help auf, wenn Sie
eine komplette Liste aller verfügbaren HCI-Befehle
benötigen. Die meisten dieser Befehle müssen nicht
als root ausgeführt werden.L2CAPDas Logical Link Control and Adaptation Protocol (L2CAP)Das Logical Link Control and Adaptation
Protocol (L2CAP) bietet
höherwertigen Protokollen verbindungsorientierte und
verbindungslose Datendienste an. Dazu gehören auch
Protokollmultiplexing, Segmentierung und Reassemblierung.
L2CAP erlaubt höherwertigen Protokollen und Programmen den
Versand und Empfang von L2CAP-Datenpaketen mit einer Länge
von bis zu 64 Kilobytes.L2CAP arbeitet kanalbasiert. Ein
Kanal ist eine logische Verbindung innerhalb einer
Basisbandverbindung. Jeder Kanal ist dabei an ein einziges
Protokoll gebunden. Mehrere Geräte können an das
gleiche Protokoll gebunden sein, es ist aber nicht möglich,
einen Kanal an mehrere Protokolle zu binden. Jedes über
einen Kanal ankommende L2CAP-Paket wird an das entsprechende
höherwertige Protokoll weitergeleitet. Mehrere Kanäle
können sich die gleiche Basisbandverbindung teilen.Eine einzelne Netgraph-Gerätedatei vom Typ
l2cap wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die L2CAP-Gerätedatei ist
normalerweise mit der Bluetooth-HCI-Gerätedatei
(downstream) sowie der Bluetooth-Socket-Gerätedatei
(upstream) verbunden. Der Standardname für die
L2CAP-Gerätedatei, die in &man.ng.l2cap.4; beschrieben
wird, lautet devicel2cap.Ein nützlicher Befehl zum Anpingen von anderen
Geräten ist &man.l2ping.8;. Einige Bluetooth-Geräte
senden allerdings nicht alle erhaltenen Daten zurück. Die
Ausgabe 0 bytes ist also kein Fehler:&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Das Programm &man.l2control.8; liefert Informationen
über L2CAP-Dateien. Das folgende Beispiel zeigt, wie man
die Liste der logischen Verbindungen (Kanäle) sowie die
Liste der Basisbandverbindungen abfragen kann:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN&man.btsockstat.1; ist ein weiteres Diagnoseprogramm. Es
funktioniert analog zu &man.netstat.1;, arbeitet aber mit
Bluetooth-Datenstrukturen. Das folgende Beispiel zeigt die
gleiche Liste der logischen Verbindungen wie &man.l2control.8;
im vorherigen Beispiel.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENDas RFCOMM-ProtokollRFCOMMDas RFCOMM-Protokoll emuliert serielle Verbindungen
über das L2CAP-Protokoll. Es basiert auf dem ETSI-Standard
TS 07.10. Bei RFCOMM handelt es sich um ein einfaches
Transportprotokoll, das um Funktionen zur Emulation der
9poligen Schaltkreise von mit RS-232 (EIATIA-232-E) kompatiblen
seriellen Ports ergänzt wurde. RFCOMM erlaubt bis zu 60
simultane Verbindungen (RFCOMM-Kanäe) zwischen zwei
Bluetooth-Geräten.Eine RFCOMM-Kommunikation besteht aus zwei Anwendungen (den
Kommunikationsendpunkten), die über das
Kommunikationssegment miteinander verbunden sind. RFCOMM
unterstützt Anwendungen, die auf serielle Ports angewiesen
sind. Das Kommunikationssegment entspricht der (direkten)
Bluetooth-Verbindung zwischen den beiden Geräten.RFCOMM kümmert sich um die direkte Verbindung von zwei
Geräten, oder um die Verbindung zwischen einem Gerät
und einem Modem (Netzwerkverbindung). RFCOMM unterstützt
auch andere Konfigurationen. Ein Beispiel dafür sind
Module, die drahtlose Bluetooth-Geräte mit einer
verkabelten Schnittstelle verbinden können.Unter &os; wurde das RFCOMM-Protokoll im Bluetooth Socket-Layer
implementiert.PairingErstmaliger Verbindungsaufbau zwischen zwei
Bluetooth-Geräten (Pairing)
In der Voreinstellung nutzt Bluetooth keine
Authentifizierung, daher kann sich jedes Bluetoothgerät mit
jedem anderen Gerät verbinden. Ein Bluetoothgerät
(beispielsweise ein Mobiltelefon) kann jedoch für einen
bestimmten Dienst (etwa eine Einwählverbindung) eine
Authentifizierung anfordern. Bluetooth verwendet zu diesem
Zweck PIN-Codes. Ein PIN-Code ist ein
maximal 16 Zeichen langer ASCII-String. Damit eine Verbindung
zustande kommt, muss auf beiden Geräten der gleiche
PIN-Code verwendet werden. Nachdem der Code eingegeben wurde,
erzeugen beide Geräte einen link key,
der auf den Geräten gespeichert wird. Beim nächsten
Verbindungsaufbau wird der zuvor erzeugte Link Key verwendet.
Diesen Vorgang bezeichnet man als
Pairing. Geht der Link Key auf
einem Gerät verloren, muss das Pairing wiederholt
werden.Der &man.hcsecd.8;-Daemon verarbeitet alle
Bluetooth-Authentifzierungsanforderungen und wird über die
Datei /etc/bluetooth/hcsecd.conf
konfiguriert. Der folgende Ausschnitt dieser Datei zeigt die
Konfiguration für ein Mobiltelefon, das den PIN-Code
1234 verwendet:device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Von der Länge abgesehen, unterliegen PIN-Codes keinen
Einschränkungen. Einige Geräte, beispielsweise
Bluetooth-Headsets, haben einen festen PIN-Code eingebaut. Die
Option sorgt dafür, dass der
&man.hcsecd.8;-Daemon im Vordergrund läuft. Dadurch kann
der Ablauf einfach verfolgt werden. Stellen Sie das entfernte
Gerät auf receive pairing
und initiieren Sie die Bluetoothverbindung auf dem entfernten
Gerät. Sie erhalten die Meldung, dass Pairing akzeptiert
wurde und der PIN-Code benötigt wird. Geben Sie den
gleichen PIN-Code ein, den Sie in
hcsecd.conf festgelegt haben. Ihr Computer
und das entfernte Gerät sind nun miteinander verbunden.
Alternativ können Sie das Pairing auch auf dem entfernten
Gerät initiieren.Unter &os; 5.5, 6.1 und neuer können Sie
hcsecd durch das Einfügen der
folgenden Zeile in /etc/rc.conf
beim Systemstart automatisch aktivieren:hcsecd_enable="YES"Es folgt nun eine beispielhafte Ausgabe
des hcsecd-Daemons:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4SDPDas Service Discovery Protocol (SDP)Das Service Discovery Protocol
(SDP) erlaubt es Clientanwendungen, von Serveranwendungen
angebotene Dienste sowie deren Eigenschaften abzufragen. Zu
diesen Eigenschaften gehören die Art oder die Klasse der
angebotenen Dienste sowie der Mechanismus oder das Protokoll,
die zur Nutzung des Dienstes notwendig sind.SDP ermöglicht Verbindungen zwischen einem SDP-Server
und einem SDP-Client. Der Server enthält eine Liste mit
den Eigenschaften der vom Server angebotenen Dienste. Jeder
Eintrag beschreibt jeweils einen einzigen Serverdienst. Ein
Client kann diese Informationen durch eine SDP-Anforderung
vom SDP-Server beziehen. Wenn der Client oder eine Anwendung
des Clients einen Dienst nutzen will, muss eine seperate
Verbindung mit dem Dienstanbieter aufgebaut werden. SDP bietet
einen Mechanismus zum Auffinden von Diensten und deren
Eigenschaften an, es bietet aber keine Mechanismen zur Verwendung
dieser Dienste.Normalerweise sucht ein SDP-Client nur nach Diensten, die
bestimmte geforderte Eigenschaften erfüllen. Es ist aber
auch möglich, anhand der Dienstbeschreibungen eine
allgemeine Suche nach den von einem Server angebotenen Diensten
durchzuführen. Diesen Vorgang bezeichnet man als
Browsing.Der Bluetooth-SDP-Server &man.sdpd.8; und der
Kommandozeilenclient &man.sdpcontrol.8; sind bereits in der
Standardinstallation von &os; enthalten. Das folgende Beispiel
zeigt, wie eine SDP-Abfrage durchgeführt wird:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... und so weiter. Beachten Sie, dass jeder Dienst eine
Liste seiner Eigenschaften (etwa den RFCOMM-Kanal)
zurückgibt. Je nach dem, welche Dienste Sie
benötigen, sollten Sie sich einige dieser Eigenschaften
notieren. Einige Bluetooth-Implementationen unterstützen
kein Service Browsing und geben
daher eine leere Liste zurück. Ist dies der Fall, ist es
dennoch möglich, nach einem bestimmten Dienst zu suchen.
Das folgende Beispiel demonstriert die Suche nach dem
OBEX Object Push (OPUSH) Dienst:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHUnter &os; ist es die Aufgabe des &man.sdpd.8;-Servers,
Bluetooth-Clients verschiedene Dienste anzubieten. Unter
&os; 5.5, 6.1 und neuer können Sie dazu die folgende
Zeile in die Datei /etc/rc.conf
einfügen:sdpd_enable="YES"Nun kann der sdpd-Daemon durch
folgene Eingabe gestartet werden:&prompt.root; /etc/rc.d/sdpd startDer lokale Server, der den entfernten Clients
Bluetooth-Dienste anbieten soll, bindet diese Dienste an den
lokalen SDP-Daemon. Ein Beispiel für eine solche
Anwendung ist &man.rfcomm.pppd.8;. Einmal gestartet, wird der
Bluetooth-LAN-Dienst an den lokalen SDP-Daemon gebunden.Die Liste der vorhandenen Dienste, die am lokalen SDP-Server
registriert sind, lässt sich durch eine SDP-Abfrage
über einen lokalen Kontrollkanal abfragen:&prompt.root; sdpcontrol -l browseEinwahlverbindungen (Dial-Up Networking (DUN)) oder
Netzwerkverbindungen mit PPP (LAN)-Profilen einrichtenDas
Dial-Up Networking (DUN)-Profil
wird vor allem für Modems und Mobiltelefone verwendet.
Dieses Profil ermöglicht folgende Szenarien:Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computer als drahtloses Modem, um sich
über einen Einwahlprovider mit dem Internet zu verbinden
oder andere Einwahldienste zu benutzen.Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computers, um auf Datenabfragen zu
reagieren.Der Zugriff auf ein Netzwerk über das PPP (LAN)-Profil
kann in folgenden Situationen verwendet werden:Den LAN-Zugriff für ein einzelnes
Bluetooth-GerätDen LAN-Zugriff für mehrere
Bluetooth-GeräteEine PC-zu-PC-Verbindung (unter Verwendung
einer PPP-Verbindung über eine emulierte serielle
Verbindung)Beide Profile werden unter &os; durch &man.ppp.8; sowie
&man.rfcomm.pppd.8; implementiert - einem Wrapper, der
RFCOMM Bluetooth-Verbindungen unter PPP nutzbar macht. Bevor
ein Profil verwendet werden kann, muss ein neuer PPP-Abschnitt
in /etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;.Im folgenden Beispiel verwenden wir &man.rfcomm.pppd.8;, um
eine RFCOMM-Verbindung zu einem entfernten Gerät mit der
BD_ADDR 00:80:37:29:19:a4 auf dem
RFCOMM-Kanal DUN aufzubauen. Die aktuelle
RFCOMM-Kanalnummer erhalten Sie vom entfernten Gerät
über SDP. Es ist auch möglich, manuell einen
RFCOMM-Kanal festzulegen. In diesem Fall führt
&man.rfcomm.pppd.8; keine SDP-Abfrage durch. Verwenden Sie
&man.sdpcontrol.8;, um die RFCOMM-Kanäle des entfernten
Geräts herauszufinden.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupDer &man.sdpd.8;-Server muss laufen, damit ein Netzzugriff
mit dem PPP (LAN)-Profil möglich ist. Außerdem muss
für den LAN-Client ein neuer Eintrag in
/etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;. Danach starten Sie den RFCOMM PPP-Server
über eine gültige RFCOMM-Kanalnummer. Der
RFCOMM PPP-Server bindet dadurch den Bluetooth-LAN-Dienst an den
lokalen SDP-Daemon. Das folgende Beispiel zeigt Ihnen, wie man
den RFCOMM PPP-Server startet.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXDas Profil OBEX-Push (OPUSH)OBEX ist ein häufig verwendetes Protokoll für den
Dateitransfer zwischen Mobilgeräten. Sein Hauptzweck ist
die Kommunikation über die Infrarotschnittstelle. Es dient
daher zum Datentransfer zwischen Notebooks oder PDAs sowie zum
Austausch von Visitenkarten oder Kalendereinträgen zwischen
Mobiltelefonen und anderen Geräten mit PIM-Funktionen.Server und Client von OBEX werden durch das Softwarepaket
obexapp bereitgestellt, das als Port
comms/obexapp verfügbar
ist.Mit dem OBEX-Client werden Objekte zum OBEX-Server geschickt
oder angefordert. Ein Objekt kann etwa eine Visitenkarte oder
ein Termin sein. Der OBEX-Client fordert über SDP die
Nummer des RFCOMM-Kanals vom entfernten Gerät an. Dies
kann auch durch die Verwendung des Servicenamens anstelle der
RFCOMM-Kanalnummer erfolgen. Folgende Dienste werden
unterstützt: IrMC, FTRN und OPUSH. Es ist möglich,
den RFCOMM-Kanal als Nummer anzugeben. Es folgt nun ein
Beispiel für eine OBEX-Sitzung, bei der ein
Informationsobjekt vom Mobiltelefon angefordert und ein neues
Objekt (hier eine Visitenkarte) an das Telefonbuch des
Mobiltelefons geschickt wird:&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Um OBEX-Push-Dienste anbieten zu können, muss der
sdpd-Server gestartet sein. Ein
Wurzelverzeichnis, in dem alle ankommenden Objekt gespeichert
werden, muss zusätzlich angelegt werden. In der
Voreinstellung ist dies /var/spool/obex.
Starten Sie den OBEX-Server mit einer gültigen Kanalnummer.
Der OBEX-Server registriert nun den OBEX-Push-Dienst mit dem
lokalen SDP-Daemon. Um den OBEX-Server zu starten, geben Sie
Folgendes ein:&prompt.root; obexapp -s -C 10Das Profil Serial-Port (SPP)Durch dieses Profil können Bluetooth-Geräte RS232-
(oder damit kompatible) serielle Kabelverbindungen emulieren.
Anwendungen sind dadurch in der Lage, über eine virtuelle
serielle Verbindung Bluetooth als Ersatz für eine
Kabelverbindung zu nutzen.Das Profil Serial-Port wird durch &man.rfcomm.sppd.1;
verwirklicht. Pseudo-tty wird hier als virtuelle serielle
Verbindung verwendet. Das folgende Beispiel zeigt, wie man sich
mit einem entfernten Serial-Port-Dienst verbindet. Beachten
Sie, dass Sie den RFCOMM-Kanal nicht angeben müssen, da
&man.rfcomm.sppd.1; diesen über SDP vom entfernten
Gerät abfragen kann. Wenn Sie dies nicht wollen,
können Sie einen RFCOMM-Kanal auch manuell festlegen.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...Sobald die Verbindung hergestellt ist, kann pseudo-tty als
serieller Port verwenden werden.&prompt.root; cu -l ttyp6ProblembehandlungEin entferntes Gerät kann keine Verbindung
aufbauenEinige ältere Bluetooth-Geräte unterstützen
keinen Rollentausch. Wenn &os; eine neue Verbindung
akzeptiert, wird versucht, die Rolle zu tauschen, um zum
Master zu werden. Geräte, die dies nicht
unterstützen, können keine Verbindung aufbauen.
Beachten Sie, dass der Rollentausch ausgeführt wird,
sobald eine neue Verbindung aufgebaut wird, daher ist es
nicht möglich, das entfernte Gerät zu fragen, ob es
den Rollentausch unterstützt. Dieses Verhalten von &os;
kann aber durch eine HCI-Option geändert werden:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Wo finde ich genaue Informationen darüber, was
schiefgelaufen ist?Verwenden Sie hcidump,
das Sie über den Port comms/hcidump installieren
können. hcidump hat
Ähnlichkeiten mit &man.tcpdump.1;. Es dient zur Anzeige
der Bluetooth-Pakete in einem Terminal oder zur Speicherung
der Pakete in einer Datei (Dump).AndrewThompsonGeschrieben von LAN-Kopplung mit einer BridgeEinführungSubnetzBridgeManchmal 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
Bridge bezeichnet. Jedes FreeBSD-System
mit zwei Netzkarten kann als Bridge fungieren.Die Bridge arbeitet, indem sie die MAC Layeradressen
(Ethernet Adressen) der Geräte in ihren
Netzwerksegmenten lernt. Der Verkehr wird nur dann zwischen
zwei Segmenten weitergeleitet, wenn sich Sender und
Empfänger in verschiedenen Netzwerksegmenten
befinden.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.Situationen, in denen Bridging
angebracht istEs gibt zahlreiche Situationen, in denen der Einsatz
einer Bridge sinnvoll ist:Verbinden von NetzwerkenDie Hauptaufgabe einer Bridge ist die Verbindung von zwei
oder mehreren Netzwerksegmenten zu einem gemeinsamen Netzwerk.
Es ist oft sinnvoller, eine hostbasierte Bridge anstelle
normaler Netzwerkkomponenten (wie Kabelverbindungen),
Firewalls oder Pseudonetzwerken über die
Schnittstelle einer virtuellen Maschine einzusetzen.
Eine Bridge kann außerdem ein drahtloses Gerät mit
einem Kabelnetzwerk verbinden. Diese Fähigkeit der
Bridge wird als HostAP-Modus
bezeichnet. Die Bridge agiert in diesem Fall als
Access Point für das drahtlose Gerät.Filtering/Traffic Shaping FirewallFirewallNATHäufig kommt es vor, dass Firewallfunktionen
benötigt werden, ohne dass Routing oder
Network Adress Translation
(NAT) verwendet werden soll.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder ISDN an seinen ISP angebunden ist. Es
verfügt über 13 weltweit erreichbare IP-Adressen,
sein Netzwerk besteht aus 10 Rechnern. In dieser Situation
ist der Einsatz von Subnetzen sowie einer routerbasierten
Firewall schwierig.RouterDSLISDNEine brigdebasierte Firewall kann konfiguriert und in den
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
dass Sie sich um IP-Adressen kümmern müssen.NetzwerküberwachungEine Bridge kann zwei Netzwerksegmente miteinander
verbinden und danach alle Ethernet-Rahmen überprüfen,
die zwischen den beiden Netzwerksegmenten ausgetauscht werden.
Dazu verwendet man entweder &man.bpf.4;/&man.tcpdump.1; auf
dem Netzgerät der Bridge oder schickt Kopien aller
Rahmen an ein zusätzliches Netzgerät (den sogenannten
Span Port).Layer 2-VPNZwei Ethernetnetzwerke können über einen IP-Link
miteinander verbunden werden, indem Sie die beiden Netzwerke
über einen EtherIP-Tunnel koppeln oder eine
&man.tap.4;-basierte Lösung wie OpenVPN einsetzen.Layer 2-RedundanzDie Systeme eines Netzwerks können redundant
miteinander verbunden sein. In diesem Fall verwenden Sie das
Spanning Tree Protocol, um
redundante Pfade zu blockieren. Damit ein Ethernetnetzwerk
korrekt arbeitet, darf immer nur ein aktiver Pfad zwischen
zwei Geräten des Netzwerks existieren. Aufgabe des
Spanning Tree Protocols ist es daher, Schleifen zu entdecken
und redundante Links in den Status
blockiert zu versetzen. Fällt ein
aktiver Link aus, so berechnet das Protokoll einen neuen
Pfad. Dazu wird ein blockierter Pfad in den Status
aktiv versetzt, damit alle Systeme des
Netzwerks wieder miteinander kommunizieren können.KernelkonfigurationDieser Abschnitt beschreibt nur die
&man.if.bridge.4;-Bridge-Implementierung. Ein
Netgraph-Bridge-Treiber ist ebenfalls verfügbar, wird
hier aber nicht behandelt. Lesen Sie die Manualpage
&man.ng.bridge.4;, wenn Sie diesen Treiber einsetzen
wollen.Bei diesem Treiber handelt es sich um ein
Kernelmodul, das von &man.ifconfig.8; automatisch geladen
wird, wenn ein Bridge-Interface erzeugt wird. Alternativ ist
es aber auch möglich, die Unterstützung für
den Treiber in Ihren Kernel zu kompilieren. Dazu fügen
Sie die Zeile device if_bridge in Ihre
Kernelkonfigurationsdatei ein und bauen danach den Kernel
neu.Paketfilter können mit allen Firewallpaketen verwendet
werden, die das &man.pfil.9;-Framework benutzen. Die Firewall
kann dabei entweder als Kernelmodul geladen oder in den Kernel
kompiliert werden.Eine Bridge kann auch als Traffic
Shaper verwendet werden, wenn Sie
&man.altq.4; oder &man.dummynet.4; einsetzen.Die LAN-Kopplung aktivierenEine Bridge wird durch das Klonen von Schnittstellen
erzeugt. Um eine Bridge zu erzeugen, verwenden Sie den Befehl
&man.ifconfig.8;. Ist der Bridge-Treiber nicht in Ihren Kernel
kompiliert, wird er automatisch geladen.&prompt.root; ifconfig bridge create
bridge0
&prompt.root; ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0Im obigen Beispiel wird die Bridge erzeugt und erhält
automatisch eine zufällig generierte Ethernet-Adresse
zugewiesen. Die Parameter maxaddr sowie
timeout legen fest, wie viele MAC-Adressen
die Bridge in ihrer Forward-Tabelle halten kann beziehungsweise
wie viele Sekunden jeder Eintrag erhalten bleiben soll, nachdem
er zuletzt verwendet wurde. Die restlichen Parameter sind
für die Konfiguration von Spanning Tree notwendig.Im nächsten Schritt werden die Schnittstellen, die
die Bridge verbinden soll, zugewiesen. Damit die Bridge
Datenpakete weiterleiten kann, müssen sowohl die Bridge
als auch die Schnittstellen (der zu verbindenden
Netzwerksegmente) aktiviert sein:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up
&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 upDanach ist die Bridge in der Lage, Ethernet-Rahmen zwischen
den Schnittstellen fxp0 und
fxp1 weiterzuleiten. Um diese
Konfiguration beim Systemstart automatisch zu aktivieren,
müssen Sie folgende Einträge in die Datei
/etc/rc.conf aufnehmen:cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"Benötigen Sie für die Bridge eine IP-Adresse,
müssen Sie diese der Schnittstelle der Bridge zuweisen
(und nicht einer der Schnittstellen der gekoppelten
Netzwerksegmente). Dabei können Sie die IP-Adresse
sowohl statisch als auch dynamisch über DHCP
zuweisen:&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Sie können der Bridge-Schnittstelle auch eine
IPv6-Adresse zuweisen.FirewallsfirewallNachdem ein Paketfilter aktiviert wurde, können
Datenpakete, die von den Schnittstellen der gekoppelten
Netzwerksegmente gesendet und empfangen werden, über
die Bridge weitergeleitet oder nach bestimmten Regeln
gefiltert oder auch komplett geblockt werden. Ist die
Richtung des Paketflusses wichtig, ist es am besten, eine
Firewall auf den Schnittstellen der einzelnen
Netzwerksegmente einzurichten und nicht auf der Bridge
selbst.Eine Bridge verfügt über verschiedene Optionen,
über die Sie die Weiterleitung von Nicht-IP- und
ARP-Paketen sowie den Einsatz von Layer 2-Firewalls
(mit IPFW) steuern können. Lesen Sie die Manualpage
&man.if.bridge.4;, wenn Sie diese Funktionen
benötigen.Spanning TreeDer Bridge-Treiber implementiert das Rapid
Spanning Tree Protocol (RSTP oder 802.1w), das
abwärtskompatibel zum veralteten Spanning
Tree Protocol (STP) ist. Spanning Tree
dient dazu, Schleifen in einer Netzwerktopologie zu entdecken
und zu entfernen. RSTP arbeitet dabei schneller als das
veraltete STP. RSTP tauscht Informationen mit
benachbarten Switchen aus, um Pakete korrekt weiterzuleiten
und eine Schleifenbildung zu verhindern.Die folgende Tabelle listet die von den verschiedenen
&os;-Versionen unterstützten Betriebsmodi auf:&os;-VersionSTP-ModusStandardmodus&os; 5.4—&os; 6.2STPSTP&os; 6.3+RSTP oder STPSTP&os; 7.0+RSTP oder STPRSTPSpanning Tree kann auf den Schnittstellen der
durch die Bridge verbundenen Netzwerksegmente über die
Option stp aktiviert werden. Für eine
Bridge, die die Schnittstellen fxp0 und
fxp1 verbindet, aktivieren Sie STP wie
folgt:&prompt.root; ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwardingDiese Bridge hat die Spanning-Tree-ID
00:01:02:4b:d4:50 und die Priorität
32768. Da diese ID mit der
Root-ID identisch ist, handelt es sich um die
Root-Bridge dieses Netzwerks.Auf einer anderen Bridge des Netzwerks ist Spanning Tree
ebenfalls aktiviert:bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwardingDie Zeile root id 00:01:02:4b:d4:50 priority 32768
ifcost 400000 port 4 zeigt an, dass die Root-Bridge wie
im obigen Beispiel die ID 00:01:02:4b:d4:50
hat. Die Pfadkosten hin zur Root-Bridge betragen
400000, wobei der Pfad zur Root-Bridge
über Port 4 geht (der wiederum
der Schnittstelle fxp0
entspricht).Fortgeschrittene FunktionenDen Datenfluss rekonstruierenDie Bridge unterstützt den Monitormodus. Dabei
werden alle Pakete verworfen, nachdem sie von &man.bpf.4;
verarbeitet wurden. In diesem Modus erfolgt keine weitere
Bearbeitung und auch keine Weiterleitung von Datenpaketen.
Es ist daher möglich, die Eingabe von zwei oder mehr
Netzwerkschnittstellen in einen einzigen gemeinsamen
&man.bpf.4;-Stream zu vereinen. Ein solcher Datenstrom
ist beispielsweise nützlich, um den Datenverkehr für
""network taps"" zu rekonstruieren, die ihre RX/TX-Signale
über verschiedene Schnittstellen senden.Um die Eingabe von vier Netzwerkschnittstellen in einzigen
gemeinsamen Datenstrom zu vereinen, geben Sie Folgendes
ein:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0Span PortsEine Kopie jedes Ethernet-Rahmens, der an der Bridge
ankommt, wird über einen festgelegten
Span Port verschickt.
Auf einer Bridge können
beliebig viele Span Ports festgelegt werden. Wird
eine Schnittstelle als Span Port konfiguriert, kann
sie nicht mehr als normaler Bridge-Port verwendet werden.
Eine derartige Konfiguration ist beispielsweise sinnvoll,
um den Datenverkehr, der in einem Netzwerk über die
Bridge läuft, auf einen Rechner zu übertragen,
der mit einem Span Port der Bridge verbunden
ist.Um eine Kopie aller Ethernet-Rahmen über die
Schnittstelle fxp4 zu verschicken,
geben Sie Folgendes ein:&prompt.root; ifconfig bridge0 span fxp4Private SchnittstellenEine private Schnittstelle leitet keine Daten an einen
Port weiter, bei dem es sich ebenfalls um eine private
Schnittstelle handelt. Der Datenverkehr wird dabei komplett
blockiert, auch Ethernet-Rahmen und ARP-Pakete werden nicht
weitergeleitet. Wollen Sie hingegen nur spezifische
Datenpakete blockieren, sollten Sie eine Firewall
einsetzen.Schnittstellen als sticky
kennzeichnenWenn die Schnittstelle eines über eine Bridge
verbundenen Netzwerksegments als
sticky gekennzeichnet wird,
werden alle dynamisch gelernten Adressen als statische Adressen
behandelt, sobald sie in den Forward-Cache der Bridge
aufgenommen wurden. Sticky-Einträge werden niemals aus
dem Cache entfernt oder ersetzt. Selbst dann nicht, wenn die
Adresse von einer anderen Schnittstelle verwendet wird. Sie
können dadurch die Vorteile statischer Adresseinträge
nutzen, ohne die Forward-Tabelle vor dem Einsatz der Bridge
mit statischen Einträgen füllen zu müssen.
Clients, die sich in einem bestimmten von der Bridge
verwalteten Segmente befinden, können dabei nicht in ein
anderes Segment wechseln.Ein weiteres Beispiel für den Einsatz von
Sticky-Adressen wäre die Kombination einer Bridge mit
mehreren VLANs, um einen Router zu konfigurieren, der in
in der Lage ist, einzelne Kundennetzwerke voneinander zu
trennen, ohne IP-Adressbereiche zu verschwenden. Für das
folgende Beispiel nehmen wir an, dass sich der Client
CustomerA im VLAN
vlan100 und der Client
CustomerB im VLAN
vlan101 befinden. Die Bridge hat die
IP-Adresse 192.168.0.1 und ist
als Internet-Router konfiguriert.&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Beide Clients sehen 192.168.0.1 als Ihr Default-Gateway.
Da der Brücken-Cache sticky ist,
sind Sie nicht dazu in der Lage, die MAC-Adresse des
anderen Kunden zu spoofen und dessen Datenverkehr
abzufangen.Sie können die Kommunikation zwischen den VLANs
vollständig unterbinden, wenn Sie private Schnittstellen
(oder eine Firewall) einsetzen:&prompt.root; ifconfig bridge0 private vlan100 private vlan101Die Kunden sind nun komplett voneinander isoliert und
der komplette /24-Adressbereich
kann zugewiesen werden, ohne dass Sie Subnetze einsetzen
müssen.Adressen-LimitierungDie maximale mögliche Anzahl an eindeutigen
MAC-Adressen hinter einer Schnittstelle kann festgelegt werden.
Sobald das Limit erreicht ist, werden Pakete mit einer
unbekannten Quell-Adresse solange verworfen, bis ein
exisitierender Eintrag gelöscht wird oder
abläuft.Das folgende Beispiel setzt die maximale Anzahl von
Netzgeräten für
CustomerA für
das VLAN vlan100 auf 10.&prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10SNMP-MonitoringDie Schnittstelle der Bridge sowie die STP-Parameter
können durch den bereits im Basissystem enthaltenen
SNMP-Daemon überwacht werden. Die exportierten
Bridge-MIBs entsprechen den IETF-Standards, daher können
Sie einen beliebigen SNMP-Client oder ein beliebiges
Monitoring-Werkzeug einsetzen, um die benötigten Daten
zu erhalten.Auf dem Rechner, auf dem die Bridge konfiguriert ist,
aktivieren Sie die Zeile
begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"
in der Datei /etc/snmp.config und starten
danach den bsnmpd-Daemon.
Eventuell benötigen Sie noch weitere
Konfigurationsparameter wie Community-Namen und
Zugriffslisten. Die Konfiguration dieser Parameter wird
in den Manualpages &man.bsnmpd.1; sowie &man.snmp.bridge.3;
beschrieben.Die folgenden Beispiele verwenden das Softwarepaket
Net-SNMP (net-mgmt/net-snmp), um die Bridge
abzufragen. Alternativ können Sie dafür auch den
Port net-mgmt/bsnmptools
einsetzen. Auf dem SNMP-Client fügen Sie danach die
folgenden Zeilen in die Datei
$HOME/.snmp/snmp.conf ein, um die
MIB-Definitionen der Bridge in
Net-SNMP zu importieren:mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIBUm eine einzelne Bridge über den IETF BRIDGE-MIB
(RFC4188) zu überwachen, geben Sie Folgendes ein:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)Der Wert der Variable
dot1dStpTopChanges.0 ist hier 2, die
STP-Topologie der Bridge wurde also bereits zweimal
geändert. Unter einer Änderung versteht man dabei
die Anpassung eines oder mehrerer Links und die Kalkulation
eines neuen Baums. Der Wert der Variable
dot1dStpTimeSinceTopologyChange.0 gibt an,
wann dies zuletzt geschah.Um mehrere Bridge-Schnittstellen zu überwachen,
können Sie den privaten BEGEMOT-BRIDGE-MIB
einsetzen:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9Um die über den
mib-2.dot1dBridge-Subtree überwachte
Bridge-Schnittstelle zu ändern, geben Sie Folgendes
ein:&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2Link Aggregation and FailoverDieser Abschnitt ist noch nicht übersetzt.
Lesen Sie bitte
das Original in englischer Sprache. Wenn Sie helfen
wollen, diesen Abschnitt zu übersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.Jean-FrançoisDockèsAktualisiert von AlexDupreReorganisiert und erweitert von Start und Betrieb von FreeBSD über ein Netzwerkplattenloser Arbeitsplatzplattenloser BetriebFreeBSD 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:Es gibt mindestens zwei Möglichkeiten, den Kernel
über das Netzwerk zu laden:PXE: Das
Preboot eXecution Environment System von
&intel; ist eine Art intelligentes Boot-ROM, das in
einigen Netzkarten oder Hauptplatinen verwendet wird.
Weitere Informationen finden Sie in &man.pxeboot.8;.
Der Port
Etherboot
(net/etherboot)
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.Das Beispielskript
/usr/share/examples/diskless/clone_root
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.Die Startdateien, die einen plattenlosen Systemstart
erkennen und unterstützen, sind nach der Installation
in /etc vorhanden.Dateiauslagerungen können sowohl via
NFS als auch auf die lokale Platte
erfolgen.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. Im folgenden Abschnitt wird die Installation
eines kompletten Systems beschrieben, wobei der
Schwerpunkt auf Einfachheit und Kompatibilität zu den
Standardstartskripten von FreeBSD liegt. Das beschriebene
System hat folgende Eigenschaften:Die plattenlosen Rechner haben ein gemeinsames
/- sowie ein gemeinsames
/usr-Dateisystem, die jeweils
schreibgeschützt sind.Das root-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.Für die Bereiche des root-Dateisystems, die
beschreibbar sein müssen, werden mit &man.md.4;
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
alle Veränderungen verloren gehen, wenn das System neu
gestartet wird.Der Kernel wird, in Abhängigkeit von der jeweiligen
Situation, entweder von Etherboot
oder von PXE transferiert und geladen.
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.Alle Informationen in diesem Abschnitt wurden unter
&os; 5.2.1-RELEASE getestet.HintergrundinformationenDie Einrichtung von plattenlosen Rechnern ist einfach, aber
auch fehleranfällig. Der Grund dafür sind auftretende
Fehler, die sich oft nur schwer zuordnen lassen. Unter anderem
sind dafür folgende Umstände verantwortlich:Kompilierte Optionen haben zur Laufzeit unterschiedliche
Auswirkungen.Fehlermeldungen sind oft kryptisch oder fehlen
vollständig.Daher ist es nützlich, über die im Hintergrund
ablaufenden Mechanismen Bescheid zu wissen. Dadurch wird es
einfacher, eventuell auftretende Fehler zu beheben.Verschiedene Operationen müssen ausgeführt werden,
um ein System erfolgreich zu starten:Der Rechner benötigt einige Startparameter, wie
seine IP-Adresse, die Namen ausführbarer Dateien, den
Servernamen sowie den root-Pfad. Für die
Übermittlung dieser Informationen wird entweder das
DHCP- oder das BOOTP-Protokoll verwendet.
Bei DHCP handelt es sich um eine
abwärtskompatible Erweiterung von BOOTP, die die
gleichen Portnummern und das gleiche Paketformat verwendet.
Es ist möglich, das System so zu konfigurieren,
dass es nur BOOTP verwendet. Das Serverprogramm
&man.bootpd.8; ist bereits im &os;-Basissystem enthalten.
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).
Dieser Abschnitt beschreibt die Konfiguration mittels
DHCP. Wenn möglich, werden aber
entsprechende Beispiele für &man.bootpd.8;
angeführt. Die Beispielkonfiguration nutzt das
Softwarepaket ISC DHCP.Der Rechner muss ein oder mehrere Programme in den
lokalen Speicher laden. Dazu wird entweder
TFTP oder NFS
verwendet. Die Auswahl zwischen TFTP und
NFS erfolgt über das Setzen von
verschiedenen Kompilieroptionen. Ein häufig gemachter
Fehler ist es, Dateinamen für das falsche Protokoll
anzugeben: TFTP transferiert
normalerweise alle Dateien aus einem einzigen Verzeichnis
des Servers, und erwartet einen Pfad relativ zu diesem
Verzeichnis. NFS verlangt hingegen
absolute Dateipfade.Die möglichen Bootstrap-Programme und der Kernel
müssen initialisiert und ausgeführt werden. Dabei
gibt es zwei Möglichkeiten:PXE lädt &man.pxeboot.8;.
Dabei handelt es sich um eine modifizierte Version des
&os;-Laders der Boot-Phase drei. Der &man.loader.8;
beschafft alle für den Systemstart notwendigen
Parameter, und hinterlegt diese in der Kernelumgebung,
bevor er die Kontrolle übergibt. Es ist hier
möglich, den GENERIC-Kernel
zu verwenden.Etherboot lädt den
Kernel hingegen direkt. Dafür müssen Sie
allerdings einen Kernel mit spezifischen Optionen
erzeugen.PXE und
Etherboot sind zwar im
Großen und Ganzen gleichwertig, da der Kernel
aber viele Aufgaben an &man.loader.8; übergibt, sollte
bevorzugt PXE eingesetzt werden.Wenn Ihr BIOS und Ihre Netzkarten
PXE unterstützen, sollten Sie es
auch verwenden.Zuletzt muss der Rechner auf seine Dateisysteme
zugreifen können. Dafür wird stets
NFS verwendet.Weitere Informationen finden Sie in &man.diskless.8;.InstallationsanweisungenKonfiguration unter Verwendung von
ISC DHCPDHCPplattenloser BetriebDer ISC DHCP-Server kann
Anfragen sowohl von BOOTP als auch von DHCP beantworten.
isc-dhcp 3.0 ist nicht Teil
des Basissystems. Sie müssen es daher zuerst
installieren. Verwenden Sie dazu den Port
net/isc-dhcp3-server
oder das entsprechende Paket.Nachdem ISC DHCP installiert
ist, muss das Programm konfiguriert werden (normalerweise in
/usr/local/etc/dhcpd.conf). Im
folgenden Beispiel verwendet Rechner margauxEtherboot, während Rechner
corbieres PXE verwendet:
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;
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;
filename "/tftpboot/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Diese Option
weist dhcpd an, den Wert der
host-Deklaration als Rechnernamen des
plattenlosen Rechners zu senden. Alternativ kann man der
host-Deklaration Folgendes
hinzufügen: option host-name
margauxDie Anweisung
next-server bestimmt den
TFTP- oder
NFS-Server, von dem der Loader oder
der Kernel geladen werden (in der Voreinstellung ist das
der DHCP-Server selbst).Die Anweisung
filename bestimmt die Datei, die
Etherboot als nächstes
lädt. Das genaue Format hängt von der
gewählten Transfermethode ab.
Etherboot kann sowohl mit
NFS als auch mit
TFTP kompiliert werden. In der
Voreinstellung wird der &os;-Port mit
NFS-Unterstützung kompiliert.
PXE verwendet TFTP,
daher wird im Beispiel ein relativer Dateipfad verwendet.
Dies kann aber, je nach Konfiguration des
TFTP-Servers, auch anders sein.
Beachten Sie, dass PXE
pxeboot lädt, und nicht den
Kernel. Es ist auch möglich, das Verzeichnis
/boot einer
&os;-CD-ROM von pxeboot laden zu
lassen. &man.pxeboot.8; kann einen
GENERIC-Kernel laden, dadurch ist es
möglich, PXE von einer entfernten
CD-ROM zu starten.Die Option
root-path bestimmt den Pfad des
root-Dateisystems in normaler NFS-Schreibweise. Wird
PXE verwendet, ist es möglich,
die IP-Adresse des Rechners wegzulassen, solange nicht
die Kerneloption BOOTP aktiviert wird. Der
NFS-Server entspricht in diesem Fall
dem TFTP-Server.Konfiguration bei Verwendung von BOOTPBOOTPplattenloser BetriebEs folgt nun eine der Konfiguration von DHCP
entsprechende Konfiguration (für einen Client) für
bootpd. Zu finden ist die
Konfigurationsdatei unter /etc/bootptab.
Beachten Sie bitte, dass
Etherboot mit der Option
NO_DHCP_SUPPORT kompiliert werden muss,
damit BOOTP verwendet werden kann. PXE
hingegen benötigt
DHCP. Der einzige offensichtliche
Vorteil von bootpd ist, dass es
bereits im Basissystem vorhanden ist..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=.def100Ein Startprogramm unter Verwendung von
Etherboot erstellenEtherbootDie
Internetseite von Etherboot enthält
ausführliche Informationen, die zwar vor allem
für Linux gedacht sind, aber dennoch nützliche
Informationen enthalten. Im Folgenden wird daher nur grob
beschrieben, wie Sie Etherboot auf
einem FreeBSD-System einsetzen können.Als Erstes müssen Sie
net/etherboot als Paket
oder als Port installieren.Sie können Etherboot so
konfigurieren, dass TFTP anstelle von
NFS verwendet wird, indem Sie die Datei
Config im Quellverzeichnis von
Etherboot bearbeiten.Für unsere Installation verwenden wir eine
Startdiskette. Für Informationen zu anderen Methoden
(PROM oder &ms-dos;-Programme) lesen Sie bitte die
Dokumentation zu Etherboot.Um eine Startdiskette zu erzeugen, legen Sie eine Diskette
in das Laufwerk des Rechners ein, auf dem Sie
Etherboot installiert haben. Danach
wechseln Sie in das Verzeichnis src des
Etherboot-Verzeichnisbaums und geben
Folgendes ein:&prompt.root; gmake bin32/devicetype.fd0devicetype hängt vom Typ
der Ethernetkarte ab, über die der plattenlose Rechner
verfügt. Lesen Sie dazu NIC im
gleichen Verzeichnis, um den richtigen Wert für
devicetype zu bestimmen.Das System mit PXE startenIn der Voreinstellung lädt der
&man.pxeboot.8;-Loader den Kernel über
NFS. Soll stattdessen
TFTP verwendet werden, muss beim
Kompilieren die Option
LOADER_TFTP_SUPPORT in der Datei
/etc/make.conf eingetragen sein. Sehen
Sie sich die Datei
/usr/share/examples/etc/make.conf
für weitere Anweisungen an.Es gibt zwei Optionen für
make.conf, die nützlich sein
können, wenn Sie eine plattenlose serielle Konsole
einrichten wollen:
BOOT_PXELDR_PROBE_KEYBOARD, und
BOOT_PXELDR_ALWAYS_SERIAL.Um PXE beim Systemstart zu verwenden,
müssen Sie im BIOS des Rechner die
Option Über das Netzwerk starten
aktivieren. Alternativ können Sie während der
PC-Initialisierung auch eine Funktionstaste drücken.
Serverkonfiguration - TFTP und
NFSTFTPplattenloser BetriebNFSplattenloser BetriebWenn Sie PXE oder
Etherboot so konfiguriert haben,
dass diese TFTP verwenden, müssen
Sie auf dem Dateiserver tftpd
aktivieren:Erzeugen Sie ein Verzeichnis, in dem
tftpd seine Dateien ablegt,
beispielsweise /tftpboot.Fügen Sie folgende Zeile in
/etc/inetd.conf ein:tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpbootAnscheinend benötigen zumindest einige
PXE-Versionen die
TCP-Version von
TFTP. Sollte dies bei Ihnen der
Fall sein, fügen Sie eine zweite Zeile ein, in der
Sie dgram udp durch
stream tcp ersetzen.Weisen Sie inetd an, seine
Konfiguration erneut einzulesen (Damit der folgende
Befehl funktioniert, muss die Option
in der Datei
/etc/rc.conf vorhanden sein.):&prompt.root; /etc/rc.d/inetd restartSie können das Verzeichnis
/tftpboot an einem beliebigen Ort auf dem
Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
sowohl in inetd.conf als auch in
dhcpd.conf eingetragen haben.Außerdem müssen Sie NFS aktivieren und die
entsprechenden Verzeichnisse exportieren.Fügen Sie folgende Zeile in
/etc/rc.conf ein:nfs_server_enable="YES"Exportieren Sie das Verzeichnis, in dem sich das
Wurzelverzeichnis für den plattenlosen Betrieb
befindet, indem Sie folgende Zeile in
/etc/exports einfügen (passen
Sie dabei den mountpoint
an und ersetzen Sie
margaux corbieres durch den
Namen Ihres plattenlosen Rechners):/data/misc -alldirs -ro margauxWeisen sie nun mountd an,
seine Konfigurationsdatei erneut einzulesen. Wenn Sie
NFS erst in der Datei
/etc/rc.conf aktivieren mussten,
sollten Sie stattdessen den Rechner neu starten. Dadurch
wird die Konfigurationsdatei ebenfalls neu eingelesen.
&prompt.root; /etc/rc.d/mountd restartEinen plattenlosen Kernel erzeugenplattenloser BetriebKernelkonfigurationWenn Sie Etherboot verwenden,
müssen Sie in die Kernelkonfigurationsdatei Ihres
plattenlosen Clients zusätzlich folgende Optionen
einfügen:options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root file system using BOOTP infoAußerdem können Sie die Optionen
BOOTP_NFSV3,
BOOT_COMPAT sowie
BOOTP_WIRED_TO verwenden (sehen Sie sich
dazu auch die Datei NOTES an).Die Namen dieser Optionen sind historisch bedingt.
Sie ermöglichen eine unterschiedliche Verwendung von
DHCP und BOOTP innerhalb des Kernels.
Es ist auch möglich, eine strikte Verwendung von BOOTP
oder DHCP zu erzwingen.Erzeugen Sie den neuen Kernel (lesen Sie dazu auch
) und kopieren Sie ihn an den
in dhcpd.conf festgelegten Ort.Wenn Sie PXE verwenden, ist die
Erzeugung eines Kernels zwar nicht unbedingt nötig, sie
wird allerdings dennoch empfohlen. Die Aktivierung dieser
Optionen bewirkt, dass die Anzahl der möglichen
DHCP-Anforderungen während des
Kernelstarts erhöht wird. Ein kleiner Nachteil sind
eventuell auftretende Inkonsistenzen zwischen den neuen
Werten und den von &man.pxeboot.8; erhaltenen Werten. Der
große Vorteil dieser Variante ist es, dass dabei der
Rechnername gesetzt wird, den Sie ansonsten durch eine
andere Methode, beispielsweise in einer clientspezifischen
rc.conf-Datei festlegen müssten.
Damit der Kernel von
Etherboot geladen werden kann,
müssen device hints im
Kernel einkompiliert sein. Dazu setzen Sie normalerweise
folgende Option in die Kernelkonfigurationsdatei (sehen Sie
sich dazu auch die kommentierte Datei
NOTES an):hints "GENERIC.hints"Das root-Dateisystem erzeugenRoot-Dateisystemplattenloser BetriebSie müssen für den plattenlosen Rechner ein
root-Dateisystem erzeugen, und zwar an dem in
dhcpd.conf als
root-path festgelegten Ort.make world zum Füllen des
Dateisystems einsetzenDiese schnelle Methode installiert ein komplettes
jungfräuliches System (und nicht nur ein
root-Dateisystem) nach DESTDIR. Dazu
müssen Sie lediglich das folgende Skript
ausführen:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make buildworld && make buildkernel
cd /usr/src/etc; make distributionDanach müssen Sie noch die dadurch in
DESTDIR erzeugten Dateien
/etc/rc.conf sowie
/etc/fstab Ihren Wünschen
anpassen.Den Auslagerungsbereich konfigurierenFalls nötig, kann eine auf dem
NFS-Server liegende Datei als
Auslagerungsdatei eingerichtet werden.Eine NFS-Auslagerungsdatei
einrichtenDer Kernel unterstützt beim Systemstart keine
NFS-Auslagerungsdatei. Diese muss daher
in den Startskripten aktiviert werden, indem ein
beschreibbares Dateisystem eingehängt wird, um dort
die Auslagerungsdatei zu erzeugen und zu aktivieren. Um
eine Auslagerungsdatei zu erzeugen, gehen Sie wie folgt
vor:&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000Um die Auslagerungsdatei zu aktivieren, fügen Sie
folgende Zeile in rc.conf ein:swapfile=/path/to/swapfileVerschiedenesSchreibgeschütztes Dateisystem
/usrplattenloser Betrieb/usr schreibgeschütztWenn am plattenlosen Rechner X läuft, müssen
Sie die Konfigurationsdatei von
XDM anpassen, da Fehlermeldungen
in der Voreinstellung auf /usr
geschrieben werden.Der Server läuft nicht unter FreeBSDWenn das root-Dateisystem nicht auf einem
FreeBSD-Rechner liegt, muss das Dateisystem zuerst unter
FreeBSD erzeugt werden. Anschließend wird es
beispielsweise mit tar oder
cpio an den gewünschten Ort
kopiert.Dabei kann es Probleme mit den Gerätedateien
in /dev 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-Rechner einzuhängen und die
Gerätedateien dort mit &man.devfs.5; zu erzeugen.ISDN – diensteintegrierendes digitales NetzwerkISDNEine gute Quelle für Informationen zu ISDN ist die
ISDN-Seite von Dan Kegel.Welche Informationen finden Sie in diesem Abschnitt?Wenn Sie in Europa leben, könnte der Abschnitt
über ISDN-Karten für Sie interessant sein.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.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.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.HellmuthMichaelisBeigetragen von ISDN-KartenISDNKartenDas ISDN-Subsystem von FreeBSD unterstützt den
DSS1/Q.931- (oder Euro-ISDN)-Standard nur für passive
Karten. Zusätzlich werden aber 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.isdn4bsd ermöglicht es
Ihnen, sich unter Nutzung von
IP over raw HDLC oder
synchronem PPP 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.FreeBSD unterstützt eine ständig wachsende Anzahl
von PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.
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.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.Informationen zu isdn4bsd finden
Sie im Verzeichnis
/usr/share/examples/isdn/ Ihres
FreeBSD-Systems, oder auf der
Internetseite
von isdn4bsd. Dort finden Sie auch
Verweise zu Tipps, Korrekturen, sowie weiteren Informationen,
wie dem
isdn4bsd-Handbuch.
Falls Sie an der Unterstützung eines zusätzlichen
ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
Erweiterung von isdn4bsd interessiert
sind, wenden Sie sich bitte an &a.hm;.Für Fragen zur Installation, Konfiguration und zu
sonstigen Problemen von isdn4bsd gibt
es die Mailingliste &a.isdn.name;.ISDN-TerminaladapterTerminaladapterTerminaladapter (TA) sind für ISDN, was Modems für
analoge Telefonleitungen sind.ModemDie meisten Terminaladapter verwenden den
Standardbefehlssatz für Modems von Hayes (AT-Kommandos) und
können daher als Modemersatz verwendet werden.Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
allerdings erfolgt der Verbindungsaufbau um einiges schneller.
Die Konfiguration von PPP entspricht
dabei exakt der eines Modems. Stellen Sie dabei allerdings
die serielle Geschwindigkeit so hoch wie möglich ein.
PPPDer 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.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.Wenn Sie an maximaler Stabilität interessiert sind,
verwenden Sie Kernel-PPP, und
nicht das User-PPP.Folgende Terminaladapter werden von FreeBSD
unterstützt:Motorola BitSurfer und Bitsurfer ProAdtranDie meisten anderen Terminaladapter werden wahrscheinlich
ebenfalls funktionieren, da die Hersteller von Terminaladaptern
darauf achten, dass ihre Produkte den Standardbefehlssatz
möglichst gut unterstützen.Das wirkliche Problem mit einem externen Terminaladapter ist,
dass, ähnlich wie bei Modems, eine gute serielle Karte
eine Grundvoraussetzung ist.Sie sollten sich die
Anleitung für die Nutzung serieller Geräte unter
FreeBSD ansehen, wenn Sie detaillierte Informationen
über serielle Geräte und die Unterschiede zwischen
asynchronen und synchronen seriellen Ports benötigen.
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.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 ein serielles sowie ein
Stromkabel weniger benötigen.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.Die Entscheidung zwischen synchroner Karte/Terminaladapter
und einem autonomen ISDN-Router ist beinahe eine religiöse
Angelegenheit. Zu diesem Thema gibt es viele Diskussionen
in den Mailinglisten. Suchen Sie in den
Archiven
danach, wenn Sie an der kompletten Diskussion interessiert
sind.ISDN-Bridges und RouterISDNAutonome Bridge/RouterISDN-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.In diesem Abschnitt werden die Begriffe Router und
Bridge synonym verwendet.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 einem Router oder einer Bridge verbindet.
Die eingebaute Software ermöglicht die Kommunikation
über PPP oder andere beliebte Protokolle.Ein Router ermöglicht einen deutlich höheren
Datendurchsatz als ein herkömmlicher Terminaladapter,
da er eine vollsynchrone ISDN-Verbindung nutzt.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.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.Um beispielsweise einen privaten Computer oder eine
Zweigstelle mit dem Hauptnetzwerk zu verbinden, könnte
folgende Konfiguration verwendet werden:Kleines Netzwerk (Privatnetz)10 base 2Das Netzwerk basiert auf der Bustopologie mit 10base2
Ethernet (Thinnet). Falls nötig, stellen
Sie die Verbindung zwischen Router und Netzwerkkabel mit einem
AUI/10BT-Transceiver her.
---Sun Workstation
|
---FreeBSD Rechner
|
---Windows 95
|
Autonomer Router
|
ISDN BRI Verbindung
10Base2 - EthernetWenn 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.Großes Netzwerk (Firmennetz)10 base TDieses Netzwerk basiert auf der Sterntopologie und 10baseT
Ethernet (Twisted Pair).
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Autonomer Router
|
ISDN BRI Verbindung
ISDN NetzwerkdiagrammEin großer Vorteil der meisten Router und Bridges
ist es, dass man gleichzeitig zwei
unabhängige 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.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.IPX/SPXEine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll,
sondern auch in beliebigen anderen Protokollen versenden.ChernLeeBeigetragen von NAT - Network Address TranslationÜberblicknatd&man.natd.8;, der Network-Address-Translation-Daemon von
FreeBSD, akzeptiert ankommende Raw-IP-Pakete, ändert den
Sender der Daten in den eigenen Rechner und leitet diese Pakete
in den ausgehenden IP-Paketstrom um, indem IP-Adresse und Port
des Senders so geändert werden, dass bei einer Antwort der
ursprüngliche Sender wieder bestimmt und die Daten an
ihn weitergeleitet werden können.Internet connection sharingNATDer häufigste Grund für die Verwendung von NAT ist
die gemeinsame Nutzung einer Internetverbindung.EinrichtungWegen der begrenzten Verfügbarkeit von IPv4-Adressen
und der gestiegenen Anzahl von Breitbandverbindungen über
Kabelmodem oder DSL, wird die gemeinsame Nutzung von
Internetverbindungen immer wichtiger. Der &man.natd.8;-Daemon
ermöglicht die Anbindung von mehreren Rechnern an das
Internet unter Nutzung einer gemeinsamen Verbindung und einer
IP-Adresse.Häufig soll ein über Kabelmodem oder DSL und eine
IP-Adresse an das Internet angebundener Rechner mehreren
Rechnern eines lokalen Netzwerks Internetdienste anbieten.Um dies zu ermöglichen, muss der FreeBSD-Rechner als
Gateway fungieren. Dazu sind zwei Netzkarten notwendig. Eine
für die Verbindung zum Internet, die zweite für die
Verbindung mit dem lokalen Netzwerk. Sämtliche Rechner
des lokalen Netzwerks sind über einen Hub oder einen Switch
miteinander verbunden.Es gibt verschiedene Möglichkeiten, ein LAN über
ein &os;-Gateway an das Internet anzubinden. Das folgende
Beispiel beschreibt ein Gateway, das zumindest zwei
Netzwerkkarten enthält. _______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|Network LayoutEine derartige Netzwerkkonfiguration wird vor allem zur
gemeinsamen Nutzung einer Internetverbindung verwendet. Ein
Rechner des lokalen Netzwerks (LAN) ist mit
dem Internet verbunden. Alle anderen Rechner des lokalen
Netzwerks haben nur über diesen
Gateway-Rechner Zugriff auf das Internet.KernelKonfigurationKernelkonfigurationFolgende Optionen müssen in die
Kernelkonfigurationsdatei eingetragen werden:options IPFIREWALL
options IPDIVERTDie folgende Optionen können ebenfalls eingetragen
werden:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSEIn /etc/rc.conf tragen Sie Folgendes
ein:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" Richtet den Rechner als Gateway ein. Die
Ausführung von
sysctl net.inet.ip.forwarding=1
hätte den gleichen Effekt.Aktiviert die Firewallregeln in
/etc/rc.firewall beim
Systemstart.Ein vordefinierter Satz von Firewallregeln, der alle
Pakete durchlässt. Sehen Sie sich
/etc/rc.firewall an, wenn Sie diese
Option verwenden wollen.Die Netzkarte, die Pakete weiterleitet (und mit dem
Internet verbunden ist).Zusätzliche Konfigurationsoptionen, die beim
Systemstart an &man.natd.8; übergeben werden.Durch die Definition dieser Optionen in
/etc/rc.conf wird die Anweisung
natd -interface fxp0 beim Systemstart
ausgeführt. Dies kann aber auch manuell erfolgen.Falls Sie viele Optionen an &man.natd.8; übergeben
müssen, können Sie auch eine Konfigurationsdatei
verwenden. Dazu fügen Sie folgende Zeile in
/etc/rc.conf ein:natd_flags="-f /etc/natd.conf"Die Datei /etc/natd.conf enthält
verschiedene Konfigurationsoptionen, wobei jede Option in einer
Zeile steht. Das Beispiel im nächsten Abschnitt würde
folgende Konfigurationsdatei verwenden:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80Wenn Sie eine Konfigurationsdatei verwenden wollen, sollten
Sie sich die Handbuchseite zu &man.natd.8; durchlesen,
insbesondere den Abschnitt über die Nutzung der Option
.Jedem Rechner und jeder Schnittstelle des lokalen Netzwerks
sollte eine IP-Adresse des im RFC 1918
definierten privaten Adressraums zugewiesen werden. Der
Standardgateway entspricht der internen IP-Adresse des
natd-Rechners.Im Beispiel werden den LAN-Clients A und
B die IP-Adressen
192.168.0.2 und
192.168.0.3 zugewiesen,
während die LAN-Netzkarte des
natd-Rechners die IP-Adresse
192.168.0.1 erhält. Der
natd-Rechner mit der IP-Adresse
192.168.0.1 wird als
Standardgateway für die Clients A und
B gesetzt. Die externe Netzkarte des
natd-Rechners muss für die
korrekte Funktion von &man.natd.8; nicht konfiguriert
werden.Ports umleitenWenn Sie &man.natd.8; verwenden, sind Ihre LAN-Clients von
aussen nicht erreichbar. LAN-Clients können zwar
Verbindungen nach aussen aufbauen, sind aber für
ankommende Verbindungen nicht erreichbar. Wenn Sie
Internetdienste auf einem LAN-Client anbieten wollen, haben Sie
daher ein Problem. Eine einfache Lösung ist die Umleitung
von bestimmten Internetports des
natd-Rechners auf einen LAN-Client.Beispielsweise könnte ein IRC-Server auf Client
A und ein Webserver auf Client
B laufen. Damit diese Konfiguration
funktioniert, müssen Verbindungen, die auf den Ports 6667
(IRC) und 80 (Web) ankommen, auf die entsprechenden Clients
umgeleitet werden.Dazu wird die Option unter
Nutzung folgender Syntax an &man.natd.8; übergeben: -redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]Für unser Beispiel heißt das: -redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80Dadurch werden die entsprechenden
tcp-Ports auf die jeweiligen LAN-Clients
umgeleitet.Mit können auch ganze
Portbereiche statt einzelner Ports umgeleitet werden. So werden
mit tcp 192.168.0.2:2000-3000
2000-3000 alle Verbindungen, die auf den Ports
2000 bis 3000 ankommen, auf die entsprechenden Ports des Clients
A umgeleitet.Diese Optionen können während des Betriebs von
&man.natd.8; oder über die Option
natd_flags="" in
/etc/rc.conf gesetzt werden.Eine ausführliche Konfigurationsanleitung finden Sie
in &man.natd.8;.Adressen umleitenaddress redirectionDie Umleitung von Adressen ist nützlich, wenn mehrere
IP-Adressen verfügbar sind, die aber alle auf einem Rechner
verbleiben sollen. In diesem Fall kann &man.natd.8; jedem
LAN-Client eine eigene externe IP-Adresse zuweisen. Ausgehende
Pakete eines LAN-Clients werden so der entsprechenden
externen IP-Adresse des Clients zugeordnet. Ankommender Verkehr
für diese IP-Adresse wird automatisch an den entsprechenden
LAN-Client weitergeleitet. Diesen Vorgang bezeichnet man
auch als statisches NAT. Dem
natd-Gatewayrechner könnten
beispielsweise die IP-Adressen
128.1.1.1,
128.1.1.2 sowie
128.1.1.3 zugewiesen werden.
128.1.1.1 wird als die externe
IP-Adresse des natd-Gatewayrechners
verwendet, während 128.1.1.2
und 128.1.1.3 an die LAN-Clients
A und B weitergegeben werden.
benutzt folgende
Syntax:-redirect_address localIP publicIPlocalIPDie interne IP-Adresse des LAN-ClientspublicIPDie externe IP-Adresse des LAN-ClientsFür unser Beispiel hieße dies:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3Analog zur Option
können Sie diese Argumente auch in der Option
natd_flags="" in
/etc/rc.conf angeben. Bei der Nutzung
der Adressumleitung ist die Portumleitung überflüssig,
weil alle für eine bestimmte IP-Adresse ankommenden Daten
umgeleitet werden.Die externe IP-Adresse des
natd-Rechners muss aktiv sein und
der externen Netzkarte zugewiesen sein. Weitere Informationen
zu diesem Thema finden Sie in &man.rc.conf.5;.PLIP – Parallel Line IPPLIPParallel Line IPPLIPPLIP ermöglicht TCP/IP-Verbindungen zwischen zwei
Rechnern, die über ihre parallelen Schnittstellen
verbunden sind. Eine solche Verbindung ist nützlich,
wenn zwei Rechner nicht mit Netzkarten ausgestattet sind,
oder wenn eine Installation auf einem Laptop erfolgen soll.
Dieser Abschnitt behandelt folgende Themen:Die Herstellung eines parallelen (Laplink-) KabelsDie Verbindung von zwei Computern über PLIPEin paralleles Kabel herstellenEin paralleles (Laplink-)Kabel können Sie in fast jedem
Computergeschäft kaufen. Falls dies nicht möglich
sein sollte, oder Sie einfach wissen wollen, wie ein solches
Kabel aufgebaut ist, sollten Sie sich die folgende Tabelle
ansehen. Sie beschreibt die Herstellung eines parallelen
Netzwerkkabels aus einem gewöhnlichen parallelen
Druckerkabel.
PLIP einrichtenAls Erstes benötigen Sie ein Laplink-Kabel. Danach
müssen Sie sicherstellen, dass beide Computerkernel den
&man.lpt.4;-Treiber unterstützen:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portDer Parallelport muss Interrupt-gesteuert sein, daher
sollte die Datei /boot/device.hints
zwei Zeilen ähnlich den folgenden enthalten:hint.ppc.0.at="isa"
hint.ppc.0.irq="7"Danach überprüfen Sie, ob die
Kernelkonfigurationsdatei die Zeile
device plip enthält, oder ob das
Kernelmodul plip.ko geladen wurde. In
beiden Fällen sollte die parallele Schnittstelle
von &man.ifconfig.8; angezeigt werden:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Verbinden Sie die parallelen Schnittstellen der beiden
Computer über das (Laplink-)Kabel.Konfigurieren Sie die Netzwerkparameter auf beiden Rechnern
als root. Wenn Sie beispielsweise den Rechner
host1 mit dem Rechner host2
verbinden wollen, gehen Sie folgendermaßen vor: host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2Richten Sie die parallele Schnittstelle von
host1 ein, indem Sie Folgendes eingeben:&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2Danach richten Sie die parallele Schnittstelle von
host2 ein:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Sie sollten nun über eine funktionierende Verbindung
verfügen. Bei Problemen lesen Sie bitte die Hilfeseiten
&man.lp.4; sowie &man.lpt.4;.Zusätzlich sollten beide Rechner in
/etc/hosts eingetragen werden:127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domainUm die Verbindung zu überprüfen, pingen Sie jeden
Rechner vom anderen Rechner aus an. Auf host1
gehen Sie dazu folgendermaßen vor:&prompt.root; ifconfig plip0
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 plip0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von BradDavisErweitert von IPv6 – Internet Protocol Version 6Bei IPv6 (auch als IPng oder
IP next generation
bekannt) handelt es sich um die neueste Version des bekannten
IP-Protokolls (das auch als IPv4 bezeichnet
wird). FreeBSD enthält, genauso wie die anderen frei
erhältlichen BSD-Systeme, die IPv6-Referenzimplementation
von KAME. FreeBSD erfüllt damit bereits
alle für die Nutzung von IPv6 nötigen Voraussetzungen.
Dieser Abschnitt konzentriert sich daher auf die Konfiguration
und den Betrieb von IPv6.Anfang der 90er Jahre wurde man auf den stark steigenden
Verbrauch von IPv4-Adressen aufmerksam. Im Hinblick auf das
Wachstums des Internets gab es zwei Hauptsorgen:Die drohende Knappheit von IPv4-Adressen. Dieses Problem
konnte durch die Einführung von privaten
Adressräumen gemäß RFC1918 (mit Adressen wie
10.0.0.0/8,
172.16.0.0/12, oder
192.168.0.0/16) sowie der
Entwicklung von Network Address
Translation (NAT)
weitestgehend entschärft werden.Die immer größer werdenden Einträge in
Router-Tabellen. Dieses Problem ist auch heute noch
aktuell.IPv6 ist in der Lage, diese, aber auch viele andere Probleme
zu lösen:IPv6 hat einen 128 Bit großen Adressraum. Es sind
also theoretisch
340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
verfügbar. In anderen Worten: Für jeden
Quadratmeter der Erdoberfläche sind etwa
6,67 * 10^27 IPv6-Adressen verfügbar.Router speichern nur noch Netzwerk-Aggregationsadressen in
Ihren Routingtabellen. Dadurch reduziert sich die
durchschnittliche Größe einer Routingtabelle auf
8192 Einträge.Weitere nützliche Eigenschaften von IPv6 sind:Die automatische Konfiguration von Adressen, die im
RFC2462
beschrieben wird.Anycast-Adressen (eine-von-vielen)Verpflichtende Multicast-AdressenDie Unterstützung von IPsec (IP-Security)Eine vereinfachte HeaderstrukturMobile IP-AdressenDie Umwandlung von IPv4- in IPv6-AdressenWeitere Informationsquellen:Beschreibung von IPv6 auf
playground.sun.comKAME.netHintergrundinformationen zu IPv6-AdressenEs gibt verschiedene Arten von IPv6-Adressen: Unicast-,
Anycast- und Multicast-Adressen.Unicast-Adressen sind die herkömlichen Adressen. Ein
Paket, das an eine Unicast-Adresse gesendet wird, kommt nur an
der Schnittstelle an, die dieser Adresse zugeordnet ist.Anycast-Adressen unterscheiden sich in ihrer Syntax nicht
von Unicast-Adressen, sie wählen allerdings aus
mehreren Schnittstellen eine Schnittstelle aus.
Ein für eine Anycast-Adresse
bestimmtes Paket kommt an der nächstgelegenen
(entsprechend der Router-Metrik) Schnittstelle
an. Anycast-Adressen werden nur von Routern verwendet.Multicast-Adressen bestimmen Gruppen, denen mehrere
Schnittstellen angehören. Ein
Paket, das an eine Multicast-Adresse geschickt wird, kommt an
allen Schnittstellen an, die zur Multicast-Gruppe gehören.Die von IPv4 bekannte Broadcast-Adresse
(normalerweise
xxx.xxx.xxx.255) wird bei IPv6
durch Multicast-Adressen verwirklicht.
Reservierte IPv6-AdressenIPv6-AdressePräfixlängeBeschreibungAnmerkungen::128 Bitnicht festgelegtentspricht 0.0.0.0
bei IPv4::1128 BitLoopback-Adresseentspricht 127.0.0.1
bei IPv4::00:xx:xx:xx:xx96 BitEingebettete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Wird auch als IPv4-kompatible IPv6-Adresse
bezeichnet.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Notwendig für Rechner, die IPv6 nicht
unterstützen.fe80:: - feb::10 Bitlink-localEntspricht der Loopback-Adresse bei IPv4fec0:: - fef::10 Bitsite-localff::8 BitMulticast001
(im Dualsystem)3 BitGlobaler UnicastAlle globalen Unicastadressen stammen aus diesem
Pool. Die ersten 3 Bit lauten 001.
IPv6-Adressen verstehenDie kanonische Form von IPv6-Adressen lautet
x:x:x:x:x:x:x:x, jedes
x steht dabei für einen
16-Bit-Hexadezimalwert. Ein Beispiel für eine IPv6-Adresse
wäre etwa
FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.Eine IPv6-Adresse enthält oft Teilzeichenfolgen aus lauter
Nullen. Eine solche Zeichenfolge kann zu ::
verkürzt werden. Bis zu drei führende Nullen eines
Hexquads können ebenfalls weggelassen werden.
fe80::1 entspricht also der Adresse
fe80:0000:0000:0000:0000:0000:0000:0001.
Eine weitere Möglichkeit ist die Darstellung der
letzten 32 Bit in der bekannten (dezimalen) IPv4-Darstellung,
bei der Punkte (.) zur Trennung verwendet werden.
2002::10.0.0.1 ist also nur eine
andere Schreibweise für die (hexadezimale) kanonische Form
2002:0000:0000:0000:0000:0000:0a00:0001,
die wiederum der Adresse
2002::a00:1 entspricht.Sie sollten nun in der Lage sein, die folgende Ausgabe zu
verstehen:&prompt.root; ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activeBei
fe80::200:21ff:fe03:8e1%rl0
handelt es sich um eine automatisch konfigurierte
link-local-Adresse. Sie
wird im Rahmen der automatischen Konfiguration aus der
MAC-Adresse erzeugt.Weitere Informationen zum Aufbau von IPv6-Adressen finden
Sie im
RFC3513.Eine IPv6-Verbindung herstellenEs gibt derzeit vier Möglichkeiten, sich mit anderen
IPv6-Rechnern oder Netzwerken zu verbinden:Fragen Sie Ihren Internetprovider, ob er IPv6
bereits unterstützt.SixXS
bietet weltweit IPv6-Tunnelverbindungen an.Die Verwendung eines 6-nach-4-Tunnels
(RFC3068).Die Verwendung des Ports
/usr/ports/net/freenet6 bei der Einwahl
ins Internet.DNS in der IPv6-WeltUrsprünglich gab es zwei verschiedene DNS-Einträge
für IPv6. Da A6-Einträge von der IETF für
obsolet erklärt wurden, sind AAAA-Einträge nun
Standard.Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
indem Sie den EintragMYHOSTNAME AAAA MYIPv6ADDRin Ihre primäre DNS-Zonendatei einfügen. Falls
Sie nicht für Ihre DNS-Zone
verantwortlich sind, bitten Sie den dafür
Zuständigen, diese Änderung durchzuführen.
Die aktuellen Versionen von bind
(Version 8.3 oder 9) sowie
dns/djbdns (bei Verwendung
des IPv6-Patches) unterstützen AAAA-Einträge./etc/rc.conf für die Nutzung von
IPv6 anpassenEinen Client unter IPv6 einrichtenDieser Abschnitt beschreibt die Konfiguration eines
Rechners, der in Ihrem LAN als Client, aber nicht als Router
verwendet wird. Um die Schnittstelle während des
Systemstarts mit &man.rtsol.8; automatisch einzurichten,
fügen Sie folgende Zeile in
/etc/rc.conf ein:ipv6_enable="YES"Durch die folgende Zeile weisen Sie Ihrer Schnittstelle
fxp0 die statische IP-Adresse 2001:471:1f11:251:290:27ff:fee0:2093
zu:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Um 2001:471:1f11:251::1
als Standardrouter festzulegen, fügen Sie folgende Zeile
in /etc/rc.conf ein:ipv6_defaultrouter="2001:471:1f11:251::1"Gateways und Router unter IPv6 einrichtenDieser Abschnitt beschreibt, wie Sie Ihren Rechner mit
Hilfe der von Ihrem Tunnel-Anbieter erhaltenen
Anweisungen dauerhaft für die Nutzung von IPv6
einrichten. Um den Tunnel beim Systemstart
wiederherzustellen, passen Sie
/etc/rc.conf wie folgt an:Listen Sie die einzurichtenden Tunnelschnittstellen
(hier gif0) auf:gif_interfaces="gif0"Um den lokalen Endpunkt
MY_IPv4_ADDR über diese
Schnittstelle mit dem entfernten Endpunkt
REMOTE_IPv4_ADDR zu
verbinden, verwenden Sie folgende Zeile:gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Um die Ihnen zugewiesene IPv6-Adresse als Endpunkt Ihres
IPv6-Tunnels zu verwenden, fügen Sie folgende Zeile
ein:ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Nun müssen Sie nur noch die IPv6-Standardroute
angeben. Diese legt das andere Ende des IPv6-Tunnels
fest.ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Einen IPv6-Tunnel einrichtenWenn Ihr Server IPv6-Verkehr zwischen Ihrem Netzwerk und
der Außenwelt routen muss, benötigen Sie
zusätzlich die folgenden Zeilen in Ihrer
/etc/rc.conf:ipv6_gateway_enable="YES"Bekanntmachung von Routen und automatische
RechnerkonfigurationDieser Abschnitt beschreibt die Einrichtung von
&man.rtadvd.8;, das Sie bei der Bekanntmachung der
IPv6-Standardroute unterstützt.Um &man.rtadvd.8; zu aktivieren, fügen Sie folgende
Zeile in /etc/rc.conf ein:rtadvd_enable="YES"Es ist wichtig, die Schnittstelle anzugeben, über die
IPv6-Routen bekanntgemacht werden sollen. Soll &man.rtadvd.8;
fxp0 verwenden, ist folgender Eintrag
nötig:rtadvd_interfaces="fxp0"Danach erzeugen Sie die Konfigurationsdatei
/etc/rtadvd.conf. Dazu ein Beispiel:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Ersetzen Sie dabei fxp0 durch die
zu verwendende Schnittstelle.Anschließend ersetzen Sie
2001:471:1f11:246:: durch das
Präfix der Ihnen zugewiesenen Verbindung.Wenn Sie eine /64-Netzmaske
verwenden, müssen Sie keine weiteren Anpassungen vornehmen.
Anderenfalls müssen Sie prefixlen#
auf den korrekten Wert setzen.HartiBrandtBeigetragen von ATM - Asynchronous Transfer ModeClassical IP over ATM
als PVC-Verbindung einrichtenClassical IP over ATM
(CLIP) ist die einfachste Möglichkeit,
um IP-Verkehr über ATM (Asynchronous
Transfer Mode-Verbindungen zu übertragen.
CLIP kann sowohl mit geschalteten Verbindungen (SVCs) als auch
mit permanenten Verbindungen (PVCs) verwendet werden. Dieser
Abschnitt beschreibt die Einrichtung eines PVC-basierten
Netzwerks.Ein vollständig vermaschtes Netzwerk aufbauenBei einem vollständig vermaschten
(fully meshed) Netzwerk ist
jeder Rechner über eine dezidierte Verbindung mit jedem
anderen Rechner des Netzwerks verbunden. Die Konfiguration
ist - vor allem für kleinere Netzwerke - relativ einfach.
Unser Beispielnetzwerk besteht aus vier Rechnern, die jeweils
über eine
ATM-Adapterkarte
mit dem
ATM-Netzwerk
verbunden sind. Als ersten Konfigurationsschritt planen wir
die Vergabe von IP-Adressen sowie die anzulegenden
ATM-Verbindungen:
RechnerIP-AdressehostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Um ein vollständiges Netz aufzubauen, benötigen
wir für jedes Rechnerpaar eine eigene ATM-Verbindung:RechnerpaarVPI.VCI-PaarhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105Die Werte VPI und VCI an den Verbindungsenden können
natürlich unterschiedlich sein. Wir nehmen hier aber an,
dass sie gleich sind. Nun müssen wir die
ATM-Schnittstellen auf jedem Rechner einrichten:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upDabei setzen wir voraus, dass
hatm0 auf allen Rechnern die
ATM-Schnittstelle darstellt. Danach werden, beginnend mit
hostA, die PVCs auf den einzelnen Rechnern
eingerichtet (Wir nehmen an, dass die PVCs auf den
ATM-Switches bereits eingerichet sind. Lesen Sie die
entsprechenden Handbücher, wenn Sie einen Switch
einrichten müssen.):hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrStatt UBR können auch andere
traffic contracts verwendet
werden. Voraussetzung ist allerdings, dass diese von Ihrem
ATM-Adapter unterstützt werden. Ist dies der Fall,
folgen auf den Namen des
traffic contracts die
entsprechenden Konfigurationsparameter. Weitere Informationen
zur Konfiguration von ATM-Adapterkarten erhalten Sie über
den Befehl&prompt.root; atmconfig help natm addoder durch das Lesen von &man.atmconfig.8;.Die Konfiguration von ATM-Adaptern kann auch über die
Datei /etc/rc.conf erfolgen. Für
hostA sähe die Konfiguration so
aus:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"Mit dem folgenden Befehl lässt sich der derzeitige
Status aller CLIP-Routen anzeigen:hostA&prompt.root; atmconfig natm showTomRhodesBeigetragen von CARP - Common Access Redundancy ProtocolCARPCommon Access Redundancy Protocol (CARP)Das Common Access Redundancy
Protocol (CARP) erlaubt es,
mehreren Rechnern die gleiche IP-Adresse
zuzuweisen. Durch ein solches Vorgehen läßt sich
beispielsweise die Verfügbarkeit bestimmter Dienste
verbessern oder die Last zwischen einzelnen Systemen besser
verteilen. Den auf diese Art und Weise konfigurierten Systemen
kann zusätzlich eine eigene (im Netzwerk eindeutige)
IP-Adresse zugewiesen werden (wie dies auch
im folgenden Beispiel erfolgt).Um CARP zu aktivieren, müssen Sie die
&os;-Kernelkonfigurationsdatei um die folgende Option erweitern
und danach den &os;-Kernel neu bauen:device carpDanach ist CARP auf Ihrem System
verfügbar und kann über verschiedene
sysctl-Optionen (OIDs)
gesteuert werden.OIDBeschreibungnet.inet.carp.allowAkzeptiert ankommende CARP-Pakete.
In der Voreinstellung aktiviert.net.inet.carp.preemptDiese Option deaktiviert alle
CARP-Geräte, sobald eines von
ihnen ausfällt. In der Voreinstellung
deaktiviert.net.inet.carp.logHat diese Variable den Wert 0, wird
kein Protokoll generiert, während mit dem Wert
1 nur inkorrekte
CARP-Pakete protokolliert werden. Hat
die Variable einen Wert größer
1, werden nur die Statuswechsel von
CARP-Geräten protokolliert. In der
Voreinstellung hat diese Variable den Wert
1.net.inet.carp.arpbalanceGleicht die Netzwerklast im lokalen Netzwerk durch
den Einsatz von ARP aus. In der
Voreinstellung deaktiviert.net.inet.carp.suppress_preemptEine nur lesbare OID, die
den Preemption Suppression-Status
anzeigt. Preemption kann verhindert werden. Dies auch dann,
wenn ein Gerät ausfällt. Hat die Variable
den Wert 0, bedeutet dies, dass Preemption
nicht verhindert wird. Tritt ein Problem auf, wird der Wert
dieser OID um 1
erhöht.Das CARP-Gerät selbst erzeugen Sie mit dem
ifconfig-Befehl:&prompt.root; ifconfig carp0 createDamit Sie dieses Protokoll in Ihrem Netzwerk einsetzen
können, muss jede Netzkarte eine eindeutige
Identifikationsnummer, die sogenannte VHID
(Virtual Host Identification),
besitzen, da sich ansonsten die Rechner Ihres Netzwerks nicht
voneinander unterscheiden lassen.Die Serververfügbarkeit mit CARP
verbessernWie bereits weiter oben erwähnt wurde, können Sie
CARP dazu verwenden, die Verfübarkeit
Ihrer Server zu verbessern. Im folgenden Bespiel werden
insgesamt drei Server (mit jeweils eigener, eindeutiger
IP-Adresse), die alle den gleichen Inhalt
anbieten, in einer Round Robin
DNS-Konfiguration eingerichtet.
Der Backup-Server verfügt über zwei
CARP-Schnittstellen (für die beiden
IP-Adressen der Content-Server). Tritt bei
einem Content-Server ein Problem auf, übernimmt der
Backup-Server die IP-Adresse des
ausgefallenen Servers. Dadurch sollte die Auswahl eines Servers
vom Anwender nicht bemerkt werden. Der Backup-Server muss
identisch konfiguriert sein und die gleichen Daten und Dienste
anbieten wie das System, das er ersetzen soll.Die beiden Content-Server werden (abgesehen von ihren
jeweiligen Hostnamen und VHIDs) identisch
konfiguriert und heißen in unserem Beispiel
hosta.example.org beziehungsweise
hostb.example.org. Damit Sie
CARP einsetzen können, müssen
Sie als Erstes die Datei rc.conf auf
beiden Systemen anpassen. Für das System
hosta.example.org nehmen Sie dazu folgende
Zeilen in rc.conf auf:hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"Für das System hostb.example.org
benötigen Sie zusätzlich folgende Zeilen in
rc.conf:hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"Achten Sie unbedingt darauf, dass die durch die Option
an ifconfig
übergebenen Passwörter auf beiden Systemen
identisch sind, da
carp-Geräte nur mit Systemen
kommunizieren können, die über ein korrektes Passwort
verfügen. Beachten Sie weiters, dass sich die
VHIDs der beiden Systeme unterscheiden
müssen.Nun richten Sie noch das dritte System,
provider.example.org, ein, das aktiviert
wird, wenn eines der beiden zuvor konfigurierten Systeme
ausfällt. Dieses dritte System benötigt zwei
carp-Geräte, um bei Bedarf
eines der beiden anderen
Systeme ersetzen zu können. Dazu konfigurieren Sie
rc.conf analog zur folgenden
Beispielkonfiguration:hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"Durch die beiden carp-Geräte
ist es provider.example.org möglich,
festzustellen, ob eines der beiden anderen Systeme nicht mehr
reagiert. In diesem Fall übernimmt
provider.example.org die
IP-Adresse des betroffenen Systems.Ist im installierten &os;-Kernel die Option
"preemption" aktiviert, kann es sein, dass
provider.example.org die übernommene
IP-Adresse nicht mehr an den
Content-Server zurückgibt (wenn dieser wieder
funktioniert). In diesem Fall muss ein Administrator die
entsprechende Schnittstelle dazu zwingen, dies zu tun.
Dazu gibt er auf dem Rechner
provider.example.org den folgenden
Befehl ein:&prompt.root; ifconfig carp0 down && ifconfig carp0 upDieser Befehl muss auf das
carp-Gerät ausgeführt
werden, das dem betroffenen System zugeordnet ist.Damit ist CARP vollständig
konfiguriert und der Testbetrieb kann beginnen. Zuvor
müssen Sie allerdings noch alle Systeme neu starten
(beziehungsweise die Netzwerkkonfiguration auf allen
Systemen neu einlesen), um die Einstelllungen zu
übernehmen.Für weitere Informtionen lesen Sie bitte die Manualpage
&man.carp.4;.
diff --git a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
index 9aaeef3607..c2fce95629 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,4630 +1,4632 @@
BerndWarkenÜbersetzt von MartinHeinenSpeichermedienÜbersichtDieses Kapitel behandelt die Benutzung von Laufwerken unter
FreeBSD. Laufwerke können speichergestützte Laufwerke,
Netzwerklaufwerke oder normale SCSI/IDE-Geräte sein.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Die Begriffe, die FreeBSD verwendet, um die
Organisation der Daten auf einem physikalischen Laufwerk
zu beschreiben (Partitionen und Slices).Wie Sie ein weiteres Laufwerk zu Ihrem System
hinzufügen.Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks,
eingerichtet werden.Wie Sie mit Quotas die Benutzung von Laufwerken
einschränken können.Wie Sie Partitionen verschlüsseln, um Ihre Daten
zu schützen.Wie unter FreeBSD CDs und DVDs gebrannt werden.Sie werden die Speichermedien, die Sie für
Backups einsetzen können, kennen.Wie Sie die unter FreeBSD erhältlichen Backup
Programme benutzen.Wie Sie ein Backup mit Disketten erstellen.Was Dateisystem-Schnappschüsse sind und wie sie
eingesetzt werden.Bevor Sie dieses Kapitel lesen,sollten Sie einen einen &os;-Kernel installieren
können ().GerätenamenDie folgende Tabelle zeigt die von FreeBSD unterstützten
Speichergeräte und deren Gerätenamen.
Namenskonventionen von physikalischen LaufwerkenLaufwerkstypGerätenameIDE-FestplattenadIDE-CD-ROM LaufwerkeacdSCSI-Festplatten und USB-SpeichermediendaSCSI-CD-ROM LaufwerkecdVerschiedene proprietäre CD-ROM-Laufwerkemcd Mitsumi CD-ROM und
scd Sony CD-ROMDiskettenlaufwerkefdSCSI-BandlaufwerkesaIDE-BandlaufwerkeastFlash-Laufwerkefla für &diskonchip;
Flash-DeviceRAID-Laufwerkeaacd für &adaptec; AdvancedRAID,
mlxd und mlyd
für &mylex;,
amrd für AMI &megaraid;,
idad für Compaq Smart RAID,
twed für &tm.3ware; RAID.
DavidO'BrianIm Original von Hinzufügen von LaufwerkenLaufwerkehinzufügenAngenommen, Sie wollen ein neues SCSI-Laufwerk zu einer Maschine
hinzufügen, die momentan nur ein Laufwerk hat. Dazu schalten
Sie zuerst den Rechner aus und installieren das Laufwerk entsprechend
der Anleitungen Ihres Rechners, Ihres Controllers und Laufwerk
Herstellers. Den genauen Ablauf können wir wegen der
großen Abweichungen leider nicht beschreiben.Nachdem Sie das Laufwerk installiert haben, melden Sie sich als
Benutzer root an und kontrollieren Sie
/var/run/dmesg.boot, um sicherzustellen,
dass das neue Laufwerk gefunden wurde. Das neue Laufwerk
wird, um das Beispiel fortzuführen, da1
heißen und soll unter /1 angehangen
werden. Fügen Sie eine IDE-Platte hinzu, wird diese den
Namen ad1 erhalten.sPartitionenSlicesfdiskDa FreeBSD auf IBM-PC kompatiblen Rechnern läuft, muss
es die PC BIOS-Partitionen, die verschieden von den traditionellen
BSD-Partitionen sind, berücksichtigen. Eine PC Platte kann
bis zu vier BIOS-Partitionen enthalten. Wenn die Platte
ausschließlich für FreeBSD verwendet wird, können
Sie den dedicated Modus benutzen, ansonsten
muss FreeBSD in eine der BIOS-Partitionen installiert werden.
In FreeBSD heißen die PC BIOS-Partitionen
Slices, um sie nicht mit den traditionellen
BSD-Partitionen zu verwechseln. Sie können auch Slices auf
einer Platte verwenden, die ausschließlich von FreeBSD
benutzt wird, sich aber in einem Rechner befindet, der noch ein
anderes Betriebssystem installiert hat. Dadurch stellen Sie sicher,
dass Sie fdisk des anderen Betriebssystems noch
benutzen können.Im Fall von Slices wird die Platte als
/dev/da1s1e hinzugefügt. Das heißt:
SCSI-Platte, Einheit 1 (die zweite SCSI-Platte), Slice 1
(PC BIOS-Partition 1) und die e BSD-Partition.
Wird die Platte ausschließlich für FreeBSD verwendet
(dangerously dedicated), wird sie einfach als
/dev/da1e hinzugefügt.Da &man.bsdlabel.8; zum Speichern von Sektoren 32-Bit
Integer verwendet, ist das Werkzeug in den meisten Fällen
auf 2^32-1 Sektoren pro Laufwerk oder 2 TB
beschränkt. In &man.fdisk.8; darf der Startsektor
nicht größer als 2^32-1 sein und Partitionen
sind auf eine Länge von 2^32-1 beschränkt.
In den meisten Fällen beschränkt dies die
Größe einer Partition auf 2 TB
und die maximale Größe eines Laufwerks
auf 4 TB. Das &man.sunlabel.8;-Format ist
mit 2^32-1 Sektoren pro Partition und 8 Partitionen
auf 16 TB beschränkt. Mit größeren
Laufwerken können &man.gpt.8;-Partitionen benutzt
werden.Verwenden von &man.sysinstall.8;sysinstallhinzufügen von LaufwerkensuDas sysinstall MenüUm ein Laufwerk zu partitionieren und zu labeln, kann das
menügestützte sysinstall
benutzt werden. Dazu melden Sie sich als root
an oder benutzen su, um
root zu werden. Starten Sie
sysinstall und wählen das
Configure Menü, wählen Sie dort
den Punkt Fdisk aus.Partitionieren mit fdiskInnerhalb von fdisk geben Sie
- A ein, um die ganze Platte für
+ A ein, um die ganze Platte für
FreeBSD zu benutzen. Beantworten Sie die Frage remain
cooperative with any future possible operating systems mit
- YES. W schreibt die
+ YES. W schreibt die
Änderung auf die Platte, danach können Sie
- fdisk mit q
+ fdisk mit Q
verlassen. Da Sie eine Platte zu einem schon laufenden System
hinzugefügt haben, beantworten Sie die Frage nach dem
Master Boot Record mit None.Disk-Label-EditorBSD PartitionenAls nächstes müssen Sie
sysinstall verlassen und es erneut
starten. Folgen Sie dazu bitte den Anweisungen von oben, aber
wählen Sie dieses Mal die Option Label,
um in den Disk Label Editor zu gelangen.
Hier werden die traditionellen BSD-Partitionen erstellt.
Ein Laufwerk kann acht Partitionen, die mit den Buchstaben
a-h gekennzeichnet werden,
besitzen. Einige Partitionen sind für spezielle Zwecke
reserviert. Die a Partition ist für die
Root-Partition (/) reserviert. Deshalb
sollte nur das Laufwerk, von dem gebootet wird, eine
a Partition besitzen. Die b
Partition wird für Swap-Partitionen benutzt, wobei Sie
diese auf mehreren Platten benutzen dürfen.
Im dangerously dedicated Modus spricht
die c Partition die gesamte Platte an,
werden Slices verwendet, wird damit die ganze Slice angesprochen.
Die anderen Partitionen sind für allgemeine Zwecke
verwendbar.Der Label Editor von sysinstall
bevorzugt die e
Partition für Partitionen, die weder Root-Partitionen noch
Swap-Partitionen sind. Im Label
Editor können Sie ein einzelnes Dateisystem
- mit C erstellen. Wählen Sie
+ mit C erstellen. Wählen Sie
FS, wenn Sie gefragt werden, ob Sie ein
FS (Dateisystem) oder Swap erstellen wollen, und geben Sie einen
Mountpoint z.B. /mnt an. Wenn Sie nach einer
FreeBSD-Installation ein Dateisystem mit
sysinstall erzeugen,
so werden die Einträge in /etc/fstab
nicht erzeugt, so dass die Angabe des Mountpoints nicht
wichtig ist.Sie können nun das Label auf das Laufwerk schreiben und
- das Dateisystem erstellen, indem Sie W
+ das Dateisystem erstellen, indem Sie W
drücken. Ignorieren Sie die Meldung von
sysinstall, dass die neue Partition
nicht angehangen werden konnte, und verlassen Sie den Label Editor
sowie sysinstall.EndeIm letzten Schritt fügen Sie noch in
/etc/fstab den Eintrag für das neue
Laufwerk ein.Die KommandozeileAnlegen von SlicesMit der folgenden Vorgehensweise wird eine Platte mit
anderen Betriebssystemen, die vielleicht auf Ihrem Rechner
installiert sind, zusammenarbeiten und nicht das
fdisk Programm anderer Betriebssysteme
stören. Bitte benutzen
Sie den dedicated Modus nur dann, wenn
Sie dazu einen guten Grund haben!&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Initialisieren der neuen Platte
&prompt.root; bsdlabel -B -w da1s1 auto #Labeln.
&prompt.root; bsdlabel -e da1s1 # Editieren des Disklabels und Hinzufügen von Partitionen
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Wiederholen Sie diesen Schritt für jede Partition
&prompt.root; mount /dev/da1s1e /1 # Anhängen der Partitionen
&prompt.root; vi /etc/fstab # Ändern Sie /etc/fstab entsprechendWenn Sie ein IDE-Laufwerk besitzen, ändern Sie
da in ad.DedicatedOS/2Wenn das neue Laufwerk nicht von anderen Betriebssystemen
benutzt werden soll, können Sie es im
dedicated Modus betreiben. Beachten Sie bitte,
dass Microsoft-Betriebssysteme mit diesem Modus eventuell nicht
zurechtkommen, aber es entsteht kein Schaden am Laufwerk. Im
Gegensatz dazu wird IBMs &os2; versuchen, jede ihm nicht bekannte
Partition zu reparieren.&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; bsdlabel -Bw da1 auto
&prompt.root; bsdlabel -e da1 # Erstellen der `e' Partition
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Eine alternative Methode:&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1RAIDSoftware-RAIDChristopherShumwayOriginal von JimBrownÜberarbeitet von Concatenated-Disk (CCD) konfigurierenRAIDSoftwareRAIDCCDDie wichtigsten Faktoren bei der Auswahl von Massenspeichern
sind Geschwindigkeit, Zuverlässigkeit und Preis.
Selten findet sich eine ausgewogene Mischung aller drei Faktoren.
Schnelle und zuverlässige Massenspeicher sind für
gewöhnlich teuer. Um die Kosten zu senken, muss
entweder an der Geschwindigkeit oder an der Zuverlässigkeit
gespart werden.Das unten beschriebene System sollte vor allem
preiswert sein. Der nächst wichtige Faktor war
die Geschwindigkeit gefolgt von der Zuverlässigkeit.
Die Geschwindigkeit war nicht so wichtig, da über
das Netzwerk auf das System zugegriffen wird. Da alle
Daten schon auf CD-Rs gesichert sind, war die
Zuverlässigkeit, obwohl wichtig, ebenfalls nicht
von entscheidender Bedeutung.Die Bewertung der einzelnen Faktoren ist der erste
Schritt bei der Auswahl von Massenspeichern. Wenn Sie
vor allem ein schnelles und zuverlässiges Medium
benötigen und der Preis nicht wichtig ist, werden
Sie ein anderes System als das hier beschriebene
zusammenstellen.Installation der HardwareNeben der IDE-Systemplatte besteht das System
aus drei Western Digital IDE-Festplatten mit
5400 RPM und einer Kapazität von je
30 GB. Insgesamt stehen also 90 GB
Speicherplatz zur Verfügung. Im Idealfall sollte
jede Festplatte an einen eigenen Controller angeschlossen
werden. Um Kosten zu sparen, wurde bei diesem System
darauf verzichtet und an jeden IDE-Controller eine
Master- und eine Slave-Platte angeschlossen.Beim Reboot wurde das BIOS so konfiguriert, dass es
die angeschlossenen Platten automatisch erkennt und FreeBSD
erkannte die Platten ebenfalls:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Wenn FreeBSD die Platten nicht erkennt,
überprüfen Sie, ob die Jumper korrekt
konfiguriert sind. Die meisten IDE-Festplatten
verfügen über einen
Cable Select-Jumper. Die Master-
und Slave-Platten werden mit einem anderen
Jumper konfiguriert. Bestimmen Sie den richtigen
Jumper mithilfe der Dokumentation Ihrer
Festplatte.Als nächstes sollten Sie überlegen,
auf welche Art der Speicher zur Verfügung
gestellt werden soll. Schauen Sie sich dazu
&man.vinum.8; ()
und &man.ccd.4; an. Im hier beschriebenen
System wird &man.ccd.4; eingesetzt.Konfiguration von CCDMit &man.ccd.4; können mehrere
gleiche Platten zu einem logischen Dateisystem
zusammengefasst werden. Um &man.ccd.4;
zu benutzen, muss der Kernel mit der entsprechenden
Unterstützung übersetzt werden.
Ergänzen Sie die Kernelkonfiguration um die
nachstehende Zeile. Anschließend müssen
Sie den Kernel neu übersetzen und installieren.pseudo-device ccdAlternativ kann &man.ccd.4; auch als
Kernelmodul geladen werden.Um &man.ccd.4; zu benutzen, müssen
die Laufwerke zuerst mit einem Label versehen werden.
Die Label werden mit &man.bsdlabel.8; erstellt:bsdlabel -w ad1 auto
bsdlabel -w ad2 auto
bsdlabel -w ad3 autoDamit wurden die Label ad1c,
ad2c und ad3c
erstellt, die jeweils das gesamte Laufwerk umfassen.Im nächsten Schritt muss der Typ des Labels
geändert werden. Die Labels können Sie
mit &man.bsdlabel.8; editieren:bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -e ad3Für jedes Label startet dies den durch
EDITOR gegebenen Editor, typischerweise
&man.vi.1;.Ein unverändertes Label sieht zum Beispiel
wie folgt aus:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Erstellen Sie eine e-Partition
für &man.ccd.4;. Dazu können Sie normalerweise
die Zeile der c-Partition kopieren,
allerdings muss auf
4.2BSD gesetzt werden.
Das Ergebnis sollte wie folgt aussehen:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Erstellen des DateisystemsNachdem alle Platten ein Label haben, kann das
&man.ccd.4;-RAID aufgebaut werden. Dies geschieht
mit &man.ccdconfig.8;:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eDie folgende Aufstellung erklärt die
verwendeten Kommandozeilenargumente:Das erste Argument gibt das zu konfigurierende
Gerät, hier /dev/ccd0c,
an. Die Angabe von /dev/ ist
dabei optional.Der Interleave für das Dateisystem. Der
Interleave definiert die Größe eines
Streifens in Blöcken, die normal 512 Bytes
groß sind. Ein Interleave von 32 ist
demnach 16384 Bytes groß.Weitere Argumente für &man.ccdconfig.8;.
Wenn Sie spiegeln wollen, können Sie das
hier angeben. Die gezeigte Konfiguration
verwendet keine Spiegel, sodass der Wert
0 angegeben ist.Das letzte Argument gibt die Geräte des
Plattenverbundes an. Benutzen Sie für jedes
Gerät den kompletten Pfadnamen.Nach Abschluß von &man.ccdconfig.8; ist der
Plattenverbund konfiguriert und es können Dateisysteme
auf dem Plattenverbund angelegt werden. Das Anlegen
von Dateisystemen wird in der Hilfeseite &man.newfs.8;
beschrieben. Für das Beispiel genügt
der folgende Befehl:newfs /dev/ccd0cAutomatisierungDamit &man.ccd.4; beim Start automatisch
aktiviert wird, ist die Datei /etc/ccd.conf
mit dem folgenden Kommando zu erstellen:ccdconfig -g > /etc/ccd.confWenn /etc/ccd.conf existiert, wird beim
Reboot ccdconfig -C von
/etc/rc aufgerufen. Damit wird
&man.ccd.4; eingerichtet und die darauf
befindlichen Dateisysteme können angehängt
werden.Wenn Sie in den Single-User Modus booten, müssen Sie
den Verbund erst konfigurieren, bevor Sie darauf befindliche
Dateisysteme anhängen können:ccdconfig -CIn /etc/fstab ist noch ein Eintrag
für das auf dem Verbund befindliche Dateisystem zu
erstellen, damit dieses beim Start des Systems immer
angehängt wird:/dev/ccd0c /media ufs rw 2 2Der Vinum-Volume-ManagerRAIDSoftwareRAIDVinumDer Vinum Volume Manager ist ein Block-Gerätetreiber,
der virtuelle Platten zur Verfügung stellt. Er trennt die
Verbindung zwischen der Festplatte und dem zugehörigen
Block-Gerät auf. Im Gegensatz zur konventionellen
Aufteilung einer Platte in Slices lassen sich dadurch Daten
flexibler, leistungsfähiger und zuverlässiger verwalten.
&man.vinum.8; stellt RAID-0, RAID-1 und RAID-5 sowohl einzeln wie
auch in Kombination zur Verfügung.Mehr Informationen über &man.vinum.8; erhalten Sie in
.Hardware-RAIDRAIDHardwareFreeBSD unterstützt eine Reihe von
RAID-Controllern. Diese Geräte
verwalten einen Plattenverbund; zusätzliche Software
wird nicht benötigt.Der Controller steuert mithilfe eines
BIOS auf der Karte die Plattenoperationen.
Wie ein RAID System eingerichtet wird,
sei kurz am Beispiel des Promise IDE
RAID-Controllers gezeigt. Nachdem
die Karte eingebaut ist und der Rechner neu gestartet wurde,
erscheint eine Eingabeaufforderung. Wenn Sie den Anweisungen
auf dem Bildschirm folgen, gelangen Sie in eine Maske, in der
Sie mit den vorhandenen Festplatten ein
RAID-System aufbauen können.
FreeBSD behandelt das RAID-System wie
eine einzelne Festplatte.Wiederherstellen eines ATA-RAID-1 VerbundsMit FreeBSD können Sie eine ausgefallene Platte in
einem RAID-Verbund während des Betriebs auswechseln,
vorausgesetzt Sie bemerken den Ausfall vor einem Neustart.Einen Ausfall erkennen Sie, wenn in der Datei
/var/log/messages oder in der
Ausgabe von &man.dmesg.8; Meldungen wie die folgenden
auftauchen:ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lostÜberprüfen Sie den RAID-Verbund mit
&man.atacontrol.8;:&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDDamit Sie die Platte ausbauen können, muss zuerst
der ATA-Channel der ausgefallenen Platte aus dem Verbund entfernt
werden:&prompt.root; atacontrol detach ata3Ersetzen Sie dann die Platte.Nun aktivieren Sie den ATA-Channel wieder:&prompt.root; atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentNehmen Sie die neue Platte in den Verbund auf:&prompt.root; atacontrol addspare ar0 ad6Stellen Sie die Organisation des Verbunds wieder her:&prompt.root; atacontrol rebuild ar0Sie können den Fortschritt des Prozesses durch
folgende Befehle kontrollieren:&prompt.root; dmesg | tail -10
[output removed]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedWarten Sie bis die Wiederherstellung beendet ist.MarcFonvieilleBeigetragen von USB SpeichermedienUSBSpeichermedienDer Universal Serial Bus (USB) wird heutzutage von
vielen externen Speichern benutzt: Festplatten,
USB-Thumbdrives oder CD-Brennern, die alle von
&os; unterstützt werden.USB-KonfigurationUSB-Massenspeicher werden vom Treiber &man.umass.4;
betrieben. Wenn Sie den GENERIC-Kernel
benutzen, brauchen Sie keine Anpassungen vorzunehmen.
Benutzen Sie einen angepassten Kernel, müssen die
nachstehenden Zeilen in der Kernelkonfigurationsdatei
enthalten sein:device scbus
device da
device pass
device uhci
device ohci
device usb
device umassDer Treiber &man.umass.4; greift über das
SCSI-Subsystem auf die USB-Geräte zu. Ihre
USB-Geräte werden daher vom System als SCSI-Geräte
erkannt. Abhängig vom Chipsatz Ihrer Systemplatine
benötigen Sie in der Kernelkonfiguration entweder
die Option device uhci oder die
Option device ohci. Die
Kernelkonfiguration kann allerdings auch beide Optionen
enthalten. Vergessen Sie bitte nicht, einen neuen
Kernel zu bauen und zu installieren, wenn Sie die
Kernelkonfiguration verändert haben.Wenn es sich bei Ihrem USB-Gerät um einen
CD-R- oder DVD-Brenner handelt, müssen Sie den
Treiber &man.cd.4; für SCSI-CD-ROMs in die
Kernelkonfiguration aufnehmen:device cdDa der Brenner als SCSI-Laufwerk erkannt wird,
sollten Sie den Treiber &man.atapicam.4; nicht
benutzen.USB 2.0-Controller werden von &os;
unterstützt, wenn Sie die folgende Zeile in Ihre
Kernelkonfigurationsdatei aufnehmen:device ehciDie Treiber &man.uhci.4; und &man.ohci.4; werden
immer noch für USB 1.X benötigt.Die USB-Konfiguration testenSie können das USB-Gerät nun testen.
Schließen Sie das Gerät an und untersuchen
Sie die Systemmeldungen (&man.dmesg.8;), Sie sehen
Ausgaben wie die folgende:umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)Die Ausgaben, wie das erkannte Gerät oder
der Gerätename (da0)
hängen natürlich von Ihrer Konfiguration ab.Da ein USB-Gerät als SCSI-Gerät erkannt
wird, können Sie USB-Massenspeicher mit dem
Befehl camcontrol anzeigen:&prompt.root; camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)Wenn auf dem Laufwerk ein Dateisystem eingerichtet
ist, sollten Sie das Dateisystem einhängen können.
beschreibt, wie Sie
USB-Laufwerke formatieren und Partitionen einrichten.Damit auch normale Anwender (ohne
root-Rechte) USB-Laufwerke einhängen
können, müssen Sie Ihr System erst entsprechend
konfigurieren. Als erstes müssen Sie sicherstellen, dass
diese Anwender auf die beim Einhängen eines USB-Laufwerks
dynamisch erzeugten Gerätedateien zugreifen dürfen.
Dazu können Sie beispielsweise mit &man.pw.8; alle
potentiellen Benutzer dieser Gerätedateien in die Gruppe
operator aufnehmen. Außerdem
muss sichergestellt werden, dass Mitglieder der Gruppe
operator Schreib- und Lesezugriff
auf diese Gerätedateien haben. Dazu fügen Sie die
folgenden Zeilen in die Konfigurationsdatei
/etc/devfs.rules ein:
- [localrules=1]
+ [localrules=5]
add path 'da*' mode 0660 group operatorVerfügt Ihr System auch über SCSI-Laufwerke,
gibt es eine Besonderheit. Haben Sie beispielsweise
die SCSI-Laufwerke da0 bis
da2 installiert, so sieht die
zweite Zeile wie folgt aus:add path 'da[3-9]*' mode 0660 group operatorDadurch werden die bereits vorhandenen
SCSI-Laufwerke nicht in die Gruppe
operator aufgenommen.Vergessen Sie nicht, die &man.devfs.rules.5;-Regeln
in der Datei /etc/rc.conf zu
aktivieren:devfs_system_ruleset="localrules"Als nächstes müssen Sie Ihre Kernelkonfiguration
anpassen, damit auch normale Benutzer Dateisysteme mounten
dürfen. Dazu fügen Sie am besten folgende Zeile
in die Konfigurationsdatei
/etc/sysctl.conf ein:vfs.usermount=1Damit diese Einstellung wirksam wird, müssen Sie Ihr
System neu starten. Alternativ können Sie diese Variable
auch mit &man.sysctl.8; setzen.Zuletzt müssen Sie noch ein Verzeichnis anlegen, in
das das USB-Laufwerk eingehängt werden soll. Dieses
Verzeichnis muss dem Benutzer gehören, der das
USB-Laufwerk in den Verzeichnisbaum einhängen will.
Dazu legen Sie als root ein
Unterverzeichnis
- /mnt/$USER
- an (wobei Sie $USER
- durch den Login des jeweiligen Benutzers ersetzen):
+ /mnt/username
+ an (wobei Sie username
+ durch den Login des jeweiligen Benutzers sowie
+ usergroup durch die primäre
+ Gruppe des Benutzers ersetzen):
- &prompt.root; mkdir /mnt/$USER
-&prompt.root; chown $USER:$USER /mnt/$USER
+ &prompt.root; mkdir /mnt/username
+ &prompt.root; chown username:usergroup /mnt/usernameWenn Sie nun beispielsweise einen USB-Stick
anschließen, wird automatisch die Gerätedatei
/dev/da0s1 erzeugt. Da derartige
Geräte in der Regel mit dem FAT-Dateisystem
formatiert sind, können Sie sie beispielsweise mit
dem folgenden Befehl in den Verzeichnisbaum
einhängen:
- &prompt.user; mount-t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER
+ &prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/usernameWenn Sie das Gerät entfernen (das Dateisystem
müssen Sie vorher abhängen), sehen Sie
in den Systemmeldungen Einträge wie die folgenden:umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detachedWeiteres zu USBNeben den Abschnitten
Hinzufügen von Laufwerken
und Anhängen und
Abhängen von Dateisystemen lesen Sie bitte
die Hilfeseiten &man.umass.4;, &man.camcontrol.8; und
&man.usbdevs.8;.MikeMeyerBeigesteuert von CDs benutzenCD-ROMbrennenEinführungCDs besitzen einige Eigenschaften, die sie von
konventionellen Laufwerken unterscheiden. Zuerst konnten
sie nicht beschrieben werden. Sie wurden so entworfen, dass
sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen
zwischen den Spuren, gelesen werden können. Sie konnten
früher auch leichter als vergleichbar große Medien zwischen
Systemen bewegt werden.CDs besitzen Spuren, aber damit ist der Teil Daten
gemeint, der ununterbrochen gelesen wird, und nicht eine
physikalische Eigenschaft der CD. Um eine CD mit FreeBSD
zu erstellen, werden die Daten jeder Spur der CD in
Dateien vorbereitet und dann die Spuren auf die CD
geschrieben.ISO 9660DateisystemeISO 9660Das ISO 9660-Dateisystem wurde entworfen, um mit diesen
Unterschieden umzugehen. Leider hat es auch damals übliche
Grenzen für Dateisysteme implementiert. Glücklicherweise
existiert ein Erweiterungsmechanismus, der es korrekt
geschriebenen CDs erlaubt, diese Grenzen zu überschreiten
und dennoch auf Systemen zu funktionieren, die diese
Erweiterungen nicht unterstützen.sysutils/cdrtoolsDer Port sysutils/cdrtools
enthält das Programm &man.mkisofs.8;, das eine Datei
erstellt, die ein ISO 9660-Dateisystem enthält.
Das Programm hat Optionen, um verschiedene Erweiterungen
zu unterstützen, und wird unten beschrieben.CD-BrennerATAPIWelches Tool Sie zum Brennen von CDs benutzen, hängt davon
ab, ob Ihr CD-Brenner ein ATAPI-Gerät ist oder nicht.
Mit ATAPI-CD-Brennern wird
burncd benutzt, das Teil des Basissystems ist.
SCSI- und USB-CD-Brenner werden mit
cdrecord aus sysutils/cdrtools benutzt.
Zusätzlich ist es möglich, über das Modul
ATAPI/CAM SCSI-Werkzeuge wie
cdrecord
auch für ATAPI-Geräte einzusetzen.Wenn Sie eine Brennsoftware mit grafischer
Benutzeroberfläche benötigen, sollten Sie sich
X-CD-Roast oder
K3b näher ansehen. Diese
Werkzeuge können als Paket oder aus den
Ports (sysutils/xcdroast
und sysutils/k3b)
installiert werden. Mit ATAPI-Hardware benötigt
K3b das
ATAPI/CAM-Modul.mkisofsDas Programm &man.mkisofs.8; aus dem Port
sysutils/cdrtools
erstellt ein ISO 9660-Dateisystem,
das ein Abbild eines Verzeichnisbaumes ist.
Die einfachste Anwendung ist wie folgt:&prompt.root; mkisofs -o Imagedatei/path/to/treeDateisystemeISO 9660Dieses Kommando erstellt eine Imagedatei,
die ein ISO 9660-Dateisystem enthält, das eine Kopie des
Baumes unter /path/to/tree ist.
Dabei werden die Dateinamen auf Namen abgebildet, die den
Restriktionen des ISO 9660-Dateisystems entsprechen. Dateien
mit Namen, die im ISO 9660-Dateisystem nicht gültig sind,
bleiben unberücksichtigt.DateisystemeHFSDateisystemeJolietEs einige Optionen, um diese Beschränkungen
zu überwinden. Die unter &unix; Systemen üblichen
Rock-Ridge-Erweiterungen werden durch
aktiviert, aktiviert die von Microsoft
Systemen benutzten Joliet-Erweiterungen und
dient dazu, um das von &macos; benutzte HFS zu erstellen.Für CDs, die nur auf FreeBSD-Systemen verwendet werden
sollen, kann genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen
mit wird ein Abbild des
Dateisystems, ausgehend von dem Startpunkt im FreeBSD-Dateibaum,
erstellt, obwohl dies den ISO 9660 Standard
verletzen kann.CD-ROMbootbare erstellenDie letzte übliche Option ist .
Sie wird benutzt, um den Ort eines Bootimages einer
El Torito bootbaren CD anzugeben. Das Argument
zu dieser Option ist der Pfad zu einem Bootimage ausgehend
von der Wurzel des Baumes, der auf die CD geschrieben werden
soll. In der Voreinstellung erzeugt &man.mkisofs.8; ein
ISO-Image im Diskettenemulations-Modus. Dabei
muss das Image genau 1200, 1440 oder 2880 KB groß
sein. Einige Bootloader, darunter der auf den FreeBSD-Disks
verwendete, kennen keinen Emulationsmodus. Daher sollten Sie
in diesen Fällen die Option
verwenden. Wenn /tmp/myboot ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot befindet, können
Sie ein Abbild eines ISO 9660-Dateisystems in
/tmp/bootable.iso wie folgt
erstellen:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootWenn Sie md in Ihrem
Kernel konfiguriert haben, können Sie danach das Dateisystem
einhängen:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntJetzt können Sie überprüfen, dass
/mnt und /tmp/myboot
identisch sind.Sie können das Verhalten von &man.mkisofs.8;
mit einer Vielzahl von Optionen beeinflussen. Insbesondere
können Sie das ISO 9660-Dateisystem modifizieren und
Joliet- oder HFS-Dateisysteme brennen. Details dazu
entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;.burncdCD-ROMbrennenWenn Sie einen ATAPI-CD-Brenner besitzen, können
Sie burncd benutzen, um ein ISO-Image
auf CD zu brennen. burncd ist Teil
des Basissystems und unter /usr/sbin/burncd
installiert. Da es nicht viele Optionen hat, ist es leicht
zu benutzen:&prompt.root; burncd -f cddevice data imagefile.iso fixateDieses Kommando brennt eine Kopie von
imagefile.iso auf das Gerät
cddevice. In der Grundeinstellung
wird das Gerät /dev/acd0 benutzt.
&man.burncd.8; beschreibt, wie die Schreibgeschwindigkeit
gesetzt wird, die CD ausgeworfen wird und Audiodaten
geschrieben werden.cdrecordWenn Sie keinen ATAPI-CD-Brenner besitzen, benutzen Sie
cdrecord, um CDs zu brennen.
cdrecord ist nicht Bestandteil des Basissystems.
Sie müssen es entweder aus den Ports in
sysutils/cdrtools oder dem
passenden Paket installieren. Änderungen im Basissystem
können Fehler im binären Programm verursachen und
führen möglicherweise dazu, dass Sie einen
Untersetzer brennen. Sie sollten
daher den Port aktualisieren, wenn Sie Ihr System aktualisieren
bzw. wenn Sie
STABLE verfolgen,
den Port aktualisieren, wenn es eine neue Version gibt.Obwohl cdrecord viele Optionen besitzt,
ist die grundlegende Anwendung einfacher als burncd.
Ein ISO 9660-Image erstellen Sie mit:&prompt.root; cdrecord dev=deviceimagefile.isoDer Knackpunkt in der Benutzung von cdrecord
besteht darin, das richtige Argument zu zu
finden. Benutzen Sie dazu den Schalter
von cdrecord, der eine ähnliche Ausgabe
wie die folgende produziert:CD-ROMbrennen&prompt.root; cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Für die aufgeführten Geräte in der Liste
wird das passende Argument zu gegeben.
Benutzen Sie die drei durch Kommas separierten Zahlen, die zu
Ihrem CD-Brenner angegeben sind, als Argument für
. Im Beispiel ist das CDRW-Gerät
1,5,0, so dass die passende Eingabe
dev=1,5,0 wäre.
Einfachere Wege das Argument anzugeben, sind in &man.cdrecord.1;
beschrieben. Dort sollten Sie auch nach
Informationen über Audiospuren, das Einstellen der
Geschwindigkeit und ähnlichem suchen.Kopieren von Audio-CDsUm eine Kopie einer Audio-CD zu erstellen, kopieren Sie die
Stücke der CD in einzelne Dateien und brennen diese Dateien
dann auf eine leere CD. Das genaue Verfahren hängt davon ab,
ob Sie ATAPI- oder SCSI-Laufwerke verwenden.SCSI-LaufwerkeKopieren Sie die Audiodaten mit
cdda2wav:&prompt.user; cdda2wav -v255 -D2,0 -B -OwavDie erzeugten .wav Dateien schreiben
Sie mit cdrecord auf eine leere CD:&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavDas Argument von gibt das verwendete
Gerät an, das Sie, wie in
beschrieben, ermitteln können.ATAPI-LaufwerkeDer ATAPI-CD-Treiber stellt die einzelnen Stücke der
CD über die Dateien
/dev/acddtnn,
zur Verfügung. d bezeichnet
die Laufwerksnummer und nn ist die
Nummer des Stücks. Die Nummer ist immer zweistellig,
das heißt es wird, wenn nötig, eine führende
Null ausgegeben. Die Datei /dev/acd0t01
ist also das erste Stück des ersten CD-Laufwerks.
/dev/acd0t02 ist das zweite Stück
und /dev/acd0t03 das dritte.Überprüfen Sie stets, ob die entsprechenden
Dateien im Verzeichnis /dev auch
angelegt werden. Sind die Einträge nicht vorhanden,
weisen Sie Ihr System an, das Medium erneut zu testen:&prompt.root; dd if=/dev/acd0 of=/dev/null count=1Unter &os; 4.X werden diese Einträge nicht
mit dem Wert Null vordefiniert. Falls die entsprechenden
Einträge unter /dev nicht
vorhanden sind, müssen Sie diese hier von
MAKEDEV anlegen lassen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV acd0t99Die einzelnen Stücke kopieren Sie mit &man.dd.1;. Sie
müssen dazu eine spezielle Blockgröße
angeben:&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Die kopierten Dateien können Sie dann mit
burncd brennen. Auf der Kommandozeile
müssen Sie angeben, dass Sie Audio-Daten brennen
wollen und dass das Medium fixiert werden soll:&prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixateKopieren von Daten-CDsSie können eine Daten-CD in eine Datei kopieren, die einem
Image entspricht, das mit &man.mkisofs.8; erstellt
wurde. Mit Hilfe dieses Images können Sie jede Daten-CD
kopieren. Das folgende Beispiel verwendet
acd0 für das CD-ROM-Gerät. Wenn
Sie ein anderes Laufwerk benutzen, setzen Sie bitte den richtigen
Namen ein.&prompt.root; dd if=/dev/acd0 of=file.iso bs=2048Danach haben Sie ein Image, das Sie wie oben beschrieben, auf
eine CD brennen können.Einhängen von Daten-CDsNachdem Sie eine Daten-CD gebrannt haben, wollen Sie
wahrscheinlich auch die Daten auf der CD lesen. Dazu müssen
Sie die CD in den Dateibaum einhängen. Die Voreinstellung
für den Typ des Dateisystems von &man.mount.8; ist
UFS. Das System wird die Fehlermeldung
Incorrect super block ausgeben, wenn Sie
versuchen, die CD mit dem folgenden Kommando
einzuhängen:&prompt.root; mount /dev/cd0 /mntAuf der CD befindet sich ja kein UFS
Dateisystem, so dass der Versuch, die CD einzuhängen
fehlschlägt. Sie müssen &man.mount.8; sagen, dass
es ein Dateisystem vom Typ ISO9660 verwenden
soll. Dies erreichen Sie durch die Angabe von auf der Kommandozeile. Wenn Sie also die CD-ROM
/dev/cd0 in /mnt
einhängen wollen, führen Sie folgenden Befehl aus:&prompt.root; mount -t cd9660 /dev/cd0c /mntAbhängig vom verwendeten CD-ROM kann der Gerätename
von dem im Beispiel (/dev/cd0)
abweichen. Die Angabe von führt
&man.mount.cd9660.8; aus, so dass das Beispiel verkürzt
werden kann:&prompt.root; mount_cd9660 /dev/cd0 /mntAuf diese Weise können Sie
Daten-CDs von jedem Hersteller verwenden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene ISO9660-Erweiterungen
benutzen. So speichern Joliet-CDs alle Dateinamen unter Verwendung
von zwei Byte langen Unicode-Zeichen. Zwar unterstützt der
&os;-Kernel derzeit noch kein Unicode, der CD9660-Treiber erlaubt
es aber, zur Laufzeit eine Konvertierungstabelle zu laden. Tauchen
bei Ihnen also statt bestimmter Zeichen nur Fragezeichen auf, so
müssen Sie über die Option den
benötigten Zeichensatz angeben. Weitere Informationen zu
diesem Problem finden Sie in der Manualpage
&man.mount.cd9660.8;.Damit der Kernel diese Zeichenkonvertierung (festgelegt
durch die Option ) erkennt, müssen Sie
das Kernelmodul cd9660_iconv.ko laden.
Dazu fügen Sie entweder folgende Zeile in die Datei
loader.conf ein:cd9660_iconv_load="YES"Danach müssen Sie allerdings Ihr System neu starten.
Alternativ können Sie das Kernelmodul auch direkt
über &man.kldload.8; laden.Manchmal werden Sie die Meldung Device
not configured erhalten, wenn Sie versuchen, eine
CD-ROM einzuhängen. Für gewöhnlich liegt das daran,
dass das Laufwerk meint es sei keine CD eingelegt, oder
dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann
einige Sekunden dauern, bevor das Laufwerk merkt, dass eine CD
eingelegt wurde. Seien Sie also geduldig.Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit
hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie
ein SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in Ihre
Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:options SCSI_DELAY=15000Die Zeile bewirkt, dass nach dem Zurücksetzen des
SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem
CD-ROM-Laufwerk genügend Zeit zu geben, darauf zu
antworten.Brennen von rohen CDsSie können eine Datei auch direkt auf eine CD brennen,
ohne vorher auf ihr ein ISO 9660-Dateisystem einzurichten.
Einige Leute nutzen dies, um Datensicherungen durchzuführen.
Diese Vorgehensweise hat den Vorteil, dass Sie schneller als
das Brennen einer normalen CD ist.&prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixateWenn Sie die Daten von einer solchen CD wieder
zurückbekommen wollen, müssen Sie sie direkt von dem
rohen Gerät lesen:&prompt.root; tar xzvf /dev/acd1Eine auf diese Weise gefertigte CD können Sie nicht in das
Dateisystem einhängen. Sie können Sie auch nicht auf
einem anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in
das Dateisystem einhängen oder mit anderen Betriebssystemen
austauschen wollen, müssen Sie &man.mkisofs.8;
wie oben beschrieben benutzen.MarcFonvieilleBeigetragen von CD-BrennerATAPI/CAM TreiberDer ATAPI/CAM TreiberMit diesem Treiber kann auf ATAPI-Geräte (wie
CD-ROM-, CD-RW- oder DVD-Laufwerke) mithilfe des
SCSI-Subsystems zugegriffen werden. Damit können
Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder &man.cdrecord.1;,
zusammen mit einem ATAPI-Gerät benutzen.Wenn Sie den Treiber benutzen wollen, fügen Sie
die folgende Zeile in
/boot/loader.conf ein:atapicam_load="YES"Danach müssen Sie Ihr System neu starten, um
den Treiber zu aktivieren.Alternativ können Sie die Unterstützung
für &man.atapicam.4; auch in Ihren Kernel kompilieren.
Dazu fügen Sie die folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:device atapicamDie folgenden Zeilen werden ebenfalls benötigt,
sollten aber schon Teil der Kernelkonfiguration sein:device ata
device scbus
device cd
device passÜbersetzen und installieren Sie den neuen
Kernel. Der CD-Brenner sollte nun beim Neustart des Systems
erkannt werden:acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedÜber den Gerätenamen /dev/cd0
können Sie nun auf das Laufwerk zugreifen. Wenn Sie
beispielsweise eine CD-ROM in /mnt
einhängen wollen, benutzen Sie das nachstehende
Kommando:&prompt.root; mount -t cd9660 /dev/cd0 /mntDie SCSI-Adresse des Brenners können Sie als
root wie folgt ermitteln:&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)Die SCSI-Adresse 1,0,0 können
Sie mit den SCSI-Werkzeugen, zum Beispiel &man.cdrecord.1;,
verwenden.Weitere Informationen über das ATAPI/CAM- und
das SCSI-System erhalten Sie in den Hilfeseiten
&man.atapicam.4; und &man.cam.4;.MarcFonvieilleBeigetragen von AndyPolyakovMit Beiträgen von DVDs benutzenDVDbrennenEinführungNach der CD ist die DVD die nächste Generation
optischer Speichermedien. Auf einer DVD können
mehr Daten als auf einer CD gespeichert werden.
DVDs werden heutzutage als Standardmedium für
Videos verwendet.Für beschreibbare DVDs existieren fünf
Medienformate:DVD-R: Dies war das erste verfügbare Format.
Das Format wurde vom DVD-Forum
festgelegt. Die Medien sind nur einmal beschreibbar.DVD-RW: Dies ist die wiederbeschreibbare Version
des DVD-R Standards. Eine DVD-RW kann ungefähr
1000 Mal beschrieben werden.DVD-RAM: Dies ist ebenfalls ein wiederbeschreibbares
Format, das vom DVD-Forum unterstützt wird.
Eine DVD-RAM verhält sich wie eine Wechselplatte.
Allerdings sind die Medien nicht kompatibel zu den
meisten DVD-ROM-Laufwerken und DVD-Video-Spielern.
DVD-RAM wird nur von wenigen Brennern unterstützt.
Wollen Sie DVD-RAM einsetzen, sollten Sie
lesen.DVD+RW: Ist ein wiederbeschreibbares Format, das
von der DVD+RW
Alliance festgelegt wurde. Eine DVD+RW
kann ungefähr 1000 Mal beschrieben werden.DVD+R: Dieses Format ist die nur einmal beschreibbare
Variante des DVD+RW Formats.Auf einer einfach beschichteten DVD können
4.700.000.000 Bytes gespeichert werden. Das
sind 4,38 GB oder 4485 MB (1 Kilobyte
sind 1024 Bytes).Die physischen Medien sind unabhängig von
der Anwendung. Ein DVD-Video ist eine spezielle
Anordnung von Dateien, die auf irgendein Medium (zum Beispiel
DVD-R, DVD+R oder DVD-RW) geschrieben werden kann.
Bevor Sie ein Medium auswählen, müssen
Sie sicherstellen, dass der Brenner und der DVD-Spieler
(ein Einzelgerät oder ein DVD-ROM-Laufwerk
eines Rechners) mit dem Medium umgehen können.KonfigurationDas Programm &man.growisofs.1; beschreibt DVDs.
Das Kommando ist Teil der Anwendung
dvd+rw-tools
(sysutils/dvd+rw-tools).
dvd+rw-tools kann mit allen
DVD-Medien umgehen.Um die Geräte anzusprechen, brauchen die
Werkzeuge das SCSI-Subsystem. Daher muss der
Kernel den ATAPI/CAM-Treiber
zur Verfügung stellen. Der Treiber ist mit
USB-Brennern nutzlos; die Konfiguration von
USB-Geräten behandelt .Für ATAPI-Geräte müssen Sie ebenfalls
DMA-Zugriffe aktivieren. Fügen Sie dazu die nachstehende
Zeile in die Datei /boot/loader.conf
ein:hw.ata.atapi_dma="1"Bevor Sie dvd+rw-tools
mit Ihrem DVD-Brenner benutzen, lesen Sie bitte die
Hardware-Informationen auf der Seite dvd+rw-tools'
hardware compatibility notes.Wenn Sie eine grafische Oberfläche bevorzugen,
schauen Sie sich bitte den Port
sysutils/k3b
an. Der Port bietet eine leicht zu bedienende
Schnittstelle zu &man.growisofs.1; und vielen
anderen Werkzeugen.Daten-DVDs brennen&man.growisofs.1; erstellt mit dem Programm
mkisofs das Dateisystem
und brennt anschließend die DVD. Vor dem Brennen
brauchen Sie daher kein Abbild der Daten zu erstellen.Wenn Sie von den Daten im Verzeichnis
/path/to/data eine
DVD+R oder eine DVD-R brennen wollen, benutzen Sie
das nachstehende Kommando:&prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/dataDie Optionen werden an
&man.mkisofs.8; durchgereicht und dienen zum Erstellen
des Dateisystems (hier: ein ISO-9660-Dateisystem mit
Joliet- und Rock-Ridge-Erweiterungen). Weiteres
entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;.Die Option wird für die erste
Aufnahme einer Session benötigt, egal ob Sie eine
Multi-Session-DVD brennen oder nicht. Für
/dev/cd0 müssen Sie
den Gerätenamen Ihres Brenners einsetzen. Die
Option schließt das
Medium, weitere Daten können danach nicht mehr
angehängt werden. Durch die Angabe dieser Option
kann das Medium von mehr DVD-ROM-Laufwerken gelesen
werden.Sie können auch ein vorher erstelltes Abbild
der Daten brennen. Die nachstehende Kommandozeile
brennt das Abbild in der Datei
imagefile.iso:&prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.isoDie Schreibgeschwindigkeit hängt von den
verwendeten Medium sowie dem verwendeten Gerät ab
und sollte automatisch gesetzt werden. Falls Sie die
Schreibgeschwindigkeit vorgeben möchten, verwenden
Sie den Parameter . Weiteres
erfahren Sie in der Hilfeseite &man.growisofs.1;.DVDDVD-VideoDVD-Videos brennenEin DVD-Video ist eine spezielle Anordnung von Dateien, die
auf den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen
beruht. Ein DVD-Video ist auf eine bestimmte Datei-Hierarchie
angewiesen. Daher müssen Sie DVDs mit speziellen
Programmen wie multimedia/dvdauthor
erstellen.Wenn Sie schon ein Abbild des Dateisystems eines
DVD-Videos haben, brennen Sie das Abbild wie jedes
andere auch. Eine passende Kommandozeile finden Sie
im vorigen Abschnitt. Wenn Sie die DVD im Verzeichnis
/path/to/video
zusammengestellt haben, erstellen Sie das DVD-Video
mit dem nachstehenden Kommando:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/videoDie Option wird an
&man.mkisofs.8; weitergereicht. Dadurch erstellt
&man.mkisofs.8; die Datei-Hierarchie für ein
DVD-Video. Weiterhin bewirkt die Angabe von
, dass &man.growisofs.1;
mit der Option aufgerufen wird.DVDDVD+RWDVD+RW-Medien benutzenIm Gegensatz zu CD-RW-Medien müssen Sie DVD+RW-Medien
erst formatieren, bevor Sie die Medien benutzen.
Sie sollten &man.growisofs.1; einzetzen, da das Programm
Medien automatisch formatiert, wenn es erforderlich
ist. Sie können eine DVD+RW aber auch mit dem
Kommando dvd+rw-format formatieren:&prompt.root; dvd+rw-format /dev/cd0Sie müssen das Kommando nur einmal mit
neuen Medien laufen lassen. Anschließend
können Sie DVD+RWs, wie in den vorigen
Abschnitten beschrieben, brennen.Wenn Sie auf einer DVD+RW ein neues Dateisystem
erstellen wollen, brauchen Sie die DVD+RW vorher
nicht zu löschen. Überschreiben Sie
einfach das vorige Dateisystem indem Sie eine neue
Session anlegen:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdataMit dem DVD+RW-Format ist es leicht, Daten an eine
vorherige Aufnahme anzuhängen. Dazu wird eine neue
Session mit der schon bestehenden zusammengeführt.
Es wird keine Multi-Session geschrieben, sondern
&man.growisofs.1; vergrößert
das ISO-9660-Dateisystem auf dem Medium.Das folgende Kommando fügt weitere Daten zu
einer vorher erstellten DVD+RW hinzu:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataWenn Sie eine DVD+RW erweitern, verwenden Sie
dieselben &man.mkisofs.8;-Optionen wie beim Erstellen
der DVD+RW.Um die Kompatibilität mit DVD-ROM-Laufwerken
zu gewährleisten, wollen Sie vielleicht die
Option einsetzen.
Zu einem DVD+RW-Medium können Sie mit dieser
Option auch weiterhin Daten hinzufügen.Wenn Sie das Medium aus irgendwelchen Gründen
doch löschen müssen, verwenden Sie den
nachstehenden Befehl:&prompt.root; growisofs -Z /dev/cd0=/dev/zeroDVDDVD-RWDVD-RW-Medien benutzenEine DVD-RW kann mit zwei Methoden beschrieben werden:
Sequential-Recording oder
Restricted-Overwrite. Voreingestellt
ist Sequential-Recording.Eine neue DVD-RW kann direkt beschrieben werden; sie
muss nicht vorher formatiert werden. Allerdings muss
eine DVD-RW, die mit Sequential-Recording aufgenommen
wurde, zuerst gelöscht werden, bevor eine neue Session
aufgenommen werden kann.Der folgende Befehl löscht eine DVD-RW im
Sequential-Recording-Modus:&prompt.root; dvd+rw-format -blank=full /dev/cd0Das vollständige Löschen
() dauert mit einem
1x Medium ungefähr eine Stunde. Wenn die
DVD-RW im Disk-At-Once-Modus (DAO) aufgenommen wurde,
kann Sie mit der Option schneller
gelöscht werden. Um eine DVD-RW im DAO-Modus zu
brennen, benutzen Sie das folgende Kommando:&prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.isoDie Option
sollte nicht erforderlich sein, da &man.growisofs.1;
den DAO-Modus erkennt.Der Restricted-Overwrite-Modus sollte mit jeder
DVD-RW verwendet werden, da er flexibler als der
voreingestellte Sequential-Recording-Modus ist.Um Daten auf eine DVD-RW im Sequential-Recording-Modus
zu schreiben, benutzen Sie dasselbe Kommando wie
für die anderen DVD-Formate:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/dataWenn Sie weitere Daten zu einer Aufnahme hinzufügen
wollen, benutzen Sie die Option von
&man.growisofs.1;. Werden die Daten im Sequential-Recording-Modus
hinzugefügt, wird eine neue Session erstellt.
Das Ergebnis ist ein Multi-Session-Medium.Eine DVD-RW im Restricted-Overwrite-Modus muss nicht
gelöscht werden, um eine neue Session aufzunehmen.
Sie können das Medium einfach mit der Option
überschreiben, ähnlich wie
bei DVD+RW. Mit der Option können
Sie das ISO-9660-Dateisystem, wie mit einer DVD+RW,
vergrößern. Die DVD enthält danach eine
Session.Benutzen sie das nachstehende Kommando, um den
Restricted-Overwrite-Modus einzustellen:&prompt.root; dvd+rw-format /dev/cd0Das folgende Kommando stellt den Modus wieder auf
Sequential-Recording zurück:&prompt.root; dvd+rw-format -blank=full /dev/cd0Multi-SessionNur wenige DVD-ROM-Laufwerke können
Multi-Session-DVDs lesen. Meist lesen die Spieler nur
die erste Session. Mehrere Sessions werden von
DVD+R, DVD-R und DVD-RW im Sequential-Recording-Modus
unterstützt. Im Modus Restricted-Overwrite gibt
es nur eine Session.Wenn das Medium noch nicht geschlossen ist, erstellt
das nachstehende Kommando eine neue Session auf einer
DVD+R, DVD-R oder DVD-RW im Sequential-Recording-Modus:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataWird diese Kommandozeile mit DVD+RW- oder DVD-RW-Medien
im Restricted-Overwrite-Modus benutzt, werden die
neuen Daten mit den Daten der bestehenden Session
zusammengeführt. Das Medium enthält danach
eine Session. Auf diesem Weg werden neue Daten zu
einer bestehenden Session hinzugefügt.Für den Anfang und das Ende einer Session
wird auf dem Medium zusätzlicher Platz verbraucht.
Um den Speicherplatz auf dem Medium optimal auszunutzen,
sollten Sie daher Sessions mit vielen Daten hinzufügen.
Auf ein DVD+R-Medium passen maximal 154 Sessions,
2000 Sessions auf ein DVD-R-Medium und
127 Sessions auf eine DVD+R Double Layer.WeiterführendesDas Kommando dvd+rw-mediainfo
/dev/cd0 zeigt
Informationen über eine im Laufwerk liegende
DVD an.Weiteres zu den dvd+rw-tools
lesen Sie bitte in der Hilfeseite &man.growisofs.1;,
auf der dvd+rw-tools
Web-Seite oder in den Archiven der cdwrite-Mailingliste.DVD-RAMDVDDVD-RAMKonfigurationDVD-RAM-fähige Brenner werden sowohl mit SCSI-
als auch mit ATAPI-Schnittstelle angeboten. Verwenden Sie
ein ATAPI-Gerät, müssen Sie den DMA-Modus
aktivieren. Dazu fügen Sie die folgende Zeile in
/boot/loader.conf ein:hw.ata.atapi_dma="1"Das Medium vorbereitenWie weiter oben in diesem Kapitel bereits erwähnt,
kann man eine DVD-RAM mit einer Wechselplatte vergleichen.
Wie diese muss auch eine DVD-RAM vor dem ersten Einsatz
vorbereitet werden. In unserem Beispiel
wird das gesamte Medium mit dem Standard-UFS2-Dateisystem
formatiert.Dazu geben Sie als root bei
eingelegter DVD-RAM die folgenden Befehle ein:&prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1
&prompt.root; bsdlabel -Bw acd0
&prompt.root; newfs /dev/acd0Denken Sie dabei daran, dass Sie gegebenenfalls die
Gerätedatei (hier acd0) an
Ihre Konfiguration anpassen müssen.Das Medium einsetzenNachdem Sie das Medium vorbereitet haben, können
Sie das DVD-RAM-Medium in Ihren Verzeichnisbaum
einhängen:&prompt.root; mount /dev/acd0/mntDanach können Sie schreibend und lesend auf das
Medium zugreifen.JulioMerinoOriginal von MartinKarlssonUmgeschrieben von Disketten benutzenDisketten sind nützlich, wenn kein anderes
bewegliches Speichermedium vorhanden ist oder wenn
nur kleine Datenmengen transferiert werden sollen.Dieser Abschnitt beschreibt die Handhabung von Disketten
unter FreeBSD. Hauptsächlich geht es um die
Formatierung und Benutzung von 3,5 Zoll Disketten,
doch lassen sich die Konzepte leicht auf Disketten anderer
Formate übertragen.Disketten formatierenDie GerätedateienWie auf jedes andere Gerät auch, greifen Sie
auf Disketten über Einträge im Verzeichnis
/dev zu. Verwenden Sie dazu die
Einträge
/dev/fdN.FormatierungBevor eine Diskette benutzt werden kann, muss Sie
(low-level) formatiert werden, was normalerweise der
Hersteller schon gemacht hat. Sie können die
Diskette allerdings noch einmal formatieren, um das Medium zu
überprüfen. Es ist möglich, die
Kapazität der Diskette zu verändern,
allerdings sind die meisten Disketten auf 1440 kB
ausgelegt.Mit &man.fdformat.1; formatieren Sie eine
Diskette. Das Kommando erwartet die Angabe eines
Gerätenamens.Achten Sie bei der Formatierung
auf Fehlermeldungen, die schlechte Speichermedien
anzeigen.Disketten formatierenDie Disketten werden mithilfe der Gerätedatei
/dev/fdN
formatiert. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando
aus:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0Das DisklabelNach dem Formatieren muss auf der Diskette ein Disklabel
erstellt werden. Das Disklabel wird später zerstört, ist
aber notwendig, um die Größe und Geometrie der Diskette
zu erkennen.Das Disklabel gilt für die ganze Diskette und enthält
alle Informationen über die Geometrie der Diskette. Eine
Liste der möglichen Geometrien finden Sie in
/etc/disktab.Erstellen Sie nun das Label mit &man.bsdlabel.8;:&prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440Das DateisystemAuf der Diskette muss nun ein Dateisystem erstellt werden
(high-level Formatierung), damit FreeBSD von der Diskette lesen und
auf sie schreiben kann. Das Disklabel wird durch das Anlegen eines
Dateisystems zerstört. Falls Sie die Diskette später erneut
formatieren wollen, müssen Sie dann auch ein neues Disklabel
anlegen.Sie können entweder UFS oder FAT als Dateisystem
verwenden. Für Floppies ist FAT das beste Dateisystem.Das folgende Kommando legt ein Dateisystem auf der Diskette
an:&prompt.root; /sbin/newfs_msdos /dev/fd0Die Diskette kann nun benutzt werden.Verwenden der DisketteZum Einhägen der Diskette in das Dateisystem
verwenden Sie den Befehl &man.mount.msdosfs.8;. Sie
können auch den
Port emulators/mtools
verwenden, um mit der Diskette zu arbeiten.Bandmedien benutzenBandmedienDie wichtigsten Bandmedien sind 4mm, 8mm, QIC,
Mini-Cartridge und DLT.4mm (DDS: Digital Data Storage)BandmedienDDS (4mm) BänderBandmedienQIC BänderDie 4mm-Bänder ersetzen mehr und mehr das QIC-Format als
Backupmedium der Wahl für Workstations. Dieser Trend nahm stark
zu, als Conner die Firma Archive, einen führenden Hersteller von
QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
gleichen Ruf der Zuverlässigkeit, den die 8mm-Laufwerke
genießen. Die 4mm-Kassetten sind preiswerter und mit den
Maßen 76,2 x 50,8 x 12,7 mm
(3 x 2 x 0,5 Inch) kleiner als die
8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetköpfe
haben eine relativ kurze Lebensdauer, weil beide die gleiche
Helical-Scan-Technik benutzen.Der Datendurchsatz dieser Laufwerke beginnt bei etwa
150 kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s.
Die Datenkapazität liegt zwischen 1,3 GB und 2 GB.
Die meisten Geräte haben eine Hardwarekompression eingebaut,
die die Kapazität ungefähr verdoppelt. Es gibt
Multi-Drive-Einheiten für Bandbibliotheken mit bis zu 6
Laufwerken in einem Gehäuse und automatischem Bandwechsel. Die
Kapazität einer solchen Bibliothek liegt bei 240 GB.Der Standard DDS-3 unterstützt nun Bandkapazitäten bis
zu 12 GB (oder komprimiert 24 GB).4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
Alle Vor- und Nachteile von Helical-Scan gelten sowohl für 4mm-
als auch für 8mm-Laufwerke.Bänder sollten nach 2.000 Banddurchläufen oder 100
vollen Backups ersetzt werden.8mm (Exabyte)BandmedienExabyte (8mm) Bänder8mm-Bänder sind die verbreitetsten SCSI-Bandlaufwerke; sie
sind das geeignetste Bandformat zum Austausch von Bändern.
Fast an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB.
8mm-Bänder sind zuverlässig, gut zu handhaben und
arbeiten leise. Bandkassetten sind preiswert und klein mit
122 x 84 x 15 mm
(4,8 x 3,3 x 0,6 Inch). Ein Nachteil
der 8mm-Technik ist die relativ kurze Lebensdauer des
Schreib-/Lesekopfs und der Bänder auf Grund der hohen
Relativgeschwindigkeit des Bandes über die Köpfe
hinweg.Der Datendurchsatz liegt ungefähr zwischen
250 kByte/s und 500 kByte/s. Die Datenkapazität
beginnt bei 300 MB und erreicht bis zu 7 GB bei den
Spitzengeräten. Die meisten Geräte
haben eine Hardwarekompression eingebaut, die die Kapazität
ungefähr verdoppelt. Diese Laufwerke sind erhältlich in
Form von Einzelgeräten oder als Multi-Drive-Bandbibliotheken mit
6 Laufwerken und 120 Bändern in einem Gehäuse. Die
Bänder werden von der Geräteeinheit automatisch gewechselt.
Die Kapazität einer solchen Bibliothek liegt bei 840 GB und
mehr.Das Exabyte-Modell Mammoth unterstützt
12 GB auf einem Band (24 GB mit Kompression) und kostet
etwa doppelt so viel wie ein konventionelles Bandlaufwerk.Die Daten werden mittels Helical-Scan auf das Band
aufgezeichnet, die Köpfe sind leicht schräg zum Medium
angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt
sich 270 Grad um die Spule, die die Köpfe trägt.
Die Spule dreht sich, während das Band darüberläuft.
Das Resultat ist eine hohe Datendichte und eng gepackte Spuren,
die von einem Rand des Bands zum gegenüberliegenden quer
über das Band abgewinkelt verlaufen.QICBandmedienQIC-150QIC-150-Bänder und -Laufwerke sind wohl der am weitesten
verbreitete Bandtyp überhaupt. QIC-Bandlaufwerke sind die
preiswertesten seriösen Backupgeräte,
die angeboten werden. Der Nachteil dabei ist der hohe Preis
der Bänder. QIC-Bänder sind im Vergleich zu 8mm- oder
4mm-Bändern bis zu fünf Mal teurer, wenn man den Preis
auf 1 GB Datenkapazität umrechnet. Aber wenn Ihr Bedarf
mit einem halben Dutzend Bänder abgedeckt werden kann,
mag QIC die richtige Wahl sein.QIC ist der gängigste
Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder
anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC
bietet eine große Anzahl verschiedener Datendichten auf
physikalisch ähnlichen (manchmal gleichen) Bändern.
QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die
richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen.
Sie sind während des Lesens, Schreibens und Suchens deutlich
hörbar.Die Abmessungen der QIC-Kassetten betragen
152 x 102 x 17 mm
(6 x 4 x 0,7 Inch).Der Datendurchsatz liegt ungefähr zwischen
150 kByte/s und 500 kByte/s. Die Datenkapazität
reicht von 40 MB bis zu 15 GB.
Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut.
QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den
DAT-Laufwerken abgelöst.Die Daten werden auf dem Band in Spuren aufgezeichnet. Die
Spuren verlaufen entlang der Längsachse des Bandmediums von einem
Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite
einer Spur, variiert mit der Kapazität des Laufwerks. Die
meisten, wenn nicht alle neueren Laufwerke sind
rückwärtskompatibel, zumindest zum Lesen (aber oft auch zum
Schreiben). QIC hat einen guten Ruf bezüglich der
Datensicherheit (die Mechanik ist einfacher und robuster als diejenige
der Helical-Scan-Laufwerke).Bänder sollten nach 5,000 Backups ersetzt werden.DLTBandmedienDLTDLT hat die schnellste Datentransferrate von allen hier
aufgelisteten Gerätetypen. Das 1/2-Inch-Band (12,7 mm)
befindet sich in einer Spulkassette mit den Abmessungen
101,6 x 101,6 x 25,4 mm
(4 x 4 x 1 Inch). Die eine Seite
der Kassette hat eine bewegliche Abdeckung. Der Laufwerksmechanismus
öffnet diese Abdeckung und zieht die Bandführung heraus.
Die Bandführung trägt ein ovales Loch, die das Laufwerk
zum Einhängen des Bandes benutzt. Die
Aufwickelspule befindet sich im Innern des Bandlaufwerks. Bei allen
anderen hier besprochenen Bandkassetten (9-Spur-Bänder
sind die einzige Ausnahme) befinden sich sowohl die Auf- als auch
die Abwickelspule im Inneren der Bandkassette.Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
Datenkapazität reicht von 10 GB bis 20 GB für
Einfachlaufwerke. Auch Mehrfachbandgeräte sind erhältlich,
sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die
Platz für 5 bis 900 Bänder verteilt auf 1 bis 20 Laufwerke
enthalten, mit einer Speicherkapazität von 50 GB bis
9 TB.Mit Kompression unterstützt das Format DLT Type IV bis zu
70 GB Kapazität.Die Daten werden auf dem Band in Spuren aufgezeichnet, die
parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
QIC-Bändern). Zwei Spuren werden dabei gleichzeitig beschrieben.
Die Lebenszeit der Lese- und Schreibköpfe sind relativ lang; denn
sobald das Band anhält, gibt es keine Relativbewegung mehr
zwischen den Köpfen und dem Band.AITBandmedienAITAIT ist ein neues Format von Sony, das (mit Kompression) bis zu
50 GB pro Band speichern kann. Die Bänder haben einen
Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage
von Dateien auf dem Band benutzt werden, während andere
Bänder einige Minuten zur Lokalisierung benötigen.Entsprechende Software wie etwa
SAMS:Alexandria können 40
oder mehr AIT-Bandbibliotheken verarbeiten, indem sie
direkt mit dem Speicherchip des Bandes kommunizieren, wenn der
Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden
soll, welche Dateien auf welchem Band gespeichert sind, oder um das
richtige Band zu lokalisieren, zu laden und Daten vom Band
zurückzuspielen. Bibliotheken dieser Art liegen in der
Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
herausfallen.Die erste Benutzung eines neuen BandsDer Versuch ein neues, vollkommen leeres Band ohne weiteres zu
lesen oder zu beschreiben wird schief gehen. Auf der Konsole werden
dann Meldungen ähnlich wie folgt ausgegeben:sa0(ncr1:4:0): NOT READY asc:4,1
0(ncr1:4:0): Logical unit is in process of becoming readyDas Band enthält nämlich keinen Identifier-Block
(Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einführung des
QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es
gibt zwei Lösungen:mt fsf 1 veranlasst das Bandlaufwerk
einen Identifier-Block auf das Band zu schreiben.Das Band durch Drücken des Bandauswurfknopfs an der
Vorderseite des Bandgeräts auswerfen.Danach das Band wieder einlegen und mit
dump Daten auf das Band
übertragen.Das Kommando dump gibt die Meldung
DUMP: End of tape detected zurück
und die Konsole zeigt:
HARDWARE FAILURE info:280 asc:80,96.Das Band zurückspulen mit dem Kommando:
mt rewind.Nachfolgende Bandoperationen werden dann erfolgreich
ausgeführt.Was ist mit Backups auf Disketten?Kann ich Disketten zum Backup meiner Daten verwenden?Backup DiskettenDiskettenDisketten sind kein wirklich geeignetes Medium für Backups
aus folgenden Gründen:Disketten sind unzuverlässig, besonders
langfristig.Speichern und Wiederherstellen ist sehr langsam.Sie haben eine sehr eingeschränkte Kapazität (Die
Zeiten sind längst vorbei, wo eine ganze Festplatte auf ein
Dutzend Floppies oder so gespeichert werden konnte).Wenn jedoch keine andere Möglichkeit zum Datenbackup
vorhanden ist, dann sind Disketten immer noch besser als gar kein
Backup.Wenn man gezwungen ist Disketten zu verwenden, dann sollte man
auf eine gute Qualität achten. Floppies, die schon einige Jahre
im Büro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
neue Disketten von einem renommierten Hersteller.Wie mache ich ein Backup auf Disketten?Die beste Art eines Diskettenbackups ist der Befehl
&man.tar.1; mit der Mehrfachband-Option ,
die es ermöglicht ein Backup über mehrere
Floppies zu verteilen.Ein Backup aller Dateien im aktuellen Verzeichnis
einschließlich aller Unterverzeichnisse wird durch den folgenden
Befehl veranlasst (als root):&prompt.root; tar Mcvf /dev/fd0 *Wenn die erste Floppy voll ist, meldet sich &man.tar.1;
und verlangt einen Diskettenwechsel (weil &man.tar.1;
unabhängig vom
Medium arbeitet, wird das nächste Band (Volume) verlangt, was in
diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:Prepare volume #2 for /dev/fd0 and hit return:Dies wird mit steigender Volumenzahl wiederholt, bis alle
angegebenen Dateien archiviert sind.Können Diskettenbackups komprimiert werden?targzipKompressionLeider erlaubt es &man.tar.1; nicht, die Option
für Multi-Volume-Archive zu verwenden.
Man kann natürlich alle Dateien mit &man.gzip.1;
komprimieren, sie mit &man.tar.1; auf die Floppies
aufspielen, und dann die Dateien wieder &man.gunzip.1;
entkomprimieren!Wie werden Diskettenbackups wieder hergestellt?Zur Wiederherstellung des gesamten Archivs verwendet man:&prompt.root; tar Mxvf /dev/fd0Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
mit der ersten Diskette den folgenden Befehl auszuführen:&prompt.root; tar Mxvf /dev/fd0 filename&man.tar.1; wird dann die folgenden Disketten anfordern,
bis die benötigte Datei gefunden ist.Wenn man die Diskette kennt, auf der sich die Datei befindet,
kann man alternativ diese Diskette auch direkt einlegen und den
gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
erste Datei eine Fortsetzung einer Datei von einer
der vorigen Disketten ist, &man.tar.1; die Warnung ausgibt,
dass diese Datei nicht wiederhergestellt werden kann, selbst dann,
wenn dies gar nicht verlangt wurde!LowellGilbertBeigetragen von Backup-StrategienWenn Sie eine eigene Backup-Strategie planen, müssen Sie
darauf achten, dass jedes der folgenden Probleme von Ihrer
Strategie abgedeckt wird:Plattendefekte.Versehentliches Löschen von Dateien.Eine nicht vorhersehbare Korrumpierung von Dateien.Die vollständige Zerstörung Ihres Systems, etwa
durch ein Feuer. Dazu gehört auch die Zerstörung
von Backups, die am gleichen Ort aufbewahrt werden.Es ist nicht nur möglich, dass ein System
für jedes dieser Probleme eine eigene (oft völlig
unterschiedliche) Strategie benötigt. Es ist vielmehr
unwahrscheinlich (sieht man von Systemen ab, die keine
wichtigen Daten enthalten), dass eine Technik alle
Problembereiche abdecken kann.Häufig verwendeten Techniken sind unter anderen:Die Archivierung des kompletten Systems auf externen
Datenträgern, die an einem gesonderten Ort aufbewahrt
werden. Dieser Ansatz schützt zwar vor allen oben
angeführten Problemen, ist aber zeitaufwändig.
Auch eine Wiederherstellung des Systems ist nicht ohne
weiteres möglich. Zwar können Sie Kopien Ihrer
Backups auch vor Ort und/oder auf online zugängigen
Systemen aufbewahren, was aber nichts daran ändert,
dass eine Wiederherstellung, insbesondere für nicht
privilegierte Benutzer, nach wie vor nicht ohne weiteres
möglich ist.Dateisystem-Snapshots. Diese Technik hilft zwar nur
gegen das versehentliche Löschen von Dateien, in einem
solchen Fall ist sie aber äußerst
hilfreich. Vorteile dieser Technik sind außerdem die
leichte und schnelle Implementierung und Handhabung.Das Erstellen von Kopien ganzer Dateisysteme und/oder
Platten (etwa durch einen periodischen &man.rsync.1;-Transfer des
kompletten Systems). Diese Technik ist insbesondere in
Netzwerken mit besonderen Anforderungen nützlich. Der
Schutz vor Plattendefekten ist allerdings schlechter als beim
Einsatz von RAID. Die
Fähigkeiten zur Wiederherstellung gelöschter
Dateien sind mit denen von UFS-Snapshots
vergleichbar. Ob diese Technik für Sie geeignet ist,
hängt also letztlich von Ihren Anforderungen ab.RAID. Minimiert oder vermeidet
Ausfallzeiten, die durch einen Plattendefekt verursacht werden
könnten. Zwar können Plattendefekte (aufgrund
der höheren Anzahl verwendeter Platten) häufiger
auftreten, sie stellen aber dann kein so akutes Problem
dar.Das Überprüfen von Datei-Fingerprints durch
&man.mtree.8;. Dabei handelt es sich zwar um keine
Backup-Technik im eigentlichen Sinne, Sie werden durch den
Einsatz dieser Werkzeugs aber informiert, dass Sie auf Ihre
Backups zurückgreifen müssen. Dies ist insbesondere
beim Einsatz von Offline-Backups von großer Bedeutung.
Daher sollte diese Technik regelmäßig eingesetzt
werden.Es gibt noch zahlreiche weitere Techniken, von denen aber viele
nur Variationen der eben beschriebenen Techniken sind. Spezielle
Anforderungen erfordern dabei in der Regel auch spezielle
Backup-Techniken (so erfordert das Backup einer aktiven Datenbank
in der Regel ein auf die eingesetzte Datenbank-Software abgestimmtes
Verfahren). Entscheidend ist daher immer, gegen welche Gefahren
Sie sich schützen und wie Sie diesen Schutz realisieren
wollen.DatensicherungDie drei wichtigsten Programme zur Sicherung von Daten sind
&man.dump.8;, &man.tar.1; und &man.cpio.1;.Sichern und WiederherstellenDatensicherungBackupBackup-SoftwaredumpBackup-Softwarerestoredumprestoredump und restore sind die
traditionellen
Backupprogramme in &unix; Systemen. Sie betrachten das Laufwerk als eine
Ansammlung von Blöcken, operieren also unterhalb dem
Abstraktionslevel von Dateien, Links und Verzeichnissen, die die
Grundlage des Dateisystemkonzepts bilden. dump
sichert ein ganzes Dateisystem auf einem Gerät, es ist nicht
möglich nur einen Teil des Dateisystems, oder einen
Verzeichnisbaum, der mehr als ein Dateisystem umfasst zu
sichern. dump schreibt keine Dateien oder
Verzeichnisse auf das Band, sondern die Blöcke, aus denen
Dateien und Verzeichnisse bestehen.Wenn Sie mit dump das Root-Verzeichnis
sichern, werden /home, /usr
und viele andere Verzeichnisse nicht gesichert, da dies normalerweise
Mountpunkte für andere Dateisysteme oder symbolische Links
zu diesen Dateisystemen sind.dump hat einige Eigenarten, die noch aus den
frühen Tagen der Version 6 von AT&T UNIX (ca. 1975)
stammen. Die Parameter
sind für 9-Spur-Bänder (6250 bpi) voreingestellt,
nicht auf die heute üblichen Medien hoher Dichte (bis zu
62.182 ftpi). Bei der Verwendung der Kapazitäten
moderner Bandlaufwerke muss diese Voreinstellung auf der
Kommandozeile überschrieben werden..rhostsrdump und rrestore
können Daten über
Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
Computers befindet, überspielen. Beide Programme benutzen die
Funktionen &man.rcmd.3; und &man.ruserok.3; zum
Zugriff auf das entfernte
Bandlaufwerk. Daher muss der Anwender, der das Backup
durchführt, auf dem entfernten Rechner in
.rhosts eingetragen sein.Die Argumente zu rdump und
rrestore müssen
zur Verwendung auf dem entfernten Computer geeignet sein.
Wenn Sie zum Beispiel mit rdump von einem
FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer Sun mit
Namen komodo zugreifen möchten, setzen Sie
das folgende Kommando ab:&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1Zum Ausführen dieses Kommandos müssen Sie auf dem
entfernten Rechner in .rhosts eingetragen
sein. Die r-Kommandos sind ein großes Sicherheitsrisiko,
daher sollten Sie deren Verwendung sorgfältig
abwägen.Es ist auch möglich, dump und
restore über eine gesicherte Verbindung
mit ssh einzusetzen:dump mit ssh
benutzen&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gzSie können ebenfalls mit der internen Methode
von dump auf entfernte Rechner zugreifen,
indem Sie die Umgebungsvariable RSH
setzen:dump über ssh
mit gesetzter RSH benutzen&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usrtarBackup-Softwaretar&man.tar.1; stammt ebenfalls aus Version 6 von AT&T UNIX
(ca. 1975). tar arbeitet mit dem Dateisystem,
denn es schreibt Dateien und Verzeichnisse auf das Band.
tar unterstützt zwar nicht alle Optionen,
die bei &man.cpio.1; zur Verfügung stehen, aber dafür
erfordert es auch nicht die ungewöhnliche Kommando-Pipeline,
die von cpio verwendet wird.tarSeit FreeBSD 5.3 sind sowohl GNU tar
als auch bsdtar verfügbar. Die
GNU-Version starten Sie über gtar. Sie
unterstützt auch entfernte Geräte, wobei die von
rdump benutzte Syntax übernommen wurde.
Um Daten mit tar auf ein an einer
Sun-Workstation (namens komodo) angeschlossenes
Exabyte-Bandlaufwerk zu archivieren, geben Sie Folgendes ein:&prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1Alternativ können Sie für diese Sicherung auch
bsdtar verwenden, indem Sie die Daten
über eine Pipeline und rsh an das
entfernte Laufwerk senden:&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20bWenn Sie Bedenken bezüglich der Sicherheit beim Backup
über das Netz haben, sollten Sie ssh anstatt
rsh benutzen.CpioBackup-Softwarecpiocpio&man.cpio.1; ist das ursprüngliche Programm von
&unix; Systemen zum Dateitransfer mit magnetischen Medien.
cpio hat (neben vielen anderen
Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
einer Anzahl verschiedener Archivformate und zum Weiterleiten von
Daten an andere Programme über eine Pipeline. Dieses letzte
Leistungsmerkmal macht cpio zu einer
ausgezeichneten Wahl für Installationsmedien. Leider kann
cpio keine
Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden
Dateien über stdin angegeben werden
muss.cpio unterstützt keine Backups
über das Netzwerk. Man kann aber eine Pipeline und
rsh verwenden, um
Daten an ein entferntes Bandlaufwerk zu senden.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Dabei steht directory_list für
eine Aufzählung der Verzeichnisse, die Sie sichern wollen.
user@host
gibt den Benutzer auf dem Zielrechner an, der die Sicherung
laufen lässt. Der Ort der Sicherung wird durch
backup_device angegeben
(z.B. /dev/nsa0).paxBackup-SoftwarepaxpaxPOSIXIEEE&man.pax.1; ist die Antwort von IEEE/&posix; auf
tar und cpio.
Über die Jahre hinweg sind die verschiedenen
Versionen von tar und cpio leicht
inkompatibel geworden. Daher hat &posix;, statt eine Standardisierung
zwischen diesen auszufechten, ein neues Archivprogramm geschaffen.
pax versucht viele der unterschiedlichen
cpio- und tar-Formate zu lesen
und zu schreiben, außerdem einige neue, eigene Formate. Die
Kommandostruktur ähnelt eher cpio als
tar.AmandaBackup-SoftwareAmandaAmandaAmanda
(Advanced Maryland Network Disk Archiver) ist ein
Client/Server-Backupsystem, nicht nur ein einzelnes Programm.
Ein Amanda-Server kann auf einem
einzigen Bandlaufwerk Datensicherungen von jeder beliebigen
Anzahl von Computern speichern, sofern auf diesen jeweils ein
Amanda-Client läuft und sie
über Netzwerk mit dem Amanda-Server
verbunden sind.Ein häufiges Problem bei Standorten mit einer Anzahl
großer Festplatten ist, dass das Kopieren der Daten auf
Band langsamer vor sich geht als solche Daten anfallen.
Amanda löst dieses Problem
durch Verwendung einer Holding Disk, einer Festplatte
zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.Für Datensicherungen über einen längeren
Zeitraum erzeugt AmandaArchivsets von allen Dateisystemen, die in
Amandas Konfigurationsdatei genannt
werden. Ein Archivset ist eine Gruppe von Bändern mit
vollen Backups und Reihen von inkrementellen (oder differentiellen)
Backups, die jeweils nur die Unterschiede zum vorigen
Backup enthalten. Zur Wiederherstellung von beschädigten
Dateisystemen benötigt man Das Letzte volle Backup und alle
darauf folgenden inkrementellen Backups.Die Konfigurationsdatei ermöglicht die Feineinstellung
der Backups und des Netzwerkverkehrs von
Amanda. Amanda
kann zum Schreiben der Daten auf das Band jedes der oben
beschriebenen Backuprogramme verwenden.
Amanda ist nicht Teil des Basissystems,
Sie müssen Amanda über
die Ports-Sammlung oder als Paket installieren.Tue nichtsTue nichts ist kein Computerprogramm, sondern die
am häufigsten angewendete Backupstrategie. Diese kostet nichts,
man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn
etwas passiert, einfach grinsen und ertragen!Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist
die Strategie Tue nichts das geeignetste Backupprogramm
für Ihren Computer. Aber &unix; ist ein nützliches Werkzeug,
Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten
eine Sammlung von Dateien haben, die für Sie wertvoll geworden
sind.Tue nichts ist die richtige Backupmethode für
/usr/obj und andere Verzeichnisbäume, die
vom Computer exakt wiedererzeugt werden können. Ein Beispiel
sind die Dateien, die diese Handbuchseiten darstellen – sie
wurden aus Quelldateien im Format SGML erzeugt.
Es ist nicht nötig, Sicherheitskopien der Dateien in den
sekundären Formaten wie etwa HTML zu
erstellen. Die Quelldateien in SGML sollten jedoch
in die regelmäßigen Backups mit einbezogen werden.Welches Backup-Programm ist am Besten?LISAdump, Punkt und Schluss.
Elizabeth D. Zwicky hat alle hier genannten Backup-Programme
bis zur Erschöpfung ausgetestet. Ihre eindeutige Wahl zur
Sicherung aller Daten mit Berücksichtigung aller Besonderheiten
von &unix; Dateisystemen ist dump.Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt
ungewöhnlicher Bedingungen (und einiger gar nicht so
ungewöhnlicher) und testete jedes Programm durch ein Backup und
eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten
waren Dateien mit Löchern, Dateien mit Löchern und einem
Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im
Dateinamen, unlesbare und nichtschreibbare Dateien,
Gerätedateien, Dateien, deren Länge sich während des
Backups ändert, Dateien, die während des Backups erzeugt und
gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse
in LISA V im Oktober 1991, s. Torture-testing
Backup and Archive Programs.Die Wiederherstellung in einem NotfallVor dem UnglückEs sind nur vier Vorkehrungen zu treffen, um auf jedes
erdenkliche Unglück vorbereitet zu sein.bsdlabelAls erstes drucken Sie das bsdlabel jeder Ihrer Festplatten
(z.B. mittels bsdlabel da0 | lpr), die
Partitions- und Dateisystemtabelle jeder Festplatte (mit
/etc/fstab) sowie alle Bootmeldungen, jeweils
in zweifacher Ausfertigung.fix-it floppiesZweitens, überzeugen Sie sich, dass sowohl die
Bootdiskette als auch die Reparaturdiskette
(boot.flp bzw. fixit.flp)
all Ihre Geräte ansprechen können. Die einfachste Methode
dies nachzuprüfen ist, Ihren Rechner mit der Boot-Diskette im
Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen.
Wenn all Ihre Geräte aufgelistet sind und funktionieren,
können Sie weiter zu Schritt drei gehen.Ist das nicht der Fall, müssen Sie sich eine eigene
Version der beiden zum Booten benötigten Disketten erstellen.
Diese müssen einen Kernel enthalten, der all Ihre Platten
mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese
Disketten müssen ferner folgende Programme enthalten:
fdisk, bsdlabel,
newfs, mount sowie
jedes Backup-Programm, das Sie verwenden. Diese Programme
müssen statisch gelinkt sein. Falls Sie dump
verwenden, muss die Diskette auch restore
enthalten.Drittens, machen Sie oft Backups auf Band. Jede Änderung
seit Ihrem letzten Backup kann unwiederbringlich verloren gehen.
Versehen Sie die Backup-Bänder mit Schreibschutz.Viertens, testen Sie aus, wie die Disketten (entweder
boot.flp und fixit.flp
oder Ihre beiden eigenen Disketten aus Schritt zwei) und die
Bänder mit den Backups zu behandeln sind. Machen Sie sich
Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den
Bootdisketten, den Ausdrucken und den Bändern mit den Backups
auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt
sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren
Bändern zerstören. (Wie das geht? Man braucht nur
unglücklicherweise den Befehl tar cvf
/dev/sa0 einzugeben um ein Band zu
überschreiben).Als zusätzliche Sicherheitsvorkehrung, kann man jeweils
die Disketten und Bänder zweifach erstellen. Eine der Kopien
sollte an einem entfernten Standort aufbewahrt werden. Ein
entfernter Standort ist NICHT der Keller im gleichen
Bürogebäude. Eine Anzahl von Firmen im World Trade Center
musste diese Lektion auf die harte Tour lernen. Ein entfernter
Standort sollte von Ihrem Computer und Ihren Festplatten
physikalisch durch eine erhebliche Entfernung getrennt sein.Ein Beispielskript zum Erstellen eigener Bootdisketten /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# Minimale Dateisystemtabelle erstellen
#
cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <Nach dem UnglückDie Schlüsselfrage ist, ob Ihre Hardware überlebt
hat. Denn da Sie ja regelmäßig Backups angefertigt
haben, brauchen Sie sich um die Software keine Sorgen zu
machen.Falls die Hardware beschädigt wurde, ersetzen Sie zuerst
die defekten Teile bevor Sie den Computer benutzen.Falls die Hardware funktioniert, überprüfen Sie die
Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im
Single-User-Modus (geben dazu Sie -s am
Boot-Prompt boot: ein). Überspringen Sie den
folgenden Paragrafen.Wenn Sie die Standarddisketten boot.flp
und fixit.flp verwenden, lesen Sie hier weiter.
Legen Sie die Bootdiskette boot.flp in das
erste Floppylaufwerk ein und starten Sie den Computer. Wie
üblich wird dann das originale Installationsmenü von
FreeBSD gestartet. Wählen Sie die Option
Fixit--Repair mode with CD-ROM or floppy. Legen
Sie die Diskette fixit.flp ein, wenn danach
gefragt wird. restore und die anderen Programme,
die Sie benötigen, befinden sich dann in
/mnt2/rescue
(/mnt2/stand vor
&os; 5.2).Stellen Sie die Dateisysteme nacheinander, getrennt von
einander, wieder her.mountRoot-PartitionbsdlabelnewfsVersuchen Sie die Root-Partition Ihrer ersten Festplatte
einzuhängen (z.B. mit mount /dev/sd0a
/mnt). Wenn das Bsdlabel beschädigt wurde,
benutzen Sie bsdlabel um die Platte
neu zu partitionieren und zu benennen und zwar so, dass die
Festplatte mit dem Label übereinstimmt, das Sie
ausgedruckt und aufbewahrt haben.Verwenden Sie newfs um neue Dateisysteme
auf den
Partitionen anzulegen. Hängen Sie nun die Root-Partition der
Festplatte mit Schreibzugriff ein (mit mount -u -o rw
/mnt). Benutzen Sie Ihr Backup-Programm um die Daten
für das jeweilige Dateisystem aus den Backup-Bändern
wieder her zu stellen (z.B. durch restore vrf
/dev/sta). Hängen Sie das Dateisystem wieder aus
(z.B. durch umount /mnt). Wiederholen Sie diesen
Ablauf für jedes betroffene Dateisystem.Sobald Ihr System wieder läuft, machen Sie gleich wieder
ein vollständiges Backup auf neue Bänder. Denn die
Ursache für den Absturz oder den Datenverlust kann wieder
zuschlagen. Eine weitere Stunde, die Sie jetzt noch
dranhängen, kann Ihnen später ein weiteres Missgeschick
ersparen.* Ich habe mich nicht auf Missgeschicke vorbereitet - was
nun?
]]>
MarcFonvieilleVerbessert und neu strukturiert von Netzwerk-, speicher- und dateibasierte DateisystemeLaufwerkevirtuelleNeben Laufwerken, die sich physikalisch im Rechner befinden
wie Floppylaufwerke, CDs, Festplatten usw., kann FreeBSD auch
mit anderen Laufwerken, den virtuellen Laufwerken,
umgehen.NFSCodaLaufwerkespeicherbasierteLaufwerkeRAM-DisksDazu zählen Netzwerkdateisysteme wie
Network Filesystem und Coda,
speicher- und dateibasierte Dateisysteme.Abhängig von der verwendeten FreeBSD Version werden
speicher- und dateibasierte Dateisysteme mit unterschiedlichen
Werkzeugen angelegt.Gerätedateien werden unter &os; automatisch
von &man.devfs.5; angelegt.Dateibasierte Laufwerke unter FreeBSDLaufwerkedateibasierteUnter FreeBSD werden virtuelle Laufwerke
(&man.md.4;) mit &man.mdconfig.8; erzeugt. Dazu muss das Modul
&man.md.4; geladen sein oder das entsprechende Gerät in der
Kernelkonfiguration aktiviert sein:device mdMit &man.mdconfig.8; können drei verschiedene virtuelle
Laufwerke angelegt werden: speicherbasierte Laufwerke, deren
Speicher von &man.malloc.9; zur Verfügung gestellt wird, oder
dateibasierte Laufwerke, deren Speicher von einer Datei oder dem
Swap-Bereich zur Verfügung gestellt wird. Eine mögliche
Anwendung ist das Einhängen von Dateien, die Abbilder von
CD-ROMs oder Floppies enthalten.Das Abbild eines Dateisystems wird wie folgt
eingehangen:Einhängen eines existierenden Abbildes unter
FreeBSD&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0/mntEin neues Dateisystem-Abbild erstellen Sie mit
&man.mdconfig.8; wie folgt:Erstellen eines dateibasierten Laufwerks mit
mdconfig&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f newimage -u 0
&prompt.root; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mntWenn Sie keine Gerätenummer mit dem Schalter
angeben, wird von &man.md.4; automatisch eine
ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät
wird auf der Standardausgabe ausgegeben (zum Beispiel
md4). Weitere Informationen entnehmen Sie
bitte der Hilfeseite &man.mdconfig.8;.Das Werkzeug &man.mdconfig.8; ist sehr nützlich, doch muss
man viele Kommandos absetzen, um ein dateibasiertes Dateisystem zu
erstellen. FreeBSD enthält das Werkzeug &man.mdmfs.8;, das
die notwendigen Schritte in einem Befehl zusammenfasst. Es
konfiguriert mit &man.mdconfig.8; ein &man.md.4;-Laufwerk, erstellt
darauf mit &man.newfs.8; ein Dateisystem und hängt es
anschließend mit &man.mount.8; ein. Das virtuelle Laufwerk
aus dem obigen Beispiel kann somit einfach mit den nachstehenden
Befehlen erstellt werden:Mit mdmfs ein dateibasiertes
Dateisystem erstellen&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F newimage -s 5m md0/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4718 4 4338 0% /mntWenn sie die Option ohne Gerätenummer
verwenden, wählt &man.md.4; automatisch ein ungenutztes
Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der
Hilfeseite &man.mdmfs.8;.Speicherbasierte Laufwerke unter FreeBSDLaufwerkespeicherbasierteVerwenden Sie ein
speicherbasiertes Dateisystem, sollten Sie die Option
swap backing aktivieren. Setzen Sie diese
Option, heißt dies allerdings nicht, dass das
speicherbasierte Laufwerk automatisch auf ihre Festplatte
ausgelagert wird, vielmehr wird der Speicherplatz danach
aus einem Speicherpool angefordert, der bei Bedarf auf
die Platte ausgelagert werden kann. Zusätzlich ist
es möglich, &man.malloc.9;-gestützte
speicherbasierte Laufwerke zu erstellen. Das Anlegen solcher
Laufwerke kann allerdings zu einer System-Panic führen,
wenn der Kernel danach über zu wenig Speicher
verfügt.Erstellen eines speicherbasierten Laufwerks mit
mdconfig&prompt.root; mdconfig -a -t swap -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mntErstellen eines speicherbasierten Laufwerks mit
mdmfs&prompt.root; mdmfs -s 5m md2/mnt
&prompt.root; df /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntVirtuelle Laufwerke freigebenLaufwerkeFreigabe von virtuellen LaufwerkenWenn ein virtuelles Laufwerk nicht mehr gebraucht wird, sollten
Sie dem System die belegten Ressourcen zurückgeben.
Hängen Sie dazu zuerst das Dateisystem ab und geben Sie dann
die benutzten Ressourcen mit &man.mdconfig.8; frei.Alle von /dev/md4 belegten Ressourcen
werden mit dem nachstehenden Kommando freigegeben:&prompt.root; mdconfig -d -u 4Eingerichtete &man.md.4;-Geräte werden mit dem Befehl
mdconfig -l angezeigt.TomRhodesBeigetragen von Schnappschüsse von DateisystemenSchnappschüssevon DateisystemenZusammen mit Soft Updates
bietet FreeBSD eine neue Funktion: Schnappschüsse von
Dateisystemen.Schnappschüsse sind Dateien, die ein Abbild eines
Dateisystems enthalten und müssen auf dem jeweiligen
Dateisystem erstellt werden. Pro Dateisystem darf es maximal
20 Schnappschüsse, die im Superblock vermerkt werden, geben.
Schnappschüsse bleiben erhalten, wenn das Dateisystem abgehangen,
neu eingehangen oder das System neu gestartet wird. Wenn Sie einen
Schnappschuss nicht mehr benötigen, können Sie ihn
mit &man.rm.1; löschen. Es ist egal, in welcher Reihenfolge
Schnappschüsse gelöscht werden. Es kann allerdings
vorkommen, dass nicht der gesamte Speicherplatz
wieder freigegeben wird, da ein anderer
Schnappschuss einen Teil der entfernten Blöcke für sich
beanspruchen kann.Das unveränderliche -Dateiflag
wird nach der Erstellung des Snaphshots von &man.mksnap.ffs.8;
gesetzt. Durch die Verwendung von &man.unlink.1; ist es allerdings
möglich, einen Schnappschuss zu löschen.Schnappschüsse werden mit &man.mount.8; erstellt. Das
folgende Kommando legt einen Schnappschuss von
/var in /var/snapshot/snap
ab:&prompt.root; mount -u -o snapshot /var/snapshot/snap /varDen Schnappschuss können Sie auch mit &man.mksnap.ffs.8;
erstellen:&prompt.root; mksnap_ffs /var /var/snapshot/snapUm einen Schnappschuss auf Ihrem System zu finden, verwenden
Sie &man.find.1;:&prompt.root; find /var -flags snapshotNachdem ein Schnappschuss erstellt wurde, können Sie
ihn für verschiedene Zwecke benutzen:Sie können den Schnappschuss für die
Datensicherung benutzen und ihn auf eine CD oder ein Band
schreiben.Sie können den Schnappschuss mit &man.fsck.8;
manuell prüfen. Wenn das Dateisystem zum Zeitpunkt der
Erstellung des Schnappschusses in Ordnung war, sollte
&man.fsck.8; immer erfolgreich durchlaufen. Der
Hintergrund-Prozess &man.fsck.8; hat im Übrigen genau
diese Aufgabe.Sie können den Schnappschuss mit &man.dump.8;
sichern. Sie erhalten dann eine konsistente Sicherung des
Dateisystems zu dem Zeitpunkt, der durch den Zeitstempel des
Schnappschusses gegeben ist. Der Schalter
von &man.dump.8; erstellt für die Sicherung einen
Schnappschuss und entfernt diesen am Ende der Sicherung
wieder.Sie können einen Schnappschuss in den
Verzeichnisbaum einhängen und sich dann den Zustand des
Dateisystems zu dem Zeitpunkt ansehen, an dem der
Schnappschuss erstellt wurde. Der folgende Befehl
hängt den Schnappschuss
/var/snapshot/snap ein:&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
&prompt.root; mount -r /dev/md4 /mntSie können sich nun den eingefrorenen Stand des
/var Dateisystems unterhalb von
/mnt ansehen. Mit Ausnahme der früheren
Schnappschüsse, die als leere Dateien auftauchen, wird zu
Beginn alles so aussehen, wie zum Zeitpunkt der Erstellung des
Schnappschusses. Wenn Sie den Schnappschuss nicht mehr
benötigen, können Sie ihn, wie nachfolgend gezeigt,
abhängen:&prompt.root; umount /mnt
&prompt.root; mdconfig -d -u 4Weitere Informationen über Soft Updates und
Schnappschüsse von Dateisystemen sowie technische Artikel finden
Sie auf der Webseite
von Marshall Kirk McKusick.Dateisystem-QuotasAccountingPlattenplatzDisk QuotasQuotas sind eine optionale Funktion des Betriebssystems,
die es Ihnen erlauben, den Plattenplatz und/oder die Anzahl
der Dateien eines Benutzers oder der Mitglieder einer Gruppe,
auf Dateisystemebene zu beschränken. Oft wird dies
auf Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da
es dort erwünscht ist, die Ressourcen, die ein Benutzer oder
eine Gruppe von Benutzern belegen können, zu limitieren. Das
verhindert, dass ein Benutzer oder eine Gruppe von Benutzern
den ganzen verfügbaren Plattenplatz belegt.Konfiguration des Systems, um Quotas zu
aktivierenBevor Quotas benutzt werden können, müssen
sie im Kernel konfiguriert werden, wozu die folgende Zeile
der Kernelkonfiguration hinzugefügt wird:options QUOTAIm gewöhnlichen GENERIC Kernel
sind Quotas nicht aktiviert, so dass Sie einen angepassten
Kernel konfigurieren und bauen müssen, um Quotas zu
benutzen. Weitere Informationen
finden Sie in .Durch Hinzufügen der folgenden Zeile in
/etc/rc.conf wird das Quota-System
aktiviert:enable_quotas="YES"Disk QuotasüberprüfenUm den Start des Quota-Systems zu beeinflussen, steht
eine weitere Variable zur Verfügung. Normalerweise
wird beim Booten die Integrität der Quotas auf
allen Dateisystemen mit &man.quotacheck.8;
überprüft. &man.quotacheck.8; stellt
sicher, dass die Quota-Datenbank mit den Daten auf
einem Dateisystem übereinstimmt. Dies ist allerdings
ein sehr zeitraubender Prozess, der die Zeit, die
das System zum Booten braucht, signifikant beeinflusst.
Eine Variable in /etc/rc.config erlaubt es Ihnen,
diesen Schritt zu überspringen:check_quotas="NO"Schließlich müssen Sie noch in
/etc/fstab die Plattenquotas auf
Dateisystemebene aktivieren. Dort können Sie
für alle Dateisysteme Quotas für Benutzer, Gruppen
oder für beide aktivieren.Um Quotas pro Benutzer für ein Dateisystem zu
aktivieren, geben Sie für dieses Dateisystem die
Option im Feld Optionen von
/etc/fstab an. Beispiel:/dev/da1s2g /home ufs rw,userquota 1 2Um Quotas für Gruppen einzurichten, verwenden
Sie anstelle von
. Um Quotas für Benutzer
und Gruppen einzurichten, ändern Sie den Eintrag
wie folgt ab:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Die Quotas werden jeweils im Rootverzeichnis des Dateisystems
unter dem Namen quota.user für
Benutzer-Quotas und quota.group für
Gruppen-Quotas abgelegt. Obwohl &man.fstab.5; beschreibt,
dass diese Dateien an anderer Stelle gespeichert werden
können, wird das nicht empfohlen, da es den Anschein hat,
dass die verschiedenen Quota-Utilities das nicht richtig
unterstützen.Jetzt sollten Sie Ihr System mit dem neuen Kernel booten.
/etc/rc wird dann automatisch die
richtigen Kommandos aufrufen, die die Quota-Dateien für
alle Quotas, die Sie in /etc/fstab
definiert haben, anlegen. Deshalb müssen vorher auch keine
leeren Quota-Dateien angelegt werden.Normalerweise brauchen Sie die Kommandos
&man.quotacheck.8;, &man.quotaon.8; oder
&man.quotaoff.8; nicht händisch aufzurufen,
obwohl Sie vielleicht die entsprechenden Seiten im
Manual lesen sollten, um sich mit ihnen vertraut
zu machen.Setzen von Quota-LimitsDisk QuotasLimitsNachdem Sie Quotas in Ihrem System aktiviert haben, sollten
Sie überprüfen, dass Sie auch tatsächlich
aktiviert sind. Führen Sie dazu einfach den folgenden
Befehl aus:&prompt.root; quota -vFür jedes Dateisystem, auf dem Quotas aktiviert sind,
sollten Sie eine Zeile mit der Plattenauslastung und den
aktuellen Quota-Limits sehen.Mit &man.edquota.8; können Sie nun
Quota-Limits setzen.Sie haben mehrere Möglichkeiten, die Limits für
den Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen
kann, oder die Anzahl der Dateien, die angelegt werden dürfen,
festzulegen. Die Limits können auf dem Plattenplatz
(Block-Quotas) oder der Anzahl der Dateien (Inode-Quotas) oder
einer Kombination von beiden basieren.
Jedes dieser Limits wird weiterhin in zwei Kategorien geteilt:
Hardlimits und Softlimits.HardlimitEin Hardlimit kann nicht überschritten werden.
Hat der Benutzer einmal ein Hardlimit erreicht, so kann er
auf dem betreffenden Dateisystem keinen weiteren Platz mehr
beanspruchen. Hat ein Benutzer beispielsweise ein Hardlimit
von 500 Kilobytes auf einem Dateisystem und benutzt davon
490 Kilobyte, so kann er nur noch 10 weitere Kilobytes
beanspruchen. Der Versuch, weitere 11 Kilobytes zu beanspruchen,
wird fehlschlagen.SoftlimitIm Gegensatz dazu können Softlimits für eine
befristete Zeit überschritten werden. Diese Frist
beträgt in der Grundeinstellung
eine Woche. Hat der Benutzer das Softlimit über die
Frist hinaus überschritten, so wird das Softlimit in
ein Hardlimit umgewandelt und der Benutzer kann
keinen weiteren Platz mehr beanspruchen. Wenn er einmal
das Softlimit unterschreitet, wird die Frist wieder
zurückgesetzt.Das folgende Beispiel zeigt die Benutzung von
&man.edquota.8;. Wenn &man.edquota.8; aufgerufen wird,
wird der Editor gestartet, der durch EDITOR
gegeben ist oder vi falls
EDITOR nicht gesetzt ist. In dem Editor
können Sie die Limits eingeben.&prompt.root; edquota -u testQuotas for user test:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Für jedes Dateisystem, auf dem Quotas aktiv sind,
sehen Sie zwei Zeilen, eine für die Block-Quotas und die
andere für die Inode-Quotas. Um ein Limit zu modifizieren,
ändern Sie einfach den angezeigten Wert. Um beispielsweise
das Blocklimit dieses Benutzers von einem Softlimit von 50
und einem Hardlimit von 75 auf ein Softlimit von 500 und
ein Hardlimit von 600 zu erhöhen, ändern Sie
die Zeile/usr: kbytes in use: 65, limits (soft = 50, hard = 75)zu:/usr: kbytes in use: 65, limits (soft = 500, hard = 600)Die neuen Limits sind wirksam, wenn Sie den
Editor verlassen.Manchmal ist es erwünscht, die Limits für einen
Bereich von UIDs zu setzen. Dies kann mit der
Option von &man.edquota.8; bewerkstelligt werden.
Weisen Sie dazu die Limits einem Benutzer zu und rufen danach
edquota -p protouser startuid-enduid auf.
Besitzt beispielsweise der Benutzer test
die gewünschten Limits, können diese mit
dem folgenden Kommando für die UIDs 10.000 bis 19.999
dupliziert werden:&prompt.root; edquota -p test 10000-19999Weitere Informationen erhalten Sie in &man.edquota.8;.Überprüfen von Quota-Limits und PlattennutzungDisk QuotasüberprüfenSie können &man.quota.1; oder
&man.repquota.8; benutzen, um Quota-Limits
und Plattennutzung zu überprüfen. Um die Limits
oder die Plattennutzung individueller Benutzer und Gruppen
zu überprüfen, kann &man.quota.1;
benutzt werden. Ein Benutzer kann nur die eigenen Quotas und die
Quotas der Gruppe, der er angehört untersuchen. Nur der
Superuser darf sich alle Limits ansehen.
Mit &man.repquota.8; erhalten Sie eine Zusammenfassung
von allen Limits und der Plattenausnutzung für alle
Dateisysteme, auf denen Quotas aktiv sind.Das folgende Beispiel zeigt die Ausgabe von
quota -v für einen Benutzer, der
Quota-Limits auf zwei Dateisystemen besitzt:Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60Disk QuotasFristIm Dateisystem /usr liegt der Benutzer
momentan 15 Kilobytes über dem Softlimit von
50 Kilobytes und hat noch 5 Tage seiner Frist übrig.
Der Stern * zeigt an, dass der
Benutzer sein Limit überschritten hat.In der Ausgabe von &man.quota.1; werden Dateisysteme,
auf denen ein Benutzer keinen Platz verbraucht, nicht angezeigt,
auch wenn diesem Quotas zugewiesen wurden. Mit
werden diese Dateisysteme, wie /usr/var
im obigen Beispiel, angezeigt.Quotas über NFSNFSQuotas werden von dem Quota-Subsystem auf dem NFS Server
erzwungen. Der &man.rpc.rquotad.8; Dæmon stellt
&man.quota.1; die Quota Informationen auf dem NFS Client
zur Verfügung, so dass Benutzer auf diesen
Systemen ihre Quotas abfragen können.Aktivieren Sie rpc.rquotad in
/etc/inetd.conf wie folgt:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadAnschließend starten Sie inetd
neu:
- &prompt.root; kill -HUP `cat /var/run/inetd.pid`
+ &prompt.root; /etc/rc.d/inetd restartLuckyGreenBeigetragen von shamrock@cypherpunks.toPartitionen verschlüsselnPartitionenverschlüsselnFreeBSD bietet ausgezeichnete Möglichkeiten, Daten vor
unberechtigten Zugriffen zu schützen. Wenn das
Betriebssystem läuft, schützen Zugriffsrechte und
vorgeschriebene Zugriffskontrollen (MAC) (siehe )
die Daten. Die Zugriffskontrollen des Betriebssystems
schützen allerdings nicht vor einem Angreifer, der
Zugriff auf den Rechner hat. Der Angreifer
kann eine Festplatte einfach in ein anderes System einbauen
und dort die Daten analysieren.Die für &os; verfügbaren kryptografischen
Subsysteme GEOM Based Disk Encryption (gbde)
und geli sind in der Lage, Daten auf
Dateisystemen auch vor hoch motivierten Angreifern zu
schützen, die über erhebliche Mittel verfügen.
Dieser Schutz ist unabhängig von der Art und Weise, durch
die ein Angreifer Zugang zu einer Festplatte oder zu einem
Rechner erlangt hat. Im Gegensatz zu schwerfälligen
Systemen, die einzelne Dateien verschlüsseln,
verschlüsseln gbde und
geli transparent ganze Dateisysteme. Auf der
Festplatte werden dabei keine Daten im Klartext gespeichert.Plattenverschlüsselung mit
gbdeWechseln sie zu rootSie benötigen Superuser-Rechte, um
gbde einzurichten.&prompt.user; su -
Password:Aktivieren Sie &man.gbde.4; in
der KernelkonfigurationsdateiFügen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:options GEOM_BDEÜbersetzen und installieren Sie den FreeBSD-Kernel
wie in beschrieben.Starten sie das System neu, um den neuen Kernel
zu benutzen.Alternativ zur Neukompilierung des Kernels können
Sie auch kldload verwenden, um das
Kernelmodul &man.gbde.4; zu laden:&prompt.root; kldload geom_bdeEinrichten eines verschlüsselten DateisystemsDas folgende Beispiel beschreibt, wie ein Dateisystem
auf einer neuen Festplatte verschlüsselt wird. Das
Dateisystem wird in /private eingehangen.
Mit gbde könnten auch
/home und /var/mail
verschlüsselt werden. Die dazu nötigen Schritte
können allerdings in dieser Einführung
nicht behandelt werden.Installieren der FestplatteInstallieren Sie die Festplatte wie in
beschrieben. Im Beispiel
verwenden wir die Partition /dev/ad4s1c.
Die Gerätedateien
/dev/ad0s1*
sind Standard-Partitionen des FreeBSD-Systems.&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4Verzeichnis für gbde-Lock-Dateien anlegen&prompt.root; mkdir /etc/gbdeDie Lock-Dateien sind für den Zugriff von
gbde auf verschlüsselte
Partitionen notwendig. Ohne die Lock-Dateien können
die Daten nur mit erheblichem manuellen Aufwand wieder
entschlüsselt werden (dies wird auch von der Software
nicht unterstützt). Jede verschlüsselte
Partition benötigt eine gesonderte Lock-Datei.Vorbereiten der gbde-PartitionEine von gbde benutzte
Partition muss einmalig vorbereitet werden:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock&man.gbde.8; öffnet eine Vorlage in Ihrem Editor,
in der Sie verschiedene Optionen einstellen können.
Setzen Sie sector_size auf
2048, wenn Sie
UFS1 oder UFS2 benutzen.$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]
&man.gbde.8; fragt dann zweimal eine Passphrase
zum Schutz der Daten ab. Die Passphrase muss beides
Mal gleich eingegeben werden. Die Sicherheit der
Daten hängt alleine von der Qualität der
gewählten Passphrase ab.
Die Auswahl einer sicheren und leicht zu merkenden
Passphrase wird auf der Webseite Diceware
Passphrase beschrieben.Mit gbde init wurde im Beispiel
auch die Lock-Datei /etc/gbde/ad4s1c.lock
angelegt. gbde-Lockdateien
müssen die Dateiendung .lock aufweisen,
damit sie von /etc/rc.d/gbde, dem
Startskript von gbde, erkannt
werden.Sichern Sie die Lock-Dateien von
gbde immer zusammen mit den
verschlüsselten Dateisystemen. Ein entschlossener
Angreifer kann die Daten vielleicht auch ohne die
Lock-Datei entschlüsseln. Ohne die Lock-Datei
können Sie allerdings nicht auf die
verschlüsselten Daten zugreifen. Dies ist nur noch
mit erheblichem manuellen Aufwand möglich, der
weder von &man.gbde.8; noch seinem Entwickler
unterstützt wird.Einbinden der verschlüsselten Partition
in den Kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lockDas Kommando fragt die Passphrase ab, die Sie
beim Vorbereiten der Partition eingegeben haben. Das
neue Gerät erscheint danach als
/dev/device_name.bde im
Verzeichnis /dev:&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeDateisystem auf dem verschlüsselten Gerät
anlegenWenn der Kernel die verschlüsselte Partition
kennt, können Sie ein Dateisystem auf ihr anlegen.
Benutzen Sie dazu den Befehl &man.newfs.8;. Da ein
Dateisystem vom Typ UFS2 sehr viel schneller als eins
vom Typ UFS1 angelegt wird, empfehlen wir Ihnen, die
Option zu benutzen.&prompt.root; newfs -U -O2 /dev/ad4s1c.bde&man.newfs.8; muss auf einer dem Kernel bekannten
gbde-Partition (einem
Gerät mit dem Namen
*.bde
laufen.Einhängen der verschlüsselten PartitionLegen Sie einen Mountpunkt für das
verschlüsselte Dateisystem an:&prompt.root; mkdir /privateHängen Sie das verschlüsselte Dateisystem
ein:&prompt.root; mount /dev/ad4s1c.bde /privateÜberprüfen des verschlüsselten
DateisystemDas verschlüsselte Dateisystem sollte jetzt
von &man.df.1; erkannt werden und benutzt werden
können.&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateEinhängen eines existierenden verschlüsselten
DateisystemsNach jedem Neustart müssen verschlüsselte
Dateisysteme dem Kernel wieder bekannt gemacht werden,
auf Fehler überprüft werden und eingehangen
werden. Die dazu nötigen Befehle müssen als
root durchgeführt werden.gbde-Partition im Kernel bekannt geben&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lockDas Kommando fragt nach der Passphrase, die Sie
beim Vorbereiten der verschlüsselten
gbde-Partition festgelegt
haben.Prüfen des DateisystemsDas verschlüsselte Dateisystem kann noch nicht
automatisch über /etc/fstab
eingehangen werden. Daher muss es vor dem Einhängen
mit &man.fsck.8; geprüft werden:&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeEinhängen des verschlüsselten
Dateisystems&prompt.root; mount /dev/ad4s1c.bde /privateDas verschlüsselte Dateisystem steht danach
zur Verfügung.Verschlüsselte Dateisysteme automatisch
einhängenMit einem Skript können verschlüsselte
Dateisysteme automatisch bekannt gegeben, geprüft
und eingehangen werden. Wir raten Ihnen allerdings
aus Sicherheitsgründen davon ab. Starten Sie das
Skript manuell an der Konsole oder in einer
&man.ssh.1;-Sitzung.Zu diesem Zweck existiert ein
rc.d-Skript, an das über
Einträge in der Datei &man.rc.conf.5;
Argumente übergeben werden können. Dazu ein
Beispiel:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"
gbde_lockdir="/etc/gbde"Durch diese Argumente muss beim Systemstart die
gbde-Passphrase eingegeben werden.
Erst nach Eingabe der korrekten Passphrase wird die
gbde-verschlüsselte
Partition automatisch in den Verzeichnisbaum
eingehängt. Dieses Vorgehen ist insbesondere dann
nützlich, wenn Sie gbde auf
einem Notebook einsetzen wollen.Kryptografische Methoden von gbde&man.gbde.8; benutzt den 128-Bit AES im CBC-Modus,
um die Daten eines Sektors zu verschlüsseln. Jeder
Sektor einer Festplatte wird mit einem unterschiedlichen
AES-Schlüssel verschlüsselt. Mehr Informationen,
unter anderem wie die Schlüssel für einen Sektor
aus der gegebenen Passphrase ermittelt werden, erhalten
Sie in &man.gbde.4;.Kompatibilität&man.sysinstall.8; kann nicht mit verschlüsselten
gbde-Geräten umgehen. Vor
dem Start von &man.sysinstall.8; sind alle
*.bde-Geräte
zu deaktivieren, da &man.sysinstall.8; sonst bei der
Gerätesuche abstürzt. Das im Beispiel verwendete
Gerät wird mit dem folgenden Befehl deaktiviert:&prompt.root; gbde detach /dev/ad4s1cSie können gbde
nicht zusammen mit vinum
benutzen, da &man.vinum.4; das &man.geom.4;-Subsystem
nicht benutzt.DanielGerzoBeigetragen von Plattenverschlüsselung mit geliMit &os; 6.0 wurde eine neue kryptografische GEOM-Klasse
eingeführt - geli. Diese wird derzeit
von &a.pjd; weiterentwickelt. geli
unterscheidet sich von gbde durch
unterschiedliche Fähigkeiten und einen unterschiedlichen
Ansatz für die Verschlüsselung von Festplatten.Die wichtigsten Merkmale von &man.geli.8; sind:Der Einsatz des &man.crypto.9;-Frameworks –
verfügt das System über kryptografische Hardware,
wird diese von geli automatisch
verwendet.Die Unterstützung verschiedener kryptografischer
Algorithmen (derzeit AES, Blowfish, sowie 3DES).Die Möglichkeit, die root-Partition zu
verschlüsseln. Um auf die verschlüsselte
root-Partition zugreifen zu können, muss beim
Systemstart die Passphrase eingegeben werden.geli erlaubt den Einsatz von zwei
voneinander unabhängigen Schlüsseln (etwa einem
privaten Schlüssel und einem
Unternehmens-Schlüssel).geli ist durch einfache
Sektor-zu-Sektor-Verschlüsselung sehr schnell.Die Möglichkeit, Master-Keys zu sichern und
wiederherzustellen. Wenn ein Benutzer seinen Schlüssel
zerstört, kann er über seinen zuvor gesicherten
Schlüssel wieder auf seine Daten zugreifen.geli erlaubt es, Platten mit
einem zufälligen Einmal-Schlüssel einzusetzen,
was insbesondere für Swap-Partitionen und
temporäre Dateisysteme interessant ist.Weitere Informationen zu den Fähigkeiten von
geli finden Sie in &man.geli.8;.Die folgenden Schritte beschreiben, wie Sie
geli im &os;-Kernel aktivieren und einen
geli-Verschlüsselungs-Provider
anlegen können.Voraussetzung für die Nutzung von
geli ist der Einsatz von &os; 6.0-RELEASE
oder neuer. Da Sie Ihren Kernel anpassen müssen,
benötigen Sie außerdem
root-Privilegien.Aufnahme der geli-Unterstützung
in Ihre KernelkonfigurationsdateiFügen Sie die folgenden Zeilen in Ihre
Kernelkonfigurationsdatei ein:options GEOM_ELI
device cryptoBauen und installieren Sie Ihren neuen Kernel wie in
beschrieben.Alternativ können Sie aber auch das
geli-Kernelmodul beim Systemstart laden.
Dazu fügen Sie die folgende Zeile in
/boot/loader.conf ein:geom_eli_load="YES"Ab sofort wird &man.geli.8; vom Kernel
unterstützt.Erzeugen des Master-KeysDas folgende Beispiel beschreibt, wie Sie eine
Schlüsseldatei erzeugen, die als Teil des
Master-Keys für den Verschlüsselungs-Provider
verwendet wird, der unter /private in den
+ class="directory">/private in den
Verzeichnisbaum eingehängt (gemountet)
wird. Diese Schlüsseldatei liefert zufällige
Daten, die für die Verschlüsselung des
Master-Keys benötigt werden. Zusätzlich wird
der Master-Key durch eine Passphrase geschützt. Die
Sektorgröße des Providers beträgt 4 KB.
Außerdem wird beschrieben, wie Sie einen
geli-Provider aktivieren, ein vom ihm
verwaltetes Dateisystem erzeugen, es mounten, mit ihm
arbeiten und wie Sie es schließlich wieder unmounten
und den Provider deaktivieren.Um eine bessere Leistung zu erzielen, sollten Sie eine
größere Sektorgröße (beispielsweise
4 KB) verwenden.Der Master-Key wird durch eine Passphrase sowie die
Daten der Schlüsseldatei (die von
/dev/random stammen) geschützt.
Die Sektorgröße von
/dev/da2.eli (das als Provider
bezeichnet wird) beträgt 4 KB.&prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1
&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:Es ist nicht zwingend nötig, sowohl eine Passphrase
als auch eine Schlüsseldatei zu verwenden. Die
einzelnen Methoden können auch unabhängig
voneinander eingesetzt werden.Wird für die Schlüsseldatei der Wert
- angegeben, wird dafür die
Standardeingabe verwendet. Das folgende Beispiel zeigt,
dass Sie auch mehr als eine Schlüsseldatei verwenden
können.&prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2Aktivieren des Providers mit dem erzeugten
Schlüssel&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:Dadurch wird die (Normaltext-)Gerätedatei
/dev/da2.eli
angelegt.&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eliDas neue Dateisystem erzeugen&prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m
&prompt.root; newfs /dev/da2.eli
&prompt.root; mount /dev/da2.eli /privateDas verschlüsselte Dateisystem wird nun von
&man.df.1; angezeigt und kann ab sofort eingesetzt werden.&prompt.root; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /privateDas Dateisystem unmounten und den Provider deaktivierenWenn Sie nicht mehr mit dem verschlüsselten
Dateisystem arbeiten und die unter /private eingehängte
+ class="directory">/private eingehängte
Partition daher nicht mehr benötigen, sollten
Sie diese unmounten und den
geli-Verschlüsselungs-Provider
wieder deaktivieren.&prompt.root; umount /private
&prompt.root; geli detach da2.eliWeitere Informationen zum Einsatz von geli
finden Sie in &man.geli.8;.Der Einsatz des geli-
rc.d-Skriptsgeli verfügt über ein
rc.d-Skript,
das den Einsatz von geli
deutlich vereinfacht. Es folgt nun ein Beispiel, in dem
geli über die Datei
&man.rc.conf.5; konfiguriert wird:geli_devices="da2"
geli_da2_flags="-p -k /root/da2.key"Durch diese Einträge wird
/dev/da2 als
geli-Provider festgelegt. Der Master-Key
befindet sich in /root/da2.key. Beim
Aktivieren des geli-Providers wird keine
Passphrase abgefragt (beachten Sie, dass dies nur dann
möglich ist, wenn Sie geli mit dem
Parameter initialisieren). Wird das
System heruntergefahren, wird der
geli-Provider zuvor deaktiviert.Weitere Informationen zur Konfiguration der
rc.d-Skripten
finden Sie im Abschnitt rc.d des Handbuchs.ChristianBrüfferGeschrieben von Den Auslagerungsspeicher verschlüsselnAuslagerungsspeicherverschlüsselnDie Verschlüsselung des Auslagerungsspeichers ist unter &os;
einfach einzurichten und seit &os; 5.3-RELEASE verfügbar.
Je nach dem, welche &os;-Version Sie einsetzen, können
Konfiguration und mögliche Optionen allerdings unterschiedlich
sein. Seit &os; 6.0-RELEASE können Sie entweder das
&man.gbde.8;- oder das &man.geli.8;-Verschlüsselungs-Subsystem
einsetzen. Verwenden Sie eine ältere &os;-Version, sind Sie
hingegen auf &man.gbde.8; beschränkt. Beide Subsysteme
werden über das rc.d-Skript
encswap gestartet.Der letzte Abschnitt,
Partitionen verschlüsseln, enthält eine kurze
Beschreibung der verschiedenen
Verschlüsselungs-Subsysteme.Warum sollte der Auslagerungsspeicher verschlüsselt
werden?Wie die Verschlüsselung von Plattenpartitionen dient
auch die Verschlüsselung des Auslagerungsspeichers dem
Schutz sensitiver Informationen. Stellen Sie sich etwa eine
Anwendung vor, die ein Passwort erfordert. Solange dieses
Passwort im Hauptspeicher verbleibt, ist alles in
Ordnung. Beginnt Ihr Betriebssystem allerdings, Daten auf
die Festplatte auszulagern, um im Hauptspeicher Platz für
andere Anwendungen zu schaffen, kann es passieren, dass Ihr
Passwort im Klartext in den Auslagerungsspeicher
geschrieben wird, was es einem potentiellen Angreifer leicht
macht, Ihr Passwort herauszufinden. Die Verschlüsselung
Ihres Auslagerungsspeichers kann dieses Problem lösen.VorbereitungenFür die weiteren Ausführungen dieses Abschnitts
stellt ad0s1b die Swap-Partition
dar.Noch ist Ihr Auslagerungsspeicher nicht verschlüsselt.
Es könnte allerdings sein, dass bereits Passwörter
oder andere sensitive Daten als Klartext im Auslagerungsspeicher
vorhanden sind. Daher sollten Sie den Auslagerungsspeicher
komplett mit zufällig generierten Zeichen
überschreiben, bevor Sie ihn verschlüsseln:&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1mDen Auslagerungsspeicher mit &man.gbde.8;
verschlüsselnVerwenden Sie &os; 6.0-RELEASE oder neuer, sollten Sie
in /etc/fstab das Suffix
.bde an den Gerätenamen der
Swap-Partition anhängen:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0
Für &os;-Versionen vor 6.0-RELEASE benötigen Sie
zusätzlich folgende Zeile in
/etc/rc.conf:gbde_swap_enable="YES"Den Auslagerungsspeicher mit &man.geli.8;
verschlüsselnAlternativ können Sie Ihren Auslagerungsspeicher auch
mit &man.geli.8; verschlüsseln. Die Vorgehensweise ist
dabei ähnlich. Allerdings hängen Sie bei der Verwendung
von &man.geli.8; in /etc/fstab das Suffix
.eli an den Gerätenamen der
Swap-Partition an:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0
In der Voreinstellung verschlüsselt &man.geli.8; den
Auslagerungsspeicher mit dem AES-Algorithmus
und einer Schlüssellänge von 256 Bit.Es ist möglich, diese Optionen durch das Setzen der
geli_swap_flags-Option in
/etc/rc.conf anzupassen. Die folgende
Zeile weist das rc.d-Skript encswap an,
&man.geli.8;-Swap-Partitionen mit dem Blowfish-Algorithmus und
einer Schlüssellänge von 128 Bit zu
verschlüsseln. Zusätzlich wird die
Sektorgröße auf 4 Kilobyte gesetzt und die Option
detach on last close aktiviert:geli_swap_flags="-e blowfish -l 128 -s 4096 -d"Auf Systemen vor &os; 6.2-RELEASE verwenden Sie hingegen
die folgende Zeile:geli_swap_flags="-a blowfish -l 128 -s 4096 -d"Eine Auflistung möglicher Optionen für den Befehl
onetime finden Sie in der Manualpage zu
&man.geli.8;.Die korrekte Funktion testenNachdem Sie Ihr System neu gestartet haben, können Sie
die korrekte Funktion Ihres verschlüsselten
Auslagerungsspeichers prüfen, indem Sie sich die Ausgabe
von swapinfo ansehen.Wenn Sie &man.gbde.8; einsetzen, erhalten Sie eine
Meldung ähnlich der folgenden:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%
Wenn Sie &man.geli.8; einsetzen, erhalten Sie hingegen
ein Ausgabe ähnlich der folgenden:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%
diff --git a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
index 721fe2cd95..5841a83ffa 100644
--- a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
@@ -1,5313 +1,5414 @@
MurrayStokelyÜberarbeitet von JohannKoisÜbersetzt von NetzwerkserverÜbersichtDieses Kapitel beschreibt einige der häufiger verwendeten
Netzwerkdienste auf &unix;-Systemen. Beschrieben werden
Installation und Konfiguration sowie Test und Wartung
verschiedener Netzwerkdienste. Zusätzlich sind im ganzen
Kapitel Beispielkonfigurationsdateien vorhanden, von denen Sie
sicherlich profitieren werden.Nachdem Sie dieses Kapitel gelesen haben, werden SieDen inetd-Daemon konfigurieren
können.Wissen, wie man ein Netzwerkdateisystem einrichtet.Einen Network Information
Server einrichten können, um damit
Benutzerkonten im Netzwerk zu verteilen.Rechner durch Nutzung von DHCP automatisch für ein
Netzwerk konfigurieren können.In der Lage sein, einen Domain Name
Server einzurichten.Den Apache HTTP-Server
konfigurieren können.Wissen, wie man einen File Transfer
Protocol (FTP)-Server einrichtet.Mit Samba einen Datei- und
Druckserver für &windows;-Clients konfigurieren
können.Unter Nutzung des NTP-Protokolls Datum und Uhrzeit
synchronisieren sowie einen Zeitserver installieren
können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut sein.Wissen, wie man zusätzliche Softwarepakete von
Drittherstellern installiert ().ChernLeeBeigetragen von Aktualisiert für &os; 6.1-RELEASE vom &os; Documentation ProjectDer inetdSuper-ServerÜberblick&man.inetd.8; wird manchmal auch als Internet
Super-Server bezeichnet, weil er Verbindungen für
mehrere Dienste verwaltet. Wenn eine Verbindung eintrifft,
bestimmt inetd, welches Programm
für die eingetroffene Verbindung zuständig ist,
aktiviert den entsprechenden Prozess und reicht den Socket an
ihn weiter (der Socket dient dabei als Standardein- und -ausgabe
sowie zur Fehlerbehandlung). Der Einsatz des
inetd-Daemons an Stelle
viele einzelner Daemonen kann auf nicht komplett ausgelasteten
Servern zu einer Verringerung der Systemlast führen.inetd wird vor allem dazu
verwendet, andere Daemonen zu aktivieren, einige Protokolle
werden aber auch direkt verwaltet. Dazu gehören
chargen,
auth, sowie
daytime.Dieser Abschnitt beschreibt die Konfiguration von
inetd durch Kommandozeilenoptionen
sowie die Konfigurationsdatei
/etc/inetd.conf.Einstellungeninetd wird durch das
&man.rc.8;-System initialisiert. Die Option
inetd_enable ist in der Voreinstellung zwar
auf NO gesetzt, sie kann aber in
Abhängigkeit von der vom Benutzer bei der Installation
gewählten Konfiguration von
sysinstall aktiviert werden.
Die Verwendung voninetd_enable="YES"oderinetd_enable="NO"in /etc/rc.conf deaktiviert oder startet
inetd beim Systemstart. Über
den Befehl&prompt.root; /etc/rc.d/inetd rcvarkönnen Sie die aktuelle Konfiguration
abfragen.Weitere Optionen können über die Option
inetd_flags an
inetd übergeben werden.KommandozeilenoptionenWie die meisten anderen Server-Daemonen lässt
sich auch inetd über
verschiedene Optionen steuern. Die vollständige Syntax
für inetd lautet:inetdDie verschiedenen Optionen können über die Option
inetd_flags der Datei
/etc/rc.conf an
inetd übergeben werden. In
der Voreinstellung hat diese Option den Wert
-wW -C 60. Durch das Setzen dieser Werte
wird das TCP-Wrapping für alle
inetd-Dienste aktiviert.
Zusätzlich kann eine einzelne IP-Adresse jeden Dienst
nur maximal 60 Mal pro Minute anfordern.Für Einsteiger ist es erfreulich, dass diese Parameter
in der Regel nicht angepasst werden müssen. Da diese
Parameter aber dennoch von Interesse sein können
(beispielsweise, wenn Sie eine enorme Anzahl von
Verbindungsanfragen erhalten), werden einige dieser
einschränkenden Parameter im Folgenden näher
erläutert. Eine vollständige Auflistung aller
Optionen finden Sie hingegen in &man.inetd.8;.-c maximumLegt die maximale Anzahl von parallen Aufrufen eines
Dienstes fest; in der Voreinstellung gibt es keine
Einschränkung. Diese Einstellung kann für jeden
Dienst durch Setzen des
-Parameters festgelegt werden.-C rateLegt fest, wie oft ein Dienst von einer einzelnen
IP-Adresse in einer Minute aufgerufen werden kann; in der
Voreinstellung gibt es keine Einschränkung. Dieser
Wert kann für jeden Dienst durch Setzen des
Parameters
festgelegt werden.-R rateLegt fest, wie oft ein Dienst in der Minute aktiviert
werden kann; in der Voreinstellung sind dies 256
Aktivierungen pro Minute. Ein Wert von 0 erlaubt
unbegrenzt viele Aktivierungen.-s maximumLegt fest, wie oft ein Dienst in der Minute von einer
einzelnen IP-Adresse aus aktiviert werden kann; in der
Voreinstellung gibt es hier keine Beschränkung. Diese
Einstellung kann für jeden Dienst durch die Angabe
angepasst werden.inetd.confDie Konfiguration von inetd
erfolgt über die Datei
/etc/inetd.conf.Wenn /etc/inetd.conf geändert
wird, kann inetd veranlasst werden,
seine Konfigurationsdatei neu einzulesen.Die inetd-Konfiguration neu
einlesen&prompt.root; /etc/rc.d/inetd reloadJede Zeile der Konfigurationsdatei beschreibt jeweils einen
Daemon. Kommentare beginnen mit einem #. Ein
Eintrag der Datei /etc/inetd.conf hat
folgenden Aufbau:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsEin Eintrag für den IPv4 verwendenden
&man.ftpd.8;-Daemon könnte so aussehen:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameDer Dienstname eines bestimmten Daemons. Er muss
einem in /etc/services aufgelisteten
Dienst entsprechen. In dieser Datei wird festgelegt,
welchen Port inetd abhören
muss. Wenn ein neuer Dienst erzeugt wird, muss er zuerst
in die Datei /etc/services
eingetragen werden.socket-typeEntweder stream,
dgram, raw, oder
seqpacket. stream
muss für verbindungsorientierte TCP-Daemonen
verwendet werden, während dgram
das UDP-Protokoll verwaltet.protocolEines der folgenden:ProtokollBedeutungtcp, tcp4TCP (IPv4)udp, udp4UDP (IPv4)tcp6TCP (IPv6)udp6UDP (IPv6)tcp46TCP sowohl unter IPv4 als auch unter IPv6udp46UDP sowohl unter IPv4 als auch unter IPv6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] gibt an, ob der von
inetd aktivierte Daemon seinen
eigenen Socket verwalten kann oder nicht.
-Sockets müssen die Option
verwenden, während Daemonen mit
Stream-Sockets, die normalerweise auch aus mehreren
Threads bestehen, die Option
verwenden sollten. Die Option
gibt in der Regel mehrere Sockets an einen einzelnen
Daemon weiter, während
für jeden neuen Socket einen Childdaemon erzeugt.Die maximale Anzahl an Child-Daemonen, die
inetd erzeugen kann, wird durch
die Option festgelegt. Wenn
ein bestimmter Daemon 10 Instanzen benötigt, sollte
der Wert /10 hinter die Option
gesetzt werden. Geben Sie
hingegen den Wert /0 an, gibt es
keine Beschränkung.Zusätzlich zu kann
die maximale Anzahl von Verbindungen eines Rechners mit
einem bestimmten Daemon durch zwei weitere Optionen
beschränkt werden. Die Option
legt die maximale Anzahl von Verbindungsversuchen fest,
die von einer bestimmten IP-Adresse aus unternommen werden
können. Ein Wert von zehn würde die maximale
Anzahl von Verbindungsversuchen einer IP-Adresse mit einem
bestimmten Dienst auf zehn Versuche in der Minute
beschränken. Durch die Angabe der Option
können Sie hingegen
festlegen, wieviele Child-Daemonen von einer bestimmten
IP-Adresse aus gestartet werden können. Durch diese
Optionen lassen sich ein absichtlicher oder unabsichtlicher
Ressourcenverbrauch sowie die Auswirkungen eines
Denial of Service (DoS)-Angriffs auf
einen Rechner begrenzen.Sie müssen hier entweder
oder angeben. Die Angabe von
,
und
ist hingegen
optional.Ein multithread-Daemon vom Streamtyp ohne die Optionen
,
oder
sieht so aus:
nowaitDer gleiche Daemon mit einer maximal möglichen
Anzahl von 10 parallelen Daemonen würde so aussehen:
nowait/10Wird zusätzlich die Anzahl der möglichen
Verbindungen pro Minute für jede IP-Adresse auf
20 sowie die mögliche Gesamtzahl von Childdaemonen
auf 10 begrenzt, so sieht der Eintrag so aus:
nowait/10/20All diese Optionen werden vom
&man.fingerd.8;-Daemon bereits in der Voreinstellung
verwendet:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -sWill man die maximale Anzahl von Child-Daemonen auf
100 beschränken, wobei von jeder IP-Adresse aus
maximal 5 Child-Daemonen gestartet werden dürfen,
verwendet man den folgenden Eintrag:
nowait/100/0/5.userDer Benutzername, unter dem der jeweilige Daemon
laufen soll. Meistens laufen Daemonen als User
root. Aus Sicherheitsgründen
laufen einige Server aber auch als User
daemon, oder als am wenigsten
privilegierter User nobody.server-programDer vollständige Pfad des Daemons, der eine
Verbindung entgegennimmt. Wird der Daemon von
inetd intern bereitgestellt,
sollte die Option verwendet
werden.server-program-argumentsDieser Eintrag legt (gemeinsam mit
und beginnend mit
argv[0]), die Argumente fest, die bei
der Aktivierung an den Daemon übergeben werden.
Wenn die Anweisung auf der Kommandozeile also
mydaemon -d lautet, wäre
mydaemon -d auch der Wert der Option
. Wenn es sich
beim Daemon um einen internen Dienst handelt, sollte
wiederum die Option verwendet
werden.SicherheitAbhängig von der bei der Installation festgelegten
Konfiguration werden viele der von
inetd verwalteten Dienste automatisch
aktiviert! Wenn Sie einen bestimmten Daemon nicht
benötigen, sollten Sie ihn deaktivieren! Dazu kommentieren
Sie den jeweiligen Daemon in /etc/inetd.conf
mit einem # aus, um danach die
inetd-Konfiguration neu
einzulesen. Einige Daemonen, zum Beispiel
fingerd, sollten generell deaktiviert
werden, da sie zu viele Informationen an einen potentiellen
Angreifer liefern.Einige Daemonen haben unsichere Einstellungen, etwa
große oder nichtexistierende Timeouts für
Verbindungsversuche, die es einem Angreifer erlauben, über
lange Zeit langsam Verbindungen zu einem bestimmten Daemon
aufzubauen, um dessen verfügbare Ressourcen zu verbrauchen.
Es ist daher eine gute Idee, diese Daemonen durch die Optionen
,
sowie
zu beschränken, wenn
Sie sehr viele Verbindungsversuche mit Ihrem System
registrieren.TCP-Wrapping ist in der Voreinstellung aktiviert. Lesen Sie
&man.hosts.access.5;, wenn Sie weitere Informationen zum
Setzen von TCP-Beschränkungen für verschiedene von
inetd aktivierte Daemonen
benötigen.VerschiedenesBei daytime,
time,
echo,
discard,
chargen, und
auth handelt es sich um intern
von inetd bereitgestellte Dienste.
Der auth-Dienst bietet
Identifizierungsdienste über das Netzwerk
an und ist bis zu einem bestimmten Grad konfigurierbar,
während die meisten anderen Dienste nur aktiviert
oder deaktiviert werden können.Eine ausführliche Beschreibung finden Sie in
&man.inetd.8;.TomRhodesReorganisiert und erweitert von BillSwingleGeschrieben von NFS – Network File SystemNFSEines der vielen von FreeBSD unterstützten Dateisysteme
ist das Netzwerkdateisystem, das auch als NFS
bekannt ist. NFS
ermöglicht es einem System, Dateien und Verzeichnisse
über ein Netzwerk mit anderen zu teilen. Über
NFS können
Benutzer und Programme auf Daten entfernter Systeme zugreifen, und
zwar genauso, wie wenn es sich um lokale Daten handeln würde.
Einige der wichtigsten Vorteile von NFS
sind: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.Benutzer benötigen nur noch ein zentrales
Heimatverzeichnis auf einem NFS-Server.
Diese Verzeichnisse sind über das Netzwerk auf allen
Stationen verfügbar.Speichergeräte wie Disketten-, CD-ROM- oder
&iomegazip;-Laufwerke können über das Netzwerk von
anderen Arbeitstationen genutzt werden. Dadurch sind für
das gesamte Netzwerk deutlich weniger Speichergeräte
nötig.Wie funktioniert NFS?NFS 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:Der Server benötigt folgende Daemonen:NFSServerDateiserverUnix-ClientsrpcbindmountdnfsdDaemonBeschreibungnfsdDer NFS-Daemon. Er bearbeitet
Anfragen der NFS-Clients.mountdDer NFS-Mount-Daemon. Er
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
weitergibt.rpcbind Der Portmapper-Daemon. Durch ihn erkennen die
NFS-Clients, welchen Port der
NFS-Server verwendet.Der Client kann ebenfalls einen Daemon aufrufen, und zwar
den nfsiod-Daemon. Der
nfsiod-Daemon bearbeitet Anfragen vom
NFS-Server. Er ist optional und verbessert
die Leistung des Netzwerks. Für eine normale und korrekte
Arbeit ist er allerdings nicht erforderlich. Mehr erfahren
Sie in der Hilfeseite &man.nfsiod.8;.NFS einrichtenNFSeinrichtenNFS lässt sich leicht
einrichten. Die nötigen Prozesse werden durch einige
Änderungen in /etc/rc.conf bei
jedem Systemstart gestartet.Stellen Sie sicher, dass auf dem
NFS-Server folgende Optionen in der Datei
/etc/rc.conf gesetzt sind:rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"mountd läuft automatisch,
wenn der NFS-Server aktiviert ist.Auf dem Client muss in /etc/rc.conf
folgende Option gesetzt sein:nfs_client_enable="YES"/etc/exports legt fest, welche
Dateisysteme NFS exportieren (manchmal auch
als teilen bezeichnet) soll. Jede Zeile in
/etc/exports 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 zu weiteren Optionen benötigen, lesen Sie
&man.exports.5;.Nun folgen einige Beispieleinträge für
/etc/exports:NFSExport von DateisystemenDie 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 /cdrom
für drei Rechner, die sich in derselben Domäne wie
der Server befinden oder für die entsprechende
Einträge in /etc/hosts existieren.
Die 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./cdrom -ro host1 host2 host3Die nächste Zeile exportiert /home
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
ist nützlich, wenn Sie über ein privates Netzwerk ohne
DNS-Server verfügen. Optional
könnten interne Rechnernamen auch in
/etc/hosts konfiguriert werden.
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
&man.hosts.5;. Durch das Flag 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./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Die nächste Zeile exportiert /a,
damit Clients von verschiedenen Domänen auf das Dateisystem
zugreifen können. Das -Flag
erlaubt es dem Benutzer root des entfernten
Systems, als root auf das exportierte
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
kann selbst root nicht auf das exportierte
Dateisystem schreiben./a -maproot=root host.example.com box.example.orgDamit ein Client auf ein exportiertes Dateisystem zugreifen
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
sicher, dass der Client in /etc/exports
aufgeführt wird.Jede Zeile in /etc/exports 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
/usr ein einziges Dateisystem ist. Dann
wären folgende Zeilen ungültig:#Nicht erlaubt, wenn /usr ein einziges Dateisystem ist
/usr/src client
/usr/ports clientDas Dateisystem /usr wird hier zweimal
auf den selben Rechner (client)
exportiert. Dies ist aber nicht zulässig. Der korrekte
Eintrag sieht daher so aus:/usr/src /usr/ports clientDie 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.Eine gültige Exportliste, in der
/usr und /exports
lokale Dateisysteme sind, sieht so aus:# 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 -roDer Daemon mountd muss
die Datei /etc/exports nach jeder
Änderung neu einlesen, damit die Änderungen
wirksam werden. Dies kann durch das Senden des
HUP-Signals an den mountd-Prozess
erfolgen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Alternativ können Sie das
mountd-&man.rc.8;-Skript auch mit dem
passenden Parameter aufrufen:&prompt.root; /etc/rc.d/mountd onereloadLesen Sie bitte
des Handbuchs für Informationen zum Einsatz der
rc-Skripte.Eine weitere Möglichkeit, diese Änderungen zu
übernehmen, wäre der Neustart des Systems. Dies ist
allerdings nicht nötig. Wenn Sie die folgenden
Befehle als root ausführen, sollte
alles korrekt gestartet werden.Auf dem NFS-Server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rAuf dem NFS-Client:&prompt.root; nfsiod -n 4Nun sollte alles bereit sein, um ein entferntes Dateisystem
einhängen zu können. In unseren Beispielen nennen wir
den Server server, den Client
client. Wenn Sie ein entferntes Dateisystem
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
testen möchten, führen Sie auf dem Client als
root einen Befehl ähnlich dem
folgenden aus:NFSDateisysteme einhängen&prompt.root; mount server:/home /mntDadurch wird das Verzeichnis /home des
Servers auf dem Client unter /mnt
eingehängt. Wenn alles korrekt konfiguriert wurde, sehen
Sie auf dem Client im Verzeichnis /mnt alle
Dateien des Servers.Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
automatisch einhängen wollen, fügen Sie das
Dateisystem in /etc/fstab ein. Dazu ein
Beispiel:server:/home /mnt nfs rw 0 0Eine Beschreibung aller Optionen enthält
die Hilfeseite &man.fstab.5;.Dateien sperren (Locking)Einige Anwendungen (beispielsweise
mutt) erfordern die Sperrung von
Dateien, damit sie korrekt arbeiten. Verwenden Sie
NFS, so können Sie für die
Sperrung von Dateien rpc.lockd
einsetzen. Um diesen Daemon zu aktivieren, müssen Sie
in /etc/rc.conf (sowohl auf Client- als
auch auf Serverseite) folgende Zeilen aufnehmen (wobei
vorausgesetzt wird, dasss NFS auf beiden
Systemen bereits konfiguriert ist):rpc_lockd_enable="YES"
rpc_statd_enable="YES"Danach starten Sie die Anwendung zur Verwaltung der
Dateisperren durch folgenden Befehl:
- &prompt.root; /etc/rc.d/nfslocking start
+ &prompt.root; /etc/rc.d/lockd start
+&prompt.root; /etc/rc.d/statd startBenötigen Sie keine echten Dateisperren zwischen den
NFS-Clients und dem
NFS-Server, können Sie den
NFS-Client durch die Übergabe der
Option an &man.mount.nfs.8; zu einer lokalen
Sperrung von Dateien zwingen. Lesen Sie dazu auch die
Manualpage &man.mount.nfs.8;.Praktische AnwendungenNFS ist in vielen Situationen
nützlich. Einige Anwendungsbereiche finden Sie in der
folgenden Liste:NFSAnwendungsbeispieleMehrere 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.In größeren Netzwerken ist es praktisch,
einen zentralen NFS-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.Verschiedene Rechner können auf ein gemeinsames
Verzeichnis /usr/ports/distfiles
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.WylieStilwellBeigetragen von ChernLeeÜberarbeitet von AMDamdAutomatic Mounter Daemon&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 amd
automatisch abgehängt.
amd ist eine einfache
Alternative zum dauerhaften Einhängen von Dateisystemen
in /etc/fstab.In der Voreinstellung stellt amd
die Verzeichnisse /host und
/net als NFS-Server bereit. Wenn auf eine
Datei in diesen Verzeichnissen zugegriffen wird, sucht
amd den entsprechenden Mountpunkt
und hängt das Dateisystem automatisch ein.
/net wird zum Einhängen von
exportierten Dateisystemen von einer IP-Adresse verwendet,
während /host zum Einhängen
von exportierten Dateisystemen eines durch seinen Namen
festgelegten Rechners dient.Ein Zugriff auf eine Datei in
/host/foobar/usr würde
amd veranlassen,
das von foobar exportierte Dateisystem
/usr einzuhängen.Ein exportiertes Dateisystem mit
amd in den Verzeichnisbaum
einhängenSie können sich die verfügbaren Mountpunkte
eines entfernten Rechners mit showmount
ansehen. Wollen Sie sich die Mountpunkte des Rechners
foobar ansehen, so verwenden Sie:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrWie Sie an diesem Beispiel erkennen können, zeigt
showmount/usr
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
/host/foobar/usr wechselt, versucht
amd den Rechnernamen
foobar aufzulösen und den gewünschten
Export in den Verzeichnisbaum einzuhängen.amd kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
automatisch gestartet werden:amd_enable="YES"Mit der Option amd_flags kann
amd angepasst werden.
Die Voreinstellung für amd_flags sieht
so aus:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"/etc/amd.map legt die Standardoptionen
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
eingehängt werden. /etc/amd.conf
hingegen legt einige der erweiterten Optionen von
amd fest.Weitere Informationen finden Sie in den Hilfeseiten
&man.amd.8; und &man.amd.conf.5;.JohnLindBeigetragen von Integrationsprobleme mit anderen SystemenBestimmte 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.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 von
anderen Rechnern weiterhin 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 es oft, den Rechner neu zu starten, da dieses
NFS-Problem nicht mehr behoben werden kann.Die korrekte 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
Server handelt, verwenden Sie beim
Einhängen in den Verzeichnisbaum auf der Clientseite
zusätzlich die Option . Wenn es
sich beim FreeBSD-System um den Client
handelt, dann hängen Sie das NFS-Dateisystem mit der
zusätzlichen Option ein.
Diese Optionen können auf der Clientseite auch durch
das vierte Feld der Einträge in
/etc/fstab festgelegt werden, damit die
Dateisysteme automatisch eingehängt werden. Um die
Dateisysteme manuell einzuhängen, verwendet man bei
&man.mount.8; zusätzlich die Option
.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
sicher, dass Ihre Router die
nötigen UDP-Informationen weiterleiten,
oder Sie werden nirgends hingelangen, egal was Sie machen.In den folgenden Beispielen ist fastws der
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
freebox hingegen ist der Name des
FreeBSD-Systems, das über eine Netzkarte mit geringer
Leistung verfügt. /sharedfs ist das
exportierte NFS -Dateisystem (lesen Sie dazu auch
&man.exports.5;). Bei /project 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.
, oder
wünschenswert sein.FreeBSD als Client (eingetragen in
/etc/fstab auf freebox):
fastws:/sharedfs /project nfs rw,-r=1024 0 0Manuelles Einhängen auf
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project&os; als Server (eingetragen in
/etc/fstab auf fastws):
freebox:/sharedfs /project nfs rw,-w=1024 0 0Manuelles Einhängen auf fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectNahezu alle 16-bit Ethernetadapter erlauben Operationen
ohne obengenannte Einschränkungen auf die Lese- oder
Schreibgröße.Für alle technisch Interessierten wird nun beschrieben,
was passiert, wenn dieser Fehler auftritt, und warum er
irreversibel ist. NFS arbeitet üblicherweise mit einer
Blockgröße von 8 kByte (obwohl
es kleinere Fragmente zulassen würde). Da die maximale
Rahmengröße von Ethernet 1500 Bytes
beträgt, wird der NFS-Block in einzelne
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
Einheit handelt, die auch als Einheit empfangen, verarbeitet
und bestätigt 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).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.Ü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
zwingend auf, wenn
NFS-Einheiten ü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.BillSwingleBeigetragen von EricOgrenErweitert von UdoErdelhoffNIS/YP – Network Information ServiceWas ist NIS?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS
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.yellow pagesNISNIS war
ursprünglich als Yellow Pages 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.NISDomänenBei 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.Windows NTDie Funktion entspricht dem Domänensystem von
&windowsnt;; auch wenn sich die interne Umsetzung unterscheidet,
sind die Basisfunktionen vergleichbar.Wichtige Prozesse und BegriffeEs 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:rpcbindBegriffBeschreibungNIS-DomänennameEin 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.
rpcbindMuss laufen, damit RPC (Remote Procedure Call, ein
von NIS verwendetes Netzwerkprotokoll) funktioniert.
NIS-Server sowie Clients funktionieren ohne
rpcbind nicht.ypbindBindet 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.
ypbind ist der zentrale
Bestandteil der Client-Server-Kommunikation in einer
NIS-Umgebung. Wird >ypbind
auf einem Client beendet, ist dieser nicht mehr in der
Lage, auf den NIS-Server zuzugreifen.ypservSollte 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
ypbind-Prozess auf dem Client
neu zu starten.rpc.yppasswddEin 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.Wie funktioniert NIS?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.Auf diese Art und Weise können Informationen aus
verschiedenen Dateien von mehreren Rechnern gemeinsam
verwendet werden. master.passwd,
group, und hosts
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.Arten von NIS-RechnernNISMasterserverEin NIS-Masterserver verwaltet,
ähnlich einem &windowsnt;-Domänencontroller, die
von allen NIS-Clients gemeinsam verwendeten Dateien.
passwd, group,
sowie verschiedene andere von den Clients verwendete
Dateien existieren auf dem Masterserver.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.NISSlaveserverNIS-Slaveserver. Ä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.
NISClientNIS-Clients. NIS-Clients
identifizieren sich gegenüber dem NIS-Server
(ähnlich den &windowsnt;-Workstations), um sich am
Server anzumelden.NIS/YP konfigurierenDieser Abschnitt beschreibt an Hand eines Beispiels die
Einrichtung einer NIS-Umgebung.PlanungNehmen 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 /etc/passwd und
/etc/master.passwd. 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
adduser). Da diese Lösung sehr
ineffizient ist, soll das Netzwerk in Zukunft NIS verwenden,
wobei zwei der Rechner als Server dienen sollen.In Zukunft soll das Netz also wie folgt aussehen:RechnernameIP-AdresseRechneraufgabeellington10.0.0.2NIS-Mastercoltrane10.0.0.3NIS-Slavebasie10.0.0.4Workstation der Fakultätbird10.0.0.5Clientrechnercli[1-11]10.0.0.[6-17]Verschiedene andere ClientsWenn 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.Einen NIS-Domänennamen wählenNISDomänennameDies muss nicht der Domainname sein. Es
handelt sich vielmehr um den NIS-Domainnamen.
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.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
acme-art. Für unser Beispiel verwenden
wir den NIS-Domänennamen
test-domain.SunOSEs 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,
müssen Sie den Namen der
Internetdomäne als Ihren NIS-Domänennamen
verwenden.Anforderungen an den ServerWenn 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 alle NIS-Clients
betrifft.NIS-ServerDie 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 /var/yp/[domainname]
gespeichert, wobei [domainname] 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.NIS-Master- und Slaveserver verwenden den
ypserv-Daemon, um NIS-Anfragen zu
bearbeiten. ypserv 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.Einen NIS-Masterserver einrichtenNISServerkonfigurationAbhä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 /etc/rc.conf einfügen:
nisdomainname="test-domain"Diese Zeile setzt den NIS-Domänennamen auf
test-domain, wenn Sie das Netzwerk
initialisieren (beispielsweise nach einem Systemstart).
nis_server_enable="YES"
Dadurch werden die NIS-Serverprozesse gestartet.nis_yppasswdd_enable="YES"
Durch diese Zeile wird der
rpc.yppasswdd-Daemon aktiviert, der,
wie bereits erwähnt, die Änderung von
NIS-Passwörtern von einem Client aus
ermöglicht.In Abhängigkeit von Ihrer NIS-Konfiguration
können weitere Einträge erforderlich sein.
Weitere Informationen finden Sie im Abschnitt
NIS-Server, die
auch als NIS-Clients arbeiten.Nun müssen Sie nur noch
/etc/netstart als Superuser
ausführen, um alles entsprechend Ihren Vorgaben in
/etc/rc.conf einzurichten.Die NIS-Maps initialisierenNISmapsNIS-Maps sind Datenbanken, die
sich im Verzeichnis /var/yp befinden.
Sie werden am NIS-Masterserver aus den Konfigurationsdateien
unter /etc erzeugt. Einzige Ausnahme:
/etc/master.passwd. Dies ist auch
sinnvoll, da Sie die Passwörter für Ihr
root- oder 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:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdEntfernen Sie alle Systemkonten
(wie bin, tty,
kmem oder games),
sowie alle Konten, die Sie nicht an die NIS-Clients
weitergeben wollen (beispielsweise root
und alle Konten mit der UID 0 (=Superuser).Stellen Sie sicher, dass
/var/yp/master.passwd weder von der
Gruppe noch von der Welt gelesen werden kann (Zugriffsmodus
600)! Ist dies nicht der Fall, ändern Sie dies mit
chmod.Tru64 UNIXNun können Sie die NIS-Maps initialisieren.
FreeBSD verwendet dafür das Skript
ypinit (lesen Sie dazu auch
&man.ypinit.8;). Dieses Skript ist auf fast allen
UNIX-Betriebssystemen verfügbar. Bei
Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings
ypsetup. Da wir Maps für einen
NIS-Masterserver erzeugen, verwenden wir
ypinit mit der Option
. Nachdem Sie die beschriebenen
Aktionen durchgeführt haben, erzeugen Sie nun die
NIS-Maps:ellington&prompt.root; ypinit -m test-domain
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] n
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: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.Dadurch erzeugt ypinit/var/yp/Makefile aus der Datei
/var/yp/Makefile.dist.
Durch diese Datei wird festgelegt, dass Sie in einer
NIS-Umgebung mit nur einem Server arbeiten und dass alle
Clients unter FreeBSD laufen. Da
test-domain aber auch über einen
Slaveserver verfügt, müssen Sie
/var/yp/Makefile entsprechend anpassen:
ellington&prompt.root; vi /var/yp/MakefileSie sollten die ZeileNOPUSH = "True"auskommentieren (falls dies nicht bereits der Fall ist).Einen NIS-Slaveserver einrichtenNISSlaveserverEin NIS-Slaveserver ist noch einfacher einzurichten als
ein Masterserver. Melden Sie sich am Slaveserver an und
ändern Sie /etc/rc.conf analog
zum Masterserver. Der einzige Unterschied besteht in der
Verwendung der Option , wenn Sie
ypinit aufrufen. Die Option
erfordert den Namen des
NIS-Masterservers, daher sieht unsere Ein- und Ausgabe wie
folgt aus:coltrane&prompt.root; ypinit -s ellington test-domain
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] n
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.Sie sollten nun über das Verzeichnis
/var/yp/test-domain 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
/etc/crontab erledigen diese Aufgabe:
20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidDiese 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.Führen Sie nun /etc/netstart
auch auf dem Slaveserver aus, um den NIS-Server erneut zu
starten.NIS-ClientsEin NIS-Client bindet sich unter
Verwendung des ypbind-Daemons an einen
NIS-Server. ypbind prüft die
Standarddomäne des Systems (die durch
domainname gesetzt wird), und beginnt
RPCs über das lokale Netzwerk zu verteilen (broadcast).
Diese Anforderungen legen den Namen der Domäne fest,
für die ypbind eine Bindung erzeugen
will. Wenn der Server der entsprechenden Domäne eine
solche Anforderung erhält, schickt er eine Antwort an
ypbind. ybind speichert
daraufhin die Adresse des Servers. Wenn mehrere Server
verfügbar sind (beispielsweise ein Master- und mehrere
Slaveserver), verwendet ypbind die erste
erhaltene Adresse. Ab diesem Zeitpunkt richtet der Client alle
Anfragen an genau diesen Server. ypbindpingt den Server gelegentlich an, um
sicherzustellen, dass der Server funktioniert. Antwortet der
Server innerhalb eines bestimmten Zeitraums nicht (Timeout),
markiert ypbind die Domäne als
ungebunden und beginnt erneut, RPCs über das Netzwerk zu
verteilen, um einen anderen Server zu finden.Einen NIS-Client konfigurierenNISClient konfigurierenEinen FreeBSD-Rechner als NIS-Client einzurichten, ist
recht einfach.Fügen Sie folgende Zeilen in
/etc/rc.conf ein, um den
NIS-Domänennamen festzulegen, und um
ypbind bei der Initialisierung des
Netzwerks zu starten:nisdomainname="test-domain"
nis_client_enable="YES"Um alle Passworteinträge des NIS-Servers zu
importieren, löschen Sie alle Benutzerkonten in
/etc/master.passwd und fügen
mit vipw folgende Zeile am Ende der
Datei ein:+:::::::::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
Netzgruppen weiter
unten. Weitere detaillierte Informationen finden Sie
im Buch Managing NFS and NIS von
O'Reilly.Sie sollten zumindest ein lokales Benutzerkonto,
das nicht über NIS importiert wird, in Ihrer
/etc/master.passwd behalten.
Dieser Benutzer sollte außerdem ein Mitglied der
Gruppe wheel sein. Wenn es
mit NIS Probleme gibt, können Sie diesen Zugang
verwenden, um sich anzumelden,
root zu werden und das Problem
zu beheben.Um alle möglichen Gruppeneinträge vom
NIS-Server zu importieren, fügen sie folgende Zeile
in /etc/group ein:+:*::Nachdem Sie diese Schritte erledigt haben, sollten Sie
mit ypcat passwd die
passwd-Map des NIS-Servers anzeigen
können.Sicherheit unter NISNISSicherheitIm 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; securenets, durch die man den
Zugriff auf bestimmte Rechner beschränken kann.
&man.ypserv.8; versucht, beim Systemstart die Informationen
über securenets aus der Datei
/var/yp/securenets zu laden.Die Datei securenets kann auch
in einem anderen Verzeichnis stehen, das mit der 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 #.
/var/yp/securnets könnte
beispielsweise so aussehen:# 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.0Wenn &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
/var/yp/securenets nicht vorhanden ist,
erlaubt ypserv Verbindungen von jedem Rechner
aus.ypserv unterstützt auch das
TCP-Wrapper-Paket von Wietse Venema.
Mit diesem Paket kann der Administrator für
Zugriffskontrollen die Konfigurationsdateien von
TCP-Wrapper anstelle von
/var/yp/securenets verwenden.Während beide Kontrollmechanismen einige Sicherheit
gewähren, beispielsweise durch privilegierte Ports, sind
sie gegenüber IP spoofing-Attacken
verwundbar. Jeder NIS-Verkehr sollte daher von Ihrer Firewall
blockiert werden.Server, die /var/yp/securenets
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
Broadcast 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
/var/yp/securenets umgehen.Die Verwendung von /var/yp/securenets
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.TCP-WrapperDie Verwendung der TCP-Wrapper
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.
Bestimmte Benutzer an der Anmeldung hindernNISBenutzer blockierenIn unserem Labor gibt es den Rechner basie,
der nur für Mitarbeiter der Fakultät bestimmt ist.
Wir wollen diesen Rechner nicht aus der NIS-Domäne
entfernen, obwohl passwd des
NIS-Masterservers Benutzerkonten sowohl für
Fakultätsmitarbeiter als auch für Studenten
enthält. Was können wir also tun?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
-Benutzername an
das Ende von /etc/master.passwd setzen,
wobei Benutzername der zu
blockierende Benutzername ist. Diese Änderung sollte
bevorzugt durch vipw erledigt werden, da
vipw Ihre Änderungen an
/etc/master.passwd auf Plausibilität
überprüft und nach erfolgter Änderung die
Passwortdatenbank automatisch aktualisiert. Um also den
Benutzer bill an der Anmeldung am Rechner
basie zu hindern, gehen wir wie folgt vor:
basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
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;UdoErdelhoffBeigetragen von Netzgruppen verwendenNetzgruppenDie 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
mit Sicherheit 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 zentrale Verwaltung.Die Lösung für dieses Problem sind
Netzgruppen. 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.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.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.Benutzername(n)Beschreibungalpha,
betaBeschäftigte der IT-Abteilungcharlie,
deltaDie neuen Lehrlinge der IT-Abteilungecho,
foxtrott,
golf, ...Normale Mitarbeiterable,
baker, ...Externe MitarbeiterRechnername(n)Beschreibungwar, death,
famine, pollutionIhre wichtigsten Server. Nur IT-Fachleute
dürfen sich an diesen Rechnern anmelden.pride, greed,
envy, wrath,
lust, slothWeniger wichtige Server. Alle Mitarbeiter der
IT-Abteilung dürfen sich auf diesen Rechnern
anmelden.one, two,
three, four, ...Gewöhnliche Arbeitsrechner. Nur die
wirklichen Mitarbeiter dürfen
diese Rechner verwenden.trashcanEin sehr alter Rechner ohne kritische Daten. Sogar
externe Mitarbeiter dürfen diesen Rechner
verwenden.Wollten Sie diese Einschränkungen umsetzen, indem Sie
jeden Benutzer einzeln blockieren, müssten Sie auf jedem
System für jeden Benutzer eine entsprechende Zeile in
passwd 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
mit Sicherheit einmal vergessen, die
entsprechenden Einträge anzulegen. Vergessen Sie nicht:
Murphy war Optimist.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 für diese Kombination aus Benutzer und
Rechner mache Folgendes ... 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.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:ellington&prompt.root; vi /var/yp/netgroupDanach 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.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)Bei IT_EMP, IT_APP
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: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.Der Name des Benutzerkontos, der zu dieser Netzgruppe
gehört.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.Jedes Feld kann Wildcards enthalten. Die Einzelheiten
entnehmen Sie bitte &man.netgroup.5;.NetzgruppenNetzgruppennamen 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.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 Einträge
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:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Sie können diesen Vorgang wiederholen, wenn Sie mehr
als 255 Benutzer in einer einzigen Netzgruppe benötigen.
Das Aktivieren und Verteilen Ihre neuen NIS-Map ist
einfach:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeDadurch werden die NIS-Maps netgroup,
netgroup.byhost und
netgroup.byuser erzeugt. Prüfen Sie
die Verfügbarkeit Ihrer neuen NIS-Maps mit &man.ypcat.1;.
ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserDie Ausgabe des ersten Befehls gibt den Inhalt von
/var/yp/netgroup 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.Die Einrichtung der Clients ist einfach. Sie müssen
lediglich auf dem Server war
&man.vipw.8; aufrufen und die Zeile+:::::::::durch+@IT_EMP:::::::::ersetzen.Ab sofort werden nur noch die Daten der in der Netzgruppe
IT_EMP vorhandenen Benutzer in die
Passwortdatenbank von war importiert.
Nur diese Benutzer dürfen sich am Server anmelden.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,
cd ~user ist nicht
möglich, ls -l zeigt die numerische
Benutzer-ID statt dem Benutzernamen und
find . -user joe -print erzeugt die
Fehlermeldung No such user. Um dieses
Problem zu beheben, müssen Sie alle Benutzereinträge
importieren, ohne ihnen jedoch zu erlauben, sich an
Ihrem Server anzumelden.Dazu fügen Sie eine weitere Zeile in
/etc/master.passwd ein. Diese Zeile sollte
ähnlich der folgenden aussehen:+:::::::::/sbin/nologin, was in etwa
Importiere alle Einträge, aber ersetze die Shell in
den importierten Einträgen durch
/sbin/nologin entspricht. Sie
können jedes Feld dieses Eintrages ersetzen, indem Sie
einen Standardwert in /etc/master.passwd
eintragen.Stellen Sie sicher, dass die Zeile
+:::::::::/sbin/nologinnach der Zeile
+@IT_EMP::::::::: eingetragen ist. Sonst
haben alle via NIS importierten Benutzerkonten
/sbin/nologin als Loginshell.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 +:::::::::
in den lokalen Versionen von
/etc/master.passwd durch folgende
Einträge ersetzen:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinDie entsprechenden Zeilen für normale Arbeitsplätze
lauten:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinAb 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
Fehler in der zentralisierten Planung führen zu
globaler Verwirrung. bestätigt.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
BIGSRV erzeugen, um den Zugang zu
den wichtigsten Servern zu beschränken, eine weitere
Gruppe SMALLSRV für die weniger
wichtigen Server und eine dritte Netzgruppe
USERBOX 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:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSDiese 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.
Rechnerspezifische Netzgruppen sind die zweite
Möglichkeit, um mit den oben beschriebenen Änderungen
umzugehen. In diesem Szenario enthält
/etc/master.passwd auf jedem Rechner zwei
mit + 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 /sbin/nologin 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:+@BOXNAME:::::::::
+:::::::::/sbin/nologinWenn Sie dies für alle Rechner erledigt haben, werden
Sie die lokalen Versionen von
/etc/master.passwd 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:# 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]
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.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 NISs-Maps in Grenzen zu halten.Weitere wichtige PunkteNachdem Sie Ihre NIS-Umgebung eingerichtet haben,
müssen Sie einige Dinge anders als bisher erledigen.Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen,
tun Sie dies ausschließlich am
NIS-Masterserver. Außerdem
müssen Sie anschließend die
NIS-Maps neu erzeugen. Wenn Sie diesen Punkt vergessen,
kann sich der neue Benutzer nur am
NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer
jsmith anlegen, gehen Sie
folgerndermassen vor:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainStatt pw useradd jsmith könnten
Sie auch adduser jsmith verwenden.Tragen Sie die Administratorkonten nicht
in die NIS-Maps ein. 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.Sichern Sie die NIS-Master- und Slaveserver
und minimieren Sie die Ausfallzeiten. Wenn
diese Rechner gehackt oder einfach nur ausgeschaltet werden,
haben viele Leute keinen Netzwerkzugriff mehr.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.Kompatibilität zu NIS v1NISKompatibilität zu NIS v1ypserv 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
ypbind-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.NIS-Server, die auch als NIS-Clients arbeitenWenn 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.Sie können einen Rechner durch die Verwendung von
ypbind sowie der Option
zwingen, sich an einen bestimmten Server zu binden. Um diesen
Vorgang zu automatisieren, können Sie folgende Zeilen in
/etc/rc.conf einfügen:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen
benötigen.PasswortformateNISPasswortformateUnterschiedliche Passwortformate sind das Hauptproblem,
das beim Einrichten eines NIS-Servers auftreten kann.
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.Welches Format die Server und Clients verwenden,
steht in /etc/login.conf. Wenn ein
System Passwörter mit DES verschlüsselt,
enthält die default-Klasse einen
Eintrag wie den folgenden:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[weitere Einträge]Mögliche Werte für
passwd_format sind unter anderem
blf und md5 (mit
Blowfish und MD5 verschlüsselte Passwörter).Wenn die Datei /etc/login.conf
geändert wird, muss die Login-Capability Datenbank
neu erstellt werden. Geben Sie dazu als
root den folgenden Befehl ein:&prompt.root; cap_mkdb /etc/login.confDas Format der schon in
/etc/master.passwd befindlichen
Passwörter wird erst aktualisiert, wenn ein Benutzer
sein Passwort ändert, nachdem
die Datenbank neu erstellt wurde.Damit die Passwörter auch im gewählten
Format abgespeichert werden, muss mit
crypt_default in der Datei
/etc/auth.conf 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:crypt_default = des blf md5Wenn Sie alle &os; NIS-Server und NIS-Clients entsprechend
den obigen Schritten eingestellt haben, wird im ganzen
Netzwerk dasselbe Passwortformat verwendet. Falls Sie
Probleme mit der Authentifizierung eines NIS-Clients
haben, kontrollieren Sie die verwendeten Passwortformate.
In einer heterogenen Umgebung werden Sie DES benutzen
müssen, da dies der meist unterstützte Standard
ist.GregSutterGeschrieben von Automatische Netzwerkkonfiguration mit DHCPWas ist DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)Ü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. &os;-Versionen vor 6.0 verwenden
die DHCP-Client-Implementierung (&man.dhclient.8;) von ISC
(Internet Software Consortium). Ab 6.0 wird der von
OpenBSD 3.7 stammende dhclient
zum Einsatz kommen. Die Informationen in diesem Abschnitt
beziehen sich daher sowohl auf den dhclient
von ISC als auch auf den von OpenBSD. Als DHCP-Server wird
in beiden Fällen der DHCP-Server der ISC-Distribution
verwendet.ÜbersichtDieser Abschnitt beschreibt sowohl die Clientseite des
ISC- als auch des OpenBSD-Clients sowie die
Serverseite des DHCP-Systems von ISC. Das Clientprogramm
dhclient ist in FreeBSD integriert, das
Serverprogramm kann über den Port
net/isc-dhcp3-server
installiert werden. Weiter Informationen finden Sie in
&man.dhclient.8;, &man.dhcp-options.5; sowie
&man.dhclient.conf.5;.Wie funktioniert DHCP?UDPDer DHCP-Client dhclient 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
DHCP-Lease 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.DHCP-Clients können sehr viele Informationen von einem
DHCP-Server erhalten. Eine ausführliche Liste finden Sie
in &man.dhcp-options.5;.Integration in FreeBSDIn Abhängigkeit von der eingesetzten &os;-Version wird
entweder der ISC-DHCP-Client oder der DHCP-Client von OpenBSD
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. dhclient
ist seit der Version 3.2 in &os; enthalten.sysinstallDHCP wird von sysinstall
unterstützt. Wenn Sie eine Netzwerkkarte mit
sysinstall konfigurieren, lautet
die zweite Frage Do you want to try DHCP configuration
of the interface?. Wenn Sie diese Frage bejahen, wird
dhclient aufgerufen, und die Netzkarte wird
automatisch eingerichtet.Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei
Dinge erledigen:DHCPAnforderungenStellen Sie sicher, dass bpf in
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
device bpf
in Ihre Kernelkonfigurationsdatei ein und erzeugen einen
neuen Kernel. Weitere Informationen zur Kernelkonfiguration
finden Sie in des Handbuchs.
Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Fügen Sie folgende Zeile in
/etc/rc.conf ein:ifconfig_fxp0="DHCP"Ersetzen Sie fxp0 durch den
Eintrag für die Netzkarte, die Sie dynamisch
einrichten wollen. Lesen Sie dazu auch
.Wenn Sie dhclient an einem anderen
Ort installiert haben, oder zusätzliche Flags an
dhclient übergeben wollen,
fügen Sie auch folgende (entsprechend angepasste)
Zeilen ein:
- dhcp_program="/sbin/dhclient"
-dhcp_flags=""
+ dhclient_program="/sbin/dhclient"
+dhclient_flags=""DHCPServerDer DHCP-Server dhcpd ist als
Teil des Ports
net/isc-dhcp3-server
verfügbar. Dieser Port enthält die komplette
ISC-DHCP-Distribution, inklusive der Dokumentation.DateienDHCPKonfigurationsdateien/etc/dhclient.confdhclient benötigt die
Konfigurationsdatei /etc/dhclient.conf.
Diese Datei enthält normalerweise nur Kommentare, da
die Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu
auch &man.dhclient.conf.5;./sbin/dhclientdhclient ist statisch gelinkt und
befindet sich in /sbin. Weitere
Informationen finden Sie in &man.dhclient.8;./sbin/dhclient-scriptBei dhclient-script 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./var/db/dhclient.leasesDer 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;.Weitere InformationenDas DHCP-Protokoll wird vollständig im
RFC 2131
beschrieben. Eine weitere, lehrreiche Informationsquelle
existiert unter
.Einen DHCP-Server installieren und einrichtenÜbersichtDieser Abschnitt beschreibt die Einrichtung eines
FreeBSD-Systems als DHCP-Server. Dazu wird die
DHCP-Implementation von ISC (Internet Software Consortium)
verwendet.Der DHCP-Server ist nicht im Basissystem von FreeBSD
enthalten, daher müssen Sie als Erstes den Port
net/isc-dhcp3-server
installieren. Lesen Sie , wenn Sie
weitere Informationen zur Ports-Sammlung benötigen.
Den DHCP-Server installierenDHCPinstallierenStellen Sie sicher, dass &man.bpf.4; in Ihren Kernel
kompiliert ist. Dazu fügen Sie die Zeile
device bpf
Ihre Kernelkonfigurationsdatei ein und erzeugen einen neuen
Kernel. Die Kernelkonfiguration wird in
beschrieben.Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Danach müssen Sie die vom Port
net/isc-dhcp3-server
erzeugte Vorlage für dhcpd.conf
anpassen. Die bei der Installation erzeugte Datei
/usr/local/etc/dhcpd.conf.sample
sollten Sie nach
/usr/local/etc/dhcpd.conf kopieren,
bevor Sie Veränderungen vornehmen.Den DHCP-Server einrichtenDHCPdhcpd.confdhcpd.conf besteht aus Festlegungen
zu Subnetzen und Rechnern und lässt sich am besten an
einem Beispiel erklären:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Diese Option beschreibt die Domäne, die den
Clients als Standardsuchdomäne zugewiesen wird.
Weitere Informationen finden Sie in man.resolv.conf.5;.
Diese Option legt eine, durch Kommata getrennte
Liste von DNS-Servern fest, die von den Clients
verwendet werden sollen.Die den Clients zugewiesene Netzmaske.Ein Client kann eine Lease einer bestimmten Dauer
anfordern. Geschieht dies nicht, weist der Server eine
Lease mit einer vorgegebenen Ablaufdauer (in Sekunden)
zu.Die maximale Zeitdauer, für die der Server
Konfigurationsinformationen vergibt. Sollte ein Client
eine längere Zeitspanne anfordern, wird dennoch
nur der Wert max-lease-time in
Sekunden zugewiesen.Diese Option legt fest, ob der DHCP-Server eine
DNS-Aktualisierung versuchen soll, wenn
Konfigurationsdateien vergeben oder zurückgezogen
werden. In der ISC-Implementation
muss diese Option gesetzt sein.
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.Legt das Standard-Gateway fest, das den Clients
zugewiesen wird.Die (Hardware-)MAC-Adresse eines Rechners (durch die
der DHCP-Server den Client erkennt, der eine Anforderung
an ihn stellt).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.Nachdem Sie dhcpd.conf fertig
konfiguriert haben, sollten Sie den DHCP-Server aktivieren,
indem Sie folgende Zeilen in
/etc/rc.conf aufnehmen:dhcpd_enable="YES"
dhcpd_ifaces="dc0"Dabei müssen Sie den Geräteeintrag
dc0 durch die Gerätedatei (mehrere
Gerätedateien müssen durch Leerzeichen getrennt
werden) ersetzen, die Ihr DHCP-Server auf Anfragen von
DHCP-Clients hin überwachen soll.Danach können Sie den Server durch Eingabe des
folgenden Befehls starten:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startSollten Sie die Konfiguration Ihres Servers einmal
verändern müssen, reicht es nicht aus, ein
SIGHUP-Signal an
dhcpd zu senden, weil damit die
Konfiguration nicht erneut geladen wird
(im Gegensatz zu den meisten Daemonen). Sie müssen
den Prozess vielmehr mit dem Signal
SIGTERM stoppen, um ihn
anschließend neu zu starten.DateienServerKonfigurationsdateien/usr/local/sbin/dhcpddhcpd ist statisch
gelinkt und befindet sich in
/usr/local/sbin. Lesen Sie auch die
mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn
Sie weitere Informationen zu
dhcpd benötigen./usr/local/etc/dhcpd.confdhcpd benötigt die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf, 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.
/var/db/dhcpd.leasesDer 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;./usr/local/sbin/dhcrelaydhcrelay wird in
komplexen Umgebungen verwendet, in denen ein DHCP-Server
eine Anfrage eines Clients an einen DHCP-Server in einem
separaten Netzwerk weiterleitet. Wenn Sie diese
Funktion benötigen, müssen Sie den Port
net/isc-dhcp3-relay
installieren. Weitere Informationen zu diesem Thema
finden Sie in &man.dhcrelay.8;.ChernLeeBeigetragen von TomRhodesDanielGerzoDNS – Domain Name ServiceÜberblickBINDDNS ist das für die Umwandlung von Rechnernamen in
IP-Adressen zuständige Protokoll. &os; verwendet dazu
BIND (Berkeley Internet Name Domain), die am häufigsten
verwendete Implementierung von DNS).
Eine Anfrage nach www.FreeBSD.org gibt die
IP-Adresse des &os;-Webservers, eine Anfrage
nach ftp.FreeBSD.org die
IP-Adresse des entsprechenden
FTP-Servers zurück. Der umgekehrte Weg
ist ebenso möglich, eine IP-Adresse
kann also auch in ihren Rechnernamen aufgelöst werden. Um
eine DNS-Abfrage durchzuführen, muss auf
dem jeweiligen Rechner kein Nameserver installiert sein.&os; verwendet derzeit in der Voreinstellung
BIND9 als
DNS-Serversoftware. Unsere Installation
bietet Ihnen eine erhöhte Sicherheit, ein neues
Dateisystemlayout sowie eine automatisierte
&man.chroot.8;-Konfiguration.DNSIm Internet wird DNS durch ein komplexes
System von autoritativen Root-Nameservern,
Top Level Domain-Servern (TLD) sowie anderen
kleineren Nameservern verwaltet, die individuelle Rechnerinformationen
speichern und untereinander abgleichen.Derzeit wird BIND vom Internet Software Consortium
() verwaltet.BegriffsbestimmungenUm dieses Dokument besser verstehen zu können,
müssen einige DNS-spezifische
Begriffe genauer definiert werden.ResolverReverse-DNSRoot-ZoneBegriffBedeutungForward-DNSRechnernamen in IP-Adressen
umwandeln.Origin (Ursprung)Die in einer bestimmten Zonendatei beschriebene
Domäne.named, BIND,
NameserverGebräuchliche Namen für das unter &os;
verwendete BIND-Nameserverpaket.ResolverEin Systemprozess, durch den ein Rechner
Zoneninformationen von einem Nameserver anfordert.Reverse-DNSDas Gegenteil von Forward-DNS;
die Umwandlung von IP-Adressen in
RechnernamenRoot-ZoneDer Beginn der Internet-Zonenhierarchie. Alle
Zonen befinden sich innerhalb der Root-Zone. Dies ist
analog zu einem Dateisystem, in dem sich alle Dateien
und Verzeichnisse innerhalb des Wurzelverzeichnisses
befinden.ZoneEine individuelle Domäne, Unterdomäne,
oder ein Teil von DNS, der von der
gleichen Autorität verwaltet wird.ZonenBeispieleEs folgen nun einige Zonenbeispiele:. ist die Root-Zone.org. ist eine Top level Domain
(TLD) innerhalb der Root-Zone.example.org.
ist eine Zone innerhalb der
org.-TLD.1.168.192.in-addr.arpa. ist die Zone mit
allen IP-Adressen des 192.168.1.*-IP-Adressraums.Wie man an diesen Beispielen erkennen kann, befindet sich
der spezifischere Teil eines Rechnernamens auf der linken Seite
der Adresse. example.org.
beschreibt einen Rechner also genauer als org.,
während org. genauer als die Root-Zone
ist. Jeder Teil des Rechnernamens hat Ähnlichkeiten mit
einem Dateisystem, in dem etwa /dev dem
Wurzelverzeichnis untergeordnet ist.Gründe für die Verwendung eines
NameserversEs gibt zwei Arten von Nameservern: Autoritative Nameserver
sowie zwischenspeichernde (cachende) Nameserver.Ein autoritativer Nameserver ist notwendig, wennSie anderen verbindliche
DNS-Auskünfte erteilen wollen.eine Domain, beispielsweise
example.org, registriert
wird, und den zu dieser Domain gehörenden Rechnern
IP-Adressen zugewiesen werden
müssen.ein IP-Adressblock
reverse-DNS-Einträge benötigt,
um IP-Adressen in Rechnernamen
auflösen zu können.ein Backup-Nameserver (auch Slaveserver genannt) oder
ein zweiter Nameserver auf Anfragen antworten soll.Ein cachender Nameserver ist notwendig, weilein lokaler DNS-Server Daten zwischenspeichern und daher
schneller auf Anfragen reagieren kann als ein entfernter
Server.Wird nach www.FreeBSD.org
gesucht, leitet der Resolver diese Anfrage an den Nameserver des
ISPs weiter und nimmt danach das Ergebnis der
Abfrage entgegen. Existiert ein lokaler, zwischenspeichernder
DNS-Server, muss dieser die Anfrage nur einmal
nach außen weitergeben. Für alle weiteren Anfragen
ist dies nicht mehr nötig, da diese Information nun lokal
gespeichert ist.Wie funktioniert DNS?Unter &os; wird der BIND-Daemon als
named bezeichnet.DateiBeschreibungnamedDer BIND-Daemon.&man.rndc.8;Das Steuerprogramm für
named.
- /etc/namedb
+ /etc/namedbDas Verzeichnis, in dem sich die Zoneninformationen
für BIND befinden./etc/namedb/named.confDie Konfigurationsdatei für
named.Je nachdem, wie eine Zone auf dem Server konfiguriert wurde,
finden sich die zur Zone gehörendenden Dateien in den
Unterverzeichnissen master, slave, oder dynamic des Verzeichnisses
- /etc/namedb. Diese
+ class="directory">master, slave, oder dynamic des Verzeichnisses
+ /etc/namedb. Diese
Dateien enthalten die DNS-Informationen,
die der Nameserver für die Beantwortung von Anfragen
benötigt.BIND startenBINDStartDa BIND automatisch installiert wird, ist die Konfiguration
relativ einfach.In der Voreinstellung wird ein in einer &man.chroot.8;-Umgebung
betriebener named-Server eingerichtet.
Um den Server manuell zu starten, verwenden Sie den folgenden
Befehl:&prompt.root; /etc/rc.d/named forcestartUm den named-Daemon beim
Systemstart automatisch zu starten, fügen Sie folgende
Zeile in /etc/rc.conf ein:named_enable="YES"/etc/namedb/named.conf bietet zahlreiche
Konfigurationsoptionen, die in diesem Dokument nicht alle
beschrieben werden können. Wollen Sie die Startoptionen
von named unter &os; anpassen, sollten
Sie sich die
named_*-Flags in der
Datei /etc/defaults/rc.conf sowie die
Manualpage zu &man.rc.conf.5; näher ansehen. Zusätzliche
Informationen bietet Ihnen auch der Abschnitt des Handbuchs.KonfigurationsdateienBINDKonfigurationsdateienDie Konfigurationsdateien von
named finden sich unter
- /etc/namedb und müssen
+ /etc/namedb und müssen
in der Regel an Ihre Bedürfnisse angepasst werden. Es sei
denn, Sie benötigen nur einen einfachen Resolver. Ein
Großteil der Konfigurationsarbeiten erfolgt dabei in
diesem Verzeichnis.make-localhost verwendenUm eine Master-Zone für den lokalen Rechner zu
erstellen, wechseln Sie in das Verzeichnis
- /etc/namedb und
+ /etc/namedb und
führen dort den folgenden Befehl aus:&prompt.root; sh make-localhostWenn es keine Probleme gab, sollte nun eine neue Datei
im Unterverzeichnis master vorhanden sein. Diese
heißt entweder localhost.rev
(für den lokalen Domain-Namen) oder
localhost-v6.rev (wenn Sie
IPv6 einsetzen). Als
Standardkonfigurationsdatei wird dabei
named.conf verwendet./etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/Um vom Cache Ihres Internetproviders zu profitieren,
können hier forwarders aktiviert
werden. Normalerweise sucht ein Nameserver das Internet
rekursiv ab, bis er die gesuchte Antwort findet. Durch
diese Option wird stets der Nameserver Ihres
Internetproviders zuerst abgefragt, um von dessen
Cache zu profitieren. Wenn es sich um einen schnellen,
viel benutzten Nameserver handelt, kann dies zu einer
Geschwindigkeitssteigerung führen.127.0.0.1 funktioniert
hier nicht. Ändern Sie diese
Adresse in einen Nameserver Ihres Einwahlproviders. /*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND versions 8 and later
* use a pseudo-random unprivileged UDP port by default.
*/
// query-source address * port 53;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
// RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
type master;
file "master/localhost-v6.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to set up a primary zone, make sure you fully
// understand how DNS and BIND works. There are sometimes
// non-obvious pitfalls. Setting up a slave zone is simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
/* An example master zone
zone "example.net" {
type master;
file "master/example.net";
};
*/
/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Examples of forward and reverse slave zones
zone "example.com" {
type slave;
file "slave/example.com";
masters {
192.168.1.1;
};
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/ Hierbei handelt es sich um Slave-Einträge für
eine Reverse- und Forward-DNS-Zone, die in der Datei
named.conf definiert sind.Für jede neue Zone muss ein zusätzlicher Eintrag
in named.conf erstellt werden.Ein einfacher Eintrag für eine Zone
example.org könnte
beispielsweise so aussehen:zone "example.org" {
type master;
file "master/example.org";
}; Die Option legt fest, dass es sich
um eine Master-Zone handelt, deren Zoneninformationen sich in
der Datei /etc/namedb/master/example.org
befinden. Diese Datei wird durch die Option
festgelegt.zone "example.org" {
type slave;
file "slave/example.org";
}; Hier handelt es sich um einen Slaveserver, der seine
Informationen vom Masterserver der betreffenden Zone bezieht
und diese in der angegebenen Datei speichert. Wenn der
Masterserver nicht erreichbar ist, verfügt der
Slaveserver über die transferierten Zoneninformationen
und kann diese an andere Rechner weitergeben.ZonendateienBINDZonendateiDie in der Datei
/etc/namedb/master/example.org definierte
Zonendatei für
example.org könnte
etwa so aussehen:
$TTL 3600 ; 1 hour
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
; Aliases
www IN CNAME @Beachten Sie, dass jeder mit einem .
endende Rechnername ein exakter Rechnername ist, während
sich alles ohne einen abschließenden .
auf den Ursprung bezieht. www steht daher
für
www.Ursprung.
In unserer fiktiven Zonendatei ist
example.org. der Ursprung, daher steht
www für
www.example.org.Eine Zonendatei hat folgenden Aufbau:recordname IN recordtype valueDNSEinträgeDie am häufigsten verwendeten DNS-Einträge sind:SOAStart der ZonenautoritätNSEin autoritativer NameserverAEine RechneradresseCNAMEDer kanonische Name eines AliasMXMail ExchangerPTREin (bei Reverse-DNS verwendeter) Domain Name
Pointerexample.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.Der Name der Domäne und damit der
Ursprung dieser Zonendatei.ns1.example.org.Der primäre/autoritative Nameserver
dieser Zone.admin.example.org.Die für diese Zone verantwortliche
Person. Das Zeichen @ wird dabei
ersetzt (admin@example.org wird also zu
admin.example.org).2006051501Die Seriennummer der Datei. Sie muss
stets inkrementiert werden, wenn die Zonendatei
geändert wird. Viele Administratoren bevorzugen
ein JJJJMMTTRR-Format, um die
Seriennummer festzulegen.
2006051501 steht also für
den 15.05.2006, die beiden letzten Stellen für die
erste Modifikation der Zonendatei an diesem Tag. Die
Seriennummer ist von großer Bedeutung, da
Slaveserver daran eine aktualisierte Zonendatei erkennen
können.
IN NS ns1.example.org.Ein NS-Eintrag. Jeder Nameserver, der für eine Zone
verantwortlich ist, muss über einen solchen Eintrag
verfügen.
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5Der Eintrag A bezieht sich auf
Rechnernamen. ns1.example.org
würde also zu 192.168.1.2
aufgelöst werden.
IN A 192.168.1.1Diese Zeile weist die IP-Adresse
192.168.1.1 dem aktuellen
Ursprung, in unserem Fall also
example.org, zu.
www IN CNAME @Der Eintrag für den kanonischen Namen wird dazu
verwendet, Aliase für einen Rechner zu vergeben. Im
Beispiel ist www ein Alias für den
Master-Rechner localhost.example.org oder
192.168.1.1). Durch die Option
CNAME können Aliasnamen vergeben werden. Ein Rechnername
kann aber auch abwechselnd verschiedenen Rechnern zugewiesen
werden.MX-Eintrag
IN MX 10 mail.example.org.Die Option MX legt fest, welcher Mailserver für
eintreffende Mails der Zone verantwortlich ist.
mail.example.org ist der
Rechnername des Mailservers, der eine Priorität von 10
hat.Es können auch mehrere Mailserver mit verschiedener
Priorität (10, 20, ...) vorhanden sein. Ein Mailserver,
der eine Mail an example.org
verschicken will, verwendet zuerst den MX mit der höchsten
Priorität (das heißt den mit der niedrigsten
Prioritätsnummer), danach den mit der
nächsthöheren Priorität. Und dies solange,
bis die E-Mail zugestellt werden kann.Für (bei Reverse-DNS verwendete)
in-addr.arpa-Zonendateien wird das gleiche
Format verwendet. Der einzige Unterschied besteht in der
Verwendung der Option PTR an Stelle der Optionen A und
CNAME.
$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.Durch diese Datei werden den Rechnernamen der fiktiven
Domäne IP-Adressen zugewiesen.Zwischenspeichernde (cachende) NameserverBINDZwischenspeichernde NameserverEin cachender Nameserver ist für keine Zonen
verantwortlich. Er stellt lediglich eigene Anfragen und
speichert deren Ergebnisse ab. Um einen solchen Nameserver
einzurichten, gehen Sie wie gewohnt vor, allerdings definieren
Sie keine Zonen.SicherheitObwohl BIND die am meisten verwendete (und kontrollierte)
Implementierung von DNS darstellt, werden dennoch manchmal neue
Sicherheitsprobleme entdeckt.Zwar startet &os; named
automatisch in einer &man.chroot.8;-Umgebung, es gibt aber
noch weitere Sicherheitsmechanismen, mit denen Sie potentielle
DNS-Serviceattacken erschweren
können.Es ist daher eine gute Idee, die Sicherheitshinweise von
CERT zu lesen sowie
die Mailingliste &a.security-notifications; zu abonnieren, um
sich über Sicherheitsprobleme im Zusammenhang mit dem
Internet und FreeBSD zu informieren.Tritt ein Problem auf, kann es nie schaden, die
Quellen zu aktualisieren und named
neu zu kompilieren.Weitere InformationsquellenHilfeseiten zu BIND/named:
&man.rndc.8;, &man.named.8;, &man.named.conf.5;Offizielle ISC-Seite
zu BINDOffizielles Forum zu
ISC- BIND
- BIND FAQs
+ url="http://www.isc.org/index.pl?/sw/bind/FAQ.php">
+ BIND9 FAQs
O'Reilly
DNS and BIND 5th EditionRFC1034
- Domain Names - Concepts and FacilitiesRFC1035
- Domain Names - Implementation and SpecificationMurrayStokelyBeigetragen von Der Apache HTTP-ServerWebserverkonfigurierenApacheÜberblickEinige der weltgrößten Internetauftritte laufen
unter &os;. Die Mehrzahl der Webserver im Internet nutzt
den Apache HTTP-Server. Die
Installationspakete für den
Apache sollten auf Ihrem
Installationsmedium vorhanden sein. Wenn Sie den
Apache noch nicht installiert haben,
können Sie dies jederzeit über den Port
www/apache13 oder
www/apache22 nachholen.Nachdem der Apache erfolgreich
installiert wurde, muss er noch konfiguriert werden.Dieser Abschnitt beschreibt die Version 1.3.X des
Apache HTTP-Servers, da diese Version
unter &os; am häufigsten verwendet wird.
Apache 2.X bringt zwar viele
Verbesserungen mit sich, wird hier aber nicht beschrieben.
Sollten Sie an Apache 2.X
interessiert sein, informieren Sie sich bitte auf
.KonfigurationApacheKonfigurationsdateiDer Apache HTTP-Server wird unter
&os; primär über die Datei
/usr/local/etc/apache/httpd.conf
konfiguriert. Bei dieser Datei handelt es sich um eine typische
&unix;-Konfigurationsdatei, in der Kommentarzeilen mit einem
#-Zeichen beginnen. Eine komplette
Beschreibung aller Optionen würde den Rahmen dieses
Handbuchs sprengen, daher beschreiben wir hier nur die am
häufigsten verwendeten Optionen.ServerRoot "/usr/local"Legt das Standardwurzelverzeichnis für die
Apache-Installation fest.
Binärdateien werden in die Verzeichnisse
bin und
sbin unterhalb des
Serverwurzelverzeichnisses installiert, während sich
Konfigurationsdateien im Verzeichnis
etc/apache
befinden.ServerAdmin you@your.addressDie E-Mail-Adresse, an die Mitteilungen über
Serverprobleme geschickt werden sollen. Diese Adresse
erscheint auf vom Server erzeugten Seiten, beispielsweise
auf Fehlerseiten.ServerName www.example.comÜber die Option ServerName
können Sie einen Rechnernamen festlegen, den Ihr
Server an die Clients sendet, wenn sich dieser von
tatsächlichen Rechnernamen unterscheidet (sie
könnten etwa www statt des richtigen
Rechnernamens verwenden).DocumentRoot "/usr/local/www/data"DocumentRoot: Das Verzeichnis, in
dem Sie Ihre Dokumente ablegen. In der Voreinstellung
befinden sich alle Seiten in diesem Verzeichnis, durch
symbolische Links oder Aliase lassen sich aber auch andere
Orte festlegen.Es ist empfehlenswert, eine Sicherungskopie Ihrer
Konfigurationsdatei anzulegen, bevor Sie Änderungen
durchführen. Nachdem Sie die Konfiguration beendet
haben, können Sie den
Apache starten.Den Apache betreibenApacheStarten oder BeendenDer Apache wird, im Gegensatz zu
vielen anderen Netzwerkservern, nicht vom
inetd-Super-Server verwaltet, sondern
wird als eigenständiger Server betrieben, um die
Leistung für eintreffende HTTP-Anfragen von den Clients
(also von Internetbrowsern) zu verbessern. Gestartet, beendet
oder neu gestartet wird der Server über einen
Shellskript-Wrapper. Um den Apache
erstmals zu starten, geben Sie einfach Folgendes ein:&prompt.root; /usr/local/sbin/apachectl startWenn Sie den Server beenden wollen, geben Sie Folgendes ein:&prompt.root; /usr/local/sbin/apachectl stopWenn Sie die Konfigurationsdatei verändern, müssen
Sie den Server neu starten:&prompt.root; /usr/local/sbin/apachectl restartUm den Apache ohne den Abbruch
bestehender Verbindungen neu zu starten, geben Sie Folgendes
ein:&prompt.root; /usr/local/sbin/apachectl gracefulDiese und weitere Optionen werden in
&man.apachectl.8; beschrieben.Um den Apache beim Systemstart
zu starten, fügen Sie folgende Zeile in
/etc/rc.conf ein:apache_enable="YES"Um Apache 2.2 zu starten,
fügen Sie hingegen folgende Zeile ein:apache22_enable="YES"Wenn Sie während des Systemstarts weitere Parameter an
den
Apache-httpd-Daemon
übergeben wollen, können Sie diese durch eine
zusätzliche Zeile in rc.conf
angeben:apache_flags=""Nachdem der Webserver gestartet ist, können Sie sich
Ihre Internetseite ansehen, indem Sie in Ihren Browser die
Adresse http://localhost/ eingeben. Die
vordefinierte Standardstartseite ist
/usr/local/www/data/index.html.Virtual HostingDer Apache unterstützt zwei
Formen des Virtual Hostings. Die
erste Möglichkeit bezeichnet man als namenbasiertes
virtuelles Hosting. Dabei wird der HTTP/1.1-Header der Clients
dazu verwendet, den Rechnernamen zu bestimmen. Dadurch wird es
möglich, mehrere Domains unter der gleichen IP-Adresse zu
betreiben.Damit der Apache namenbasierte
virtuelle Domains verwalten kann, fügen Sie die folgende
Zeile in httpd.conf ein:NameVirtualHost *Wenn Ihr Webserver
www.domain.tld heißt und Sie die
virtuelle Domain
www.someotherdomain.tld einrichten
wollen, ergänzen Sie httpd.conf um
folgende Einträge:<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
</VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>Ersetzen Sie dabei die Adressen sowie den Pfad zu den
Dokumenten durch Ihre eigenen Einstellungen.Ausführliche Informationen zum Einrichten von
virtuellen Domains finden Sie in der offiziellen
Apache-Dokumentation unter
.Häufig verwendete Apache-ModuleApacheModuleEs gibt viele verschiedene
Apache-Module, die den Server
um zusätzliche Funktionen erweitern. Die
FreeBSD-Ports-Sammlung ermöglicht es Ihnen, den
Apache gemeinsam mit einigen der
beliebtesten Zusatzmodule zu installieren.mod_sslWebserverVerschlüsselungSSLVerschlüsselungDas Modul mod_ssl verwendet die
OpenSSL-Bibliothek, um, unter Nutzung der Protokolle Secure
Sockets Layer (SSL v2/v3) sowie Transport Layer Security
(TLS v1) starke Verschlüsselung zu ermöglichen.
Durch dieses Modul können Sie ein signiertes Zertifikat
von einer Zertifizierungsstelle anfordern, damit Sie einen
sicheren Webserver unter &os; betreiben können.Wenn Sie den Apache 1.3.X noch
nicht installiert haben, können Sie über den
Port www/apache13-modssl eine
Apache-Version installieren, in die
mod_ssl als Modul einkompiliert
wurde. Bevorzugen Sie den
Apache 2.X, installieren Sie
stattdessen den Port
www/apache22, bei dem die
SSL-Unterstützung bereits in der Voreinstellung aktiviert
ist.
- Dynamische Webseiten mit Perl & PHP
+ Skriptsprachen
+
+ Für die wichtigsten Skriptsprachen existieren Module,
+ die es erlauben, Apache-Module
+ nahezu vollständig in einer Skriptsprache zu programmieren.
+ Derartige Module dienen oft dazu, einen Sprach-Interpreter in
+ den Webserver einzubetten. Dadurch wird ein zusätzlicher
+ externer Interpreter überflüssig, was die Startzeit
+ von dynamischen Internetseiten deutlich verringert.
+
+
+
+
+ Dynamische Webseiten
+
+ Webserver
+ dynamischIn den vergangenen Jahren haben immer mehr Unternehmen
- das Internet als Mittel für die Steigerung ihrer
- Einnahmen sowie für die Erhöhung ihrer Reichweite
- entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
- Internetinhalten. Neben einigen Unternehmen, darunter
- µsoft;, die dafür proprietäre Produkte
- entwickelt haben, hat auch die Open Source Community auf
- diesen Umstand reagiert und unter anderem mit
- mod_perl und
- mod_php Möglichkeiten zur
+ das Internet als Mittel für die Steigerung ihrer
+ Einnahmen sowie für die Erhöhung ihrer Reichweite
+ entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
+ Internetinhalten. Neben einigen Unternehmen, darunter
+ µsoft;, die dafür proprietäre Produkte
+ entwickelt haben, hat auch die Open Source Community auf
+ diesen Umstand reagiert und unter anderem mit Django,
+ Ruby on Rails, mod_perl, und
+ mod_php Möglichkeiten zur
Generierung dynamischer Internetseiten geschaffen.
-
+
+ Django
+
+ Python
+ Django
+
+ Bei Django handelt es
+ sich um ein unter der BSD-Lizenz verfügbares
+ Framework zur schnellen Erstellung von mächtigen
+ Internet-Applikationen. Es beinhaltet einen
+ objekt-relationalen Mapper (wodurch Datentypen als
+ Phyton-Objekte entwickelt werden können) sowie eine
+ API für den dynamischen Datenbankzugriff auf diese
+ Objekte, ohne dass Entwickler jemals SQL-Code schreiben
+ müssen. Zusätzlich existiert ein umfangreiches
+ Template-System, wodurch die Programmlogik von der
+ HTML-Präsentation getrennt werden kann.
+
+ Django setzt das Modul
+ mod_python,
+ den Apache-Webserver sowie eine
+ SQL-Datenbank voraus. Für FreeBSD gibt es einen Port,
+ der alle Abhängigkeiten mit sinnvollen Optionen
+ konfiguriert und installiert.
+
+
+ Django mit Apache2, mod_python3, und PostgreSQL
+ installieren
+
+ &prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL
+
+
+ Nachdem Django (sowie die abhängigen Pakete)
+ installiert ist, müssen Sie ein Projektverzeichnis
+ erstellen. Danach konfigurieren Sie Apache so, dass
+ der eingebettete Python-Interpreter spezifische URLs
+ Ihrer Seiten aufruft.
+
+
+ Apache-Konfiguration für Django/mod_python
+
+ Sie müssen die Apache-Konfigurationsdatei
+ httpd.conf anpassen, damit Apache
+ Anfragen für bestimmte URLs an Ihre
+ Internet-Applikation übergibt:
+
+ <Location "/">
+ SetHandler python-program
+ PythonPath "['/dir/to/your/django/packages/'] + sys.path"
+ PythonHandler django.core.handlers.modpython
+ SetEnv DJANGO_SETTINGS_MODULE mysite.settings
+ PythonAutoReload On
+ PythonDebug On
+</Location>
+
+
+
+
+ Ruby on Rails
+
+ Ruby on Rails
+
+ Bei Ruby on Rails handelt
+ es sich um ein weiteres, als Open Source verfügbares
+ Webframework. Es bietet einen kompletten Entwicklungsstack
+ und erlaubt es Webentwicklern, umfangreiche und mächtige
+ Applikationen in kurzer Zeit zu programmieren. Das
+ Framework kann über die Ports-Sammlung installiert
+ werden.
+
+ &prompt.root; cd /usr/ports/www/rubygem-rails; make all install clean
+
+
+ mod_perlmod_perlPerlDie Kombination Apache/Perl
vereinigt die Vorteile der Programmiersprache Perl und des
Apache HTTP-Servers. Durch
das Modul mod_perl ist es
möglich, vollständig in Perl geschriebene
Apache-Module zu erzeugen.
Da der Perl-Interpreter in den Server eingebettet wird,
müssen Sie weder einen externen Interpreter noch
Perl zusätzlich aufrufen.mod_perl ist in verschiedenen
Versionen erhältlich. Bevor Sie
mod_perl einsetzen,denken Sie
bitte daran, dass mod_perl 1.0
nur mit Apache 1.3 und
mod_perl 2.0 nur mit
Apache 2.X zusammenarbeitet.
mod_perl 1.0 kann über
den Port www/mod_perl,
eine statisch kompilierte Version hingegen über den
Port www/apache13-modperl
installiert werden. Für die Installation von
mod_perl 2.0 schließlich
verwenden Sie den Port www/mod_perl2.
-
+
-
-
+
+ TomRhodesGeschrieben von
-
+
mod_phpmod_phpPHPBei PHP, dem Hypertext Preprocessor,
handelt es sich um eine vielseitig verwendbare Skriptsprache,
die besonders für die Internetprogrammierung geeignet
ist. PHP kann in HTML eingebettet werden
und ähnelt von der Syntax her Sprachen wie C, &java; und
Perl. Das Hauptanliegen von PHP ist es, Internetprogrammierern
die rasche Erstellung von dynamisch erzeugten Internetseiten zu
ermöglichen.Damit Ihr System PHP5 unterstützt,
müssen Sie als Erstes den Apache
Webserver über den Port
lang/php5
installieren.Wenn Sie den Port lang/php5
das erste Mal installieren, werden die verfügbaren Optionen
(OPTIONS) automatisch angezeigt. Erscheint das
Konfigurationsmenü bei Ihnen nicht, so liegt dies daran,
dass Sie den Port lang/php5
schon einmal auf Ihrem System installiert hatten. Es ist aber
jederzeit möglich, dieses Menü aus dem
Ports-Verzeichnis heraus über folgenden Befehl erneut
aufzurufen:&prompt.root; make configIn diesem Konfigurationsmenü müssen Sie die
Option APACHE auswählen, damit
mod_php5 als ein vom
Apache-Webserver ladbares Modul
gebaut wird.Viele Seiten verwenden nach wie vor (beispielsweise wegen
der benötigten Kompatibilität zu bereits
vorhandenen Web-Applikationen) PHP4.
Ist dies bei Ihnen der Fall, so müssen Sie statt
mod_php5mod_php4 über den Port
lang/php4 installieren.
Der Port lang/php4
unterstützt viele der Konfigurations- und
Laufzeitoptionen von lang/php5.Dieser Port installiert und konfiguriert die Module, die
für die Unterstützung von dynamischen
PHP-Anwendungen benötigt werden.
Stellen Sie danach sicher, dass Ihre
/usr/local/etc/apache/httpd.conf die
folgenden Abschnitte enthält:LoadModule php5_module libexec/apache/libphp5.soAddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Nachdem dies erledigt ist, rufen Sie
apachectl auf, um das
PHP-Modul zu laden:&prompt.root; apachectl gracefulBei künftigen Upgrades von PHP
wird make config nicht mehr benötigt,
da die von Ihnen ursprünglich ausgewählten
Optionen (OPTIONS) vom
&os;-Ports-Framework automatisch gespeichert werden.Die PHP-Unterstützung von &os; ist
stark modular aufgebaut, daher verfügt eine
Basisinstallation nur über wenige Funktionen. Eine
Erweiterung um zusätzliche Funktionen ist allerdings sehr
einfach über den Port lang/php5-extensions möglich.
Der Port bietet Ihnen ein Auswahlmenü, über das Sie
verschiedene PHP-Erweiterungen installieren
können. Alternativ können Sie einzelne Erweiterungen
aber weiterhin direkt über den jeweiligen Port
installieren.Um beispielsweise die Unterstützung des
Datenbankservers MySQL in
PHP5 zu aktivieren, installieren Sie
den Port databases/php5-mysql.Nachdem Sie eine Erweiterung installiert haben,
müssen Sie den
Apache-Server neu starten, damit
die Erweiterung auch erkannt wird:&prompt.root; apachectl gracefulAb nun wird MySQL von
PHP unterstützt.
- MurrayStokelyBeigetragen von FTP – File Transfer ProtocolFTP-ServerÜberblickDas File Transfer Protocol (FTP) ermöglicht
auf einfache Art und Weise den Dateiaustausch mit einem
FTP-Server.
Der
FTP-Server
ftpd ist bei &os; bereits im
Basisystem enthalten. Daher sind Konfiguration und Betrieb
eines
FTP-Servers
unter FreeBSD relativ einfach.KonfigurationDer wichtigste Punkt ist hier die Entscheidung darüber,
welche Benutzer auf Ihren FTP-Server zugreifen dürfen.
Ein FreeBSD-System verfügt über diverse
Systembenutzerkonten, um einzelnen Daemonen den Zugriff auf
das System zu ermöglichen. Anonyme Benutzer sollten sich
allerdings nicht über diese Benutzerkonten anmelden
dürfen. Die Datei /etc/ftpusers
enthält alle Benutzer, die vom FTP-Zugriff ausgeschlossen
sind. In der Voreinstellung gilt dies auch die gerade
erwähnten Systembenutzerkonten. Sie können über
diese Datei weitere Benutzer vom FTP-Zugriff
ausschließen.Sie können den Zugriff für einige Benutzer
einschränken, ohne FTP komplett zu verbieten. Dazu
passen Sie /etc/ftpchroot entsprechend an.
Diese Datei enthält Benutzer und Gruppen sowie die für
sie geltenden FTP-Einschränkungen und wird in
&man.ftpchroot.5; ausführlich beschrieben.FTPanonymousWenn Sie einen anonymen FTP-Zugriff auf Ihren Server
ermöglichen wollen, müssen Sie den Benutzer
ftp auf Ihrem &os;-System anlegen.
Danach können sich Benutzer mit dem Benutzernamen
ftp oder anonymous
auf Ihrem FTP-Server anmelden. Das Passwort ist dabei
beliebig (allerdings wird dazu in der Regel eine E-Mail-Adresse
verwendet). Meldet sich ein anonymer Benutzer an, aktiviert
der FTP-Server &man.chroot.2;, um den Zugriff auf das
Heimatverzeichnis des Benutzers ftp
zu beschränken.Es gibt zwei Textdateien, deren Inhalt Sie bei der Anmeldung
an Ihrem FTP-Server anzeigen lassen können. Der Inhalt von
/etc/ftpwelcome wird angezeigt, bevor der
Login-Prompt erscheint. Nach einer erfolgreichen Anmeldung wird
der Inhalt von /etc/ftpmotd angezeigt.
Beachten Sie aber, dass es dabei um einen Pfad relativ zur
Umgebung des anzumeldenden Benutzers handelt. Bei einer
anonymen Anmeldung würde also die Datei
~ftp/etc/ftpmotd angezeigt.Nachdem Sie den FTP-Server konfiguriert haben, müssen
Sie Ihn in /etc/inetd.conf aktivieren.
Dazu müssen Sie lediglich das Kommentarsymbol
# am Beginn der bereits vorhandenen
ftpd-Zeile entfernen:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lNachdem Sie diese Änderung durchgeführt haben,
müssen Sie, wie in
beschrieben, die inetd-Konfiguration
neu einlesen.Danach können Sie sich auf Ihrem FTP-Server anmelden:&prompt.user; ftp localhostWartungsyslogLogdateienFTPDer ftpd-Daemon verwendet
&man.syslog.3;, um Protokolldateien zu erstellen. In der
Voreinstellung werden alle FTP betreffenden Nachrichten
in die Datei /var/log/xferlog
geschrieben. Dies lässt sich aber durch das Einfügen
der folgenden Zeile in /etc/syslog.conf
ändern:ftp.info /var/log/xferlogFTPanonymousBeachten Sie, dass mit dem Betrieb eines anonymen
FTP-Servers verschiedene Sicherheitsrisiken verbunden sind.
Problematisch ist hier vor allem die Erlaubnis zum anonymen
Upload von Dateien. Dadurch könnte Ihr Server zur
Verbreitung von illegaler oder nicht lizensierter Software
oder noch Schlimmeren missbraucht werden. Wollen Sie
anonyme Uploads dennoch erlauben, sollten Sie die
Zugriffsrechte so setzen, dass solche Dateien erst nach Ihrer
Zustimmung von anderen Benutzern heruntergeladen werden
können.MurrayStokelyBeigetragen von Mit Samba einen Datei- und Druckserver für
µsoft.windows;-Clients einrichtenSamba-ServerMicrosoft WindowsDateiserverWindows-ClientsDruckserverWindows-ClientsÜberblickSamba ist ein beliebtes
Open Source-Softwarepaket, das es Ihnen ermöglicht,
einen Datei- und Druckserver für
µsoft.windows;-Clients einzurichten. Clients können
sich dadurch mit einem FreeBSD-System verbinden und dessen
Speicherplatz oder dessen Drucker verwenden. Dies genauso, als
wenn es sich um lokale Drucker oder Festplatten handeln
würde.Samba sollte als Softwarepaket
auf Ihren Installationsmedien vorhanden sein. Wenn Sie
Samba noch nicht installiert haben,
können Sie dies jederzeit über den Port oder das
Paket net/samba3
nachholen.KonfigurationDie Standardkonfigurationsdatei von
Samba heißt
- /usr/local/share/examples/smb.conf.default.
+ /usr/local/share/examples/samba/smb.conf.default.
Diese Datei muss nach /usr/local/etc/smb.conf
kopiert und angepasst werden, bevor
Samba verwendet werden kann.Die Datei smb.conf enthält
Laufzeitinformationen für
Samba, beispielsweise
Druckerdefinitionen oder
filesystem shares, also Bereiche
des Dateisystems, die Sie mit &windows;-Clients teilen wollen.
Die Konfiguration der Datei smb.conf
erfolgt webbasiert über das im
Samba-Paket enthaltene Programm
swat.Das Samba Web Administration Tool (SWAT) verwendenDas
Samba Web Administration Tool
(SWAT) wird als Daemon von inetd
aktiviert. Daher müssen Sie den Kommentar vor der
folgenden Zeile in /etc/inetd.conf
entfernen, bevor Sie swat zur
Konfiguration von Samba verwenden
können:swat stream tcp nowait/400 root /usr/local/sbin/swat swatWie bereits in
beschrieben, müssen Sie die
inetd-Konfiguration neu einlesen,
nachdem Sie diese Änderung durchgeführt haben.Nachdem swat in der Datei
inetd.conf aktiviert wurde, rufen Sie
in Ihrem Internetbrowser die Adresse
auf und melden sich
mit dem root-Benutzerkonto an.Nachdem Sie sich erfolgreich angemeldet haben, wird die
Hauptkonfigurationseite von Samba
geladen. Sie können nun die Dokumentation lesen, oder
durch einen Klick auf die
Globals-Karteikarte mit der Konfiguration
beginnen. Die Einstellungen, die Sie hier vornehmen
können, entsprechen denen des Abschnitts
[global] von
/usr/local/etc/smb.conf.Globale EinstellungenUnabhängig davon, ob Sie
swat verwenden, oder
/usr/local/etc/smb.conf direkt
editieren, sollten Sie zuerst folgende Einstellungen
anpassen:workgroupDer NT-Domänenname oder der Arbeitsgruppenname der
Rechner, die auf den Server Zugriff haben sollen.netbios nameNetBIOSLegt den NetBIOS-Namen fest, unter dem der
Samba-Server bekannt ist.
In der Regel handelt es sich dabei um den ersten
Teil des DNS-Namens des Servers.server stringLegt die Beschreibung fest, die angezeigt werden
soll, wenn mit net view oder
über andere Netzwerkprogramme Informationen
über den Server angefordert werden.Samba absichernZwei der wichtigsten Einstellungen in
/usr/local/etc/smb.conf betreffen
das zu verwendende Sicherheitsmodell sowie das
Backend-Passwortformat für die Benutzer der
Samba-Clients. Folgende Optionen sind dafür
verantwortlich:securityDie häufigsten Optionen sind
security = share und
security = user. Wenn Ihre Clients
Benutzernamen verwenden, die den Benutzernamen auf Ihrem
&os;-Rechner entsprechen, dann sollten Sie die
Einstellung user level
verwenden. Dies ist auch die Standardeinstellung.
Allerdings ist es dazu erforderlich, dass sich die
Clients auf Ihrem Rechner anmelden, bevor sie auf
gemeinsame Ressourcen zugreifen können.In der Einstellung
share level müssen
sich Clients nicht unter Verwendung eines gültigen
Logins auf Ihrem Rechner anmelden, bevor sie auf
gemeinsame Ressourcen zugreifen können. In
früheren Samba-Versionen
war dies die Standardeinstellung.passdb backendNIS+LDAPSQL databaseSamba erlaubt
verschiedene Backend-Authentifizierungsmodelle. Sie
können Clients durch LDAP, NIS+, eine SQL-Datenbank
oder eine Passwortdatei authentifizieren. In der
Voreinstellung wird smbpasswd
verwendet. Diese Methode wird im folgenden Abschnitt
näher beschrieben.Wenn Sie smbpasswd verwenden, müssen
Sie die Datei /usr/local/private/smbpasswd
erzeugen, damit Samba in der Lage
ist, Clients zu authentifizieren. Wenn Sie auf Ihrem
&unix;-Rechner vorhandenen Benutzern den Zugriff von einem
&windows;-Client aus ermöglichen wollen, verwenden Sie den
folgenden Befehl:&prompt.root; smbpasswd -a username
+
+ Seit Samba 3.0.23c befinden
+ sich dessen Authentifizierungsdateien in der Voreinstellung
+ im Verzeichnis /usr/local/etc/samba. Als
+ Backend wird inzwischen tdbsam
+ empfohlen. Mit dem folgenden Befehl legen Sie neue
+ Benutzerkonten an:
+
+ &prompt.root; pdbedit username
+
+
Ausführliche Informationen zur Konfiguration
von Samba finden Sie im
Official Samba HOWTO. Sie sollten aber bereits
nach dem Lesen dieses Abschnitts in der Lage sein,
Samba zu starten.Samba startenDer Port net/samba3
legt ein neues Startskript an, mit dem
Samba gesteuert (also etwa
gestartet oder beendet) werden kann. Um dieses Skript
zu aktivieren, fügen Sie folgende Zeile in
/etc/rc.conf ein:samba_enable="YES"Alternativ können Sie auch die folgenden
beiden Einträge verwenden:nmbd_enable="YES"smbd_enable="YES"Durch diese Einträge
Samba beim Systemstart
automatisch aktiviert.Danach können Sie Samba
jederzeit durch folgenden Befehl starten:&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Weitere Informationen zu den rc-Startskripten finden
Sie im des Handbuchs.Samba verwendet drei Daemonen.
Beachten Sie, dass sowohl nmbd als
auch smbd durch das Skript
samba gestartet werden. Wenn Sie die
winbind name resolution services
in smb.conf aktiviert haben, wird
zusätzlich der winbindd-Daemon
gestartet.Sie können Samba jederzeit
durch den folgenden Befehl beenden:&prompt.root; /usr/local/etc/rc.d/samba stopSamba ist ein komplexes
Softwarepaket mit umfassenden Funktionen, die eine weitreichende
Integration von µsoft.windows;-Netzwerken ermöglichen.
Für eine Beschreibung dieser Zusatzfunktionen sollten Sie
sich auf umsehen.TomHukinsBeigetragen von Die Uhrzeit mit NTP synchronisierenNTPÜberblickDa die interne Uhrzeit eines Computers nie ganz exakt ist,
wurde mit NTP
(Network Time Protocol) eine
Möglichkeit geschaffen, die exakte Uhrzeit zu ermitteln
und festzulegen.Viele Internetdienste sind von einer exakten Uhrzeit
abhängig. Ein Webserver könnte beispielsweise die
Anforderung erhalten, eine Datei zu versenden, wenn sich diese
in einer bestimmten Zeitspanne geändert hat. In einem
lokalen Netzwerk ist es unbedingt notwendig, dass Rechner, die
Dateien von einem gemeinsamen Dateiserver beziehen, ihre
Uhrzeit synchronisieren, damit die Zeitstempel der Dateien
konstistent bleiben. Dienste wie &man.cron.8; führen
Befehle zu einem bestimmten Zeitpunkt aus. Ist die Uhrzeit
nicht korrekt, kann dies zu Problemen führen.NTPntpd&os; verwendet den &man.ntpd.8;-
NTP-Server,
um die genaue Uhrzeit von anderen
NTP-Servern
abzufragen, die eigene Systemzeit zu setzen, oder um diese
anderen Rechnern anzubieten.Einen passenden NTP-Server auswählenNTPServerwahlUm die Uhrzeit zu synchronisieren, müssen Sie sich mit
einem
NTP-Server
verbinden. Ihr Netzwerkadministrator oder Ihr Internetprovider
haben vielleicht schon einen NTP-Server eingerichtet. Lesen Sie
deren Dokumentation, um dies zu überprüfen. Es gibt
im Internet eine
Liste mit frei zugänglichen NTP-Servern, aus der
Sie sich einen in Ihrer Nähe gelegenen Server
auswählen können. Beachten Sie aber auf jeden Fall
die Nutzungsbedingungen des entsprechenden Servers, und fragen
Sie um Erlaubnis, wenn dies nötig ist.Die Auswahl von mehreren NTP-Servern kann sinnvoll sein,
wenn ein Server ausfällt oder falsche Zeiten liefert.
&man.ntpd.8; verwendet die Antworten anderer Server, um
zuverlässige Server zu bestimmen, die dann bevorzugt
abgefragt werden.NTP unter &os; einrichtenNTPKonfigurationNTP aktivierenntpdateWenn Sie Ihre Uhrzeit nur beim Systemstart
synchronisieren wollen, können Sie &man.ntpdate.8;
verwenden. Für Desktoprechner, die regelmäßig
neu gestartet werden und keine ständige Synchronisation
benötigen, ist dies akzeptabel. In allen anderen
Fällen sollten Sie jedoch &man.ntpd.8; verwenden.Die Ausführung von &man.ntpdate.8; während des
Systemstarts ist aber auch für Rechner, die &man.ntpd.8;
verwenden, sinnvoll. &man.ntpd.8; passt die Systemzeit nur
bei größeren Abweichungen an, während
&man.ntpdate.8; die Zeit immer synchronisiert, egal wie
groß die Differenz zwischen Systemzeit und korrekter
Zeit ist.Um &man.ntpdate.8; beim Systemstart zu aktivieren,
fügen Sie den Eintrag
ntpdate_enable="YES" in
/etc/rc.conf ein. Außerdem müssen
Sie alle Server, mit denen Sie sich synchronisieren wollen,
sowie alle an &man.ntpdate.8; zu übergebenden Optionen
in den ntpdate_flags angeben.NTPntp.confNTP einrichtenDie Konfiguration von NTP erfolgt über die Datei
/etc/ntp.conf, und wird in der
Hilfeseite &man.ntp.conf.5; beschrieben. Dazu ein
einfaches Beispiel:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftDie Option server legt die zu
verwendenden Server fest, wobei jeder Server in einer eigenen
Zeile steht. Wenn ein Server mit der Option
prefer versehen ist, wie dies hier bei
ntplocal.example.com der Fall
ist, wird dieser Server bevorzugt verwendet. Eine Antwort von
einem bevorzugten Server wird nur dann verworfen, wenn sie
signifikant von denen anderer Server abweicht, ansonsten wird
sie ohne Abfrage weiterer Server verwendet. Die Option
prefer wird gewöhnlich nur für
sehr zuverlässige und genaue Server verwendet, die
über spezielle Hardware zur Zeitüberwachung
verfügen.Die Option driftfile legt fest, in
welcher Datei die Abweichungen der Systemuhr protokolliert
werden. &man.ntpd.8; verwendet diese Datei, um die Systemzeit
automatisch anzupassen, selbst wenn kurzzeitig kein NTP-Server
zur Synchronisation verfügbar ist.Weiterhin legt die Option driftfile fest,
wo Informationen über frühere Antworten des von
Ihnen verwendeten NTP-Servers gespeichert werden sollen.
Diese Datei enthält NTP-interne Informationen, sie sollte
daher von anderen Prozessen nicht verändert werden.Den Zugang zu Ihrem NTP-Server beschränkenIn der Voreinstellung ist Ihr NTP-Server für alle
Rechner im Internet erreichbar. Über die Option
restrict in der Datei
/etc/ntp.conf können Sie den
Zugang zu Ihrem Server beschränken.Wenn Sie alle Rechner vom Zugriff auf Ihren NTP-Server
ausschließen wollen, fügen Sie folgende Zeile in
/etc/ntp.conf ein:restrict default ignoreDurch diesen Eintrag verhindern Sie den Zugriff Ihres
Servers auf alle auf Ihrem System konfigurierten Server.
Müssen Sie Ihren NTP-Server mit einem externen
NTP-Server synchronisieren, müssen Sie dies daher
dezidiert zulassen. Lesen Sie in diesem Fall die
Manualpage &man.ntp.conf.5;.Wenn Sie nur Rechnern Ihres eigenen Netzwerks die
Synchronisation mit Ihrem NTP-Server erlauben, gleichzeitig
aber verhindern wollen, dass diese den NTP-Server
konfigurieren oder als Server für andere Rechner dienen
können, fügen Sie folgende Zeile ein:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapBei 192.168.1.0 handelt es
sich um einen Rechner Ihres Netzwerks.
255.255.255.0 ist die
Netzmaske Ihres Netzwerks./etc/ntp.conf kann verschiedene
restrict-Optionen enthalten.
Weiteres erfahren Sie im Abschnitt
Access Control Support der
Hilfeseite &man.ntp.conf.5;.Den NTP-Server startenDamit der NTP-Server beim Systemstart automatisch gestartet
wird, fügen Sie den Eintrag
ntpd_enable="YES" in
/etc/rc.conf ein. Wenn Sie weitere
Argumente an &man.ntpd.8; übergeben wollen, passen Sie
die Option ntpd_flags in der Datei
/etc/rc.conf entsprechend an.Um den NTP-Server ohne einen Systemneustart zu starten,
rufen Sie ntpd mit den unter
ntpd_flags in
/etc/rc.conf festgelegten Parametern auf.
Hierzu ein Beispiel:&prompt.root; ntpd -p /var/run/ntpd.pidntpd mit einer Einwahlverbindung verwenden&man.ntpd.8; benötigt keine ständige
Internetverbindung. Wenn Sie sich ins Internet einwählen,
ist es sinnvoll, zu verhindern, dass NTP-Verkehr eine Verbindung
aufbauen oder aufrechterhalten kann. Wenn Sie user-PPP
verwenden, können Sie dies in den
filter-Direktiven von
/etc/ppp/ppp.conf festlegen. Sehen Sie
sich dazu das folgende Beispiel ein:set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Weitere Informationen finden Sie im Abschnitt
PACKET FILTERING von &man.ppp.8; sowie in den
Beispielen unter /usr/share/examples/ppp/.Einige Internetprovider blockieren Ports mit niedrigen
Nummern. In solchen Fällen funktioniert NTP leider
nicht, da Antworten eines NTP-Servers Ihren Rechner nicht
erreichen werden.Weitere InformationenWeiterführende Dokumentation (im HTML-Format)
zum NTP-Server finden Sie unter
/usr/share/doc/ntp/.
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
index 427376ce23..ddda347b1c 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1689 +1,1689 @@
UwePierauÜbersetzt von Installieren von Anwendungen: Pakete und PortsÜbersichtPortsPaketeFreeBSD enthält sehr viele Systemwerkzeuge, die Teil des
Basissystems sind. Allerdings sind Sie früher oder später
auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten
durchführen können. Um diese Software zu installieren,
stellt FreeBSD zwei sich ergänzende Methoden zur
Verfügung: Die Ports-Sammlung (zur Installation aus dem
Quellcode) sowie Pakete (auch als
Packages bezeichnet, zur Installation
von vorkompilierten binären Softwarepaketen).
Sie können beide Methoden benutzen, um Ihre Lieblingsanwendungen
von lokalen Medien oder über das Netzwerk zu
installieren.Dieses Kapitel behandelt die folgenden Themen:Die Installation binärer Softwarepakete.Der Bau Software Dritter aus dem Quellcode mithilfe der
Ports-Sammlung.Wie zuvor installierte Pakete oder Ports
entfernt werden.Wie Sie die Voreinstellungen der Ports-Sammlung
überschreiben.Die Suche nach geeigneter Software.Wie Sie Ihre Anwendungen aktualisieren.Installation von SoftwareWenn Sie schon einmal ein &unix; System benutzt haben, werden Sie
wissen, dass zusätzliche Software meist wie folgt
installiert wird:Download der Software, die als Quelltext oder im
Binärformat vorliegen kann.Auspacken der Software, die typischerweise ein mit
&man.compress.1;, &man.gzip.1; oder &man.bzip2.1;
komprimiertes Tar-Archiv enthält.Durchsuchen der Dokumentation, die sich meist in Dateien wie
INSTALL, README oder
mehreren Dateien im Verzeichnis doc/
befindet, nach Anweisungen, wie die Software
zu installieren ist.Kompilieren der Software wenn sie als Quelltext vorliegt.
Dazu müssen Sie vielleicht das Makefile
anpassen, oder configure laufen lassen, oder
andere Arbeiten durchführen.Testen und installieren der Software.Das beschreibt aber nur den optimalen Fall. Wenn Sie
Software installieren, die nicht speziell für FreeBSD
geschrieben wurde, müssen Sie vielleicht sogar den Quelltext
anpassen, damit die Software funktioniert.Wenn Sie unbedingt wollen, können Sie mit FreeBSD Software
nach der althergebrachten Methode installieren. Mit
Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an,
die Ihnen sehr viel Zeit sparen können. Zurzeit werden über
&os.numports; Anwendungen Dritter über diese Methoden zur
Verfügung gestellt.Das FreeBSD-Paket einer Anwendung besteht aus einer einzigen
Datei, die Sie sich herunterladen müssen. Das Paket
enthält schon übersetzte Kommandos der Anwendung, sowie
zusätzliche Konfigurationsdateien oder Dokumentation. Zur
Handhabung der Pakete stellt FreeBSD-Kommandos wie &man.pkg.add.1;,
&man.pkg.delete.1; oder &man.pkg.info.1; zur Verfügung.
Mit diesem System können neue Anwendungen mit einem
Kommando, pkg_add, installiert werden.Der FreeBSD-Port einer Anwendung ist eine Sammlung von Dateien,
die das Kompilieren der Quelltexte einer Anwendung
automatisieren.Die Dateien eines Ports führen für Sie alle oben
aufgeführten Schritte zum Installieren einer Anwendung durch.
Mit einigen wenigen Kommandos wird der Quellcode der Anwendung
automatisch heruntergeladen, ausgepackt, gepatcht, übersetzt und
installiert.Tatsächlich kann das Portsystem auch dazu benutzt werden,
Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos,
wie pkg_add, manipulieren können.Pakete und Ports beachten Abhängigkeiten zwischen
Anwendungen. Angenommen, Sie wollen eine Anwendung installieren,
die von einer Bibliothek abhängt und die Anwendung wie die
Bibliothek sind als Paket oder Port für FreeBSD verfügbar.
Wenn Sie pkg_add oder das Portsystem benutzen,
um die Anwendung zu installieren, werden Sie bemerken, dass
die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher
installiert war.Sie werden sich fragen, warum FreeBSD-Pakete und -Ports
unterstützt, wo doch beide Methoden fast gleiches leisten.
Beide Methoden haben ihre Stärken und welche Sie einsetzen,
hängt letztlich von Ihren Vorlieben ab.Vorteile von PaketenDas komprimierte Paket einer Anwendung ist normalerweise
kleiner als das komprimierte Archiv der Quelltexte.Pakete müssen nicht mehr kompiliert werden. Dies ist
ein Vorteil, wenn Sie große Pakete, wie
Mozilla, KDE
oder GNOME auf langsamen Maschinen
installieren.Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
wie Sie Software unter FreeBSD kompilieren.Vorteile von PortsDa die Pakete auf möglichst vielen System laufen sollen,
werden Optionen beim Übersetzen zurückhaltend gesetzt.
Wenn Sie eine Anwendung über die Ports installieren,
können Sie die Angabe der Optionen optimieren. Zum Beispiel
können Sie spezifischen Code für Pentium 4 oder
Athlon Prozessoren erzeugen.Die Eigenschaften einiger Anwendungen werden über
Optionen zum Zeitpunkt des Übersetzens festgelegt.
Apache kann zum Beispiel über
viele eingebaute Optionen konfiguriert werden. Wenn Sie das
Portsystem benutzen, können Sie die Vorgaben für die
Optionen überschreiben.Für einige Fälle existieren verschiedene
Pakete einer Anwendung, die beim Übersetzen
unterschiedlich konfiguriert wurden. Für
Ghostscript gibt es ein
ghostscript-Paket und ein
ghostscript-nox11-Paket, die sich durch die
X11 Unterstützung unterscheiden. Diese grobe Unterscheidung
ist mit dem Paketsystem möglich, wird aber schnell
unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen
zum Zeitpunkt des Übersetzens besitzt.Die Lizenzbestimmungen mancher Software verbietet ein
Verbreiten in binärer Form. Diese Software muss als
Quelltext ausgeliefert werden.Einige Leute trauen binären Distributionen nicht. Wenn
Sie den Quelltext besitzen, können Sie sich diesen
(zumindest theoretisch) durchlesen und nach möglichen Problemen
durchsuchen.Wenn Sie eigene Anpassungen besitzen, benötigen Sie den
Quelltext, um diese anzuwenden.Manch einer besitzt gerne den Quelltext, um ihn zu lesen,
wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach
ein paar Sachen abzugucken (natürlich nur, wenn es die
Lizenzbestimmungen erlauben).Wenn Sie über aktualisierte Ports informiert sein wollen,
lesen Sie bitte die Mailinglisten &a.ports; und &a.ports-bugs;.Bevor Sie eine Anwendung installieren, sollten Sie
auf der Seite
über mögliche Sicherheitsprobleme mit der
Anwendung informieren.Die Anwendung
ports-mgmt/portaudit
prüft automatisch alle installierten Anwendungen
auf bekannte Sicherheitslöcher. Vor dem Bau eines
Ports findet ebenfalls eine Prüfung statt.
Installierte Pakete prüfen Sie mit dem
Kommando portaudit -F -a.Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
Paketen oder Ports auf einem FreeBSD-System installieren und
verwalten.Suchen einer AnwendungBevor Sie eine Anwendung installieren, müssen Sie deren
Art und Namen kennen.Die Anzahl der nach FreeBSD portierten Anwendungen steigt
ständig. Zum Glück gibt es einige Wege, die richtige zu
finden.Eine aktuelle Liste verfügbarer Anwendungen, die sich
auch durchsuchen lässt, finden Sie unter http://www.FreeBSD.org/ports/.
Die Anwendungen sind in Kategorien unterteilt und Sie
können sich alle Anwendungen einer Kategorie anzeigen
lassen. Wenn Sie den Namen der Anwendung kennen, können
Sie natürlich auch direkt nach dem Namen suchen.FreshPortsFreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
unter .
FreshPorts verfolgt
Änderungen an Anwendungen aus den Ports. Mit FreshPorts
können Sie ein oder mehrere Ports beobachten und sich eine
E-Mail schicken lassen, wenn ein Port aktualisiert wird.FreshMeatWenn Sie den Namen einer Anwendung nicht kennen, versuchen
Sie eine Webseite wie FreshMeat
(),
um eine passende Anwendung zu finden. Schauen Sie dann auf der
FreeBSD-Webseite nach, ob die Anwendung schon portiert
wurde.Wenn Sie den Portnamen kennen und nur nach der
Kategorie suchen wollen, verwenden Sie das Kommando
&man.whereis.1;. Geben Sie einfach
whereis Datei ein.
Datei ist der Name des
Programms, das Sie suchen:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofDamit haben wir herausgefunden, dass sich
lsof, ein Systemwerkzeug, im Verzeichnis
/usr/ports/sysutils/lsof
befindet.Auch mit einem einfachen &man.echo.1;-Befehl können
Sie herausfinden, wo Sie einen bestimmten Port finden. Dazu
ein Beispiel:&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsofBeachten Sie aber, dass dieser Befehl auch alle Dateien
im Verzeichnis /usr/ports/distfiles
findet, auf die der angegebene Suchbegriff passt.Ein weiterer Weg, einen bestimmten Port zu finden, ist es,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Dazu muss Ihr Arbeitsverzeichnis
/usr/ports
sein. In diesem Verzeichnis rufen Sie
make search name=Anwendungsname
auf, wobei Anwendungsname
der Name der gesuchten Anwendung ist. Wenn Sie
zum Beispiel nach lsof suchen:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
mit Path: beginnt, weil sie Ihnen sagt, wo der Port
zu finden ist. Die anderen Informationen werden zum Installieren
des Ports nicht direkt benötigt, Sie brauchen sich darum
jetzt nicht weiter zu kümmern.Erweiterte Suchen führen Sie mit dem Kommando
make search key=Text
aus. Damit werden Portnamen, Kommentare, Beschreibungen und
Abhängigkeiten nach Text
durchsucht. Dies kann sehr nützlich sein, wenn Sie
den Namen des Programms, nach dem Sie suchen, nicht kennen.In beiden Fällen wird Groß- und Kleinschreibung bei
der Suche ignoriert. Die Suche nach LSOF wird
dieselben Ergebnisse wie die Suche nach lsof
liefern.ChernLeeBeigesteuert von Benutzen des PaketsystemsInstallieren eines PaketsPaketeinstallierenpkg_addMit &man.pkg.add.1; können Sie ein FreeBSD-Paket von einer
lokalen Datei oder über das Netzwerk installieren.Download vor Installation eines Pakets&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzWenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel
auf den FreeBSD-CD-ROMs), ist es wahrscheinlich einfacher den
Schalter von &man.pkg.add.1; zu verwenden. Das
Werkzeug bestimmt dann automatisch das nötige Objektformat und
die richtige Version des Pakets, lädt dieses dann von einem
FTP-Server und installiert das Paket.pkg_add&prompt.root; pkg_add -r lsofDas obige Beispiel würde ohne weitere Interaktion das
richtige Paket herunterladen und installieren. Pakete
werden vom &os;-Hauptserver heruntergeladen. Wenn Sie
anderen Server verwenden möchten, geben Sie den
Server in der Umgebungsvariablen PACKAGESITE
an. Die Dateien werden
mit &man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt, heruntergeladen.
Wenn Sie durch eine Firewall geschützt werden, müssen Sie
vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder
einen FTP oder HTTP Proxy verwenden. Eine Liste der
unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;.
Beachten Sie, dass im obigen Beispiel lsof
anstelle von lsof-4.56.4 verwendet wird. Wenn
Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf
die Versionsnummer des Pakets nicht angegeben werden, da
automatisch die neuste Version der Anwendung geholt wird.Unter &os.current; oder &os.stable; holt &man.pkg.add.1;
die neuste Version einer Anwendung, unter einer Release
holt &man.pkg.add.1; die Version der Anwendung, die
im Release enthalten ist. Sie können dies ändern,
indem Sie die Umgebungsvariable PACKAGESITE
überschreiben. Wenn Sie bespielsweise
&os; 5.4-RELEASE installiert haben, versucht
&man.pkg.add.1; in der Voreinstellung die Pakete von
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/
zu laden. Wollen Sie &man.pkg.add.1; dazu zwingen, nur
&os; 5-STABLE-Pakete herunterzuladen, setzen Sie die
Umgebungsvariable PACKAGESITE auf
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.Pakete werden im .tgz- und
.tbz-Format ausgeliefert. Sie finden Sie unter
oder auf der FreeBSD-CD-ROM-Distribution. Jede CD der FreeBSD
Distribution (oder des PowerPaks) enthält Pakete im
Verzeichnis /packages. Die Struktur des
Paketbaums entspricht dem /usr/ports Baum.
Jede Kategorie besitzt ein eigenes Verzeichnis und alle
Pakete befinden sich im Verzeichnis
All.Die Verzeichnisstruktur des Paketbaums ist ein Abbild der
Ports, da beide Systeme eng zusammenarbeiten.Verwalten von PaketenPaketeverwalten&man.pkg.info.1; zeigt alle installierten Pakete und deren
Beschreibung an.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; vergleicht die Version installierter Pakete
mit der Version aus der Ports-Sammlung.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Die Symbole in der zweiten Spalte zeigen das Alter des Pakets
im Vergleich zu der lokalen Version aus der Ports-Sammlung an.SymbolBedeutung=Die Version des installierten Paketes stimmt mit der
Version aus der lokalen Ports-Sammlung überein.<Die installierte Version ist älter als die der
verfügbaren Version aus der Ports-Sammlung.>Die installierte Version ist neuer als die aus der
Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung
veraltet).?Das installierte Paket konnte in der Ports-Sammlung
nicht gefunden werden. Das kann dadurch hervorgerufen
werden, dass ein installierter Port aus der
Ports-Sammlung entfernt wurde oder einen neuen
Namen erhalten hat.*In der Ports-Sammlung befinden sich mehrere Versionen
der Anwendung.!Das installierte Paket ist zwar im Index enthalten,
aus irgendeinem Grund war pkg_version
aber dennoch nicht in der Lage, die Versionsnummer des
installierten Pakets mit der Versionsnummer des
entsprechenden Eintrags im Index zu vergleichen.Entfernen eines Paketspkg_deletePaketeentfernenUm ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1Beachten Sie, dass &man.pkg.delete.1; die vollständige
Bezeichnung des Pakets benötigt (also Paketname
und Versionsnummer). Die Eingabe von
xchat (anstelle von
xchat-1.7.1) ist daher nicht
ausreichend. Zwar können Sie die Versionsnummer eines
installierten Pakets mit &man.pkg.version.1; herausfinden,
es ist aber auch möglich, ein Paket zu deinstallieren,
ohne die exakte Versionsnummer zu kennen, wenn Sie Wildcards
einsetzen:&prompt.root; pkg_delete xchat\*In diesem Beispiel werden alle Pakete gelöscht, deren
Name mit xchat beginnt.VerschiedenesInformationen über alle installierte Pakete werden in
/var/db/pkg abgelegt. Das Verzeichnis
enthält Dateien, in denen sich die Beschreibungen der Pakete
und Listen von Dateien, die zu einem Paket gehören,
befinden.Benutzen der Ports-SammlungDie folgenden Abschnitte stellen die grundlegenden Anweisungen
vor, um Anwendungen aus der Ports-Sammlung auf
Ihren Rechner zu installieren oder zu löschen. &man.ports.7;
enthält eine Auflistung aller verfügbaren
make-Targets und Umgebungsvariablen.Installation der Ports-SammlungBevor Sie einen Port installieren können, müssen Sie
zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches
und Beschreibungen besteht. Die Ports-Sammlung wird
für gewöhnlich unter /usr/ports
installiert.Bei der FreeBSD-Installation hatten Sie in
sysinstall die Möglichkeit, die
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, können Sie das mit den folgenden
Anweisungen nachholen:Installieren mit CVSupDies ist eine schnelle Methode, um die Ports-Sammlung zu
installieren und zu aktualisieren.
CVSup wird im Abschnitt Benutzen von CVSup des Handbuchs
beschrieben.Die seit &os; 6.2 im Basissystem enthaltene Variante
des CVSup-Protokolls heißt
csup. Verwenden Sie hingegen
noch eine ältere &os;-Version, können
Sie csup über den Port
net/csup installieren.Achten Sie darauf, dass das Verzeichnis /usr/ports leer ist, bevor Sie
csup das erste Mal ausführen!
Haben Sie die Ports-Sammlung zuvor schon aus einer anderen
Quelle installiert, wird csup
bereits aus dem Repository entfernte Patches nicht aus der
lokalen Kopie der Ports-Sammlung löschen.Rufen Sie csup auf:&prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfileErsetzen Sie
cvsup.FreeBSD.org durch einen
CVSup-Server in Ihrer Nähe.
Eine vollständige Liste der
CVSup-Spiegel finden Sie im
Abschnitt CVSup-Server
des Handbuchs.Sie sollten sich eine an Ihre Bedürfnisse angepasste
ports-supfile erstellen, um so
beispielsweise zu vermeiden, dass Sie bei jedem Aufruf von
CVSup wieder die Parameterliste
übergeben müssen.Dazu kopieren Sie zuerst als root
die Datei
/usr/share/examples/cvsup/ports-supfile
nach /root oder in Ihr
Heimatverzeichnis.Danach müssen Sie die Datei
ports-supfile anpassen.Dazu ersetzen Sie
cvsup.FreeBSD.org durch einen
CVSup-Server in Ihrer Nähe.
Eine vollständige Liste der
CVSup-Spiegel finden Sie im
Abschnitt CVSup-Server
des Handbuchs.Nun können Sie csup mit
folgender Syntax starten:&prompt.root; csup -L 2 /root/ports-supfileMit &man.csup.1; können Sie später auch die
Ports-Sammlung aktualisieren. Die installierten Ports werden
mit diesem Kommando allerdings nicht aktualisiert.Installieren mit PortsnapBei Portsnap handelt es sich
um ein alternatives System zur Distribution der Ports-Sammlung,
das seit &os; 6.0 im Basissystem enthalten ist. Verwenden
Sie eine ältere &os;-Version, können Sie zur
Installation das Paket ports-mgmt/portsnap verwenden:&prompt.root; pkg_add -r portsnapEine detaillierte Beschreibung von
Portsnap finden Sie im Abschnitt
Using Portsnap des
Handbuchs.Ab &os; 6.1-RELEASE oder bei einem aktuellen
Portsnap-Paket oder -Port ist
dieser Schritt nicht nötig, da in diesen Fällen
das Verzeichnis /usr/ports automatisch beim
ersten Aufruf von &man.portsnap.8; angelegt wird. Verwenden
Sie hingegen eine ältere Version von
Portsnap, müssen Sie dieses
Verzeichnis manuell anlegen, falls dieses auf Ihrem System
noch nicht existiert:&prompt.root; mkdir /usr/portsLaden Sie einen komprimierten Snapshot der Ports-Sammlung
in das Verzeichnis /var/db/portsnap herunter. Danach
können Sie die Internetverbindung trennen, wenn Sie dies
wünschen.&prompt.root; portsnap fetchWenn Sie Portsnap das erste
Mal verwenden, müssen Sie den Snapshot nach
/usr/ports
extrahieren:&prompt.root; portsnap extractIst die Ports-Sammlung bereits installiert, und Sie
wollen diese nur aktualisieren, führen Sie
stattdessen folgenden Befehl aus:&prompt.root; portsnap updateInstallieren mit sysinstallNicht zuletzt ist es auch möglich, die Ports-Sammlung
über sysinstall zu installieren.
Beachten Sie dabei aber, dass bei dieser Methode nicht die
aktuellste Version der Ports-Sammlung, sondern die Version, die
zum Zeitpunkt der Veröffentlichung der installierten
&os;-Version aktuell war, installiert wird. Haben Sie Zugriff
auf das Internet, so sollten Sie daher stets eine der weiter oben
beschriebenen Methoden verwenden, um die Ports-Sammlung zu
installieren.Führen Sie als rootsysinstall (vor &os; 5.2
/stand/sysinstall) aus:&prompt.root; /stand/sysinstallWählen Sie den Punkt Configure
aus und drücken Sie Enter.Wählen Sie dann Distributions
aus und drücken Sie Enter.In diesem Menü wählen Sie
ports aus und drücken die
Leertaste.Danach wählen Sie Exit aus und
drücken Enter.Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM
oder FTP, fest.Wählen Sie nun Exit aus und
drücken Enter.Verlassen Sie sysinstall mit
X.Ports installierenPortsinstallierenWas ist mit einem Gerüst im Zusammenhang
mit der Ports-Sammlung gemeint? In aller Kürze: ein
Gerüst eines Ports ist ein minimaler Satz von Dateien, mit
denen das FreeBSD-System eine Anwendung sauber übersetzen und
installieren kann. Ein jeder Port beinhaltet:Eine Datei Makefile. Das
Makefile enthält verschiedene
Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
wird und wo sie auf Ihrem System installiert werden
sollte.Eine Datei distinfo. Diese
enthält Informationen, welche Dateien heruntergeladen
werden müssen sowie deren MD5-Prüfsummen
(die Sie mit &man.md5.1; sowie &man.sha256.1;
überprüfen können, um sicher zu gehen,
dass diese Dateien während des Herunterladens nicht
beschädigt wurden).Ein files Verzeichnis. Hierin
liegen Patches, welche das Übersetzen und Installieren
der Anwendung ermöglichen. Patches sind im Wesentlichen
kleine Dateien, die Änderungen an speziellen Dateien
spezifizieren. Sie liegen als reiner Text vor und sagen
ungefähr:
Lösche Zeile 10 oder
Ändere Zeile 26 zu .... Patches sind
auch bekannt unter dem Namen diffs, weil
Sie mit dem Programm &man.diff.1;
erstellt werden.Dieses Verzeichnis kann auch noch andere Dateien enthalten,
welche zum Bauen des Ports benutzt werden.Eine Datei pkg-descr. Eine
ausführlichere, oft mehrzeilige Beschreibung der
Anwendung.Eine Datei pkg-plist. Das ist eine
Liste aller Dateien, die durch diesen Port installiert werden.
Außerdem sind hier Informationen enthalten, die zum
Entfernen des Ports benötigt werden.Einige Ports besitzen noch andere Dateien, wie
pkg-message, die vom Portsystem benutzt
werden, um spezielle Situationen zu handhaben. Wenn Sie mehr
über diese Dateien oder das Port-System erfahren sollen, lesen
Sie bitte das
FreeBSD Porter's Handbook.Ein Port enthält lediglich Anweisungen, wie der Quelltext
zu bauen ist, nicht aber den eigentlichen Quelltext.
Den Quelltext erhalten Sie von einer CD-ROM oder aus dem
Internet. Quelltexte werden in einem Format nach Wahl des
jeweiligen Software-Autors ausgeliefert. Häufig
ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem
anderen Tool komprimiert oder gar nicht komprimiert sein. Der
Quelltext, in welcher Form er auch immer vorliegen mag, wird
Distfile genannt. Die zwei Methoden, mit denen
ein Port installiert wird, werden unten besprochen.Zum Installieren von Ports müssen Sie als Benutzer
root angemeldet sein.Stellen Sie sicher, dass die Ports-Sammlung
aktuell ist, bevor Sie einen Port installieren.
Informieren Sie sich vorher zusätzlich unter
über mögliche Sicherheitsprobleme
des zu installierenden Ports.Vor der Installation kann
portaudit eine neue Anwendung
automatisch auf Sicherheitslöcher prüfen.
Das Werkzeug befindet sich in der Ports-Sammlung
(ports-mgmt/portaudit).
Vor der Installation einer neuen Anwendung sollten
Sie mit portaudit -F die
Sicherheitsdatenbank aktualisieren. Die täglich
laufende Sicherheitsprüfung des Systems
aktualisiert die Datenbank und prüft installierte
Anwendungen auf vorhandene Sicherheitslöcher.
Weiteres erfahren Sie in den Hilfeseiten &man.portaudit.1;
und &man.periodic.8;.Die Ports-Sammlung geht davon, dass Ihr System über
eine funktionierende Internetverbindung verfügt.
Ist dies nicht der Fall, müssen Sie eine Kopie des zu
installierenden Distfiles manuell nach
/usr/ports/distfiles kopieren.Dazu wechseln Sie als erstes in das Verzeichnis des
Ports, den Sie installieren wollen:&prompt.root; cd /usr/ports/sysutils/lsofIm Verzeichnis lsof kann man das
Gerüst erkennen. Der
nächste Schritt ist das Übersetzen (auch Bauen genannt)
des Ports durch die Eingabe des Befehls
make:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
&prompt.root;Ist die Übersetzungsprozedur beendet, landen Sie
wiederum in der Kommandozeile und können das Programm
im nächsten Schritt installieren. Dazu verwenden Sie
den Befehl make install:&prompt.root; make install
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Nachdem die Installation abgeschlossen ist, können Sie
die gerade installierte Anwendung starten. Da
lsof eine Anwendung ist, die mit erhöhten
Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie
sollten alle Warnungen während des Baus und der Installation
eines Ports beachten.Es ist eine gute Idee, das Unterverzeichnis work nach erfolgter Installation
wieder zu löschen. Einerseits gewinnen Sie dadurch
Speicherplatz, andererseits könnte es sonst zu Problemen
bei der Aktualisierung des Ports auf eine neuere Version
kommen.&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;Sie können zwei Schritte sparen, wenn Sie gleich
make install clean anstelle von
make, make install,
und make clean eingeben.Um die Suche nach Kommandos zu beschleunigen, speichern
einige Shells eine Liste der verfügbaren Kommandos in den
durch die Umgebungsvariable PATH gegebenen
Verzeichnissen. Nach der Installation eines Ports müssen
Sie in einer solchen Shell vielleicht das Kommando
rehash absetzen, um die neu installierten
Kommandos benutzen zu können. Das Kommando
rehash gibt es in Shells wie
der tcsh. Unter Shells wie
der sh
benutzen Sie das Kommando hash -r.
Weiteres entnehmen Sie bitte der Dokumentation
Ihrer Shell.Einige von Dritten angebotenen DVD-ROM-Produkte wie das
FreeBSD Toolkit von der FreeBSD Mall
enthalten auch Distfiles (komprimierte Quellcodepakete).
Diese lassen sich über die Ports-Sammlung installieren.
Dazu hängen Sie die DVD-ROM unter
/cdrom in den Verzeichnisbaum ein. Wenn
Sie einen anderen Mountpunkt verwenden, sollten Sie die
make-Variable CD_MOUNTPTS setzen, damit die
auf der DVD-ROM enthaltenen Distfiles automatisch verwendet
werden.Beachten Sie bitte, dass die Lizenzen einiger Ports
die Einbeziehung auf der CD-ROM verbieten. Das kann
verschiedene Gründe haben. Beispielsweise eine
Registrierung vor dem Herunterladen erforderlich oder die
Weiterverteilung ist verboten. Wenn Sie einen Port
installieren wollen, der nicht auf
der CD-ROM enthalten ist, müssen Sie online sein.Die Ports-Sammlung benutzt zum Herunterladen von Dateien
&man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt. Wenn Sie durch
eine Firewall geschützt werden, müssen Sie vielleicht
eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP
oder HTTP Proxy verwenden. Eine Liste der unterstützten
Umgebungsvariablen finden Sie in &man.fetch.3;.Benutzer ohne eine ständige Internet-Verbindung
werden das Kommando make fetch zu
schätzen wissen. Das Kommando lädt alle
benötigten Dateien eines Ports herunter. Sie
können das Kommando im Verzeichnis
/usr/ports laufen lassen. In diesem
Fall werden alle Dateien
heruntergeladen. Es ist auch möglich,
make fetch nur in einem Teil
des Baums, wie /usr/ports/net,
aufzurufen. Die Dateien von allen abhängigen
Ports werden mit diesem Kommando allerdings nicht
heruntergeladen. Wenn Sie diese Dateien ebenfalls
herunterladen wollen, ersetzen Sie im Kommando
fetch durch
fetch-recursive.Abhängig davon, in welchem Verzeichnis
Sie make aufrufen, können
Sie analog zu make fetch die
Ports einer Kategorie oder alle Ports bauen. Beachten
Sie allerdings, dass manche Ports nicht zusammen
installiert werden können. Weiterhin gibt es
Fälle, in denen zwei Ports unterschiedliche
Inhalte in derselben Datei speichern wollen.Manchmal ist es erforderlich, die benötigten
Dateien von einem anderen Ort als den im Port vorgesehenen
herunterzuladen. Der Ort wird durch die Variable
MASTER_SITES vorgegeben, die Sie
wie folgt überschreiben können:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIm Beispiel wurde MASTER_SITES
mit dem Wert
ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
überschrieben.Einige Ports besitzen Optionen, mit denen Sie
zusätzliche Funktionen oder Sicherheitsoptionen
einstellen können (oder manchmal auch müssen).
Zusätzliche Optionen können beispielsweise für
www/mozilla,
security/gpgme und
mail/sylpheed-claws
angegeben werden. Wenn ein Port über zusätzliche
Optionen verfügt, werden diese beim Bau des
Ports auf der Konsole ausgegeben.Vorgabe-Verzeichnisse ändernManchmal ist es nützlich (oder erforderlich),
in anderen Verzeichnissen zu arbeiten. Die Verzeichnisse
können Sie mit den Variablen WRKDIRPREFIX
und PREFIX einstellen. Die Variable
WRKDIRPREFIX gibt das Bauverzeichnis an:&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports installDieses Kommando baut den Port in
/usr/home/example/ports und installiert
ihn unter /usr/local.Die Variable PREFIX legt das
Installations-Verzeichnis fest:&prompt.root; make PREFIX=/usr/home/example/local installIn diesem Beispiel wird der Port unter
/usr/ports gebaut und nach
/usr/home/example/local installiert.Sie können beide Variablen auch zusammen
benutzen:&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local installDie Kommandozeile ist zu lang, um sie hier komplett
wiederzugeben, aber Sie sollten die zugrunde liegende
Idee erkennen.Probleme mit imakeimakeEinige Ports, welche &man.imake.1; (Teil des
X-Window-Systems) benutzen, funktionieren nicht gut
mit PREFIX und bestehen darauf,
unter /usr/X11R6 installiert
zu werden. In ähnlicher Weise verhalten sich
einige Perl-Ports, die PREFIX
ignorieren und sich in den Perl-Verzeichnisbaum
installieren. Zu erreichen, dass solche Ports
PREFIX beachten, ist
schwierig oder sogar unmöglich.Ports rekonfigurierenBeim Bau einiger Ports erhalten Sie ein ncurses-basiertes
Menü, über dessen Optionen Sie den Bau dieser Ports
beeinflussen können. Es gibt diverse Möglichkeiten,
dieses Menü nach dem Bau eines Ports erneut aufzurufen, um
beispielsweise Optionen zu entfernen, hinzuzufügen oder
anzupassen. Sie können beispielsweise in das
Verzeichnis des Ports wechseln und dort den Befehl
makeconfig
eingeben, wodurch das Menü mit den ursprünglichen
gewählten Optionen erneut aufgerufen wird. Eine andere
Möglichkeit bietet der Befehl
makeshowconfig,
mit dem Sie eine Liste aller Konfigurationsoptionen dieses
Ports aufrufen. Eine weitere Alternative bietet der Befehl
makermconfig,
der die von Ihnen ursprünglich gewählten Optionen
zurücksetzt und es Ihnen dadurch ermöglicht, die
Konfiguration erneut zu beginnen. Die eben erwähnten
Optionen (und viele andere) werden ausführlich in
der Manualpage &man.ports.7; beschrieben.Entfernen installierter PortsPortsentfernenDa Sie nun wissen, wie man einen Port installiert, wollen Sie
sicher auch wissen, wie man ein über einen Port installiertes
Programm wieder deinstallieren kann. Ports werden analog zu
Paketen mit &man.pkg.delete.1; deinstalliert (Lesen Sie sich den
Abschnitt Benutzen des
Paketsystems des Handbuchs durch, wenn Sie weitere Informationen
benötigen.). Für das vorhin installierte Programm
lsof würden Sie dazu wie folgt
vorgehen:&prompt.root; pkg_delete lsof-4.57Ports aktualisierenPortsaktualisierenAls erstes sollten sie sich alle installierten Ports
anzeigen lassen, von denen eine aktuellere Version in der
Ports-Sammlung existiert. Dazu verwenden Sie den Befehl
&man.pkg.version.1;:&prompt.root; pkg_version -v/usr/ports/UPDATINGNachdem Sie die Ports-Sammlung auf den neusten
Stand gebracht haben, lesen Sie bitte zuerst die Datei
/usr/ports/UPDATING, bevor
Sie einen Port aktualisieren. In dieser Datei werden
Probleme und zusätzlich durchzuführende
Schritte bei der Aktualisierung einzelner Ports
beschrieben. Dazu gehören solche Dinge wie
geänderte Dateiformate, verschobene Konfigurationsdateien,
aber auch Inkompatibilitäten zu einer
Vorgängerversion.Sollte UPDATING etwas hier Gesagtem
widersprechen, so gilt das in UPDATING
Gesagte.Ports mit Portupgrade aktualisierenportupgradeportupgrade wurde entwickelt, um
die Aktualisierung von Ports zu vereinfachen. Sie können
portupgrade über den Port
ports-mgmt/portupgrade
installieren:&prompt.root; cd /usr/ports/ports-mgmt/portupgrade/
&prompt.root; make install cleanDurchsuchen Sie regelmäßig (am besten vor jeder
Aktualisierung) die Liste der installierten Ports mit
pkgdb -F und beheben Sie alle gefundenen
Probleme.Wenn Sie portupgrade -a eingeben,
beginnt portupgrade automatisch mit
der Aktualisierung aller veralteteter Ports Ihres Systems.
Verwenden Sie den Schalter , wenn Sie
individuell entscheiden wollen, ob ein Port aktualisiert werden
soll:&prompt.root; portupgrade -aiWenn Sie nur eine einzelne Anwendung anstelle
aller Anwendungen aktualisieren wollen, verwenden
Sie das Kommando
portupgrade pkgname.
Geben Sie den Schalter an, wenn
portupgrade zuvor alle
Ports aktualisieren soll, die von dem gegebenen
Paket abhängen.Der Schalter verwendet zur
Installation Pakete anstelle von Ports. Mit dieser
Option durchsucht portupgrade
die in der Umgebungsvariablen PKG_PATH
aufgeführten Verzeichnisse nach Paketen. Sind
lokal keine Pakete vorhanden, versucht
portupgrade die Pakete
über das Netz herunterzuladen. Gibt es die Pakete
weder lokal noch auf entfernten Rechnern, werden die Ports
verwendet. Um dies zu verhindern, benutzen Sie die
Option .&prompt.root; portupgrade -PP gnome2Wenn Sie nur die Quelldateien des Ports (oder die Pakete
mit ) herunterladen möchten,
ohne die Anwendung zu bauen oder zu installieren,
geben Sie die Option an.
Weitere Möglichkeiten lesen Sie bitte in
der Hilfeseite &man.portupgrade.1; nach.Ports mit Portmanager aktualisierenportmanagerPortmanager ist ein weiteres
Werkzeug, das die Aktualisierung installierter Ports
erleichtert. Es kann über den Port
ports-mgmt/portmanager
installiert werden:&prompt.root; cd /usr/ports/ports-mgmt/portmanager
&prompt.root; make install cleanAlle installierten Ports können danach durch folgende
Eingabe aktualisiert werden:&prompt.root; portmanager -uWenn Sie zusätzlich die Optionen
an Portmanager übergeben, werden
Sie bei jedem Schritt um eine Bestätigung gefragt.
Portmanager ist außerdem in
der Lage, neue Ports auf Ihrem System zu installieren. Im
Gegensatz zum bekannten make install clean
aktualisiert es aber vor dem Bau und der Installation eines
Ports alle abhängigen Ports.&prompt.root; portmanager x11/gnome2Treten bei den Abhängigkeiten des zu installierenden
Ports Probleme auf, ist Portmanager
in der Lage, alle Abhängigkeiten in der korrekten
Reihenfolge neu zu bauen. Nachdem dieser Schritt abgeschlossen
ist, wird der problematische Port ebenfalls neu gebaut.&prompt.root; portmanager graphics/gimp -fWeitere Informationen finden Sie in der Manualpage
&man.portmanager.1;.Ports mit Portmaster aktualisierenportmasterBei Portmaster handelt es sich
um ein weiteres Werkzeug zum Aktualisieren von Ports.
Portmaster nutzt nur Werkzeuge, die
bereits im Basissystem vorhanden sind (ist also nicht von
weiteren Ports abhängig). Es verwendet Informationen
in /var/db/pkg/, um
festzustellen, welche Ports aktualisiert werden sollen.
Sie können dieses Program über den Port
ports-mgmt/portmaster
installieren:&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install cleanPortmaster teilt Ports in vier
Kategorien ein:Root ports (no dependencies, not depended on)Trunk ports (no dependencies, are depended on)Branch ports (have dependencies, are depended on)Leaf ports (have dependencies, not depended on)Um eine Liste aller installierter Ports anzuzeigen (und nach
neueren Versionen zu suchen, verwenden Sie die Option
:&prompt.root; portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions available
Um alle derzeit installierten Ports zu aktualisieren,
verwenden Sie einfach den folgenden Befehl:&prompt.root; portmaster -aIn der Voreinstellung erzeugt
Portmaster eine Sicherheitskopie,
bevor ein installierter Port gelöscht wird. Ist die
Installation der neuen Version erfolgreich, wird dieses
Backup wieder gelöscht. Wollen Sie das Backup lieber
manuell löschen, verwenden Sie die Option
beim Aufruf von
Portmaster. Durch die Verwendung
der Option wird
Portmaster im interaktiven
Modus gestartet und fragt bei jedem zu aktualisierenden Port
nach, wie Sie vorgehen wollen.Treten während der Aktualisierung Fehler auf, können
Sie die Option verwenden, um alle Ports zu
aktualisieren beziehungsweise neu zu bauen:&prompt.root; portmaster -afPortmaster ist auch in der Lage,
neue Ports zu installieren, wobei zuvor alle abhängigen Ports
aktualisiert werden:&prompt.root; portmaster shells/bashWeiterführende Informationen finden Sie in der Manualpage
&man.portmaster.8;.Platzbedarf von PortsPortsPlattenplatzDie Ports-Sammlung kann sehr viel Plattenplatz
verschlingen. Führen Sie nach dem Bau und der
Installation eines Ports make
clean aus, um die
Arbeitsverzeichnisse zu löschen. Dieser Befehl
entfernt das Verzeichnis work des gebauten Ports.
Wollen Sie die gesamte Ports-Sammlung aufräumen,
verwenden Sie folgenden Befehl:&prompt.root; portsclean -CIm Laufe der Zeit werden sich zahlreiche Distfiles im
Verzeichnis distfiles
ansammeln. Sie können diese entweder händisch
löschen, oder Sie verwenden den folgenden Befehl, um alle
Distfiles zu löschen, die nicht länger
benötigt werden:&prompt.root; portsclean -DFalls Sie nur alle Distfiles löschen wollen, die von
keinem derzeit installierten Port referenziert werden:&prompt.root; portsclean -DDDas Werkzeug portsclean wird
automatisch bei der Installation von
portupgrade mit installiert.Denken Sie daran, installierte Ports wieder zu entfernen,
wenn Sie diese nicht mehr benötigen. Um diese Arbeit zu
erleichtern, können Sie den Port ports-mgmt/pkg_cutleaves
installieren.Nach der InstallationNach der Installation einer neuen Anwendung wollen Sie
wahrscheinlich die mitgelieferte Dokumentation lesen und die
Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
ein Dæmon ist, sollten Sie sicherstellen, dass die
Anwendung beim Booten startet.Die einzelnen Schritte sind natürlich von Anwendung zu
Anwendung verschieden. Wenn Sie sich allerdings nach der Installation
einer Anwendung die Frage Was nun? stellen, helfen die
folgenden Hinweise vielleicht weiter.Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die
Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen
das folgende Kommando alle installierten Dateien des
Pakets:&prompt.root; pkg_info -L foopackage-1.0.0 | lessAchten Sie besonders auf die Manualpages, die Sie in
man/ Verzeichnissen finden und auf
Konfigurationsdateien, die in etc/ abgelegt
werden. Manche Pakete enthalten in doc/
zusätzliche Dokumentation.Wenn Sie sich nicht sicher sind, welche Version einer
Anwendung Sie gerade installiert haben, können Sie mit dem
folgenden Kommando nach der Anwendung suchen:&prompt.root; pkg_info | grep -i foopackageDas Kommando zeigt alle installierten Pakete, deren
Paketname foopackage enthält.
Ersetzen Sie foopackage durch den
Namen der Anwendung, die Sie suchen.Nachdem Sie die Manualpages der Anwendung gefunden haben,
lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die
Beispiele für Konfigurationsdateien und die zusätzliche
Dokumentation, wenn es welche gibt, an.Wenn es für die Anwendung eine Webseite gibt, suchen
Sie dort nach zusätzlicher Dokumentation wie FAQs
(häufig gestellte Fragen). Wenn Sie die Adresse der Webseite
nicht kennen, versuchen Sie das folgende Kommando:&prompt.root; pkg_info foopackage-1.0.0Die Ausgabe enthält oft eine Zeile, die mit
WWW: beginnt und die URL der Webseite
enthält.Ports, die während des Systemstarts gestartet
werden sollen, installieren meist ein Beispielskript im
Verzeichnis /usr/local/etc/rc.d.
Überprüfen Sie dieses Skript. Wenn nötig,
passen Sie das Skript an und benennen Sie es um. Weitere
Informationen finden Sie in
.Kaputte PortsStolpern Sie einmal über einen Port, der bei Ihnen nicht
funktioniert, könnten Sie zum Beispiel Folgendes tun:Stellen Sie fest, ob die
Datenbank mit den
Problemberichten bereits einen Lösungsvorschlag
enthält. Ist dies der Fall, können Sie die
vorgeschlagene Lösung testen.Bitten Sie den Betreuer des Ports um Hilfe. Geben
Sie dazu make maintainer ein oder lesen Sie das
Makefile im Verzeichnis des Ports, um an
die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und
die Version des Ports (schicken Sie die Zeile mit
$FreeBSD: aus dem
Makefile)
und die Ausgabe bis zur Fehlermeldung mitzuschicken.Einige Ports werden nicht von einer Einzelperson, sondern
von einer
Mailingliste betreut. Viele (aber nicht alle) dieser
Adressen haben die Form
freebsd-NameDerListe@FreeBSD.org.
Denken Sie daran, wenn Sie Ihre Fragen formulieren.Dies gilt insbesondere für Ports, die als als
Betreuer den Eintrag freebsd-ports@FreeBSD.org aufweisen.
Derartige Ports haben überhaupt keinen Betreuer.
Korrekturen und Unterstützung kommen daher nur von
Personen, die diese Mailingliste abonniert haben. Gerade
in diesem Bereich werden jederzeit zusätzliche
freiwillige Helfer benötigt!Erhalten Sie auf Ihre Anfrage keine Antwort, können
Sie über &man.send-pr.1; einen Problembericht erstellen.
Bevor Sie einen solchen Bericht erstellen, sollten Sie den
Artikel Writing
FreeBSD Problem Reports lesen.Reparieren Sie ihn! Das FreeBSD
Porter's Handbook enthält eine detaillierte
Beschreibung des Portsystems. Damit sind Sie in der Lage,
einen gelegentlich kaputten Port zu reparieren oder einen
eigenen Port zu erstellen.Holen Sie sich das Paket von einem FTP-Server in Ihrer
Nähe. Die Basis-Sammlung aller Pakete
liegt auf ftp.de.FreeBSD.org im
Verzeichnis packages.
Aber versuchen Sie zuerst einen Spiegel in Ihrer
Nähe! Benutzen Sie das Programm &man.pkg.add.1;, um
Pakete auf Ihrem Rechner zu installieren. Dies hat zudem den
Vorteil, dass es schneller geht.