Der folgende Abschnitt ist ausschließlich für FreeBSD 7.X relevant und gültig.
Im Folgenden wird ein Weg beschrieben, SLIP auf einer FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen einzurichten. Bei einer dynamischen Zuweisung des Hostnamens (das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert) wird die Einrichtung wahrscheinlich etwas komplexer aussehen.
Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa /dev/modem
, der auf den wirklichen
Gerätenamen /dev/cuadN
verweist. Damit ist es Ihnen
möglich, vom eigentlichen Gerätenamen zu abstrahieren,
sollten Sie das Modem einmal an eine andere Schnittstelle
anschließen müssen. Es kann ziemlich umständlich sein,
wenn Sie eine viele Dateien in /etc
und
.kermrc
-Dateien, die über das ganze System
verstreut sind, anpassen müssen!
/dev/cuau0
ist
COM1
, /dev/cuau1
ist COM2
, etc.
Stellen Sie sicher, dass Folgendes in Ihrer Kernelkonfigurationsdatei steht:
Dieses pseudo-device ist im GENERIC
Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.
Tragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei /etc/hosts
ein. Diese Datei sieht bei mir so aus:
Vergewissern Sie sich, dass in der Datei
/etc/host.conf
im Abschnitt
hosts:
files
vor
dns
steht. Ohne diese Reihenfolge
könnten lustige Dinge passieren.
Editieren Sie die Datei
/etc/rc.conf
.
Erstellen Sie die Datei
/etc/resolv.conf
, die Folgendes
enthält:
Wie Sie sehen, werden hiermit die Nameserver angegeben. Natürlich hängen die tatsächlichen Domainnamen und Adressen von Ihren Gegebenheiten ab.
Legen Sie ein Passwort für root
und
toor
(sowie für alle anderen Accounts
die kein Passwort haben) fest.
Starten Sie Ihren Rechner neu und überprüfen Sie, ob er mir dem richtigen Hostnamen startet.
Wählen Sie sich ein, geben Sie
slip
und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
hängt von Ihren Gegebenheiten ab. Wenn Sie
Kermit verwenden, können Sie
ein Skript ähnlich dem Folgenden verwenden:
Natürlich müssen Sie hier Ihren Benutzernamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
können Sie am Kermit-Prompt
einfach slip
eingeben, um sich zu
verbinden.
Es ist generell eine schlechte Idee, Ihr Passwort in einer unverschlüsselten Textdatei irgendwo im Dateisystem zu speichern. Tun Sie dies auf Ihr eigenes Risiko.
Belassen Sie Kermit so (Sie
können es mit
Ctrl+z unterbrechen) und geben Sie als
root
ein:
#
slattach -h -c -s 115200 /dev/modem
Wenn Sie mit ping
Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
-a
statt -c
als Argument
für slattach
zu verwenden.
Um slattach
zu beenden, geben Sie
Folgendes ein:
#
kill -INT `cat /var/run/slattach.modem.pid`
Beachten Sie, dass Sie
root
sein müssen, um dies
durchführen zu können. Kehren Sie zu kermit
zurück (mit Hilfe von fg
, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(q).
slattach(8) gibt an,
dass ifconfig sl0 down
verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint keinen Unterschied zu machen.
(ifconfig sl0
gibt dasselbe aus).
Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden. In diesem Fall starten Sie
kermit
einfach neu und beenden es wieder.
Beim zweiten Versuch geht es meist aus.
Wenn es nicht funktionieren sollte, können Sie an die Mailingliste freebsd-net schreiben. Über diese Dinge sind Benutzer bisher gestolpert:
Nicht -c
oder -a
in
slattach
verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).
Verwendung von s10
statt
sl0
(bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).
Probieren Sie ifconfig sl0
,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:
#
ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Wenn ping(8) die Fehlermeldung
no route to host ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando netstat -r
ansehen:
#
netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Die Zahlen im Beispiel stammen von einer recht ausgelasteten Maschine. Die Zahlen auf Ihrem System werden, je nach Netzaktivität, von den gezeigten abweichen.
Dieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu, konfigurieren, dass beim Login automatisch eine Verbindung für entfernte SLIP-Clients aufgebaut wird.
Dieser Abschnitt ist ausgesprochen technischer Natur, weshalb Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie mit dem TCP/IP Protokoll, insbesondere mit Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen, Routing und Routingprotokollen, wie RIP, vertraut sind. Die Konfiguration von SLIP-Diensten auf einem Einwählserver erfordert die Kenntnis dieser Konzepte. Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte Craig Hunt's TCP/IP Network Administration publiziert von O'Reilly & Associates, Inc. (ISBN Nummer 0-937175-82-X) oder die Bücher von Douglas Comer über das TCP/IP Protokoll.
Wir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
lesen Sie bitte Abschnitt 27.4, „Einwählverbindungen“, um Ihre
Einwahlverbindung zu konfigurieren. Hilfreich sind auch die
Manualpages sio(4) mit Informationen zum Gerätetreiber
der seriellen Schnittstelle ttys(5), sowie gettytab(5),
getty(8) und init(8) für Informationen zur
Konfiguration von Logins über ein Modem. stty(1) bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (etwa von clocal
für
direkt angeschlossene serielle Geräte).
Mit der normal verwendeten Konfiguration funktioniert der
FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer
speziellen SLIP-Login-ID ein, wobei
/usr/sbin/sliplogin
als Shell dieses
besonderen Accounts dient. Das Programm
sliplogin
durchsucht die Datei
/etc/sliphome/slip.hosts
nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript /etc/sliphome/slip.login
aus, um das SLIP-Interface zu konfigurieren.
Wenn beispielsweise die Kennung eines SLIP-Benutzers,
Shelmerg
wäre, könnte der Eintrag des
Benutzers Shelmerg
in der Datei
/etc/master.passwd
etwa so aussehen:
Wenn sich Shelmerg
anmeldet,
wird sliplogin
die Datei
/etc/sliphome/slip.hosts
nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
/etc/sliphome/slip.hosts
stehen:
sliplogin
wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
/etc/sliphome/slip.login
wie hier
dargestellt ausführen:
Wenn alles gut läuft, wird
/etc/sliphome/slip.login
ein
ifconfig
für das SLIP-Interface
durchführen, mit dem sich sliplogin
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an slip.login
übergeben wurde), um die lokale IP-Adresse
(dc-slip
), die entfernte IP-Adresse
(sl-helmer
), die Netzmaske
des SLIP-Interface (0xfffffc00
) und
alle zusätzlichen Optionen (autocomp
)
festzulegen. Wenn etwas schief laufen sollte, bietet,
sliplogin
normalerweise informative
Meldungen durch den syslogd-Daemon,
der die Meldungen standardmäßig nach
/var/log/messages
schreibt (sehen Sie
hierzu auch in den Manual-Seiten für syslogd(8)
und syslog.conf(5) nach). Überprüfen Sie
auch /etc/syslog.conf
,
um zu sehen, was syslogd
aufzeichnet und
wo es aufgezeichnet wird.
Der Standardkernel von FreeBSD (GENERIC
)
bietet bereits SLIP-Unterstützung (sl(4)). Falls
Sie einen angepassten Kernel verwenden, müssen Sie
sicherstellen, dass Ihre Kernelkonfigurationsdatei folgende
Zeile enthält:
In der Voreinstellung leitet Ihr FreeBSD-Rechner keine
Pakete weiter. Wenn Sie Ihren FreeBSD-SLIP-Server als
Router einsetzen möchten, müssen Sie die Datei
/etc/rc.conf
bearbeiten und den Wert
der Variable gateway_enable
auf
YES
setzen. Dadurch ist sichergestellt, dass
die Routingoptionen auch nach einem Neustart erhalten bleiben.
Um die Einstellungen sofort anzuwenden, führen Sie den
folgenden Befehl als root
-Benutzer aus:
#
/etc/rc.d/routing startWeitere Informationen zur Konfiguration Ihres Kernels, finden Sie in Kapitel 9, Konfiguration des FreeBSD-Kernels dieses Handbuches.
Wie bereits erwähnt, gibt es im Verzeichnis /etc/sliphome
drei Dateien, die Teil der
Konfiguration für /usr/sbin/sliplogin
sind (sliplogin
ist in sliplogin(8)
beschrieben): slip.hosts
,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
slip.login
, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
slip.logout
, womit die Auswirkungen von
slip.login
rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.
/etc/sliphome/slip.hosts
enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:
Login-Kennung des SLIP-Benutzers
Lokale Adresse (lokal für den SLIP-Server) der SLIP-Verbindung
Entfernte Adresse der SLIP-Verbindung
Netzwerkmaske
Die lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei /etc/hosts
oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt von den Einstellungen in
/etc/nsswitch.conf
ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in /etc/networks
aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
/etc/sliphome/slip.hosts
folgendermaßen aussehen:
Am Ende der Zeile stehen eine oder mehrere der folgenden Optionen.
normal
– keine
Header-Kompression
compress
– Header werden
komprimiert
autocomp
– Header werden
komprimiert, sofern die Gegenstelle es erlaubt
noicmp
– ICMP-Pakete werden
deaktiviert („ping“ Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)
Die Auswahl von lokalen und entfernten Adressen für Ihre SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz reservieren oder ob Sie „proxy ARP“ auf Ihrem SLIP-Server verwenden (es handelt sich nicht um „echtes“ proxy ARP, aber dieser Begriff wird in diesem Abschnitt verwendet, um diesen Sachverhalt zu beschreiben). Wenn Sie nicht sicher sind, welche Methode Sie wählen sollen oder wie IP-Adressen zugewiesen werden, lesen Sie bitte in den Büchern zum Thema TCP/IP nach, die als Voraussetzungen für SLIP (Abschnitt 28.7.2.1, „Voraussetzungen“) angegeben worden sind oder fragen Sie Ihren IP-Netzwerkadministrator.
Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen. Dann können Sie eine statische Route zu Ihrem SLIP-Subnetz über Ihren SLIP-Server auf Ihren nächsten IP-Router konfigurieren.
Wenn Sie aber andererseits die „proxy ARP“
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte /etc/sliphome/slip.login
/etc/sliphome/slip.logout
anpassen
müssen, damit diese arp(8) zur Verwaltung der
„proxy ARP“-Einträge in der ARP-Tabelle Ihres
SLIP-Servers verwenden.
Eine typische Datei
/etc/sliphome/slip.login
sieht
folgendermaßen aus:
Diese slip.login
Datei führt
lediglich ifconfig
für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.
Wenn Sie sich dafür entschieden haben, die
„proxy ARP“ Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei /etc/sliphome/slip.login
etwa folgendermaßen aussehen:
Die zusätzliche Zeile arp -s
$5 00:11:22:33:44:55 pub
in der Datei
slip.login
erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.
Wenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (00:11:22:33:44:55
) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
„proxy ARP“ sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von netstat -i
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:
Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems 00:02:c1:28:5f:4a
lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
netstat -i
ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von arp(8) verlangt wird.
Die Manual-Seite von arp(8) bietet hierzu eine
vollständige Übersicht.
Wenn Sie die Dateien
/etc/sliphome/slip.login
und
/etc/sliphome/slip.logout
erstellen,
müssen diese ausführbar gemacht werden
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout
),
da sliplogin
auf deren Ausführbarkeit
angewiesen ist.
Die Datei/etc/sliphome/slip.logout
ist
nicht zwingend erforderlich (außer Sie verwenden „proxy
ARP“), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
slip.logout
Skript:
Wenn Sie „proxy ARP“ einsetzen, muss
/etc/sliphome/slip.logout
den
ARP-Eintrag für den SLIP-Client löschen:
arp -d $5
löscht den ARP-Eintrag,
den die „proxy ARP“ slip.login
hinzufügte, als der SLIP-Client sich eingeloggt hatte.
Es soll nochmals darauf hingewiesen werden, dass für die
Datei /etc/sliphome/slip.logout
das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. chmod 755
/etc/sliphome/slip.logout
).
Wenn Sie nicht die „proxy ARP“ Methode benutzen, um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie wahrscheinlich statische Routen zu Ihrem nächsten Standardrouter hinzufügen müssen, um Pakete aus dem Subnetz Ihres SLIP-Clients über Ihren SLIP-Server weiterzuleiten.
Das Hinzufügen von statischen Routen zu Ihrem nächsten Standardrouter kann problematisch sein (oder unmöglich, wenn Sie nicht die erforderliche Berechtigung haben...). Wenn Sie in Ihrer Organisation ein Netzwerk mit mehreren Routern haben, müssen einige Router, wie etwa die von Cisco und Proteon hergestellten, nicht nur mit der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern es muss ihnen auch mitgeteilt werden, über welche statischen Routen sie andere Router informieren sollen. Daher ist einiges an Fachwissen und Problemlösungskompetenz erforderlich, um auf statischen Routen basierendes Routing erfolgreich einzurichten.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.