Index: head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 52938)
+++ head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 52939)
@@ -1,5820 +1,5842 @@
Weiterführende NetzwerkthemenJohannKoisÜbersetzt von BjörnHeidottingÜberarbeitet von ÜbersichtDieses Kapitel beschreibt verschiedene
weiterführende Netzwerkthemen.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Wissen, wie man USB Tethering einrichtet.&bluetooth;- sowie drahtlose, der Norm
&ieee; 802.11 entsprechende, Geräte mit &os; verwenden
können.Eine Bridge unter &os; einrichten können.Wissen, wie man mithilfe von PXE über
ein Netzwerk von einem NFS
Root-Dateisystem bootet.IPv6 auf einem &os;-Rechner einrichten
können.Das Common Address Redundancy Protocol
(CARP) unter &os; einsetzen
können.Wissen, wie VLANs unter &os;
konfiguriert werden.
+
+
+ Wissen, wie Bluetooth-Kopfhörer konfiguriert
+ werden.
+ Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.Einen neuen &os;-Kernel konfigurieren und installieren
können ().Wissen, wie man zusätzliche Software von
Drittherstellern installiert
().Gateways und RoutenCoranthGryphonBeigetragen von RoutingGatewaySubnetzDer Mechanismus mit dem ein Rechner einen Rechner über ein
Netzwerk finden kann, wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adresspaar: Einem Ziel und einem
Gateway. Die Route zeigt an, dass Pakete über
das Gateway zum Ziel
gelangen können. Es gibt drei Arten von Zielen: Einzelne
Rechner (Hosts), Subnetze und das Standardziel.
Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Außerdem gibt
es drei Arten von Gateways: Einzelne Rechner
(Hosts), Schnittstellen (Interfaces, auch als
Links bezeichnet), sowie Ethernet
Hardware-Adressen (MAC). Bekannte Adressen
werden in einer Routingtabelle gespeichert.Dieser Abschnitt bietet einen Überblick über die Grundlagen
des Routings. Er demonstriert, wie ein &os;-System als
Router konfiguriert werden kann und bietet einige Tipps zur
Fehlerbehebung.Grundlagen des Routings&man.netstat.1; zeigt die Routingtabellen
eines &os;-Systems an:&prompt.user; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGS 37 418 em0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 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 0Die Einträge in diesem Beispiel sind wie folgt:defaultDie erste Route in der Ausgabe gibt die
Standardroute (default) an. Wenn
sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft, um
festzustellen, ob bereits ein bekannter Pfad vorhanden
ist. Wird für den entfernten Rechner ein Eintrag in
der Routingtabelle gefunden, so prüft das System ob es
sich über die angegebene Schnittstelle verbinden
kann.Wenn das Zielsystem mit keinem Eintrag
übereinstimmt, oder wenn alle bekannten Routen
fehlschlagen, verwendet das System die Standardroute.
Für die Rechner im lokalen Netzwerk ist das Feld
Gateway auf das System gesetzt,
welches direkt mit dem Internet verbunden ist.
UG in der Spalte
Flags zeigt an, dass das Gateway
einsatzbereit ist.Die Standardroute für einen Rechner, der selbst als
Gateway zur Außenwelt fungiert, ist der Gateway-Rechner
des Internetanbieters (ISP).localhostDie zweite Route zeigt die
localhost Route. Die festgelegte
Schnittstelle in der Netif-Spalte
für localhost ist
lo0, das auch als loopback-Gerät
bekannt ist. Das bedeutet, dass der gesamte
Datenverkehr für dieses Ziel intern bleibt, anstatt ihn
über ein Netzwerk zu versenden.MAC-AdresseBei den mit 0:e0: beginnenden
Adressen handelt es sich um
MAC-Adressen. &os; identifiziert
Rechner im lokalen Netz, im Beispiel
test0, automatisch und fügt
eine direkte Route über die Ethernet-Schnittstelle
re0 zu diesem Rechner hinzu.
Außerdem existiert in der Spalte
Expire ein Timeout, 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 über das Routing Information Protocol
(RIP) identifiziert, welches den
kürzesten Weg zu den jeweiligen Rechnern
berechnet.Subnetz&os; wird automatisch Subnetzrouten für das lokale
Subnetz hinzufügen. In diesem Beispiel ist 10.20.30.255 die
Broadcast-Adresse für das Subnetz 10.20.30, und
example.com ist der
zu diesem Subnetz gehörige Domainname. Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
&man.routed.8; Daemon konfiguriert. Ist dieser nicht
gestartet, existieren nur statische Routen, die vom
Administrator definiert werden.HostDie Zeile host1 bezieht sich auf
den Rechner, der durch seine Ethernetadresse bekannt
ist. Da es sich um den sendenden Rechner handelt,
verwendet &os; automatisch das Loopback-Gerät
(lo0), anstatt den Datenverkehr
über die Ethernet-Schnittstelle zu senden.Die zwei host2 Zeilen
repräsentieren Aliase, die mit &man.ifconfig.8; erstellt
wurden. Das Symbol => nach der
lo0-Schnittstelle sagt aus, dass
zusätzlich zur Loopback-Adresse auch ein Alias
eingestellt ist. Solche Routen sind nur auf Rechnern
vorhanden, die den Alias bereitstellen. Alle anderen
Rechner im lokalen Netz haben für solche Routen nur eine
link#1 Zeile.224Die letzte Zeile (Zielsubnetz
224) behandelt Multicasting.Schließlich gibt es für Routen noch
verschiedene Attribute, die sich in der Spalte
Flags befinden. fasst einige dieser Flags und
deren Bedeutung zusammen:
Allgemeine Attribute in RoutingtabellenAttributBedeutungUDie Route ist aktiv (up).HDas Ziel der Route ist ein einzelner Rechner
(Host).GAlle Daten, die an dieses Ziel gesendet werden,
werden von dem Gateway an ihr jeweiliges Ziel
weitergeleitet.SDiese Route wurde statisch konfiguriert.CErzeugt 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.WEine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LDie Route beinhaltet einen Verweis auf eine
Ethernetkarte (Link).
In &os; kann die Standardroute durch
die Angabe der IP-Adresse des
Standard-Gateways in /etc/rc.conf
definiert werden:defaultrouter="10.20.30.1"Die Standardroute kann mit route auch
manuell gesetzt werden:&prompt.root; route add default 10.20.30.1Beachten Sie, dass manuell hinzugefügte Routen bei einem
Neustart des Systems verloren gehen. Weitere Informationen
zum Bearbeiten von Netzwerk-Routingtabellen finden Sie in
&man.route.8;.Statische Routen einrichtenAlHoangBeigetragen von Dual-Homed-HostsEin &os;-System kann als Standard-Gateway bzw. Router für
ein Netzwerk konfiguriert werden, wenn es sich um einen
Dual-Homed-Host handelt. Ein Dual-Homed-Host ist ein Rechner,
der sich in mindestens zwei verschiedenen Netzwerken
befindet. Typischerweise ist jedes Netzwerk über eine
separate Netzwerkschnittstelle verbunden. Mit
IP Aliasing können mehrere Adressen, die
jeweils zu einem andren Subnetz gehören, an eine physikalische
Schnittstelle gebunden werden.RouterDamit Pakete zwischen den Schnittstellen weitergeleitet
werden können, muss das &os;-System als Router konfiguriert
werden. Internetstandards und gute Ingenieurspraxis sorgten
dafür, dass diese Funktion in &os; in der Voreinstellung
deaktiviert ist. Sie kann jedoch aktiviert werden,
indem folgende Zeile in /etc/rc.conf
hinzugefügt wird:gateway_enable="YES" # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollUm das Routing zu aktivieren, setzen Sie die
&man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Um das Routing zu stoppen,
muss die Variable wieder auf 0 gesetzt
werden.BGPRIPOSPFDie Routingtabelle eines Routers benötigt zusätzliche
Routen, damit er weiß, wie er andere Netzwerke erreichen kann.
Die Routen können entweder manuell als statische Routen
hinzugefügt werden, oder aber der Router lernt automatisch
die Routen anhand des Routing-Protokolls. Statische Routen
eignen sich für kleine Netzwerke und dieser Abschnitt
beschreibt, wie Sie eine statische Route für ein kleines
Netzwerk hinzufügen.In großen Netzwerken sind statische Routen schlecht
skalierbar. &os; beinhaltet den
BSD-Routing-Daemon &man.routed.8;, der
die Protokolle RIP (Version 1 und
Version 2) sowie IRDP unterstützt. Die
Routing-Protokolle BGP und
OSPF können über den Port oder das Paket
net/zebra installiert werden.Nehmen 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.
RouterB ist bereits konfiguriert, da
er 192.168.1.1 als
Standard-Gateway benutzt.Bevor die statischen Routen hinzugefügt werden, sieht
die Routingtabelle auf RouterA in
etwa so aus:&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 hat
RouterA keine Route zum Netzwerk
192.168.2.0/24.
Der folgende Befehl wird das interne Netz 2 in die
Routingtabelle von RouterA
aufnehmen und dabei 192.168.1.2 als nächsten
Zwischenschritt (Hop)
verwenden:&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.
Allerdings gehen die Routing-Informationen verloren, wenn das
&os;-System neu gestartet wird. Um statische Routen dauerhaft
einzurichten, müssen diese in
/etc/rc.conf eingetragen werden:# Add Internal Net 2 as a persistent 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. Die
Variable
route_internalnet2
enthält die statische Route.Wird mit der Variablen static_routes
mehr als eine Variable angegeben, so werden auch mehrere
Routen angelegt. Im folgenden Beispiel werden statische
Routen zu den Netzwerken 192.168.0.0/24 und
192.168.1.0/24
angelegt.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"ProblembehandlungWenn ein Adressraum einem Netzwerk zugeordnet wird,
konfiguriert der Dienstanbieter seine Routing-Tabellen, so
dass der gesamte Verkehr für das Netzwerk über die Verbindung
zu der Seite gesendet wird. Aber woher wissen externe
Webseiten, dass sie die Daten an das Netzwerk des
ISP senden sollen?Es gibt ein System, das alle zugewiesenen Adressräume
verwaltet und die Verbindung zum Internet-Backbone definiert.
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 Master-Tabellen, die den Verkehr für ein
bestimmtes Netzwerk hierarchisch vom Backbone über eine Kette
von Dienstanbietern bis hin zu einem bestimmten Netzwerk
leiten.Es ist die Aufgabe des Dienstanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit einer Seite
verbunden wurden. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.&man.traceroute.8;Manchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, sich zu
verbinden. Der vielleicht nützlichste Befehl, um
festzustellen wo das Routing nicht funktioniert, ist
traceroute. Das Programm ist nützlich,
falls ping fehlschlägt.Rufen Sie traceroute mit dem Namen des
entfernten Rechners auf, mit dem eine Verbindung aufgebaut
werden soll. Die Ausgabe zeigt die Gateway-Rechner entlang
des Verbindungspfades an. Schließlich wird der Zielrechner
erreicht oder es kommt zu einem Verbindungsabbruch. Weitere
Informationen finden Sie in &man.traceroute.8;.Multicast-RoutingMulticast-RoutingKerneloptionenMROUTING&os; unterstützt sowohl Multicast-Anwendungen als
auch Multicast-Routing. Multicast-Anwendungen benötigen keine
spezielle Konfiguration, um auf &os; lauffähig zu sein. Damit
Multicast-Routing unterstützt wird, muss die folgende Option
in der Kernelkonfiguration aktiviert werden:options MROUTINGDer Multicast-Routing-Daemon
mrouted kann als Port oder Paket
net/mroute installiert werden. Dieser
Daemon implementiert das DVMRP
Multicast-Routing-Protokoll. Um die Tunnel und
DVMRP einzurichten, muss
/usr/local/etc/mrouted.conf bearbeitet
werden. Bei der Installation von
mrouted wird auch
map-mbone und
mrinfo sowie die zugehörigen
Manualpages installiert, in denen Sie auch
Konfigurationsbeispiele finden können.DVMRP wurde in vielen
Multicast-Installationen weitgehend durch das
PIM-Protokoll ersetzt. Weitere
Informationen finden Sie in &man.pim.4;.Drahtlose NetzwerkeLoaderMarcFonvieilleMurrayStokelyNetzwerke, drahtlos802.11drahtlose NetzwerkeGrundlagenDie meisten drahtlosen Netzwerke basieren auf dem
Standard &ieee; 802.11. Ein einfaches drahtloses
Netzwerk besteht aus Stationen, die 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 anderen Stationen
verbinden. Die Summe aller Stationen wird als Basic Service
Set (BSS), 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 Protokolle 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
kryptographische 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 in regelmäßigen Abständen
aktualisiert. Außerdem gibt es Mechanismen zur Feststellung
und Prävention von Einbruchsversuchen. 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 TKIP-Chiffre, welcher auf dem
ursprünglichen WEP-Code basiert. 802.11i
erlaubt zwar auch die Verwendung von TKIP,
benötigt 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.Ein weiterer zu beachtender Standard ist 802.11e. 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 in 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 hohe
Datenübertragungsraten und einen priorisierten
Datenfluss.&os; unterstützt die Standards
802.11a, 802.11b und 802.11g. Ebenfalls unterstützt
werden WPA sowie die Sicherheitsprotokolle
gemäß 802.11i (sowohl für 11a, 11b als auch 11g).
QoS und Verkehrspriorisierung, die von den
WME/WMM-Protokollen
benötigt werden, werden für einen begrenzten Satz von
drahtlosen Geräten unterstützt.SchnellstartanleitungHäufig soll ein Computer an ein vorhandenes
Drahtlosnetzwerk angeschlossen werden. Diese Prozedur zeigt
die dazu erforderlichen Schritte.Besorgen Sie sich vom Netzwerkadministrator die
SSID
(Service Set Identifier)
und den PSK
(Pre Shared Key) für das
Drahtlosnetzwerk.Ermitteln Sie den drahtlosen Adapter. Der
GENERIC-Kernel von &os; enthält
Treiber für viele gängige Adapter. Wenn der drahtlose
Adapter eines dieser Modelle ist, wird das in der Ausgabe
von &man.ifconfig.8; angezeigt:&prompt.user; ifconfig | grep -B3 -i wirelessIn &os; 11 und neueren Versionen verwenden Sie
stattdessen diesen Befehl:&prompt.user; sysctl net.wlan.devicesWenn der drahtlose Adapter nicht aufgeführt wird,
könnte ein zusätzliches Kernelmodul erforderlich sein. Es
besteht jedoch auch die Möglichkeit, dass der Adapter von
&os; nicht unterstützt wird.Dieses Beispiel verwendet einen drahtlosen
Atheros-Adapter ath0.Fügen Sie in
/etc/wpa_supplicant.conf einen
Eintrag für das Netzwerk hinzu. Wenn die Datei nicht
existiert, müssen Sie diese erstellen. Ersetzen Sie
myssid und
psk durch die
SSID und den PSK.
Diese Informationen werden vom Netzwerkadministrator zur
Verfügung gestellt.network={
ssid="myssid"
psk="mypsk"
}Fügen Sie die entsprechenden Einträge in
/etc/rc.conf ein, um das Netzwerk
beim Start zu konfigurieren:wlans_ath0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"Starten Sie den Computer oder den Netzwerkdienst neu,
um sich mit dem Netzwerk zu verbinden:&prompt.root; service netif restartBasiskonfigurationKernelkonfigurationUm ein drahtloses Netzwerk zu nutzen, wird eine
drahtlose Netzwerkkarte benötigt und ein Kernel, der
drahtlose Netzwerke unterstützt. Der Kernel
unterstützt den Einsatz von Kernelmodulen. Daher
muss nur die Unterstützung für die verwendeten Geräte
aktiviert werden.Die meisten drahtlosen Geräte verwenden Bauteile von
Atheros und werden deshalb vom &man.ath.4;-Treiber
unterstützt. Um diesen Treiber zu verwenden,
muss die folgende Zeile in
/boot/loader.conf hinzugefügt
werden: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
Frame-Übertragungsrate (ath_rate_sample). Wenn diese
Unterstützung als Kernelmodul geladen wird, kümmert sich
das Modul automatisch um Abhängigkeiten. Um die
Unterstützung für ein anderes drahtloses Gerät zu laden,
geben Sie das entsprechende Modul für dieses Gerät an.
Dieses Beispiel zeigt die Verwendung von Geräten, die auf
Bauteilen von Intersil Prism basieren und den Treiber
&man.wi.4; benötigen:if_wi_load="YES"Die Beispiele in diesem Abschnitt verwenden den
&man.ath.4;-Treiber. Verwenden Sie ein anderes Gerät,
muss der Gerätename an die Konfiguration angepasst werden.
Eine Liste aller verfügbaren Treiber und unterstützten
drahtlosen Geräte finden sich in den &os;
Hardware Notes unter
Release Information der &os; Homepage. Gibt es
keinen nativen &os;-Treiber für das drahtlose
Gerät, kann möglicherweise mit
NDIS ein
&windows;-Treiber verwendet werden.Zusätzlich müssen die Module zur Verschlüsselung des
drahtlosen Netzwerks geladen werden. 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; und &man.wlan.tkip.4;.
Sowohl &man.wlan.ccmp.4; als auch &man.wlan.tkip.4; werden
nur benötigt, wenn WPA und/oder die
Sicherheitsprotokolle von 802.11i verwendet werden. Wenn
das Netzwerk keine Verschlüsselung verwendet, wird die
&man.wlan.wep.4;-Unterstützung nicht benötigt. Um diese
Module beim Systemstart zu laden, fügen Sie folgende
Zeilen in /boot/loader.conf ein:wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"Sobald diese Einträge in
/boot/loader.conf vorhanden sind, muss
das &os;-System neu gestartet werden. Alternativ können
die Kernelmodule auch manuell mit &man.kldload.8; geladen
werden.Benutzer, die keine Kernelmodule verwenden wollen,
können die benötigten Treiber auch in den Kernel
kompilieren. Dazu müssen die folgenden Zeilen in die
Kernelkonfigurationsdatei aufgenommen werden:device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device ath # Atheros pci/cardbus NIC's
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for athMit diesen Informationen in der
Kernelkonfigurationsdatei kann der Kernel neu gebaut, und
das &os;-System anschließend neu gestartet werden.Informationen über das drahtlose Gerät sollten in den
Boot-Meldungen folgendermaßen angezeigt werden:ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1
ath0: [ITHREAD]
ath0: AR2413 mac 7.9 RF2413 phy 4.5Infrastruktur-ModusDrahtlose Netzwerke werden in der Regel im
Infrastruktur-Modus (BSS) 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 verfügbaren drahtlosen Netzwerken zu suchen
verwenden Sie &man.ifconfig.8;. Dieser Scanvorgang kann
einen Moment dauern, da jede verfügbare Frequenz auf
verfügbare Access Points hin überprüft werden muss. Nur
der Super-User kann einen Scanvorgang starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPADie Netzwerkkarte muss in den Status
versetzt werden, bevor der erste
Scanvorgang gestartet werden kann. 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 zum Namen des Netzwerks, der
SSID, wird auch die
BSSID ausgegeben. Dabei handelt es
sich um die MAC-Adresse des Access
Points. Das Feld CAPS gibt den Typ des
Netzwerks sowie die Fähigkeiten der Stationen innerhalb
des Netzwerks an:
Station Capability CodesCapability CodeBedeutungEExtended 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 kryptographische 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 wlan0 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 eine
drahtlose Netzwerkkarte ohne Verschlüsselung unter &os;
einrichten. Nachdem Sie sich mit den Informationen dieses
Abschnitts vertraut gemacht haben, sollten Sie das
drahtlose Netzwerk mit WPA
verschlüsseln.Das Einrichten eines drahtlosen Netzwerks erfolgt
in drei Schritten: Der Auswahl eines Access Points, die
Anmeldung der Station sowie der Konfiguration der
IP-Adresse.Einen Access Point auswählenIm Normalfall wird sich die Station automatisch mit
einem der zur Verfügung stehenden Access Points
verbinden. Dazu muss lediglich das drahtlose Gerät
aktiviert, oder in /etc/rc.conf
eingetragen sein:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Stehen mehrere Access Points zur Verfügung, kann
ein spezifischer durch Angabe der
SSID gewählt werden:wlans_ath0="wlan0"
ifconfig_wlan0="ssid Ihre_SSID DHCP"Gibt es in einem Netzwerk mehrere Access Points
mit der gleichen SSID, was das
Routing vereinfacht, kann es notwendig sein, dass ein
bestimmtes Gerät verbunden werden muss. Dazu muss
lediglich die BSSID des Access Points
angeben werden. Die Angabe der SSID
ist hierbei nicht zwingend notwendig:wlans_ath0="wlan0"
ifconfig_wlan0="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 Access Point sucht.
Sinnvoll ist ein solches Vorgehen beispielsweise, wenn
das drahtlose Gerät in verschiedenen Frequenzbereichen
arbeiten kann, da in diesem Fall das Prüfen aller
Frequenzen sehr zeitintensiv sein kann. Um nur
innerhalb eines bestimmten Frequenzbereichs nach einem
Access Point zu suchen, verwenden Sie die Option
:wlans_ath0="wlan0"
ifconfig_wlan0="mode 11g ssid Ihre_SSID DHCP"In diesem Beispiel sucht das drahtlose Gerät nur im
2,4 GHz-Band (802.11g), aber nicht innerhalb des
5 GHz-Bandes nach einem Access Point. Mit der
Option kann eine bestimmte
Frequenz vorgegeben werden, auf der gesucht werden soll.
Die Option erlaubt die Angabe
mehrerer erlaubter Frequenzen. Eine umfassende
Beschreibung dieser Optionen finden Sie in
&man.ifconfig.8;.AuthentifizierungSobald ein Access Point gefunden wurde, muss
sich die Station am Access Point authentifizieren, bevor
Daten übertragen werden können. Dazu gibt es
verschiedene Möglichkeiten. Am häufigsten
wird 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
kryptographischer 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 offene Authentifizierung
ist die Voreinstellung. Am zweithäufigsten kommt das im
beschriebene WPA-PSK zum Einsatz,
welches auch als WPA Personal
bezeichnet wird.Kommt eine &apple; &airport; Extreme-Basisstation
als Access Point zum Einsatz, muss sowohl die
Shared-Key-Authentifizierung als auch ein
WEP-Schlüssel konfiguriert werden.
Die entsprechende Konfiguration erfolgt entweder in
/etc/rc.conf oder über das
Programm &man.wpa.supplicant.8;. Für eine einzelne
&airport;-Basisstation kann der Zugriff wie folgt
konfiguriert werden:wlans_ath0="wlan0"
ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"Normalerweise sollte Shared-Key-Authentifizierung
nicht verwendet werden, da diese die Sicherheit des
WEP-Schlüssel noch weiter
verringert. Wenn WEP für
Kompatibilität mit älteren Geräten verwendet werden
muss, ist es besser, WEP mit
offener Authentifizierung zu verwenden. Weitere
Informationen zu WEP finden Sie im
.Eine IP-Adresse über
DHCP beziehenSobald ein Access Point ausgewählt ist und die
Authentifizierungsparameter festgelegt sind, wird eine
IP-Adresse benötigt. In der Regel
wird die IP-Adresse über
DHCP bezogen. Um dies zu erreichen,
bearbeiten Sie /etc/rc.conf und
fügen Sie DHCP für das drahtlose
Gerät in die Konfiguration hinzu:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Das drahtlose Gerät kann nun gestartet
werden:&prompt.root; service netif startNachdem das Gerät aktiviert wurde, kann mit
&man.ifconfig.8; der Status des Geräts
ath0 abgefragt werden:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burststatus: associated besagt, dass
sich das Gerät mit dem drahtlosen Netzwerk verbunden
hat. bssid 00:13:46:49:41:76 ist die
MAC-Adresse des Access Points und
authmode OPEN zeigt an, dass die
Kommunikation nicht verschlüsselt wird.Statische IP-AdressenWenn eine IP-Adresse nicht von
einem DHCP-Server bezogen werden
kann, vergeben Sie eine statische
IP-Adresse. Ersetzten Sie dazu das
oben gezeigte Schlüsselwort DHCP
durch die entsprechende IP-Adresse.
Beachten Sie dabei, dass Sie die anderen
Konfigurationsparameter nicht versehentlich
verändern:wlans_ath0="wlan0"
ifconfig_wlan0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here"WPAWi-Fi Protected Access
(WPA) ist ein Sicherheitsprotokoll, das
in 802.11-Netzwerken verwendet wird, um die fehlende
Authentifizierung und Schwächen von WEP
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
Temporary Key Integrity
Protocol (TKIP).
TKIP ist 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, welches häufig als
WPA2 oder RSN
bezeichnet wird, sollte bevorzugt 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 konfiguriert.Die Kontrolle der drahtlosen Verbindung sowie das
Aushandeln des Schlüssel, oder die Authentifizierung mit
einem Server, erfolgt über &man.wpa.supplicant.8;. Dieses
Programm benötigt eine Konfigurationsdatei,
/etc/wpa_supplicant.conf. Weitere
Informationen finden Sie in
&man.wpa.supplicant.conf.5;.WPA-PSKWPA-PSK, das auch als
WPA-Personal bekannt ist, 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, immer starke Passwörter zu
verwenden, die ausreichend lang sind und auch
Sonderzeichen enthalten, damit diese nicht leicht
erraten oder umgangen werden können.Der erste Schritt zum Einsatz von
WPA-PSK ist die Konfiguration der
SSID und des gemeinsamen Schlüssels
des Netzwerks in
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
psk="freebsdmall"
}Danach wird in
/etc/rc.conf definiert, dass
WPA zur Verschlüsselung eingesetzt
werden soll und dass die IP-Adresse
über DHCP bezogen wird:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun kann das drahtlose Gerät aktiviert
werden:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALAlternativ kann das drahtlose Gerät manuell, mit
Hilfe der Informationen aus
/etc/wpa_supplicant.conf
konfiguriert werden:&prompt.root; wpa_supplicant -i wlan0 -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=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]Im zweiten Schritt starten Sie nun
&man.dhclient.8;, um eine IP-Adresse
vom DHCP-Server zu beziehen:&prompt.root; dhclient wlan0
DHCPREQUEST on wlan0 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 wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALEnthält /etc/rc.conf
bereits die Zeile
ifconfig_wlan0="DHCP", wird
&man.dhclient.8; automatisch gestartet, nachdem
&man.wpa.supplicant.8; sich mit dem Access Point
verbunden hat.Sollte der Einsatz von DHCP nicht
möglich oder nicht gewünscht sein, konfigurieren Sie
eine statische IP-Adresse, nachdem
&man.wpa.supplicant.8; die Station authentifiziert
hat:&prompt.root; ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALFalls DHCP nicht verwendet wird,
müssen zusätzlich noch das Standard-Gateway sowie
der Nameserver manuell festgelegt werden:&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. Die bei
WPA-Enterprise verwendete
Authentifizierung basiert auf dem
Extensible Authentication
Protocol
(EAP).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 und
EAP-PEAP.EAP mit Transport
Layers Security
(EAP-TLS) ist ein 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
des Authentifizierungsservers, sowie ein
Client-Zertifikat für jeden drahtlosen Client. Sowohl
der Authentifizierungsservers als auch die drahtlosen
Clients authentifizieren sich gegenseitig über
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
/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
(SSID).Das als WPA2 bekannte
RSN &ieee; 802.11i Protokoll 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.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. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.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:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun können Sie das drahtlose Gerät
aktivieren:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALAlternativ kann das drahtlose Gerät manuell mit
&man.wpa.supplicant.8; und &man.ifconfig.8; aktiviert
werden.WPA mit
EAP-TTLSBei EAP-TLS müssen sowohl der
Authentifizierungsserver als auch die Clients jeweils
ein eigenes Zertifikat aufweisen. Bei
EAP-TTLS ist das Client-Zertifikat
optional. EAP-TTLS geht dabei
vor wie ein Webserver, der einen sicheren
SSL-Tunnel erzeugen kann, ohne dass
der Besucher dabei über ein clientseitiges Zertifikat
verfügen muss. EAP-TTLS verwendet
einen verschlüsselten TLS-Tunnel zum
sicheren Transport der Authentifizierungsdaten.Die erforderliche Konfiguration erfolgt in
/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. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.Die innerhalb des verschlüsselten
TLS-Tunnels verwendete
Authentifizierungsmethode. In Fall von
PEAP ist dies
auth=MSCHAPV2.Folgende Zeilen müssen in
/etc/rc.conf aufgenommen
werden:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun kann das drahtlose Gerät aktiviert
werden:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWPA mit
EAP-PEAPPEAPv0/EAP-MSCHAPv2 ist die
gängigste PEAP-Methode. In diesem
Kapitel wird der Begriff PEAP
stellvertretend für diese Methode verwendet.Protected EAP
(PEAP) wurde als Alternative zu
EAP-TTLS entwickelt und ist nach
EAP-TLS der meist genutzte
EAP-Standard. In einem Netzwerk mit
verschiedenen Betriebssystemen sollte
PEAP das am besten unterstützte
Standard nach EAP-TLS sein.PEAP arbeitet ähnlich wie
EAP-TTLS. Es verwendet ein
serverseitiges Zertifikat, um einen verschlüsselten
TLS-Tunnel, ü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 zu konfigurieren,
fügen Sie die folgenden Zeilen in
/etc/wpa_supplicant.conf
ein: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. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.Dieses Feld enthält die Parameter für die erste
Phase der Authentifizierung, den
TLS-Tunnel. Je nachdem, welcher
Authentifizierungsserver benutzt wird, kann ein
spezifisches Label für die Authentifizierung
verwendet werden. Meistens lautet das Label
client EAP
encryption, dass durch
peaplabel=0 gesetzt wird.
Weitere Informationen finden Sie in
&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"Nun kann das drahtlose Gerät aktiviert
werden.&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWEPWired Equivalent
Privacy (WEP) ist Teil
des ursprünglichen 802.11-Standards. Es enthält
keinen Authentifzierungsmechanismus und verfügt
lediglich über eine schwache Zugriffskontrolle,
die sehr leicht umgangen werden kann.WEP kann über &man.ifconfig.8;
aktiviert werden:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \
ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012weptxkey definiert den
WEP-Schlüssel, der für die
Datenübertragung verwendet wird. Dieses Beispiel
verwendet den dritten Schlüssel. Der gleiche
Schlüssel muss auch am Access Point eingestellt sein.
Kennen Sie den vom Access Point verwendeten Schlüssel
nicht, sollten Sie zuerst den Wert
1 (den ersten Schlüssel) für diese
Variable verwenden.wepkey legt den zu
verwendenden WEP-Schlüssel in der
Form Nummer:Schlüssel fest.
Schlüssel 1 wird standardmäßig
verwendet. Die "Nummer" muss nur angegeben werden,
wenn ein anderer als der erste Schlüssel verwendet
werden soll.Ersetzen Sie 0x3456789012
durch den am Access Point konfigurierten
Schlüssel.Weitere Informationen finden Sie in
&man.ifconfig.8;.Das Programm &man.wpa.supplicant.8; eignet sich
ebenfalls dazu, WEP für drahtlose
Geräte zu aktivieren. Obige Konfiguration lässt
sich dabei durch die Aufnahme der folgenden Zeilen in
/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 wlan0 -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, der auch als
Ad-hoc-Modus bezeichnet wird, ist für
Punkt-zu-Punkt-Verbindungen vorgesehen. Um beispielsweise
eine Ad-hoc-Verbindung zwischen den Rechnern
A und B
aufzubauen, werden lediglich zwei
IP-Adressen und eine
SSID benötigt.Auf Rechner A:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstDer adhoc-Parameter zeigt an, dass die
Schnittstelle im IBSS-Modus läuft.Rechner B sollte nun in der Lage
sein, Rechner A zu finden:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WMEDer Wert I (Spalte CAPS) in dieser
Ausgabe bestätigt, dass sich Rechner
A im Ad-hoc-Modus befindet. Nun
müssen Sie noch Rechner B eine andere
IP-Adresse zuweisen:&prompt.root; ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstDamit sind die Rechner A und
B bereit und können untereinander
Daten austauschen.&os; Host Access Points&os; kann als Access Point (AP)
agieren. Dies verhindert, dass man sich einen Hardware
AP kaufen oder ein Ad-hoc Netzwerk laufen
lassen muss. Dies kann sinnvoll sein, falls der &os;-Computer
als Gateway zu einem anderen Netzwerk, wie dem Internet,
fungiert.GrundeinstellungenBevor Sie einen &os;-Computer als AP
konfigurieren, muss der Kernel mit der entsprechenden
Netzwerkunterstützung für die drahtlose Karte, sowie die
Sicherheitsprotokolle konfiguriert werden. Weitere
Informationen finden Sie im .Die Verwendung der NDIS Treiber für
&windows; erlauben zur Zeit keinen
AP-Modus. Nur die nativen
&os;-Wireless-Treiber unterstützen den
AP-Modus.Nachdem die Netzwerkunterstützung geladen ist,
überprüfen Sie, ob das Wireless-Gerät den hostbasierenden
Access-Point Modus, der auch als hostap-Modus bekannt ist,
unterstützt:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>Diese Ausgabe zeigt die Eigenschaften der Karte. Das
Wort HOSTAP bestätigt, dass diese
Wireless-Karte als AP agieren kann. Die
verschiedenen unterstützten Algorithmen werden ebenfalls
angezeigt: WEP,
TKIP und AES. Diese
Informationen zeigen an, welche Sicherheitsprotokolle auf
dem AP nutzbar sind.Das Wireless-Gerät kann nur während der Erzeugung
des Pseudo-Geräts in den hostap-Modus gesetzt werden.
Zuvor erstellte Pseudo-Geräte müssen also vorher
zerstört werden:&prompt.root; ifconfig wlan0 destroyDanach muss das Gerät erneut erstellt werden, bevor
die restlichen Netzwerkparameter konfiguriert werden
können:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1Benutzen Sie danach erneut &man.ifconfig.8;, um den
Status der wlan0-Schnittstelle
abzufragen:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst dtimperiod 1 -dfsDie hostap-Parameter geben die
Schnittstelle an, die im hostbasierenden Access Point Modus
läuft.Die Konfiguration der Schnittstelle kann durch
Hinzufügen der folgenden Zeilen in die Datei
/etc/rc.conf automatisch während
des Bootvorganges erfolgen:wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1"Hostbasierender Access Point ohne Authentifizierung
oder VerschlüsselungObwohl es nicht empfohlen wird, einen
AP ohne jegliche
Authentifizierung oder Verschlüsselung laufen zu lassen,
ist es eine einfache Art zu testen, ob der
AP funktioniert.
Diese Konfiguration ist auch wichtig für die Fehlersuche
bei Client-Problemen.Nachdem der AP konfiguriert wurde,
ist es möglich von einem anderen drahtlosen
Computer eine Suche nach dem AP zu
starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WMEDer Client-Rechner hat den AP
gefunden und kann nun eine Verbindung aufbauen:&prompt.root; ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burstWPA2-hostbasierter
Access PointDieser Abschnitt beschäftigt sich mit der Konfiguration
eines &os; Access Point mit dem
WPA2-Sicherheitsprotokoll. Weitere
Einzelheiten zu WPA und der Konfiguration
von Clients mit WPA finden Sie im
.Der &man.hostapd.8;-Dienst wird genutzt,
um die Client-Authentifizierung und das Schlüsselmanagement
auf dem AP mit aktiviertem
WPA2 zu nutzen.Die folgende Konfiguration wird auf dem
&os;-Computer ausgeführt, der als AP
agiert. Nachdem der AP korrekt arbeitet,
sollte &man.hostapd.8; automatisch beim Booten durch
folgende Zeile in /etc/rc.conf
aktiviert werden:hostapd_enable="YES"Bevor Sie versuchen &man.hostapd.8; zu konfigurieren,
konfigurieren Sie zunächst die Grundeinstellungen, wie im
beschrieben.WPA2-PSKWPA2-PSK ist für kleine Netzwerke
gedacht, in denen die Verwendung eines
Authentifizierungs-Backend-Server nicht möglich oder
nicht erwünscht ist.Die Konfiguration wird in
/etc/hostapd.conf
durchgeführt:interface=wlan0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=2
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP Die Wireless-Schnittstelle, die
für den Access Point verwendet wird an.Der debuglevel von &man.hostapd.8; während der
Ausführung. Ein Wert von 1 ist der
kleinste zulässige Wert.Der Pfadname des Verzeichnisses, der von
&man.hostapd.8; genutzt wird, um die
Domain-Socket-Dateien zu speichern, die für die
Kommunikation mit externen Programmen, wie z.B.
&man.hostapd.cli.8;, benutzt werden. In diesem
Beispiel wird der Standardwert verwendet.Die Gruppe die Zugriff auf die
Schnittstellendateien hat.Der Name des drahtlosen Netzwerks
(SSID).Aktiviert WPA und gibt an
welches
WPA-Authentifizierungprotokoll
benötigt wird. Ein Wert von 2
konfiguriert den AP mit
WPA2. Setzen Sie den Wert nur auf
1, wenn Sie das veraltete
WPA benötigen.Das ASCII-Passwort für die
WPA-Authentifizierung.Achten Sie darauf, immer starke Passwörter zu
verwenden, die mindestens 8 Zeichen lang sind und
auch Sonderzeichen enthalten, damit diese nicht
leicht erraten oder umgangen werden können.Das verwendete Schlüsselmanagement-Protokoll.
Dieses Beispiel nutzt
WPA-PSK.Die zulässigen Verschlüsselungsverfahren des
Access-Points. In diesem Beispiel wird nur
CCMP (AES)
akzeptiert. CCMP ist eine
Alternative zu TKIP und
sollte wenn möglich eingesetzt werden.
TKIP sollte nur da eingesetzt
werden, wo kein CCMP möglich
ist.Als nächstes wird hostapd
gestartet:&prompt.root; service hostapd forcestart&prompt.root; ifconfig wlan0
wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 04:f0:21:16:8e:10
inet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>
status: running
ssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10
country US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2
AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6
scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst
dtimperiod 1 -dfs
groups: wlanSobald der AP läuft, können sich
die Clients mit ihm verbinden. Weitere Informationen
finden Sie im . Es
ist möglich zu sehen, welche Stationen mit dem
AP verbunden sind. Geben Sie dazu
ifconfig
wlan0 list sta
ein.WEP-hostbasierter
Access PointEs ist nicht empfehlenswert, einen
AP mit WEP zu
konfigurieren, da es keine Authentifikationsmechanismen
gibt und WEP leicht zu knacken ist.
Einige ältere drahtlose Karten unterstützen nur
WEP als Sicherheitsprotokoll. Diese
Karten können nur mit einem AP ohne
Authentifikation oder Verschlüsselung genutzt
werden.Das Wireless-Gerät kann nun in den hostap-Modus
versetzt werden und mit der korrekten
SSID und IP-Adresse
konfiguriert werden:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \
ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11gDer weptxkey zeigt an,
welcher WEP-Schlüssel bei der
Übertragung benutzt wird. In diesem Beispiel wird der
dritte Schlüssel benutzt, da die Nummerierung bei
1 beginnt. Dieser Parameter muss
angegeben werden, damit die Daten verschlüsselt
werden.Der wepkey gibt den
gewählten WEP-Schlüssel an. Er
sollte im folgenden Format
index:key vorliegen. Wenn
kein Index vorhanden ist, wird der Schlüssel
1 benutzt. Ansonsten muss der
Index manuell festgelegt werden.Benutzen Sie &man.ifconfig.8; um den Status der
wlan0-Schnittstelle erneut
anzuzeigen:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit
txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfsEs ist möglich, von einem anderen drahtlosen
Computer eine Suche nach dem AP zu
starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPSDer Client-Rechner hat den AP
gefunden und kann nun eine Verbindung aufbauen. Weitere
Informationen finden Sie im .Benutzung von drahtgebundenen und drahtlosen
VerbindungenEine Verbindung per Kabel bietet eine bessere Leistung
und eine höhere Zuverlässigkeit, während die
Wireless-Verbindung eine höhere Flexibilität und Mobilität
bietet. Benutzer von Laptops wollen normalerweise beides
nutzen und zwischen beiden Verbindungen hin und her
schalten.Unter &os; ist es möglich zwei oder mehr
Netzwerkschnittstellen in einem failover-Mode
zu kombinieren. Diese Konfiguration nutzt die beste
verfügbare Verbindung aus einer Gruppe von
Netzwerkverbindungen. Sobald sich der Linkstatus ändert,
wechselt das Betriebssystem automatisch auf eine andere
Verbindung.Link-Aggregation und Failover werden im behandelt. Ein Beispiel
für die Verwendung von kabelgebundenen und drahtlosen
Verbindungen gibt es im .ProblembehandlungDieser Abschnitt beschreibt eine Reihe von Maßnahmen zur
Behebung von alltäglichen Problemen mit
Drahtlosnetzwerken.Wird der Access Point bei der Suche nicht gefunden,
überprüfen Sie, dass die Konfiguration des drahtlosen
Geräts nicht die Anzahl der Kanäle beschränkt.Wenn sich das Gerät nicht mit dem Access Point
verbinden kann, überprüfen Sie, ob die Konfiguration der
Station auch der des Access Points entspricht. Dazu
gehören auch die Authentifzierungsmethode und die
Sicherheitsprotokolle. Halten Sie die Konfiguration so
einfach wie möglich. Wenn Sie ein Sicherheitsprotokoll
wie WPA oder WEP
verwenden, können Sie testweise den Access Point auf
offene Authentifizierung und
keine Sicherheit einstellen.Für die Fehlersuche steht &man.wpa.supplicant.8;
zur Verfügung. Starten Sie das Programm manuell mit der
Option und durchsuchen Sie
anschließend die Systemprotokolle nach eventuellen
Fehlermeldungen.Sobald sich das Gerät mit dem Access Point verbinden
kann, prüfen Sie die Netzwerkkonfiguration mit
einfachen Werkzeugen wie &man.ping.8;.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 &man.wlandebug.8; 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 wlan0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>Der 802.11-Layer liefert umfangreiche Statistiken,
die mit dem Werkzeug wlanstats, das
sich in
/usr/src/tools/tools/net80211
befindet, abgerufen werden 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 des
Gerätetreibers.Wenn die oben genannten Informationen nicht helfen das
Problem zu klären, erstellen Sie einen Problembericht, der die
Ausgabe der weiter oben genannten Werkzeuge beinhaltet.USB TetheringtetherViele Mobiltelefone bieten die Möglichkeit, ihre
Datenverbindung über USB (oft "Tethering" genannt) zu
teilen. Diese Funktion verwendet entweder das
RNDIS-, CDC- oder ein
&apple; &iphone;/&ipad;-Protokoll.&android;-Geräte benutzen in der Regel den
&man.urndis.4;-Treiber.&apple;-Geräte benutzen den
&man.ipheth.4;-Treiber.Ältere Geräte benutzen oft den
&man.cdce.4;-Treiber.Bevor Sie ein Gerät anschließen, laden Sie den
entsprechenden Treiber in den Kernel:&prompt.root; kldload if_urndis
&prompt.root; kldload if_cdce
&prompt.root; kldload if_iphethSobald das Gerät angeschlossen ist, steht es
unter ue0
wie ein normales Netzwerkgerät zur Verfügung.
Stellen Sie sicher, dass die Option
USB Tethering auf dem Gerät
aktiviert ist.BluetoothPavLucistnikBeigetragen von pav@FreeBSD.orgBluetoothBluetooth 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 mehr.Dieses Kapitel beschreibt die Verwendung von
USB-Bluetooth-Adaptern in &os;. Weiterhin
werden verschiedene Bluetooth-Protokolle und Programme
vorgestellt.Die Bluetooth-Unterstützung aktivierenDer Bluetooth-Stack von &os; verwendet das
&man.netgraph.4;-Framework. 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.Bevor ein Gerät angeschlossen wird, muss der entsprechende
Treiber in den Kernel geladen werden. Hier verwendet das
Gerät den &man.ng.ubt.4;-Treiber:&prompt.root; kldload ng_ubtIst das Bluetooth-Gerät beim Systemstart angeschlossen,
kann das entsprechende Modul bei Booten geladen werden, indem
der entsprechende Treiber in
/boot/loader.conf hinzugefügt
wird:ng_ubt_load="YES"Sobald der Treiber geladen ist, schließen Sie den
USB-Adapter an. Eine Meldung ähnlich der
folgenden wird auf der Konsole und in
/var/log/messages 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=294Verwenden Sie das Startskript zum Starten und Beenden des
Bluetooth-Stacks. Es ist empfehlenswert, den Bluetooth-Stack
- zu beenden, bevor Sie den Adapter entfernen. Wenn Sie den
+ zu beenden, bevor Sie den Adapter entfernen. Das Starten des
+ Bluetooth-Stacks kann das Starten von &man.hcsecd.8;
+ erfordern. Wenn Sie den
Bluetooth-Stack starten, erhalten Sie eine Meldung ähnlich
der folgenden:&prompt.root; service 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: 8Suche nach anderen Bluetooth-GerätenHCIDas
Host Controller Interface
(HCI) bietet eine einheitliche Methode für
den Zugriff auf Bluetooth-Basisband-Funktionen. In &os; wird
ein netgraph HCI-Knoten für jedes
Bluetooth-Gerät erstellt. Weitere Einzelheiten finden Sie in
&man.ng.hci.4;.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 Netzwerkkarte, 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.
+ auch möglich, BD_ADDR einen Klartextnamen zuzuweisen.
/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 den Rechner unter dem Namen
your.host.name (ubt0) finden. Dieser Name kann
aber jederzeit geändert werden.
+ Entfernten Geräten können Aliase in
+ /etc/bluetooth/hosts zugewiesen werden.
+ Weitere Informationen zu
+ /etc/bluetooth/hosts finden Sie in
+ &man.bluetooth.hosts.5;.
+
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
+ folgende Beispiel zeigt, wie man eine Verbindung zu einem
+ entferntem Gerät aufbauen kann:
+
+ &prompt.user; hccontrol -n ubt0hci create_connection BT_ADDR
+
+ create_connection aktzeptiert
+ BT_ADDR oder auch einen Alias aus
+ /etc/bluetooth/hosts.
+
+ 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.Erstmaliger Verbindungsaufbau zwischen zwei
Bluetooth-Geräten (Pairing)
PairingIn der Voreinstellung nutzt Bluetooth keine
Authentifizierung, daher kann sich jedes Bluetoothgerät mit
jedem anderen Gerät verbinden. Ein Bluetoothgerät, wie
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
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. Der
Computer und das entfernte Gerät sind nun miteinander
verbunden. Alternativ können Sie das Pairing auch auf dem
entfernten Gerät initiieren.&man.hcsecd.8; kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
beim Systemstart automatisch aktiviert werden:hcsecd_enable="YES"Es folgt nun eine beispielhafte Ausgabe
des &man.hcsecd.8;-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:a4Einwahlverbindungen und Netzwerkverbindungen mit
PPP-Profilen einrichtenEin
Dial-Up Networking-Profil
(DUN) kann dazu benutzt werden, ein
Mobiltelefon als drahtloses Modem zu nutzen, um sich über
einen Einwahlprovider mit dem Internet zu verbinden. Es
kann auch dazu genutzt werden, einen Computer so zu
konfigurieren, dass dieser Datenabfragen empfängt.Der Zugriff auf ein Netzwerk über ein
PPP-Profil kann einen Zugriff auf das
LAN für ein oder mehrere Bluetooth-Geräte
bieten. Eine
PC-zu-PC-Verbindung
unter Verwendung einer PPP-Verbindung
über eine serielle Verbindung ist ebenfalls möglich.Diese Profile werden unter &os; durch &man.ppp.8; sowie
&man.rfcomm.pppd.8; implementiert - einem Wrapper, der
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;.Dieses Beispiel verwendet &man.rfcomm.pppd.8;, um
eine Verbindung zu einem entfernten Gerät mit der
BD_ADDR00:80:37:29:19:a4 auf
dem RFCOMM-Kanal DUN
aufzubauen:&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupDie aktuelle Kanalnummer des entfernten Geräts erhalten
Sie über das SDP-Protokoll. 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.Der &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, wie man den RFCOMM
PPP-Server startet.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverBluetooth-ProtokolleDieser Abschnitt gibt einen Überblick über die
verschiedenen Bluetooth-Protokolle, ihre Funktionen sowie
weitere Programme.Das Logical Link Control and Adaptation Protocol
(L2CAP)L2CAPDas Logical Link Control and Adaptation
Protocol (L2CAP) bietet
höherwertigen Protokollen verbindungsorientierte und
verbindungslose Datendienste an. 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.Unter &os; wird eine netgraph-Gerätedatei vom Typ
l2cap für jedes einzelne
Bluetooth-Gerät erzeugt. Diese 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 lautet
devicel2cap. Weitere Details finden Sie in
&man.ng.l2cap.4;.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 im folgenden Beispiel 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 ähnlich wie &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 OPENRadio Frequency Communication
(RFCOMM)RFCOMMDas RFCOMM-Protokoll emuliert
serielle Verbindungen über das
L2CAP-Protokoll. 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. Es erlaubt bis
zu 60 simultane Verbindungen
(RFCOMM-Kanäle) 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 über eine 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; ist das RFCOMM-Protokoll
im Bluetooth Socket-Layer implementiert.Das Service Discovery Protocol
(SDP)SDPDas
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 separate 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 SDP-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.0Beachten Sie, dass jeder Dienst eine Liste seiner
Eigenschaften, wie etwa den RFCOMM-Kanal,
zurückgibt. Je nachdem, welche Dienste der Benutzer
benötigt, sollten einige dieser Eigenschaften notiert
werden. 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. Sie
können diesen Server durch das Einfügen der folgenden
Zeile in /etc/rc.conf
aktivieren:sdpd_enable="YES"Nun kann der &man.sdpd.8;-Daemon durch
folgende Eingabe gestartet werden:&prompt.root; service 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 browseOBEX Object-Push
(OPUSH)OBEXOBEX 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 obexapp bereitgestellt, das
als Paket oder Port comms/obexapp
installiert werden kann.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 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 Objekte 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. Das folgende Beispiel zeigt,
wie der OBEX-Server gestartet
wird:&prompt.root; obexapp -s -C 10Das Serial-Port Profil (SPP)Das Serial Port Profile
(SSP) ermöglicht es Bluetooth-Geräten
eine serielle Kabelverbindung zu emulieren. Anwendungen
sind dadurch in der Lage, über eine virtuelle serielle
Verbindung Bluetooth als Ersatz für eine Kabelverbindung zu
nutzen.&man.rfcomm.sppd.1; implementiert unter &os;
SSP und ein Pseudo-tty, das als
virtuelle serielle Verbindung verwendet wird. Das folgende
Beispiel zeigt, wie man eine Verbindung mit einem entfernten
Serial-Port-Dienst herstellt. Ein
RFCOMM-Kanal muss dabei nicht angegeben
werden, da &man.rfcomm.sppd.1; den Kanal über
SDP abfragen kann. Um dies zu umgehen,
geben Sie einen RFCOMM-Kanal auf der
Kommandozeile an.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t
rfcomm_sppd[94692]: Starting on /dev/pts/6...
/dev/pts/6Sobald die Verbindung hergestellt ist, kann pseudo-tty
als serieller Port verwenden werden.&prompt.root; cu -l /dev/pts/6Das pseudo-tty wird auf der Standardausgabe ausgegeben
und kann von Wrapper-Skripten gelesen werden:PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`
cu -l $PTSProblembehandlungWenn &os; eine neue Verbindung
akzeptiert, versucht es, die Rolle zu tauschen, um zum
Master zu werden. Einige ältere Geräte, die dies nicht
unterstützen, können keine Verbindung aufbauen. Da der
Rollentausch ausgeführt wird sobald eine neue Verbindung
aufgebaut wird, ist es nicht möglich, das entfernte Gerät zu
fragen ob es den Rollentausch unterstützt. Es gibt jedoch
eine HCI-Option, die dieses Verhalten
deaktiviert:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Verwenden Sie hcidump,
das als Paket Port comms/hcidump
installiert werden kann, um Bluetooth-Pakete anzuzeigen.
Dieses Programm hat Ähnlichkeiten mit &man.tcpdump.1; und
kann zur Anzeige der Bluetooth-Pakete in einem Terminal,
oder zur Speicherung von Paketen in einer Datei (Dump)
verwendet werden.LAN-Kopplung mit einer BridgeAndrewThompsonGeschrieben von IP-SubnetzBridgeManchmal ist es nützlich, ein Netzwerk, wie
ein Ethernetsegment, in 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.Eine Bridge arbeitet, indem sie die
MAC-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. Jedes
&os;-System mit zwei Netzwerkkarten kann als Bridge
fungieren.Bridging kann in den folgenden Situationen sinnvoll
sein:Verbinden von NetzwerkenDie Hauptaufgabe einer Bridge ist die Verbindung von
zwei oder mehreren Netzwerksegmenten. Es gibt viele
Gründe, eine hostbasierte Bridge einzusetzen, anstelle
von Netzwerkkomponenten, wie beispielsweise
Kabelverbindungen oder Firewalls. 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 FirewallEine Bridge kann eingesetzt werden, wenn
Firewallfunktionen benötigt werden, ohne dabei
Routing oder Network Adress
Translation (NAT)
zu verwenden.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder
ISDN an einen ISP
angebunden ist. Es verfügt über 13 erreichbare
IP-Adressen und das Netzwerk besteht
aus 10 Rechnern. In dieser Situation ist der Einsatz
von Subnetzen sowie einer routerbasierten Firewall
aufgrund der IP-Adressierung
schwierig. Eine Bridge-basierte Firewall kann hingegen
ohne Probleme konfiguriert werden.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; und
&man.tcpdump.1; auf dem Netzgerät der Bridge oder schickt
Kopien aller Rahmen an ein zusätzliches Netzgerät, das als
Span Port bekannt
ist.Layer 2 VPNZwei Ethernetnetzwerke können über einen
IP-Link miteinander verbunden werden,
indem die beiden Netzwerke über einen EtherIP-Tunnel
gekoppelt werden, oder eine &man.tap.4;-basierte Lösung
wie OpenVPN eingesetzt
wird.Layer 2 RedundanzDie Systeme eines Netzwerks können über das
Spanning Tree Protocol
(STP) redundant miteinander verbunden
sein, um redundante Pfade zu blockieren.Dieser Abschnitt beschreibt, wie ein &os;-System mit Hilfe
von &man.if.bridge.4; als Bridge konfiguriert wird. Ein
netgraph-Bridge-Treiber ist ebenfalls verfügbar und wird in
&man.ng.bridge.4; beschrieben.Paketfilter können mit allen Firewallpaketen verwendet
werden, die das &man.pfil.9;-Framework benutzen. Eine Bridge
kann auch als Traffic Shaper
verwendet werden, wenn Sie &man.altq.4; oder
&man.dummynet.4; einsetzen.Die Bridge aktivierenIn &os; handelt es sich bei &man.if.bridge.4; um ein
Kernelmodul, das von &man.ifconfig.8; automatisch geladen
wird, wenn eine Bridge-Schnittstelle erzeugt wird. Es ist
auch möglich, die Unterstützung für den Treiber in den Kernel
zu kompilieren, indem die Zeile
device if_bridge in die
Kernelkonfigurationsdatei hinzugefügt wird.Eine Bridge wird durch das Klonen von Schnittstellen
erzeugt. Um eine Bridge zu erzeugen, verwenden Sie:&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 0Wenn eine Bridge erzeugt wird, erhält sie automatisch eine
zufällig generierte Ethernet-Adresse. Die Parameter
maxaddr sowie timeout
legen fest, wie viele MAC-Adressen die
Bridge in ihrer Forward-Tabelle halten kann und wie viele
Sekunden jeder Eintrag erhalten bleiben soll, nachdem
er zuletzt verwendet wurde. Die restlichen Parameter sind
für die Konfiguration von STP
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 upJetzt 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 die folgenden Zeilen in
/etc/rc.conf hinzugefügt werden:cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"Wenn die Bridge eine IP-Adresse
benötigt, muss diese der Schnittstelle der Bridge zugewiesen
werden und nicht der Schnittstelle der gekoppelten
Netzwerksegmente. Die IP-Adresse kann
manuell gesetzt, oder über DHCP bezogen
werden. Dieses Beispiel verwendet eine statische
IP-Adresse:&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Es ist auch möglich der Bridge-Schnittstelle eine
IPv6-Adresse zuzuweisen. Um die Änderungen
dauerhaft zu speichern, fügen Sie die Adressinformationen in
/etc/rc.conf ein.Nachdem 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 zur
Weiterleitung von Nicht-IP- und
IP-Paketen, sowie Paketfilterung auf
Layer 2 mittels &man.ipfw.8;. Weitere Informationen finden
Sie in &man.if.bridge.4;.Spanning Tree aktivierenDamit ein Ethernet-Netzwerk richtig funktioniert, kann nur
ein aktiver Pfad zwischen zwei Geräten existieren. Das
STP-Protokoll erkennt Schleifen in einer
Netzwerktopologie und setzt redundante Pfade in einen
blockierten Zustand. Sollte eine der aktiven Verbindungen
ausfallen, berechnet STP einen anderen Baum
und ermöglicht es dann einem blockierten Pfad, alle
Netzwerkverbindungen wiederherzustellen.Das
Rapid Spanning Tree Protocol
(RSTP oder 802.1w), ist abwärtskompatibel
zum veralteten STP.
RSTP arbeitet schneller und tauscht
Informationen mit benachbarten Switchen aus, um Pakete korrekt
weiterzuleiten und eine Schleifenbildung zu verhindern. &os;
unterstützt die Betriebsmodi RSTP und
STP, wobei RSTP als
Standardmodus voreingestellt ist.STP kann auf den Schnittstellen der
durch die Bridge verbundenen Netzwerksegmente mittels
&man.ifconfig.8; 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
STP 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 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.Parameter der Bridge-SchnittstelleEinige Parameter von ifconfig dienen
ausschließlich der Konfiguration von Bridge-Schnittstellen.
Dieser Abschnitt fasst die Verwendung dieser Parameter
zusammen. Die vollständige Liste der verfügbaren Parameter
wird in &man.ifconfig.8; beschrieben.privateEine 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.spanEin Span Port
übertragt eine Kopie jedes Ethernet-Rahmens, der an der
Bridge ankommt. 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 beispielsweise
eine Kopie aller Ethernet-Rahmen über die Schnittstelle
fxp0 zu übertragen:&prompt.root; ifconfig bridge0 span fxp4stickyWenn 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 Beispiel für den Einsatz von Sticky-Adressen ist
die Kombination einer Bridge mit mehreren
VLANs, um einen Router zu
konfigurieren, der einzelne Kundennetzwerke voneinander
trennt, ohne dabei 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:&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24In diesem Beispiel sehen beide Clients 192.168.0.1 als das
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 Subnetze eingesetzt
werden.Die 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 existierender
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 10Die Bridge unterstützt auch 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
beispielsweise die Eingabe von vier Netzwerkschnittstellen
in einzigen gemeinsamen Datenstrom zu vereinen:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0SNMP-MonitoringDie Schnittstelle der Bridge sowie die
STP-Parameter können durch den im
Basissystem enthaltenen &man.bsnmpd.1; überwacht werden.
Die exportierten Bridge-MIBs entsprechen
den IETF-Standards, daher kann ein
beliebiger SNMP-Client oder ein
beliebiges Monitoring-Werkzeug eingesetzt werden, um die
benötigten Daten zu erhalten.Um das Monitoring auf der Bridge zu aktivieren,
kommentieren Sie diese Zeile in
/etc/snmpd.config aus, indem Sie das
Zeichen # entfernen:begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"Weitere Konfigurationsparameter wie Community-Namen und
Zugriffslisten müssen ebenfalls in dieser Datei angepasst
werden. Weitere Informationen finden Sie in &man.bsnmpd.1;
und &man.snmp.bridge.3;. Nachdem die Änderungen gespeichert
wurden, fügen Sie folgende Zeile in
/etc/rc.conf hinzu:bsnmpd_enable="YES"Danach starten Sie &man.bsnmpd.1;:&prompt.root; service bsnmpd startDie folgenden Beispiele verwenden das Softwarepaket
Net-SNMP
(net-mgmt/net-snmp), um die Bridge vom
Client aus abzufragen. Alternativ kann auch der Port
net-mgmt/bsnmptools benutzt werden. Auf
dem SNMP-Client müssen danach die folgenden
Zeilen in $HOME/.snmp/snmp.conf
hinzugefügt werden, 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:&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
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,
kann der private BEGEMOT-BRIDGE-MIB eingesetzt
werden:&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:&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2Link-Aggregation und FailoverAndrewThompsonGeschrieben von BenedictReuschlingÜbersetzt von SharonBahagilaggfailoverFECLACPloadbalanceroundrobinDie von &os; unterstützte &man.lagg.4;-Schnittstelle erlaubt
die Gruppierung von mehreren Netzwerkadaptern als eine virtuelle
Schnittstelle, mit dem Ziel, Ausfallsicherheit (Failover) und
Link Aggregation bereitzustellen. Bei Failover kann der Verkehr
auch dann weiter fließen, wenn nur eine Schnittstelle verfügbar
ist. Link Aggregation funktioniert am besten mit Switches,
die LCAP unterstützen, da dieses Protokoll
den Datenverkehr bidirektional verteilt, während es auch auf den
Ausfall einzelner Verbindungen reagiert.Die von der lagg-Schnittstelle unterstützten Protokolle
bestimmen, welche Ports für den ausgehenden Datenverkehr benutzt
werden, und ob ein bestimmter Port eingehenden Datenverkehr
akzeptiert. Die folgenden Protokolle werden von &man.lagg.4;
unterstützt:Failover (Ausfallsicherheit)Dieser Modus sendet und empfängt Datenverkehr nur
auf dem Masterport. Sollte der Masterport nicht zur
Verfügung stehen, wird der nächste aktive Port
verwendet. Der zuerst hinzugefügte Adapter der
virtuellen Schnittstelle wird zum Masterport, jeder
weitere Adapter dient als Gerät zur Ausfallsicherheit.
Wenn ein Failover auf einem Nicht-Master Port
stattfindet, wird der ursprüngliche Port wieder zum
Master-Port, sobald er wieder verfügbar ist.fec / loadbalance (Lastverteilung)&cisco; Fast ðerchannel; (FEC)
findet sich auf älteren &cisco; Switches. Es bietet
eine statische Konfiguration und handelt weder
Aggregation mit der Gegenstelle aus, noch werden Frames
zur Überwachung der Verbindung ausgetauscht. Wenn der
Switch LACP unterstützt, sollte diese
Option auch verwendet werden.lacpDas &ieee; 802.3ad Link-Aggregation Control
Protokoll (LACP). Mit
LACP wird eine Menge von
aggregierbaren Verbindungen mit der Gegenstelle in einer
oder mehreren Link Aggregated Groups
(LAG) ausgehandelt. Jede
LAG besteht aus Ports der gleichen
Geschwindigkeit, eingestellt auf Voll-Duplex-Betrieb.
Der Verkehr wird über die Ports in der
LAG mit der größten
Gesamtgeschwindigkeit balanciert. Typischerweise gibt
es nur eine LAG, die alle Ports
enthält. Im Falle von Änderungen in der physischen
Anbindung wird LACP schnell zu einer
neuen Konfiguration konvergieren.LACP balanciert ausgehenden
Verkehr über die aktiven Ports basierend auf der
gehashten Protokollheaderinformation und akzeptiert
eingehenden Verkehr auf jedem aktiven Port. Der Hash
beinhaltet die Ethernet-Quell- und Zieladresse, und,
soweit verfügbar, den VLAN-Tag,
sowie die IPv4 oder
IPv6 Quell- und Zieladresse.roundrobinDieser Modus verteilt ausgehenden Verkehr mittels
einer Round-Robin-Zuteilung über alle aktiven Ports und
akzeptiert eingehenden Verkehr auf jedem aktiven Port.
Da dieser Modus die Reihenfolge von Ethernet-Rahmen
verletzt, sollte er mit Vorsicht eingesetzt
werden.BeispieleDieser Abschnitt zeigt, wie man einen &cisco; Switch und
ein &os;-System für LACP Load Balancing
konfiguriert. Weiterhin wird gezeigt, wie man zwei
Ethernet-Schnittstellen, sowie eine Ethernet- und eine
Drahtlos-Schnittstelle für den Failover-Modus konfigurieren
kann.LACP Aggregation mit einem &cisco;
SwitchDieses Beispiel verbindet zwei &man.fxp.4;
Ethernet-Schnittstellen einer &os;-Maschine zu den ersten
zwei Ethernet-Ports auf einem &cisco; Switch als eine
einzelne, lastverteilte und ausfallsichere Verbindung.
Weitere Adapter können hinzugefügt werden, um den Durchsatz
zu erhöhen und die Ausfallsicherheit zu steigern. Ersetzen
Sie die Namen der &cisco;-Ports, Ethernet-Geräte,
channel-group Nummern und IP-Adressen im
Beispiel durch Namen, die mit Ihrer lokalen Konfiguration
übereinstimmen.Da die Reihenfolge der Frames bei Ethernet zwingend
eingehalten werden muss, fließt auch jeglicher Verkehr
zwischen zwei Stationen über den gleichen physischen
Kanal, was die maximale Geschwindigkeit der Verbindung auf
die eines einzelnen Adapters beschränkt.
Der Übertragungsalgorithmus versucht, so viele
Informationen wie möglich zu verwenden, um die
verschiedenen Verkehrsflüsse zu unterscheiden und
balanciert diese über die verfügbaren Adapter.Fügen Sie auf dem &cisco;-Switch die Adapter
FastEthernet0/1 und
FastEthernet0/2 zu der
channel-group 1 hinzu:interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacpErstellen Sie auf der &os; Maschine die
&man.lagg.4;-Schnittstelle unter Verwendung von
fxp0 und
fxp1 und starten Sie die
Schnittstelle mit der IP-Adresse
10.0.0.3/24:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24Überprüfen Sie den Status der virtuellen
Schnittstelle:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>Ports, die als ACTIVE markiert
sind, sind Teil der aktiven Aggregations-Gruppe, die mit dem
Switch ausgehandelt wurde. Der Verkehr wird über diese
Gruppe übertragen und empfangen. Benutzen Sie
&man.ifconfig.8; mit , um sich die
LAG-Bezeichner anzeigen zu lassen.Um den Status der Ports auf dem Switch
anzuzeigen, benutzen Sie
show lacp neighbor:switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3DBenutzen Sie show lacp neighbor
detail, um weitere Informationen zu
erhalten.Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie auf dem &os;-System folgende
Einträge in /etc/rc.conf hinzu:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0
ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24"Ausfallsicherer ModusDer ausfallsichere Modus kann verwendet werden, um zu
einer zweiten Schnittstelle zu wechseln, sollte die
Verbindung mit der Master-Schnittstelle ausfallen. Um den
ausfallsicheren Modus zu konfigurieren, aktivieren Sie
zunächst die zugrunde liegenden physikalischen
Schnittstellen. Erstellen Sie dann die
&man.lagg.4;-Schnittstelle mit
fxp0 als Master-Schnittstelle und
fxp1 als sekundäre Schnittstelle.
Der virtuellen Schnittstelle wird die
IP-Adresse
10.0.0.15/24 zugewiesen:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp110.0.0.15/24Die virtuelle Schnittstelle sollte in etwa so
aussehen:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>Der Verkehr wird auf fxp0
übertragen und empfangen. Wenn die Verbindung auf
fxp0 abbricht, wird
fxp1 die Verbindung übernehmen.
Sobald die Verbindung auf der Master-Schnittstelle
wiederhergestellt ist, wird diese wieder als aktive
Schnittstelle genutzt.Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf hinzu:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0
ifconfig_lagg0="laggproto failover laggport fxp0 laggport fxp110.0.0.15/24"Failover Modus zwischen Ethernet- und
Wireless-SchnittstellenFür Laptop-Benutzer ist es normalerweise wünschenswert,
wireless als sekundäre Schnittstelle
einzurichten, die verwendet wird, wenn die
Ethernet-Verbindung nicht verfügbar ist. Mit &man.lagg.4;
ist es möglich, ein Failover mit einer
IP-Adresse zu konfigurieren, welches die
Ethernet-Verbindung aus Performance- und Sicherheitsgründen
bevorzugt, während es gleichzeitig möglich bleibt, Daten
über die drahtlose Verbindung zu übertragen.Dies wird durch das Überschreiben der physikalischen
MAC-Adresse der drahtlosen Schnittstelle,
durch die der Ethernet-Schnittstelle erreicht.In diesem Beispiel ist die Ethernet-Schnittstelle
bge0 die Master-Schnittstelle
und die drahtlose Schnittstelle
wlan0 die Failover-Schnittstelle.
wlan0 wurde von der
iwn0 mit der
MAC-Adresse der Ethernet-Schnittstelle
eingerichtet. Im ersten Schritt wird die
MAC-Adresse der
Ethernet-Schnittstelle ermittelt:&prompt.root; ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
ether 00:21:70:da:ae:37
inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: activeErsetzen Sie bge0 durch den
Namen der Ethernet-Schnittstelle des Systems. Die
ether-Zeile wird die
MAC-Adresse der angegebenen Schnittstelle
enthalten. Ändern Sie nun die
MAC-Adresse der zugrunde liegenden
drahtlosen Schnittstelle:&prompt.root; ifconfig iwn0 ether 00:21:70:da:ae:37Starten Sie die drahtlose Schnittstelle, aber ohne
eine IP-Adresse zu setzen:&prompt.root; ifconfig wlan0 create wlandev iwn0 ssid my_router upStellen Sie sicher, dass die
bge0-Schnittstelle aktiv ist.
Erstellen Sie die &man.lagg.4;-Schnittstelle mit
bge0 als Master und
wlan0 als Failover:&prompt.root; ifconfig bge0 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0Die virtuelle Schnittstelle sollte in etwa so
aussehen:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:21:70:da:ae:37
media: Ethernet autoselect
status: active
laggproto failover
laggport: wlan0 flags=0<>
laggport: bge0 flags=5<MASTER,ACTIVE>Starten Sie dann den DHCP-Client,
um eine IP-Adresse zu erhalten:&prompt.root; dhclient lagg0Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf hinzu:ifconfig_bge0="up"
wlans_iwn0="wlan0"
ifconfig_wlan0="WPA"
create_args_wlan0="wlanaddr 00:21:70:da:ae:37"
cloned_interfaces="lagg0"
ifconfig_lagg0="up laggproto failover laggport bge0 laggport wlan0 DHCP"Plattenloser Betrieb mit PXEJean-FrançoisDockèsAktualisiert von AlexDupreReorganisiert und erweitert von plattenloser Arbeitsplatzplattenloser BetriebDas &intel; Preboot eXecution Environment
(PXE) erlaubt es dem Betriebssystem über das
Netzwerk zu starten. Zum Beispiel kann ein &os;-System, ohne
lokale Festplatte, über das Netzwerk gestartet und betrieben
werden. Die Dateisysteme werden dabei über einen
NFS-Server eingehangen.
PXE-Unterstützung steht in der Regel im
BIOS zur Verfügung. Um
PXE beim Systemstart zu verwenden, müssen Sie
im BIOS des Rechners die Option Über
das Netzwerk starten aktivieren. Alternativ können
Sie während der PC-Initialisierung auch eine Funktionstaste
drücken.Um die notwendigen Dateien für ein Betriebssystem für den
Start über das Netzwerk bereitzustellen, benötigt ein
PXE-Setup einen richtig konfigurierten
DHCP-, TFTP- und
NFS-Server, wobei:Die initialen Parameter, wie
IP-Adresse, Dateiname und Speicherort
der ausführbaren Bootdateien, Servername sowie Root-Pfad
vom DHCP-Server bezogen werden.Der Loader für das Betriebssystem über
TFTP gestartet wird.Die Dateisysteme über
NFS geladen werden.Sobald das Gastsystem über PXE startet,
erhält es vom DHCP-Server Informationen, wo
der initiale Bootloader per TFTP zu bekommen
ist. Nachdem das Gastsystem diese Informationen erhalten hat,
lädt es den Bootloader über TFTP herunter und
führt diesen anschließend aus. In &os; ist
/boot/pxeboot der Bootloader. Nachdem
/boot/pxeboot ausgeführt und der
&os;-Kernel geladen wurde, wird mit dem Rest der
&os;-Bootsequenz, wie in beschrieben,
fortgefahren.Dieser Abschnitt beschreibt, wie Sie diese Dienste auf
einem &os;-System so konfigurieren, sodass andere Systeme &os;
über PXE starten können. Weitere
Informationen finden Sie in &man.diskless.8;.Wie beschrieben, ist das System, welches diese Dienste
bereitstellt, unsicher. Daher sollte es in einem
geschützten Bereich des Netzwerks aufgestellt und von
anderen Hosts als nicht vertrauenswürdig eingestuft
werden.Konfiguration der
PXE-UmgebungCraigRodrigues
rodrigc@FreeBSD.org
Beigetragen von Die in diesem Abschnitt dargestellten Schritte
konfigurieren die in &os; enthaltenen NFS-
und TFTP-Server. Der folgende Abschnitt
beschreibt die Installation und Konfiguration des
DHCP-Servers. In diesem Beispiel verwenden
wir /b/tftpboot/FreeBSD/install, welches
die Dateien für PXE-Benutzer enthält. Es
ist wichtig, dass dieses Verzeichnis existiert und das der
gleiche Verzeichnisname ebenfalls in
/etc/inetd.conf und
/usr/local/etc/dhcpd.conf gesetzt
wird.Erstellen Sie das Root-Verzeichnis, welches eine
&os;-Installation enthält und über NFS
eingehangen werden kann:&prompt.root; export NFSROOTDIR=/b/tftpboot/FreeBSD/install
&prompt.root; mkdir -p ${NFSROOTDIR}Aktivieren Sie den NFS-Server,
indem Sie folgende Zeile in
/etc/rc.conf hinzufügen:nfs_server_enable="YES"Exportieren Sie das Root-Verzeichnis über
NFS, indem Sie folgende Zeile in
/etc/exports hinzufügen:/b -ro -alldirs -maproot=rootStarten Sie den NFS-Server:&prompt.root; service nfsd startAktivieren Sie &man.inetd.8;, indem Sie folgende Zeile
in /etc/rc.conf hinzufügen:inetd_enable="YES"Kommentieren Sie die folgende Zeile in
/etc/inetd.conf aus, indem Sie
sicherstellen, dass die Zeile nicht mit einem
#-Zeichen beginnt:tftp dgram udp wait root /usr/libexec/tftp tftp -l -s /b/tftpbootEinige PXE-Versionen benötigen
die TCP-Version von
TFTP. In diesem Fall können Sie
die zweite tftp-Zeile, welche
stream tcp enthält,
auskommentieren.Starten Sie &man.inetd.8;:&prompt.root; service inetd startInstallieren Sie das Basissystem nach
${NFSROOTDIR}, indem Sie die
offiziellen Archive entpacken, oder ein neues
Basissystem und einen &os;-Kernel erstellen. Detaillierte
Anweisungen hierzu finden Sie im . Vergessen Sie jedoch nicht
hinzuzufügen, wenn Sie die Kommandos
make installkernel und
make installworld ausführen.Testen Sie den TFTP-Server und
vergewissern Sie sich, dass Sie den Bootloader
herunterladen können, der über PXE
bereitgestellt wird:&prompt.root; tftp localhost
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsBearbeiten Sie
${NFSROOTDIR}/etc/fstab und
erstellen Sie einen Eintrag, um das Root-Dateisystem
über NFS einzuhängen:# Device Mountpoint FSType Options Dump Pass$
myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0Ersetzen Sie
myhost.example.com durch den
Hostnamen oder die IP-Adresse des
NFS-Servers. In diesem Beispiel wird
das Root-Dateisystem schreibgeschützt eingehangen, um
ein potenzielles Löschen des Inhalts durch die
NFS-Clients zu verhindern.Setzen Sie das root-Passwort in der
PXE-Umgebung für Client-Maschinen, die
über PXE starten:&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; passwdFalls erforderlich, aktivieren Sie &man.ssh.1;
root-Logins für Client-Maschinen, die über
PXE starten, indem Sie die
Option PermitRootLogin in
${NFSROOTDIR}/etc/ssh/sshd_config
aktivieren. Dies ist in &man.sshd.config.5;
dokumentiert.Führen Sie alle weiteren Anpassungen der
PXE-Umgebung in
${NFSROOTDIR} durch,
wie zum Beispiel die Installation weiterer Pakete, oder
dass Bearbeiten der Passwortdatei mit &man.vipw.8;.Booten Sie von einem NFS-Root-Volume,
so erkennt /etc/rc dies und startet
daraufhin das /etc/rc.initdiskless
Skript. Lesen Sie die Kommentare in diesem Skript um zu
verstehen, was dort vor sich geht. Weil das
NFS-Root-Verzeichnis schreibgeschützt ist,
wir aber Schreibzugriff für /etc und
/var benötigen, müssen wir diese
Verzeichnisse über Speicher-Dateisysteme (memory backed file
system) einbinden.&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; mkdir -p conf/base
&prompt.root; tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc
&prompt.root; tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip varWenn das System bootet, werden Speicher-Dateisysteme
für /etc und
/var erstellt und eingehangen.
Anschließend wird der Inhalt der
cpio.gz-Dateien in diese Dateisysteme
kopiert. Standardmäßig haben diese Dateisysteme eine maximale
Kapazität von 5 Megabyte. Wenn die Archive nicht passen, was
für gewöhnlich bei /var der Fall ist,
erhöhen Sie die Kapazität indem Sie die Anzahl der benötigten
512 Byte Sektoren (5 Megabyte sind 10240 Sektoren) in
${NFSROOTDIR}/conf/base/etc/md_size und
${NFSROOTDIR}/conf/base/var/md_size für
die Dateisysteme /etc und
/var eintragen.Konfiguration des
DHCP-ServersDHCPplattenloser BetriebDer DHCP-Server muss nicht auf
derselben Maschine laufen wie der TFTP- und
NFS-Server, aber er muss über das Netzwerk
erreichbar sein.DHCP ist nicht Bestandteil des &os;
Basissystems, kann jedoch über den Port
net/isc-dhcp43-server oder als Paket
nachinstalliert werden.Einmal installiert, bearbeiten Sie die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf.
Konfigurieren Sie die next-server,
filename und root-path
Einstellungen, wie in diesem Beispiel zu sehen ist:subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.3;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option domain-name-servers 192.168.35.35, 192.168.35.36;
option domain-name "example.com";
# IP address of TFTP server
next-server 192.168.0.1;
# path of boot loader obtained via tftp
filename "FreeBSD/install/boot/pxeboot";
# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/";
}Die Anweisung next-server wird benutzt,
um die IP-Adresse des
TFTP-Servers anzugeben.Die Anweisung filename definiert den
Pfad zu /boot/pxeboot. Da hier der
relative Dateiname verwendet wird, bedeutet das, dass
/b/tftpboot nicht im Pfad enthalten
ist.Die Option root-path bestimmt den
Pfad zum NFS root-Dateisystem.Sobald die Änderungen gespeichert werden, aktivieren
Sie DHCP beim Systemstart, indem Sie die
folgende Zeile in /etc/rc.conf
hinzufügen:dhcpd_enable="YES"Starten Sie anschließend den
DHCP-Dienst:&prompt.root; service isc-dhcpd startFehlersuche bei PXE ProblemenSobald alle Dienste konfiguriert und gestartet wurden,
sollten PXE-Clients in der Lage sein, &os;
automatisch über das Netzwerk zu starten. Wenn ein
bestimmter Client beim hochfahren keine Verbindung herstellen
kann, sehen Sie im BIOS nach, ob die Option
für den Start über das Netzwerk konfiguriert ist.Dieser Abschnitt gibt einige Tipps zu Fehlerbehebung und
zeigt, wie Sie Konfigurationsprobleme eingrezen können für
den Fall, dass PXE-Clients nicht in der
Lage sind über das Netzwerk zu starten.Benutzen Sie den net/wireshark Port
um Fehler im Netzwerkverkehr während des Bootvorgangs von
PXE zu finden. Der Bootvorgang wird im
folgenden Diagramm schematisch dargestellt.PXE-Bootvorgang mit
NFS Root MountClient sendet eine
DHCPDISCOVER
Nachricht.Der DHCP-Server antwortet
mit einer IP-Adresse, sowie
den Werten für next-server,
filename und
root-path.Der Client sendet eine
TFTP-Anfrage an
next-server, mit der Bitte
filename zu empfangen.Der TFTP-Server antwortet
und sendet filename zum
Client.Der Client führt filename,
sprich &man.pxeboot.8; aus, was wiederum den
Kernel lädt. Wenn der Kernel ausgeführt wird,
wird das Root-Dateisystem, welches in
root-path spezifiziert ist,
über NFS eingebunden.Schauen Sie in /var/log/xferlog
auf dem TFTP-Server und vergewissern
Sie sich, dass die pxeboot-Datei von
der richtigen Adresse heruntergeladen wurde. Um die obige
Konfiguration von
/usr/local/etc/dhcpd.conf zu testen,
geben Sie folgendes ein:&prompt.root; tftp 192.168.0.1
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsWeitere Informationen finden Sie in &man.tftpd.8; und
&man.tftp.1;. Die BUGS-Sektionen dieser
Seiten dokumentieren einige Einschränkungen von
TFTP.Achten Sie darauf, dass Sie das Root-Dateisystem über
NFS einhängen können. Auch hier können
Sie Ihre Einstellungen aus
/usr/local/etc/dhcpd.conf wie folgt
testen:&prompt.root; mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mntIPv6AaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von BradDavisErweitert von IPv6 ist die neueste Version des
bekannten IP-Protokolls, das auch als
IPv4 bezeichnet wird.
IPv6 bietet gegenüber IPv4
mehrere Vorteile sowie viele neue Funktionen:IPv6 hat einen 128 Bit großen
Adressraum, der
340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
erlaubt. Dies behebt das Problem der immer knapper
werdenden IPv4-Adressen und einer
eventuellen Erschöpfung des
IPv4-Adressraums.Router speichern nur noch Netzwerk-Aggregationsadressen
in ihren Routingtabellen. Dadurch reduziert sich die
durchschnittliche Größe einer Routingtabelle auf
8192 Einträge. Dies ist mit den Problemen bei der
Skalierbarkeit von IPv4 verbunden, da
jeder zugeordnete Block von IPv4-Adressen
erfordert, dass Routing-Informationen zwischen vielen
Routern im Internet ausgetauscht werden müssen. Die
Routing-Tabellen wurden mit der Zeit so groß, dass ein
effizientes Routing jetzt kaum noch möglich ist.Die automatische Konfiguration von Adressen, die im
RFC2462 beschrieben wird.Verpflichtende Multicast-Adressen.Integriertes IPsec
(IP-Security).Eine vereinfachte Headerstruktur.Unterstützung für mobile
IP-Adressen.Die Umwandlung von IPv4- in
IPv6-Adressen.&os; enthält die IPv6-Referenzimplementation von KAME und erfüllt
damit bereits alle für die Nutzung von IPv6
nötigen Voraussetzungen. Dieser Abschnitt konzentriert sich
auf die Konfiguration und den Betrieb von
IPv6.Hintergrundinformationen zu
IPv6-AdressenEs gibt verschiedene Arten von
IPv6-Adressen:UnicastEin Paket, das an eine Unicast-Adresse gesendet
wird, kommt nur an der Schnittstelle an, die dieser
Adresse zugeordnet ist.AnycastAnycast-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.MulitcastMulticast-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.Die kanonische Form einer IPv6-Adresse
lautet x:x:x:x:x:x:x:x, wobei jedes
x für einen 16-Bit-Hexadezimalwert steht. 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 IPv4-Notation.
2002::10.0.0.1 ist also 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.Benutzen Sie &man.ifconfig.8;, um die
IPv6-Adresse eines &os;-Systems
anzuzeigen:&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.Einige IPv6-Adressen sind reserviert.
Eine Zusammenfassung dieser Adressen finden Sie in
:
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 sind die kompatiblen
IPv4-Adressen.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete
IPv4-Adresse.Die niedrigen 32 Bit sind
IPv4-Adressen für Hosts, die kein
IPv6 unterstützen.fe80::/1010 Bitlink-localEntspricht 196.254.0.0/16 bei
IPv4.fc00::/77 Bitunique-localDiese einzigartigen Adressen sind für die lokale
Kommunikation bestimmt und werden nur innerhalb von
abgegrenzten Standorten
(Sites)
weitergeleitet.ff00::8 BitMulticast2000::-3fff:: 3 BitGlobaler UnicastAlle globalen Unicast-Adressen stammen aus diesem
Pool. Die ersten 3 Bit lauten
001.
Weitere Informationen zum Aufbau von
IPv6-Adressen finden Sie im
RFC3513.IPv6 konfigurierenUm ein &os;-System als IPv6-Client zu
konfigurieren, fügen Sie folgende Zeile in
/etc/rc.conf ein:ifconfig_rl0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"Die erste Zeile ermöglicht der angegebenen Schnittstelle,
Router-Advertisement-Nachrichten zu empfangen. Die zweite
Zeile aktiviert den Router-Solicitation-Daemon
&man.rtsold.8;.Falls die Schnittstelle eine statisch zugewiesene
IPv6-Adresse benötigt, fügen Sie einen
Eintrag mit der statischen Adresse und dem zugehörigen
Präfix für das Subnetz hinzu:ifconfig_rl0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"Um einen Standardrouter festzulegen, fügen Sie die
Adresse hinzu:ipv6_defaultrouter="2001:db8:4672:6565::1"Verbindung zu einem Provider aufbauenUm sich mit anderen IPv6-Netzwerken
zu verbinden, benötigen Sie einen Provider oder einen
Tunnel, der IPv6 unterstützt:Fragen Sie einen Internetprovider, ob er
IPv6 anbietet.Hurricane
Electric bietet weltweit
IPv6-Tunnelverbindungen an.Die Verwendung des Ports
/usr/ports/net/freenet6 für
Einwahlverbindungen.Dieser Abschnitt beschreibt, wie Sie die Anweisungen
eines Tunnel-Providers dauerhaft in
/etc/rc.conf einrichten.Der erste Eintrag in /etc/rc.conf
erzeugt die generische Tunnelschnittstelle
gif0:cloned_interfaces="gif0"Als nächstes konfigurieren Sie die
IPv4-Adressen der lokalen und entfernten
Endpunkte. Ersetzen Sie
MY_IPv4_ADDR und
REMOTE_IPv4_ADDR durch die
tatsächlichen IPv4-Adressen:cloned_interfaces_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Um die zugewiesene IPv6-Adresse als
Endpunkt für den IPv6-Tunnel zu
verwenden, fügen Sie folgende Zeile für
&os; 9.x (und neuer)
ein:ifconfig_gif0_ipv6="inet6 MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Legen Sie dann die Standardroute für das andere Ende
des IPv6-Tunnels fest. Ersetzen Sie
MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR
mit der Adresse des Standard-Gateways des Providers:ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Wenn das &os;-System IPv6-Verkehr
zwischen dem Netzwerk und der Außenwelt routen muss,
aktivieren Sie das Gateway mit dieser Zeile: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; rl0 verwenden, ist
folgender Eintrag nötig:rtadvd_interfaces="rl0"Danach erzeugen Sie die Konfigurationsdatei
/etc/rtadvd.conf. Dazu ein
Beispiel:rl0:\
:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:Ersetzen Sie dabei fxp0 durch die zu
verwendende Schnittstelle, und
2001:db8:1f11:246:: durch das
entsprechend zugewiesene Präfix.Bei einem /64-Subnetz müssen keine
weiteren Anpassungen vorgenommen werden. Anderenfalls muss
prefixlen# auf den korrekten Wert
gesetzt werden.IPv6 und Abbildung von
IPv6-AdressenWenn IPv6 auf einem Server aktiviert
ist, kann es für die Kommunikation erforderlich sein,
IPv4-Adressen auf
IPv6-Adressen abzubilden. Diese
Kompatibilität erlaubt es, das
IPv4-Adressen als
IPv6-Adressen dargestellt werden. Die
Kommunikation von IPv6-Anwendungen mit
IPv4 und umgekehrt kann jedoch ein
Sicherheitsrisiko darstellen.Diese Option dient nur der Kompatibilität und wird in
den meisten Fällen nicht erforderlich sein. Die Option
ermöglicht es IPv6-Anwendungen zusammen
mit IPv4 in einer Dual-Stack-Umgebung
zu funktionieren. Dies ist besonders nützlich für
Anwendungen von Drittanbietern, die evtl. keine
IPv6-Umgebungen unterstützen. Um diese
Funktion zu aktivieren, fügen Sie folgendes in
/etc/rc.conf hinzu:ipv6_ip4mapping="YES"Für einige Administratoren können die Informationen im
RFC 3493 (Sektion 3.6 und 3.7) und
RFC 4038 (Sektion 4.2) hilfreich
sein.Common Address Redundancy Protocol
(CARP)TomRhodesBeigetragen von AllanJudeAktualisiert von CARPCommon Address Redundancy ProtocolDas Common Address Redundancy Protocol
(CARP) erlaubt es, mehreren Rechnern die
gleiche IP-Adresse und
Virtual Host ID
(VHID) zuzuweisen und
Hochverfügbarkeit bereitzustellen. Das
bedeutet, dass ein oder mehrere Rechner ausfallen können und die
anderen Rechner transparent einspringen, ohne dass die Benutzer
etwas von einem Ausfall mitbekommen.Neben der gemeinsamen IP-Adresse, haben
die jeweiligen Rechner auch eine eindeutige
IP-Adresse zur Verwaltung und Konfiguration.
Alle Maschinen, die sich eine IP-Adresse
teilen, verwenden die gleiche VHID. Die
VHID für jede einzelne
IP-Adresse muss, entsprechend der
Broadcast-Domäne der Netzwerkschnittstelle, eindeutig
sein.Hochverfügbarkeit mit CARP ist in &os;
enthalten, jedoch unterscheidet sich die Konfiguration von der
eingesetzten &os;-Version. Dieser Abschnitt enthält die
gleichen Konfigurationsdateien für verschiedene Versionen von
&os;.Dieses Beispiel konfiguriert eine Failover-Unterstützung mit
drei Servern (mit jeweils eigener, eindeutiger
IP-Adresse), die alle den gleichen
Web-Inhalt anbieten. Es werden zwei verschiedene Master namens
hosta.example.org und
hostb.example.org benutzt, mit einem
gemeinsamen Backup namens
hostc.example.org.Die Lastverteilung dieser Maschinen wird dabei über
Round Robin
DNS konfiguriert. Mit Ausnahme des
Hostnamens und der IP-Management-Adresse sind
Master- und Backup-Maschinen identisch konfiguriert. Die Server
müssen die gleiche Konfiguration und die gleichen Dienste
aktiviert haben. Tritt ein Failover auf, können Anfragen an den
Dienst mit der gemeinsam genutzten IP-Adresse
nur dann richtig beantwortet werden, wenn der Backup-Server
Zugriff auf denselben Inhalt hat. Die Backup-Maschine verfügt
über zwei zusätzliche CARP-Schnittstellen,
eine für jede IP-Adresse des
Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt
der Backup-Server die IP-Adresse des
ausgefallenen Master-Servers.CARP mit &os; 10 (und neuer)
benutzenUnterstützung für CARP erhalten Sie
durch das Laden des Kernelmoduls carp.ko
in /boot/loader.conf:carp_load="YES"So laden Sie das Modul ohne Neustart:&prompt.root; kldload carpBenutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
beschrieben, neu gebaut
werden:device carpHostname, IP-Management-Adresse,
Subnetzmaske, gemeinsame IP-Adresse und
VHID werden durch Einträge in
/etc/rc.conf gesetzt. Dieses Beispiel
ist für hosta.example.org:hostname="hosta.example.org"
ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 pass testpass alias 192.168.1.50/32"Die nächsten Einträge sind für
hostb.example.org. Da der Rechner
einen zweiten Master darstellt, verwendet er eine andere
gemeinsame IP-Adresse und
VHID. Die mittels
angegebenen Passwörter müssen jedoch identisch sein, da
CARP nur mit Systemen kommuniziert,
die über das richtige Passwort verfügen.hostname="hostb.example.org"
ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 2 pass testpass alias 192.168.1.51/32"Die dritte Maschine,
hostc.example.org ist so
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt. Diese Maschine ist mit
zwei CARP VHIDs
konfiguriert, eine für jede virtuelle
IP-Adresse der beiden Master-Server. Die
CARP advertising skew,
wird gesetzt, um sicherzustellen,
dass sich der Backup-Server später ankündigt wie der
Master-Server, da die Rangfolge
steuert für den Fall, dass mehrere Backup-Server zur Verfügung
stehen.hostname="hostc.example.org"
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32"
ifconfig_em0_alias1="inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32"Durch die beiden konfigurierten CARP
VHIDs ist
hostc.example.org in der Lage
festzustellen, wenn einer der Master-Server nicht mehr
reagiert. Wenn der Master-Server sich später ankündigt als
der Backup-Server, übernimmt der Backup-Server die gemeinsame
IP-Adresse, bis der Master-Server erneut
verfügbar ist.Auch wenn der ursprüngliche Master-Server wieder
verfügbar wird, gibt
hostc.example.org
die virtuelle IP-Adresse nicht
automatisch wieder frei. Dazu muss
Preemption aktiviert
werden. Preemption ist standardmäßig deaktiviert und
wird über die &man.sysctl.8;-Variable
net.inet.carp.preempt gesteuert.
Der Administrator kann den Backup-Server zwingen, die
IP-Adresse an den Master
zurückzugeben:&prompt.root; ifconfig em0 vhid 1 state backupSobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
Hochverfügbarkeit ist nun aktiviert.Die Funktionalität von CARP kann, wie
in der Manualpage &man.carp.4; beschrieben, über verschiedene
&man.sysctl.8; Parameter kontrolliert werden. Mit dem Einsatz
von &man.devd.8; können weitere Aktionen zu
CARP-Ereignissen ausgelöst werden.CARP mit &os; 9 (und älter)
benutzenDie Konfiguration für diese Versionen von &os; ist ähnlich
wie im vorhergehenden Abschnitt beschrieben, mit der Ausnahme,
dass zuerst ein CARP-Gerät in der
Konfiguration erstellt und bezeichnet werden muss.Unterstützung für CARP erhalten Sie
durch das Laden des Kernelmoduls carp.ko
in /boot/loader.conf:if_carp_load="YES"So laden Sie das Modul ohne Neustart:&prompt.root; kldload carpBenutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
beschrieben, neu gebaut
werden:device carpAls nächstes erstellen Sie auf jedem Rechner eine
CARP-Schnittstelle:&prompt.root; ifconfig carp0 createKonfigurieren Sie Hostnamen,
IP-Management-Adresse, die gemeinsam
genutzte IP-Adresse und die
VHID, indem Sie die erforderlichen Zeilen
in /etc/rc.conf hinzufügen. Da anstelle
eines Alias eine virtuelles CARP-Gerät
verwendet wird, wird die tatsächliche Subnetzmaske
/24 anstatt /32 benutzt.
Hier sind die Einträge für
hosta.example.org:hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass192.168.1.50/24"Beispiel für
hostb.example.org:hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass192.168.1.51/24"Die dritte Maschine,
hostc.example.org ist so
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt:hostname="hostc.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 testpass192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass192.168.1.51/24"Preemption ist im
GENERIC-Kernel deaktiviert. Haben Sie
jedoch Preemption in einem
angepassten Kernel aktiviert, dass
hostc.example.org die virtuelle
IP-Adresse nicht wieder an den
Master-Server zurückgibt. Der Administrator kann jedoch den
Backup-Server dazu zwingen, die übernommene
IP-Adresse wieder an den Master-Server
zurückzugeben:&prompt.root; ifconfig carp0 down && ifconfig carp0 upDieser Befehl muss auf dem
carp-Gerät ausgeführt werden, dass dem
betroffenen System zugeordnet ist.Sobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
Hochverfügbarkeit ist nun aktiviert.VLANsVLANsVirtuelle LANsVLANs sind eine Möglichkeit ein Netzwerk
virtuell in viele Subnetze zu unterteilen. Man spricht hier
auch von Segmentierung. Jedes Subnetz hat seine eigene
Broadcast-Domäne und ist von anderen VLANs
isoliert.Unter &os; müssen VLANs vom Treiber der
Netzwerkkarte unterstützt werden. &man.vlan.4; enthält eine
Liste von Treibern mit integrierter
VLAN-Unterstützung.Für die Konfiguration eines VLAN werden
zwei Informationen benötigt: die verwendete
Netzwerkschnittstelle und das
VLAN-Tag.Das folgende Kommando konfiguriert ein
VLAN mit der Netzwerkschnittstelle
em0 und dem VLAN-Tag
5:&prompt.root; ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24In diesem Beispiel fällt auf, dass der Name der
Schnittstelle den Treibernamen und das
VLAN-Tag enthält, getrennt durch
einen Punkt. Diese Methode hat sich bewährt, da sie die
Konfiguration von Systemen mit mehreren
VLANs deutlich erleichtert.Um VLANs beim Booten zu konfigurieren,
muss /etc/rc.conf angepasst werden. Für
das obige Beispiel müssten folgende Zeilen in die Konfiguration
aufgenommen werden:vlans_em0="5"
ifconfig_em0_5="inet 192.168.20.20/24"Das gleiche Schema kann benutzt werden, um weitere
VLANs hinzuzufügen.Es ist sinnvoll, einer Schnittstelle einen symbolischen
Namen zuzuweisen, so dass bei einem Wechsel der zugehörigen
Hardware nur wenige Konfigurationsvariablen aktualisiert werden
müssen. Nehmen wir beispielsweise an, dass Überwachungskameras
im VLAN1 auf em0 betrieben werden. Wenn
später die Karte em0 durch eine Karte ersetzt
wird, die den &man.ixgb.4; Treiber verwendet, müssen nicht alle
Referenzen auf em0.1 durch
ixgb0.1 ersetzt werden.Der folgende Befehl konfiguriert VLAN
5 auf der Netzwerkkarte
em0. Die Schnittstelle bekommt den Namen
cameras und eine IP-Adresse
192.168.20.20
mit einem 24-Bit
Präfix.&prompt.root; ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24Dieser Befehl konfiguriert die Schnittstelle mit dem
Namen video:&prompt.root; ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24Um die Änderungen beim Booten anzuwenden, fügen Sie
folgenden Zeilen in /etc/rc.conf
ein:vlans_video="camera"
create_args_camera="vlan 5"
ifconfig_camera="inet 192.168.20.20/24"
Index: head/de_DE.ISO8859-1/books/handbook/multimedia/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/multimedia/chapter.xml (revision 52938)
+++ head/de_DE.ISO8859-1/books/handbook/multimedia/chapter.xml (revision 52939)
@@ -1,1756 +1,1811 @@
MultimediaRossLippertÜberarbeitet von Übersicht&os; unterstützt viele unterschiedliche Soundkarten,
die Benutzern den Genuss von Highfidelity-Klängen auf dem
Computer ermöglichen. Dazu gehört unter anderem die
Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3
(MP3), Waveform Audio File
(WAV), Ogg Vorbis und vielen weiteren
Formaten aufzunehmen und wiederzugeben. Darüber hinaus enthält
die &os; Ports-Sammlung Anwendungen, die das Bearbeiten von
aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten
und die Kontrolle der angeschlossenen MIDI-Geräte
erlauben.&os; unterstützt auch die Wiedergabe von Videos und
DVDs.
Die &os; Ports-Sammlung enthält Anwendungen, um verschiedene
Video-Medien wiederzugeben, zu kodieren und zu
konvertieren.Dieses Kapitel beschreibt die Einrichtung von
Soundkarten, Video-Wiedergabe, TV-Tuner Karten und
Scannern unter &os;. Es werden auch einige Anwendungen
beschrieben, die für die Verwendung dieser Geräte zur Verfügung
stehen.Dieses Kapitel behandelt die folgenden Punkte:Konfiguration einer Soundkarte in &os;.Fehlersuche bei Sound Einstellungen.Wiedergabe und Kodierung von MP3s und
anderen Audio-Formaten.Vorbereitung des Systems für die Wiedergabe von
Videos.Wiedergabe von DVDs,
.mpg- und
.avi-Dateien.Rippen von CDs und
DVDs.Konfiguration von TV-Karten.Installation und Konfiguration von MythTV.
+
+
+ Konfiguration von Scannern
+
+
+
+ Konfiguration von Bluetooth-Kopfhörern
+ Bevor Sie dieses Kapitel lesen, sollten Sie:Wissen, wie Sie Anwendungen installieren
().Soundkarten einrichtenMosesMooreVon MarcFonvieilleAktualisiert von BenediktKöhlerÜbersetzt von UwePierauPCISoundkartenBevor Sie die Konfiguration beginnen, sollten Sie in
Erfahrung bringen welches Soundkartenmodell und welcher Chip
benutzt wird. &os; unterstützt eine Reihe Soundkarten. Die
Hardware-Notes
zählen alle unterstützten Karten und deren Treiber für
&os; auf.KernelKonfigurationUm die Soundkarte benutzen zu können, muss der richtige
Gerätetreiber geladen werden. Am einfachsten ist es, das
Kernelmodul für die Soundkarte mit &man.kldload.8; zu laden.
Dieses Beispiel lädt den Treiber für einen integrierten
Chipsatz, basierend auf der Intel Spezifikation:&prompt.root; kldload snd_hdaUm den Treiber automatisch beim Systemstart zu laden,
fügen Sie folgende Zeile in
/boot/loader.conf ein:snd_hda_load="YES"Weitere ladbare Soundmodule sind in
/boot/defaults/loader.conf aufgeführt.
Wenn Sie nicht sicher sind, welchen Gerätetreiber Sie laden
müssen, laden Sie das Modul
snd_driver:&prompt.root; kldload snd_driverDer Treiber snd_driver ist ein
Meta-Treiber, der alle gebräuchlichen Treiber lädt und die Suche
nach dem richtigen Treiber vereinfacht. Durch Hinzufügen des
Meta-Treibers in /boot/loader.conf können
alternativ alle Audio-Treiber geladen werden.Um zu ermitteln, welcher Treiber für die Soundkarte vom
Meta-Treiber snd_driver geladen wurde,
geben Sie cat /dev/sndstat ein.Soundkarten in der Kernelkonfiguration einrichtenDie Unterstützung für die Soundkarte kann auch direkt in
den Kernel kompiliert werden. Weitere Informationen über den
Bau eines Kernels finden Sie im .Bei der Verwendung eines eigenen Kernels müssen Sie
sicherstellen, dass der Treiber für das Audio-Framework in
der Kernelkonfigurationsdatei vorhanden ist:device soundAls Nächstes muss die Unterstützung für die Soundkarte
hinzugefügt werden. Um das Beispiel mit dem integrierten
Intel Audio-Chipsatz aus dem vorherigen Abschnitt
fortzusetzen, verwenden Sie die folgende Zeile in der
Kernelkonfigurationsdatei:device snd_hdaLesen Sie die Manualpage des Treibers, um den
entsprechenden Gerätenamen herauszufinden.Nicht PnP-fähige ISA-Soundkarten benötigen eventuell
Einstellungen, wie IRQ und I/O-Port in
/boot/device.hints. Während des
Systemstarts liest der &man.loader.8; diese Datei und reicht
die Einstellungen an den Kernel weiter. Für eine alte
Creative &soundblaster; 16 ISA-Karte, die sowohl den
&man.snd.sbc.4;- als auch den
snd_sb16-Treiber benötigt, müssen die
folgenden Zeilen in die Kernelkonfigurationsdatei eingetragen
werden:device snd_sbc
device snd_sb16Wenn die Karte den I/O-Port 0x220 und
IRQ 5 benutzt, müssen folgende Zeilen
zusätzlich in /boot/device.hints
hinzugefügt werden:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"Die Syntax für /boot/device.hints
wird in &man.sound.4;, sowie in der Manualpage des
jeweiligen Treibers beschrieben.Das Beispiel verwendet die vorgegebenen Werte.
Falls die Karteneinstellungen andere Werte vorgeben,
müssen die Werte in der Kernelkonfiguration angepasst
werden. Weitere Informationen zu dieser Soundkarte
finden Sie in &man.snd.sbc.4;.Die Soundkarte testenNachdem Sie den neuen Kernel gestartet oder das
erforderliche Modul geladen haben, sollte die
Soundkarte erkannt werden. Führen Sie
dmesg | grep pcm aus, um dies zu
überprüfen. Diese Ausgabe stammt von einem System mit
einem integrierten Conexant CX20590 Chipsatz:pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> at nid 31,25 and 35,27 on hdaa1Der Status der Karte kann auch mit diesem Kommando
geprüft werden:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> (play/rec) defaultDie Ausgabe kann für jede Soundkarte anders aussehen.
Wenn das Gerät pcm nicht erscheint,
prüfen Sie die Kernelkonfigurationsdatei und stellen Sie
sicher, dass der richtige Treiber geladen oder in den Kernel
kompiliert wurde. Im nächsten Abschnitt werden häufig
auftretende Probleme sowie deren Lösungen besprochen.Jetzt sollte die Soundkarte unter
&os; funktionieren. Wenn ein CD- oder
DVD-Laufwerk an die Soundkarte
angeschlossen ist, können Sie jetzt mit &man.cdcontrol.1; eine
CD abspielen:&prompt.user; cdcontrol -f /dev/acd0 play 1Audio CDs besitzen eine spezielle Kodierung. Daher
sollten sie nicht mit &man.mount.8; in das Dateisystem
eingehangen werden.Es gibt viele Anwendungen, wie
audio/workman, die
eine bessere Benutzerschnittstelle besitzen. Zur Wiedergabe
von MP3-Audiodateien kann audio/mpg123
installiert werden.Eine weitere schnelle Möglichkeit die Karte zu
prüfen, ist es, Daten an das Gerät
/dev/dsp zu senden:&prompt.user; cat Datei > /dev/dspFür
Datei kann
eine beliebige Datei verwendet werden. Wenn Sie einige
Geräusche hören, funktioniert die Soundkarte.Die Gerätedateien /dev/dsp*
werden automatisch erzeugt, wenn sie das erste Mal benötigt
werden. Werden sie nicht verwendet, sind sie hingegen nicht
vorhanden und tauchen daher auch nicht in der Ausgabe von
&man.ls.1; auf.
+
+
+
+ Konfiguration von Bluetooth-Soundgeräten
+
+
+ Bluetooth Audio
+
+
+ Die Verbindung zu einem Bluetooth-Gerät wird in diesem
+ Abschnitt nicht erläutert. Dazu finden Sie weitere
+ Informationen in .
+
+ Damit Bluetooth zusammen mit dem Soundsystem von &os;
+ funktioniert, müssen Benutzer zuerst
+ audio/virtual_oss installieren:
+
+ &prompt.root; pkg install virtual_oss
+
+ audio/virtual_oss setzt voraus, dass
+ cuse in den Kernel geladen wird:
+
+ &prompt.root; kldload cuse
+
+ Führen Sie folgenden Befehl aus, damit
+ cuse beim Systemstart automatisch geladen
+ wird:
+
+ &prompt.root; sysrc -f /boot/loader.conf cuse_load=yes
+
+ Um Kopfhörer mit audio/virtual_oss zu
+ benutzten, muss nach der Verbindung mit einem
+ Bluetooth-Audiogerät ein virtuelles Gerät erstellt
+ werden:
+
+ &prompt.root; virtual_oss -C 2 -c 2 -r 48000 -b 16 -s 768 -R /dev/null -P /dev/bluetooth/headphones -d dsp
+
+
+ headphones ist in diesem
+ Beispiel ein Hostname aus
+ /etc/bluetooth/hosts. Stattdessen
+ kann auch BT_ADDR
+ verwendet werden.
+
+
+ Weitere Informationen finden Sie
+ in &man.virtual_oss.8;.FehlerbehebungDevice NodeGerätedateiI/O portIRQDSP zeigt
typische Fehlermeldungen sowie deren Lösungen:
Typische FehlermeldungenFehlerLösungsb_dspwr(XX) timed
outDer I/O-Port ist nicht korrekt
angegeben.bad irq XXDer IRQ ist falsch angegeben. Stellen Sie
sicher, dass der angegebene IRQ mit dem Sound IRQ
übereinstimmt.xxx: gus pcm not attached, out of
memoryEs ist nicht genug Speicher verfügbar,
um das Gerät zu betreiben.xxx: can't
open /dev/dsp!Überprüfen Sie mit fstat | grep
dsp ob eine andere Anwendung das Gerät
geöffnet hat. Häufige Störenfriede sind
esound oder die
Sound-Unterstützung von
KDE.
Moderne Grafikkarten beinhalten oft auch ihre eigenen
Soundtreiber, um HDMI zu verwenden.
Diese Audiogeräte werden manchmal vor der eigentlichen,
separaten Soundkarte aufgeführt und dadurch nicht als das
Standardgerät zum Abspielen von Tönen benutzt. Um zu
prüfen, ob das der Fall ist, führen Sie
dmesg aus und suchen Sie nach der
Zeichenfolge pcm. Die Ausgabe sieht in
etwa so aus:...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
...In diesem Beispiel wurde die Grafikkarte
(NVidia) vor der Soundkarte
(Realtek ALC889) aufgeführt. Um die
Soundkarte als Standardabspielgerät einzusetzen, ändern Sie
hw.snd.default_unit auf die Einheit, welche
für das Abspielen benutzt werden soll:&prompt.root; sysctl hw.snd.default_unit=nHier repräsentiert n die Nummer
der Soundkarte, die verwendet werden soll, in diesem Beispiel
also 4. Sie können diese Änderung
dauerhaft machen, indem Sie die folgende Zeile in
/etc/sysctl.conf hinzufügen:hw.snd.default_unit=4Mehrere Tonquellen abspielenMunishChopraBeigetragen von Oft sollen mehrere Tonquellen gleichzeitig
abgespielt werden. &os; verwendet dazu
virtuelle Tonkanäle. Virtuelle Kanäle
mischen die Tonquellen im Kernel, sodass mehrere Kanäle
benutzt werden können, als von der Hardware unterstützt
werden.Drei &man.sysctl.8; Optionen stehen zur Konfiguration der
virtuellen Kanäle zur Verfügung:&prompt.root; sysctl dev.pcm.0.play.vchans=4
&prompt.root; sysctl dev.pcm.0.rec.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4Im Beispiel werden vier virtuelle Kanäle
eingerichtet, eine im Normalfall ausreichende Anzahl.
Sowohl dev.pcm.0.play.vchans=4 und
dev.pcm.0.rec.vchans=4 sind die Anzahl
der virtuellen Kanäle des Geräts pcm0,
die fürs Abspielen und Aufnehmen verwendet werden und sie
können konfiguriert werden, sobald das Gerät existiert. Da
das Modul pcm unabhängig von den
Hardware-Treibern geladen werden kann, gibt
hw.snd.maxautovchans die Anzahl der
virtuellen Kanäle an, die später eingerichtete Audiogeräte
erhalten. Lesen Sie &man.pcm.4; für weitere
Informationen.Die Anzahl der virtuellen Kanäle kann nicht geändert
werden, solange das Gerät genutzt wird. Schließen Sie daher
zuerst alle Programme wie Musikabspielprogramme oder
Sound-Daemonen, die auf dieses Gerät zugreifen.Die korrekte pcm-Gerätedatei
wird automatisch zugeteilt, wenn ein Programm das Gerät
/dev/dsp0 anfordert.Den Mixer einstellenJosefEl-RayesBeigetragen von Die Voreinstellungen des Mixers sind im Treiber
&man.pcm.4; fest kodiert. Es gibt zwar viele Anwendungen
und Dienste, die den Mixer einstellen können und die
eingestellten Werte bei jedem Start wieder setzen, am
einfachsten ist es allerdings, die Standardwerte für den Mixer
direkt im Treiber einzustellen. Der Mixer kann mit den
entsprechenden Werten in
/boot/device.hints eingestellt
werden:hint.pcm.0.vol="50"Die Zeile setzt die Lautstärke des Mixers
beim Laden des Moduls &man.pcm.4; auf den Wert
50.MP3-AudioChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von Dieser Abschnitt beschreibt einige unter &os; verfügbare
MP3-Player. Zudem wird beschrieben, wie
Audio-CDs gerippt und MP3s
kodiert und dekodiert werden.MP3-PlayerEin beliebter graphischer MP3-Player
ist Audacious, welcher
WinAmp-Skins und zusätzliche
Plugins unterstützt. Die Benutzerschnittstelle ist leicht zu
erlernen und enthält eine Playlist, einen graphischen
Equalizer und vieles mehr. Diejenigen, die bereits mit
WinAmp vertraut sind, werden
Audacious sehr leicht zu benutzen
finden. Unter &os; kann Audacious
als Port oder Paket multimedia/audacious
installiert werden. Audacious ist
ein Ableger von XMMS.Das Paket audio/mpg123 ist ein
alternativer, kommandozeilenorientierter
MP3-Player. Nach der Installation kann
die abzuspielende MP3-Datei auf der
Kommandozeile angegeben werden. Geben Sie auch das
entsprechende Soundkarte an, falls das System über mehrere
Audiogeräte verfügt:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3
version 1.18.1; written and copyright by Michael Hipp and others
free software (LGPL) without any warranty but with best wishes
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereoWeitere MP3-Player stehen in der &os;
Ports-Sammlung zur Verfügung.CD-Audio Tracks rippenBevor eine ganze CD oder einen
CD-Track in das
MP3-Format umgewandelt werden kann, müssen
die Audiodaten von der CD auf die
Festplatte gerippt werden. Dabei werden die
CDDA (CD Digital Audio) Rohdaten in
WAV-Dateien kopiert.Die Anwendung cdda2wav, die im
sysutils/cdrtools Paket enthalten
ist, kann zum Rippen der Audiodaten von CDs
genutzt werden.Wenn die Audio CD in dem Laufwerk
liegt, kann der folgende Befehl als root ausgeführt werden, um
eine ganze CD in einzelne
WAV-Dateien zu rippen:&prompt.root; cdda2wav -D 0,1,0 -BIn diesem Beispiel bezieht sich der Schalter auf das
SCSI-Gerät 0,1,0, das
die zu rippende CD enthält. Benutzen Sie
cdrecord -scanbus um die richtigen
Geräteparameter für das System zu bestimmen.Um einzelne Tracks zu rippen, benutzen Sie
wie folgt:&prompt.root; cdda2wav -D 0,1,0 -t 7Um mehrere Tracks zu rippen, zum Beispiel die Tracks
eins bis sieben, können Sie wie folgt einen Bereich
angeben:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Wenn Sie von einem ATAPI
(IDE) CD-ROM-Laufwerk
rippen, geben Sie den Gerätenamen anstelle der
SCSI-Gerätenummer an. Dieses Beispiel
rippt Track 7 von einem
IDE-Laufwerk:&prompt.root; cdda2wav -D /dev/acd0 -t 7Alternativ können mit dd ebenfalls
Audio-Stücke von ATAPI-Laufwerken kopiert
werden. Dies wird in erläutert.MP3-Dateien kodieren und dekodierenLame ist ein weitverbreiteter
MP3-Encoder, der als Port
audio/lame installiert werden kann. Wegen
Patentproblemen ist kein Paket verfügbar.Der folgende Befehl konvertiert die gerippte
WAV-Datei
audio01.wav
in audio01.mp3
um:&prompt.root; lame -h -b 128 --tt "Foo Liedtietel" --ta "FooBar Künstler" --tl "FooBar Album" \
--ty "2014" --tc "Gerippt und kodiert von Foo" --tg "Musikrichtung" audio01.wav audio01.mp3128 kbits ist die gewöhnliche
MP3-Bitrate, wohingegen die Bitraten 160
und 192 kbits eine höhere Qualität bieten. Je höher die
Bitrate ist, desto mehr Speicherplatz benötigt die
resultierende MP3-Datei. Die Option
verwendet den higher quality but a
little slower (höhere Qualität, aber etwas
langsamer) Modus. Die Schalter, die mit
beginnen, sind
ID3-Tags, die in der Regel Informationen
über das Lied enthalten und in die
MP3-Datei eingebettet sind. Weitere
Optionen können in der Manualpage von
lame nachgelesen werden.Um aus MP3-Dateien eine Audio
CD zu erstellen, müssen diese zuerst in ein
nicht komprimiertes Format umgewandelt werden. Verwenden Sie
XMMS um die Datei im
WAV-Format zu schreiben und
mpg123, um die
MP3-Datei in rohe
PCM-Audiodaten umzuwandeln.Um audio01.mp3 mit
mpg123 umzuwandeln, geben Sie den
Namen der PCM-Datei an:&prompt.root; mpg123 -s audio01.mp3 > audio01.pcmSo verwenden Sie XMMS um eine
MP3-Datei in das
WAV-Format zu konvertieren:Mit XMMS in das
WAV-Format konvertierenStarten Sie XMMS.Klicken Sie mit der rechten Maustaste, um das
XMMS-Menu zu öffnen.Wählen Sie Preferences im
Untermenü Options.Ändern Sie das Output-Plugin in
Disk Writer Plugin.Drücken Sie Configure.Geben Sie ein Verzeichnis ein, in das Sie die
unkomprimierte Datei schreiben wollen.Laden Sie die MP3-Datei wie gewohnt
in XMMS mit einer Lautstärke
von 100% und einem abgeschalteten EQ.Drücken Sie Play und es wird
so aussehen, als spiele XMMS
die MP3-Datei ab, aber keine Musik ist
zu hören. Der Player überspielt die
MP3-Datei in eine Datei.Vergessen Sie nicht, das Output-Plugin wieder in den
Ausgangszustand zurückzusetzen um wieder
MP3-Dateien anhören zu können.cdrecord kann mit beiden
Formaten Audio-CDs erstellen. Der
Dateikopf von WAV-Dateien erzeugt am Anfang
des Stücks ein Knacken. Der Dateikopf mit dem Port oder Paket
audio/sox entfernt werden:&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawLesen Sie , um mehr
Informationen zur Benutzung von CD-Brennern
mit &os; zu erhalten.Videos wiedergebenRossLippertBeigetragen von Bevor Sie beginnen, sollten Sie das Modell
und den benutzten Chip der Videokarte kennen. Obwohl
&xorg; viele Videokarten
unterstützt, können nicht alle Karten Videos
schnell genug wiedergeben. Eine Liste der Erweiterungen,
die der &xorg;-Server für eine
Videokarte unterstützt, erhalten Sie unter laufendem
&xorg; mit
xdpyinfo.Halten Sie eine kurze MPEG-Datei bereit, mit der
Sie Wiedergabeprogramme und deren Optionen testen können.
Da einige DVD-Spieler in der Voreinstellung
das DVD-Gerät mit
/dev/dvd ansprechen oder diesen Namen fest
einkodiert haben, ist es vielleicht hilfreich symbolische Links
auf die richtigen Geräte anzulegen:&prompt.root; ln -sf /dev/acd0 /dev/dvdAufgrund der Beschaffenheit &man.devfs.5; gehen gesondert
angelegte Links wie diese bei einem Neustart des Systems
verloren. Damit die symbolischen Links automatisch beim
Neustart des Systems angelegt werden, fügen Sie die folgende
Zeile in /etc/devfs.conf ein:link acd0 dvdDas Entschlüsseln von DVDs erfordert den
Aufruf bestimmter Funktionen, sowie Schreibzugriff auf das
DVD-Gerät.&xorg; benutzt Shared-Memory und
es wird empfohlen, die nachstehenden &man.sysctl.8;-Variablen
auf die gezeigten Werte zu erhöhen:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Video-SchnittstellenXVideoSDLDGAEs gibt einige Möglichkeiten, Videos unter
&xorg; abzuspielen. Welche
Möglichkeit funktioniert, hängt stark von der verwendeten
Hardware ab.Gebräuchliche Video-Schnittstellen sind:&xorg;: normale Ausgabe
über Shared-Memory.XVideo: Eine Erweiterung der
&xorg;-Schnittstelle,
die Videos in jedem X11-Drawable anzeigen kann. Diese
Erweiterung bietet auch auf leistungsschwachen Maschinen
eine gute Qualität der Wiedergabe. Der nächste Abschnitt
beschreibt, wie Sie feststellen, ob diese Erweiterung
ausgeführt wird.SDL: Simple DirectMedia
Layer ist eine portable Schnittstelle für verschiedene
Betriebssysteme, mit denen Anwendungen plattformunabhängig
und effizient Ton und Grafik benutzen können.
SDL bietet eine hardwarenahe
Schnittstelle, die manchmal schneller ist als die
&xorg;-Schnittstelle. Unter
&os; kann SDL über das Paket oder den
Port devel/sdl20 installiert
werden.DGA: Direct Graphics Access ist
eine &xorg;-Erweiterung die es
Anwendungen erlaubt, am
&xorg;-Server vorbei direkt in
den Framebuffer zu schreiben. Da die Anwendung und der
&xorg;-Server auf gemeinsame
Speicherbereiche zugreifen, müssen die Anwendungen unter
dem Benutzer root laufen. Die
DGA-Erweiterung kann mit &man.dga.1;
getestet werden. Wenn DGA ausgeführt
wird, ändert sich die Farbe des Bildschrims, wenn eine
Taste gedrückt wird. Drücken Sie zum Beenden
q.SVGAlib: Eine Schnittstelle zur Grafikausgabe auf
der Konsole.XVideoOb die Erweiterung läuft, entnehmen Sie der
Ausgabe von xvinfo:&prompt.user; xvinfoXVideo wird untertsützt, wenn die Ausgabe in etwa wie
folgt aussieht:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Einige der aufgeführten Formate, wie YUV2 oder YUV12
existieren in machen XVideo-Implementierungen nicht.
Dies kann zu Problemen mit einigen Spielern führen.XVideo wird wahrscheinlich von der Karte
nicht unterstützt, wenn die Ausgabe wie folgt
aussieht:X-Video Extension version 2.2
screen #0
no adaptors presentWenn die XVideo-Erweiterung auf der Karte nicht
läuft, wird es nur etwas schwieriger, die
Anforderungen für die Wiedergabe von Videos zu
erfüllen.Video-AnwendungenVideo-AnwendungenDieser Abschnitt behandelt Anwendungen aus der
&os;-Ports-Sammlung, die für die Wiedergabe von Videos
genutzt werden können.MPlayer und
MEncoderMPlayer ist ein auf
Geschwindigkeit und Flexibilität ausgelegter Video-Spieler
für die Kommandozeile mit optionaler graphischer Oberfläche.
Weitere graphische Oberflächen für
MPlayer stehen in der &os;
Ports-Sammlung zur Verfügung.MPlayerMPlayer kann als Paket oder
Port multimedia/mplayer installiert
werden. Der Bau von MPlayer
berücksichtigt die vorhandene Hardware und es können
zahlreiche Optionen ausgewählt werden. Aus diesen Gründen
ziehen es manche Benutzer vor, den Port zu übersetzen,
anstatt das Paket zu installieren.Die Optionen sollten beim Bau des Ports überprüft
werden, um dem Umfang der Unterstützung, mit dem der Port
gebaut wird, zu bestimmen. Wenn eine Option nicht
ausgewählt wird, ist MPlayer
nicht in der Lage, diese Art von Video-Format
wiederzugeben. Mit den Pfeiltasten und der Leertaste
können die erforderlichen Formate ausgewählt werden. Wenn
Sie fertig sind, drücken Sie Enter, um
den Bau und die Installation fortzusetzen.In der Voreinstellung wird das Paket oder der Port das
mplayer-Kommandozeilenprogramm und das
graphische Programm gmplayer bauen. Um
Videos zu dekodieren, installieren Sie den Port
multimedia/mencoder. Aus
lizenzrechtlichen Gründen steht ein Paket von
MEncoder nicht zur
Verfügung.MPlayer erstellt beim
ersten Start ~/.mplayer im
Heimatverzeichnis des Benutzers. Dieses Verzeichnis
enthält die voreingestellten Konfigurationseinstellungen
für den Benutzer.Dieser Abschnitt beschreibt nur ein paar wenige
Anwendungsmöglichkeiten. Eine vollständige Beschreibung
der zahlreichen Möglichkeiten finden Sie in der Manualpage
von mplayer(1).Um die Datei
testfile.avi
abzuspielen, geben Sie die Video-Schnittstelle mit
an:&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviEs lohnt sich, alle Option zu testen. Die erzielte
Geschwindigkeit hängt von vielen Faktoren ab und variiert
beträchtlich je nach eingesetzter Hardware.Wenn Sie eine DVD abspielen wollen,
ersetzen Sie
testfile.avi
durch
.
N ist die Nummer des
Stücks, das Sie abspielen wollen und
Gerät gibt
den Gerätenamen der DVD an. Das
nachstehende Kommando spielt das dritte Stück von
/dev/dvd:&prompt.root; mplayer -vo dga -dvd://3 /dev/dvdDas standardmäßig verwendete
DVD-Laufwerk kann beim Bau des
MPlayer-Ports mit der Option
WITH_DVD_DEVICE=/pfad/zum/gerät
festgelegt werden. Die Voreinstellung verwendet das
Gerät /dev/cd0. Weitere Details
finden Sie in Makefile.options des
Ports.Die Tastenkombinationen zum Abbrechen, Anhalten
und Weiterführen der Wiedergabe entnehmen Sie
der Ausgabe von mplayer -h oder der
mplayer(1) Manualpage.Weitere nützliche Optionen für die
Wiedergabe sind zur Wiedergabe
im Vollbild-Modus und
zur Steigerung der Geschwindigkeit.Jeder Benutzer kann häufig verwendete Optionen in
seine ~/.mplayer/config
eintragen:vo=xv
fs=yes
zoom=yesmplayer kann verwendet werden, um
DVD-Stücke in
.vob-Dateien zu rippen. Das zweite
Stück einer DVD wandeln Sie wie folgt
in eine Datei um:&prompt.root; mplayer -dumpstream -dumpfile out.vob -dvd://2 /dev/dvdDie Ausgabedatei out.vob
wird im MPEG-Format
abgespeichert.Jeder Benutzer, der mehr Informationen über Video
unter &unix; sammeln möchte, sollte
mplayerhq.hu/DOCS konsultieren, da es technisch
sehr informativ ist. Diese Dokumentation sollte ebenfalls
studiert werden, bevor Fehlerberichte eingereicht
werden.mencoderVor der Verwendung von mencoder
ist es hilfreich, sich mit den auf mplayerhq.hu/DOCS/HTML/en/mencoder.html
beschriebenen Optionen vertraut zu machen.
Es gibt unzählige Möglichkeiten die Qualität zu verbessern,
die Bitrate zu verringern und Formate zu konvertieren.
Einige davon haben erhebliche Auswirkungen auf die
Geschwindigkeit. Falsche Kombinationen von
Kommandozeilenparametern ergeben eventuell Dateien, die
selbst mplayer nicht mehr wiedergeben
kann.Hier ist ein Beispiel für eine einfache Kopie:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviWenn Sie in eine Datei rippen, benutzen Sie
die Option von
mplayer.Um
input.avi
nach MPEG4 mit MPEG3 für den Ton zu konvertieren, muss
zunächst der Port audio/lame
installiert werden. Aus lizenzrechtlichen Gründen ist ein
Paket nicht verfügbar. Wenn der Port installiert ist,
geben Sie ein:&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviDie Ausgabedatei lässt sich mit Anwendungen wie
mplayer oder
xine abspielen.input.avi kann durch
ersetzt und das
Kommando als root ausgeführt werden,
um ein DVD-Stück direkt zu
konvertieren. Da vielleicht ein paar Versuche nötig sind,
um das gewünschte Ergebnis zu erhalten, empfiehlt es sich
das Stück zuerst in eine Datei zu schreiben und
anschließend die Datei weiter zu bearbeiten.Der Video-Spieler
xinexine ist ein Video-Spieler
mit einer wiederverwendbaren Bibliothek und ein Programm,
das durch Plugins erweitert werden kann. Es kann als Paket
oder Port multimedia/xine installiert
werden.Für einen reibungslosen Betrieb benötigt
xine entweder eine schnelle
CPU mit einer schnellen Grafikkarte,
oder die XVideo-Erweiterung. Am schnellsten läuft
xine mit der
XVideo-Erweiterung.In der Voreinstellung startet
xine eine grafische
Benutzeroberfläche. Über die Menüs können dann
bestimmte Dateien geöffnet werden.Alternativ kann xine auch
über die Kommandozeile aufgerufen werden, um Dateien direkt
wiederzugeben:&prompt.user; xine -g -p mymovie.aviWeitere Informationen und Tipps zur Fehlerbehebung
finden Sie unter
xine-project.org/faq.Die
Transcode-WerkzeugeTranscode ist eine Sammlung
von Werkzeugen zur Umwandlung von Video- und Audio-Dateien.
Transcode mischt Video-Dateien
und kann kaputte Video-Dateien reparieren. Die Werkzeuge
werden als Filter verwendet, das heißt die Ein- und Ausgaben
verwenden stdin/stdout.Unter &os; kann Transcode als
Paket oder Port multimedia/transcode
installiert werden. Viele Benutzer bevorzugen es den Port
zu bauen, da er ein Menü bereitstellt, wo die entsprechenden
Formate für den Bau ausgewählt werden können. Mit den
Pfeiltasten und der Leertaste können die erforderlichen
Formate ausgewählt werden. Wenn Sie fertig sind, drücken
Sie Enter, um den Bau und die Installation
fortzusetzen.Dieses Beispiel zeigt, wie eine DivX-Datei in eine PAL
MPEG-1-Datei konvertiert wird:&prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpaDie daraus resultierende MPEG-Datei,
output_vcd.mpg,
kann beispielsweise mit MPlayer
abgespielt werden. Die Datei kann auch mit einem Programm
wie multimedia/vcdimager oder
sysutils/cdrdao als
Video-CD auf eine CD-R
gebrannt werden.Zusätzlich zu der Manualpage von
transcode, sollten Sie auch die
Informationen und Beispiele im
transcoding.org/cgi-bin/transcode lesen.TV-KartenJosefEl-RayesBeigetragen von MarcFonvieilleÜberarbeitet von TV-KartenMit TV-Karten können Sie mit dem Rechner über Kabel oder
Antenne fernsehen. Die meisten Karten besitzen einen
RCA- oder S-Video-Eingang. Einige Karten
haben auch einen FM-Radio-Empfänger.Der &man.bktr.4;-Treiber von &os; unterstützt PCI-TV-Karten
mit einem Brooktree Bt848/849/878/879 Chip. Dieser Teiber
unterstützt die meisten Pinnacle PCTV Karten. Die Karte sollte
einen der unterstützten Empfänger besitzen, die in &man.bktr.4;
aufgeführt sind.Den Treiber ladenUm die Karte benutzen zu können, muss der
&man.bktr.4;-Treiber geladen werden. Damit dies beim
Systemstart automatisch erfolgt, muss die folgende Zeile
in /boot/loader.conf hinzugefügt
werden:bktr_load="YES"Alternativ kann der Treiber für die TV-Karte
auch fest in den Kernel kompiliert werden. In diesem Fall
müssen folgende Zeilen in die Kernelkonfigurationsdatei
aufgenommen werden:device bktr
device iicbus
device iicbb
device smbusDie zusätzlichen Treiber werden benötigt,
da die Komponenten der Karte über einen I2C-Bus
verbunden sind. Bauen und installieren Sie dann den
neuen Kernel.Um den Treiber zu testen, muss das System neu gestartet
werden. Während des Neustarts sollte die TV-Karte erkannt
werden:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Abhängig von der verwendeten Hardware können die
Meldungen natürlich anders aussehen. Die entdeckten Geräte
lassen sich mit &man.sysctl.8; oder in der
Kernelkonfigurationsdatei überschreiben. Wenn Sie
beispielsweise einen Philips-SECAM-Empfänger erzwingen wollen,
fügen Sie die folgende Zeile zur Kernelkonfigurationsdatei
hinzu:options OVERRIDE_TUNER=6Alternativ können Sie &man.sysctl.8; benutzen:&prompt.root; sysctl hw.bt848.tuner=6Weitere Informationen zu den verschiedenen Kerneloptionen
und &man.sysctl.8;-Parametern finden Sie in
&man.bktr.4;.Nützliche AnwendungenUm die TV-Karte zu benutzen, installieren Sie eine
der nachstehenden Anwendungen:multimedia/fxtv
lässt das Fernsehprogramm in einem Fenster laufen
und kann Bilder, Audio und Video aufzeichnen.multimedia/xawtv
eine weitere TV-Anwendung mit vergleichbaren
Funktionen.Mit audio/xmradio
lässt sich der FM-Radio-Empfänger, der sich
auf TV-Karten befindet, benutzen.Weitere Anwendungen finden Sie in der &os;
Ports-Sammlung.FehlersucheWenn Sie Probleme mit der TV-Karte haben, prüfen
Sie zuerst, ob der Video-Capture-Chip und der Empfänger
vom &man.bktr.4;-Treiber unterstützt werden und ob Sie die
richtigen Optionen verwenden. Weitere Hilfe zu
unterstützten TV-Karten finden Sie auf der Mailingliste
&a.multimedia.name;.MythTVMythTV ist eine beliebte Open Source
PVR-Anwendung. Dieser Abschnitt beschreibt
die Installation und Konfiguration von MythTV unter &os;.
Weitere Informationen zur Benutzung von MythTV finden Sie unter
mythtv.org/wiki.MythTV benötigt ein Frontend und ein Backend. Diese
Komponenten können entweder auf dem gleichen System, oder auf
unterschiedlichen Maschinen installiert werden.Das Frontend kann unter &os; über den Port oder das Paket
multimedia/mythtv-frontend installiert
werden. Zudem muss &xorg;, wie in
beschrieben, installiert und konfiguriert sein. Idealerweise
besitzt das System auch eine Videokarte, die
X-Video Motion Compensation
(XvMC) unterstützt, sowie optional eine
LIRC-kompatible Fernbedienung.Benutzen Sie multimedia/mythtv, um sowohl
das Frontend als auch das Backend zu installieren. Ein &mysql;
Datenbank-Server ist ebenfalls erforderlich und sollte
automatisch als Abhängigkeit installiert werden. Optional
sollte das System einen Empfänger und ausreichend Speicherplatz
haben, um die aufgezeichneten Daten speichern zu können.HardwareMythTV verwendet V4L um auf
Videoeingabegeräte, wie Kodierer und Empfänger zuzugreifen.
Unter &os; funktioniert MythTV am besten mit
USB DVB-S/C/T Karten, die von
multimedia/webcamd unterstützt werden, da
dies eine V4L-Anwendung zur Verfügung
stellt, die als Benutzerprogramm läuft. Jede
DVB-Karte, die von
webcamd unterstützt wird, sollte
mit MythTV funktionieren, jedoch gibt es eine Liste von
Karten, die unter
wiki.freebsd.org/WebcamCompat abgerufen werden kann.
Es existieren auch Treiber für Hauppauge-Karten in den
folgenden Paketen: multimedia/pvr250 und
multimedia/pvrxxx, allerdings liefern diese
nur eine Treiberschnittstelle, die nicht dem Standard
entspricht und die nicht mit MythTV-Versionen grösser als
0.23 funktionieren. Aus lizenzrechtlichen Gründen ist ein
Paket nicht verfügbar, sodass die beiden Ports übersetzt
werden müssen.Die
wiki.freebsd.org/HTPC enthält eine Liste von allen
verfügbaren DVB-Treibern.MythTV Backend einrichtenGeben Sie folgendes ein, um MythTV als Binärpaket
zu installieren:&prompt.root; pkg install mythtvAlternativ können Sie den Port installieren:&prompt.root; cd /usr/ports/multimedia/mythtv
&prompt.root; make installRichten Sie anschließend die MythTV-Datenbank ein:&prompt.root; mysql -uroot -p < /usr/local/share/mythtv/database/mc.sqlKonfigurieren Sie dann das Backend:&prompt.root; mythtv-setupZum Schluss starten Sie das Backend:&prompt.root; sysrc mythbackend_enable=yes
&prompt.root; service mythbackend startScannerMarcFonvieilleBeigetragen von ScannerUnter &os; stellt SANE (Scanner
Access Now Easy) aus der Ports-Sammlung eine einheitliche
Schnittstelle (API) für den Zugriff auf
Scanner bereit. SANE wiederum greift
auf Scanner mithilfe einiger &os;-Treiber zu.&os; unterstützt sowohl SCSI- als auch
USB-Scanner. Abhängig von der Schnittstelle
des Scanners, werden unterschiedliche Treiber benötigt. Prüfen
Sie vor der Konfiguration mithilfe der
Liste der unterstützten Geräte ob der Scanner von
SANE unterstützt wird.Dieses Kapitel beschreibt, wie Sie feststellen können, ob
der Scanner von &os; erkannt wurde. Zudem enthält es einen
Überblick über die Konfiguration und Verwendung von
SANE unter &os;.Den Scanner überprüfenIm GENERIC-Kernel sind schon alle,
für einen USB-Scanner notwendigen Treiber
enthalten. Benutzer mit einem angepassten Kernel sollten
sicherstellen, dass die Kernelkonfiguration die nachstehenden
Zeilen enthält:device usb
device uhci
device ohci
device ehciUm zu überprüfen ob der Scanner erkannt wird, schließen
Sie den USB-Scanner an. Prüfen Sie dann mit &man.dmesg.8;,
ob der Scanner in den Systemmeldungen erscheint:ugen0.2: <EPSON> at usbus0In diesem Beispiel wurde ein
&epson.perfection; 1650 USB-Scanner an
/dev/ugen0.2 erkannt.Wenn der Scanner eine
SCSI-Schnittstelle besitzt, ist die
Kernelkonfiguration abhängig vom verwendeten
SCSI-Controller. Der
GENERIC-Kernel unterstützt die
gebräuchlichen SCSI-Controller. Den
richtigen Treiber finden Sie in
/usr/src/sys/conf/NOTES. Neben dem
SCSI-Treiber muss die Kernelkonfiguration
noch die nachstehenden Zeilen enthalten:device scbus
device passNachdem Sie einen Kernel gebaut und installiert haben,
sollte der Scanner beim Neustart in den Systemmeldungen
erscheinen:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersWenn der Scanner während des Systemstarts
ausgeschaltet war, können Sie die Geräteerkennung
erzwingen, indem Sie den SCSI-Bus erneut
absuchen. Verwenden Sie dazu
camcontrol:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulDer Scanner sollte jetzt in der
SCSI-Geräteliste erscheinen:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)Weitere Informationen über SCSI-Geräte
unter &os; finden Sie in &man.scsi.4; und
&man.camcontrol.8;.SANE konfigurierenSANE besteht aus zwei
Teilen, den Backends
(graphics/sane-backends)
und den Frontends
(graphics/sane-frontends oder
graphics/xsane).
Das Backend greift auf den Scanner zu. Lesen Sie
http://www.sane-project.org/sane-supported-devices.html
um herauszufinden, welches Backend welchen Scanner
unterstützt. Die Frontends sind die Anwendungen, mit denen
gescannt wird. graphics/sane-frontends
installiert xscanimage, während
graphics/xsanexsane installiert.Installieren Sie die beiden Komponenten als Paket:&prompt.root; pkg install xsane sane-frontendsAlternativ können Sie die Komponenten aus der
Ports-Sammlung installieren:&prompt.root; cd /usr/ports/graphics/sane-frontends
&prompt.root; make install clean
&prompt.root; cd /usr/ports/graphics/xsane
&prompt.root; make install cleanNachdem Sie den Port oder das Paket
graphics/sane-backends installiert haben,
können Sie mit dem Befehl sane-find-scanner
prüfen, ob SANE den Scanner
erkennt:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3Die Ausgabe zeigt die Schnittstelle und die verwendete
Gerätedatei des Scanners. Der Hersteller und das
Modell können in der Ausgabe fehlen.Bei einigen USB-Scannern muss die
Firmware geladen werden. Lesen Sie sane-find-scanner(1) und
sane(7) für weitere Details.Als nächstes müssen Sie prüfen, ob
der Scanner vom Frontend erkannt wird. Die
SANE-Backends werden
mit dem Kommandozeilenwerkzeug scanimage
geliefert. Mit diesem Werkzeug können Sie
sich Scanner anzeigen lassen und den Scan-Prozess
von der Kommandozeile starten. Die Option
zeigt die Scanner an. Das erste Beispiel
ist für einen SCSI-Scanner, das zweite ist
für einen USB-Scanner:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
&prompt.root; scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scannerDie Zeile
'epson2:libusb:/dev/usb:/dev/ugen0.2' im
zweiten Beispiel nennt das Backend (epson2)
und die Gerätedatei (/dev/ugen0.2), die der
Scanner verwendet.Wenn scanimage den Scanner nicht
erkennen kann, erscheint folgende Meldung:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Wenn das passiert, müssen Sie in der Konfigurationsdatei
des Backends unterhalb von
/usr/local/etc/sane.d/ den verwendeten
Scanner eintragen. Wenn der Scanner
&epson.perfection; 1650, der das Backend
epson2 benutzt, nicht erkannt wurde, muss
/usr/local/etc/sane.d/epson2.conf
angepasst werden. Fügen Sie eine Zeile mit der Schnittstelle
und dem Gerätenamen in die Datei ein. In diesem Beispiel
wurde die nachstehende Zeile eingefügt:usb /dev/ugen0.2Speichern Sie die Änderungen und prüfen Sie, ob der
Scanner mit dem richtigen Backend und Gerätenamen erkannt
wird:&prompt.root; scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scannerWenn scanimage -L den Scanner erkannt
hat, ist der Scanner eingerichtet und bereit, zu
scannen.Obwohl scanimage von der Kommandozeile
scannen kann, ist eine graphische Anwendung
zum Scannen besser geeignet. SANE
bietet ein einfaches und effizientes Werkzeug:
xscanimage.Alternativ ist xsane, das über
den Port oder das Paket graphics/xsane
installiert wird, eine weitere beliebte graphische Anwendung.
Dieses Frontend besitzt erweiterte Funktionen wie den
Scan-Modus, eine Farbkorrektur und Batch-Scans. Beide
Anwendungen lassen sich als
GIMP-Plugin verwenden.Berechtigungen für den ScannerWenn andere Benutzer den Scanner benutzen sollen,
müssen sie Lese- und Schreibrechte auf die
Gerätedatei des Scanners besitzen. Im vorherigen Beispiel
wird die Datei /dev/ugen0.2 verwendet,
die faktisch nur ein Symlink auf die echte Gerätedatei,
/dev/usb/0.2.0 genannt, darstellt.
Sowohl der Symlink als auch die Gerätedatei sind jeweils im
Besitz der Gruppen wheel und operator. Damit ein Benutzer
den Scanner benutzen kann, muss er Mitglied in einer der
beiden Gruppen sein. Allerdings sollte aus Sicherheitsgründen
genau überlegt werden, welche Benutzer zu welcher Gruppe
hinzugefügt werden, besonders bei der Gruppe wheel. Eine bessere
Lösung ist es, eine spezielle Gruppe für den Zugriff
anzulegen und den Scanner für Mitglieder dieser
Gruppe zugänglich zu machen.Dieses Beispiel erstellt eine Gruppe namens usb:&prompt.root; pw groupadd usbAnschließend muss der
/dev/ugen0.2-Symlink und der Gerätename
/dev/usb/0.2.0 für die Gruppe usb mit den Schreibrechten
0660 oder 0664
ausgestattet werden. All dies kann durch das Hinzufügen der
folgenden Zeilen in /etc/devfs.rules
erreicht werden:[system=5]
add path ugen0.2 mode 0660 group usb
add path usb/0.2.0 mode 0660 group usbJetzt müssen nur noch Benutzer zur Gruppe usb
hinzugefügt werden, um ihnen den Zugriff auf den Scanner zu
erlauben:&prompt.root;pw groupmod usb -m joeWeitere Details finden Sie in &man.pw.8;.