Mit verschiedenen Providern durch's Internet surfen

ArticleCategory: [Choose a category for your article]

System Administration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Guido Socher

en to de Guido Socher

AboutTheAuthor:[A small biography about the author]

Guido ist ein langjähriger Linuxfan. Er mag Linux nicht nur wegen seiner hohen technischen Qualität, sondern auch wegen der Leute und der Gemeinschaft, die hinter Linux steht. Meine Homepage findest Du hier.

Abstract:[Here you write a little summary]

Dieser Artikel erklärt, wie man eine Anzahl verschiedener Provider (im Englischen ISPs = Internet Service Providers) unter Linux benutzt und wie man ganz leicht zwischen ihnen wechseln kann.
Das Konzept, das hier vorgestellt wird, ist dabei nicht nur auf einen PC anwendbar, sondern auf ein ganzes Netzwerk. Zur gleichen Zeit kann die ganze Familie von verschiedenen Rechnern aus im Internet surfen. Um das zu erreichen, benutzen wir einen DNS proxy (DNS forwarding, DNS Weiterleitung) und IP masquerading unter Linux.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Einführung

Ein Internetzugang für Privatleute ist immer einfacher geworden. Die meisten Anbieter verlangen keine monatlichen Gebühren mehr oder Langzeitverträge. Wenn ein Anbieter schlechten Service bietet oder technische Probleme hat, dann nimmt man einfach den nächsten. In Deutschland geht das sogar noch einen Schritt weiter. Mit "Internet by Call" registriert man sich nicht und unterschreibt auch keinen Papierkram. Man zahlt einfach per Telefonrechnung. Beachte, daß "Internet by Call" nicht mit dem, im angelsächsischen verbreiteten, "Free Internet" gleichzusetzen ist. "Free Internet" ist im allgemeinen der Zustand eines Providers vor seinem Bankrott und meist mit schlechtem Service verbunden. Bei "Internet by Call" zahlt man manchmal recht viel, man kann dafür aber auch gute Bandbreite erhalten. Unabhängig davon, wie die Details in Deinem Land sind, wird dieser Artikel erklären, wie man schnell und einfach zwischen den Providern wechselt und verschiedene Provider zu verschiedenen Zeiten benutzen kann.

Die Art des Internetzugangs, die hier besprochen wird, ist eine point-to-point (PPP) Wählverbindung von Deinem PC zum Provider. Unter Linux ist ein Programm namens pppd für den Aufbau dieser Verbindung verantwortlich. pppd ist eine sehr gute und flexible Software. Leider befassen sich die Beispiele in der Dokumentation zu pppd eher mit veralteten oder ganz speziellen Fällen für die Autentifizierung und den Einlogvorgang. Wenn man diese Beispiele bei einem modernen ISP ausprobiert, wird das im allgemeinen versagen. Die meisten ISPs benutzen heutzutage:

Dieser Artikel erklärt, wie man diese modernen Features unter Linux benutzt. Alles, was man über seinen ISP wissen muß, ist: Telefonnummer, login-Name und Passwort.

Mit Linux und IP masquerading ist es außerdem sehr leicht, nicht nur einen Rechner, sondern ein ganzes Netzwerk von Computern über eine PPP-Verbindung mit dem Internet zu verbinden. Um das zu machen, braucht man mindestens einen Linuxrechner und eine beliebige Anzahl anderer Rechner. Es sieht etwa so aus:

[network
with IP masquerading]

Benutzt man solch eine IP masquerading Linux Gateway und verschiedene ISPs zu verschiedenen Zeiten, so hat man im allgemeinen 2 Probleme:

  1. Der DNS Server ändert sich jedes Mal, wenn man den ISP wechselt und man möchte natürlich nicht jedes Mal alle Computer neu konfigurieren. Speziell dann nicht, wenn man Windows oder Mac OS im Netz hat.
  2. Man hätte gerne eine vorkonfigurierte Liste von Providern, aus der sich jeder einen aussuchen kann. Das sollte natürlich für alle Betriebssysteme im Netz gleich gut funktionieren.
Wir werden Problem 1) lösen, indem wir einen DNS proxy namens dnrd einsetzen, und Problem 2), indem wir ein CGI-script benutzen, um eine Webseite (Bild einer solchen Seite) zu erzeugen, von wo aus man die PPP-Verbindung starten und stoppen kann.

 

pppd aufsetzen

Normalerweise befinden sich alle Konfigurationsdateien von pppd in /etc/ppp und im allgemeinen muß man pppd als root starten. Während der Installation und der ersten Tests sollte man als root eingeloggt sein. Später werde ich erklären, wie jeder Benutzer pppd starten und stoppen kann. Es ist nicht gut, wenn man immer als root eingeloggt ist, da man dann sehr wenige Restriktionen hat und seine Konfiguration durch einen Handhabungsfehler viel leichter zerstören kann.

Die wichtigen Dateien für pppd sind:

Du kannst dir diese Dateien als ppp.tar.gz herunterladen. Um sie zu benutzen, entpackt man sie direkt im Verzeichnis /etc. Das Unterverzeichnis ppp und alle anderen weiteren Verzeichnisse werden automatisch erzeugt. Falls es schon ein /etc/ppp Verzeichnis gibt, sollte man es umbenennen:
cd /etc
mv ppp ppp_old
tar zxvf ppp.tar.gz
Nach dem Auspacken wirst Du sehen, daß es noch weitere Dateien im ppp.tar.gz gibt. Das sind zusätzliche wrapper Scripte, die die Konfiguration vereinfachen. Ihr Zweck wird weiter unten erklärt. (Beachte: In den Dateien gibt es einige Preisangaben zu den verschiedenen Internet Providern. Diese könnten inzwischen veraltert sein. Besuch die Seite des betreffenden Anbieters, um genaue Informationen zu erhalten.)

Laß uns einen Blick auf die Konfigurationsdatei für einen Internet Provider namens Arcor werfen:
# This is /etc/ppp/peers/arcor
# Home page of the ISP arcor: http://www.arcor-online.de/
#----------
# serial device and modem speed (normally 38400 or 57600):
/dev/modem 57600
# modem dial-out script with phone number:
connect '/etc/ppp/scripts/ppp-on-dialer-pap 0192070'
# specific options, common options are
# read from /etc/ppp/options
noipdefault
# tell pppd to use this users name for PAP authentication:
user arcor
# try dynamic dns:
usepeerdns
#
Eine Zeile, die mit diesem Gartenzaun (#) anfängt, ist ein Kommentar. Der erste Parameter (/dev/modem) bezeichnet die serielle Schnittstelle, die benutzt werden soll. Dabei sollte /dev/modem ein Softlink auf die eigentliche Device Datei sein ((/dev/ttyS0 oder /dev/ttyS1):

cd /dev
ln -s ttyS0 modem
57600 ist die Geschwindigkeit des Modems und hängt von deiner Hardware ab. Die Zeile, die mit "connect" beginnt, bezeichnet ein Script (/etc/ppp/scripts/ppp-on-dialer-pap), das die Kommunikation mit deinem Modem übernimmt. Der Dialog mit dem Modem geht über sogenannte AT Befehle. Das sind einfache ASCII Befehle, die alle mit den Buchstaben AT anfangen. Der Parameter, der dem Script übergeben wird (0192070) ist die Telefonnummer, die gewählt werden soll.
noipdefault ist die Option, die für dynamische IP Adresszuweisung benötigt wird und usepeerdns wird für die automatische DNS Konfiguration gebraucht. Die automatische DNS Konfiguration funktioniert so, daß dein Provider ein oder zwei DNS Server Adressen während der PPP Aushandlungsphase schickt und diese später in den Umgebungsvariablen DNS1 und DNS2 an das /etc/ppp/ip-up Script übergeben werden.

Die Bibliotheken zur Auflösung von Namen (resolver libraries) lesen eine Datei, die sich /etc/resolv.conf nennt, um zu erfahren, wie diese Auflösung der Domainnamen geschehen soll. Diese Datei (/etc/resolv.conf) wird über die Bibliotheken dann von Applikationen wie netscape, sendmail u.s.w... benutzt, um den DNS Server zu finden. Wir werden hier einfach die nötigen Einträge für /etc/resolv.conf aus dem ip-up Script generieren. Das heißt, wir schreiben jedes Mal automatisch eine neue /etc/resolv.conf Datei, wenn ip-up (oder ip-down) ausgeführt werden.

Bis jetzt haben wir die Telefonnummer (0192070, im Falle von Arcor) die Modemgeschwindigkeit und die zu benutzende serielle Schnittstelle sowie einige andere Einstellungen für pppd vorgenommen. Wir werden hier nicht die restlichen Einstellungen aus /etc/ppp/options besprechen. Wer interessiert ist, kann sich die Einstellungen aus der Beispieldatei ansehen und dann in der man-Seite für pppd nachschlagen. Wir werden uns stattdessen gleich bei unserem Provider (arcor in unserem Beispiel) einwählen. Dafür brauchen wir zwei weitere Dinge:
login name: arcor
password: internet

Dies ist ein echtes Beispiel, das in Deutschland so funktionieren sollte. Diese Angaben müssen in /etc/ppp/pap-secrets eingetragen werden. Der Login Name geht außerdem noch in die /etc/ppp/peers/arcor Datei ein (siehe oben). Füge einfach in /etc/ppp/pap-secrets eine Zeile hinzu, die wie folgt aussieht:
# This is /etc/ppp/pap-secrets
# client server secret IP-addr
arcor   *   internet   0.0.0.0

Das war's. Nun können wir es testen. Um sich bei Arcor einzuwählen, tippt man einfach:

pppd call arcor
arcor ist dabei der Name der Konfigurationsdatei im Verzeichnis /etc/ppp/peers/
Das Modem sollte wählen und nach einigen Sekunden solltest du online sein. In dem Moment, wo man online ist, sollte das Kommando /sbin/ifconfig ein Interface namens ppp0 zeigen. Tipp einfach ein paar Mal /sbin/ifconfig bis sich der Eintrag zeigt. Nun kannst Du einen Webbrowser nehmen und zu linuxfocus.org surfen.

Um die Verbindung wieder zu beenden, benutzt man den Befehl:
killall pppd
Ich hoffe, daß dieses Beispiel bei Dir funktioniert hat. Es sollte definitiv genau so funktionieren für unsere Leser aus Deutschland. Für andere Provider und Länder muß man natürlich Telefonnummer, login und password anpassen. Falls es nicht funktioniert hat, dann wirf einen Blick auf den Abschnitt Fehleranalyse am Ende des Artikles.

Jetzt hast Du einen funktionierenden Provider. Um weitere hinzuzufügen, macht man folgendes:

  1. kopiere die Datei /etc/ppp/peers/arcor auf einen neuen Namen.
  2. ändere die Telefonnummer und den User Eintrag in dieser neuen Datei.
  3. füge eine neue Zeile zu /etc/ppp/pap-secrets hinzu
Die Datei einfach zu kopieren und dann einen Texteditor zu benutzen, ist viel schneller und einfacher als ein grafisches Konfigurationsprogram.

Nun weißt Du in etwa wie die grundlegenden Mechanismen funktionieren. Als nächstes benutzen wir ein paar Skripte, um die Handhabung einfacher zu machen. Speziell werden wir zwei Set-UID Perlskripte benutzen, die es möglich machen, die Internetverbindung auf- und abzubauen, auch wenn man als normaler Benutzer eingeloggt ist (nicht root).

Set-UID ist ein Mechanismus, der es erlaubt, ein Kommando so auszuführen, als wäre es von der Person ausgeführt worden, der die Datei gehört. Das Set-UID Programm muß natürlich mit Sorgfalt entwickelt werden, da sonst ein Sicherheitsloch entsteht. Die Set-UID Perlskripte sind schon in dem ppp.tar.gz Paket dabei gewesen, das du oben ausgepackt hast. Diese Perlskripte sollten ein "s" in den Dateizugriffsrechten haben und dem Benutzer root gehören:
> cd     /etc/ppp/scripts
> ls -al     ppp-on   ppp-off
-rwsr-sr-x 1 root root 1258 Jan 7 13:24 ppp-off
-rwsr-sr-x 1 root root 2619 Jan 9 20:30 ppp-on

Falls das "s" fehlt, kannst Du das als root mit dem Befehl
chmod 6755 ppp-off ppp-on
korrigieren.
Die ppp-off, ppp-on Skripte wickeln (wrapper) die anderen Befehle gewissermaßen ein. Sie bringen also keine neue Funktion, sondern führen die schon bekannten Befehle lediglich aus: Sie rufen pppd call some-config-file oder killall pppd auf. Der Vorteil ist, daß jetzt jeder Benutzer die Internetverbindung starten kann. Das ppp-on Skript hat außerdem noch einen speziellen Mechanismus zur Behandlung von Providern, die statische DNS Adressen benutzen. Falls das bei Deinen Providern der Fall sein sollte, dann suche einfach nach dem Wort "static" und ändere das enthaltene Beispiel ab. Man benutzt die ppp-on/ppp-off Befehle wie folgt:

Um online zu gehen:
/etc/ppp/scripts/ppp-on arcor
Um die Internetverbindung
zu beenden: 
/etc/ppp/scripts/ppp-off
Das sollte jetzt für jeden Benutzer auf deinem Computer funktionieren. arcor ist hier wieder der Name der Datei in /etc/ppp/peers/. Du könntest vielleicht einen anderen Namen gewählt haben.

Letztendlich wollen wir eine grafische Oberfläche benutzen, um die Internetverbindung zu starten und zu stoppen. Ein cgi-Programm ist ein Programm, das interaktive Webseiten erzeugen kann. Ein sauber geschriebenes cgi-Programm funktioniert mit jedem Browser und jedem Betriebssystem. Das ist der Grund, warum wir diese Lösung wählen. Es wird etwa so aussehen:

[pppcontrol]

Fast alle Linuxdistributionen enthalten heute einen schon vorkonfigurierten Apache Webserver. Alles, was man machen muß ist, die Datei pppcontrol.gz mit dem Befehl gunzip auszupacken, sie in das cgi Verzeichnis des Webservers zu kopieren (das ist vermutlich /home/httpd/cgi-bin/), sie mit dem Befehl
chmod 755 pppcontrol
ausführbar zu machen und dann mit einem Texteditor die Variable $url in der Datei zu ändern. $url muß dabei die http Adresse des Skripts selbst sein. Bei einem alleinstehenden PC ist das die loop-back IP Adresse:
$url="http://127.0.0.1/cgi-bin/pppcontrol";

Das pppcontrol cgi-Skript liest eine Konfigurationsdatei namens /etc/ppp/gpppwrap.conf. Die Syntax dieser Datei ist wie folgt:
ppponarg: <agument_to_pass_to_ppp_on> - some additional comment string
Das Minuszeichen (-) beginnt einen Kommentar, der auf der pppcontrol html-Seite angzeigt wird, aber dem /etc/ppp/scripts/ppp-on Program nicht übergeben wird.
Hier ist ein Beispiel für einen Fall, bei dem es die Dateien "arcor" und "talknet" im Verzeichnis /etc/ppp/peers gibt:

# This is /etc/ppp/gpppwrap.conf
ppponarg: arcor -- arcor.net 3pf/min
ppponarg: talknet -- internet by call 3.5pf/min
Beachte: Die Preise 3pf/min und 3.5pf/min könnten sich inzwischen geändert haben.

Das war möglicherweise eine ganze Menge neuer Informationen, aber wenn Du es einmal aufgesetzt hast, dann wirst Du lediglich von Zeit zu Zeit einen neuen Provider hinzufügen oder einen löschen.
Nun kannst du bequem einen Internetprovider aus der Liste auf der Webseite (pppcontrol) auswählen und ihn mit einem einzigen Tastendruck anwählen.

DNS proxy

Im vorangegangenen Kapitel haben wir gesehen, wie man alles für nur einen Linuxrechner konfiguriert. Die DNS Konfiguration erfolgte, indem wir einfach die Datei /etc/resolv.conf bei jedem Aufbau einer PPP Verbindung neu geschrieben haben.
Wenn man IP masquerading benutzt, um einen Internetzugang für ein ganzes Netzwerk zur Verfügung zu stellen, dann ist es recht schwierig, auf jedem Rechner im Netz die Datei /etc/resolv.conf jedes Mal zu änderen. Hat man zu dem noch irgendwo Windows laufen, dann wird es unmöglich, da man Windows jedes Mal neu booten muß.
Die Lösung ist ein DNS proxy. Das ist ein kleiner Server, der innerhalb des eigenen Netzes wie ein DNS Server aussieht, aber alle Anfragen einfach an den DNS Server des Providers weitergibt. Es ist möglich den Bind-DNS Server für diesen Zweck zu benutzen, aber Bind wurde dafür eigentlich nicht gebaut.
dnrd ist ein sehr guter DNS proxy, der speziell für unseren Zweck entwickelt wurde. Im Abschnitt Referenzen dieses Artikels finden sich die Links, wo man dnrd erhalten kann.
Für ein Netz, das wie folget aussieht
[network with IP
masquerading]
hat man dnrd einfach auf dem Linux PC laufen und man konfiguriert die interne IP-Adresse des Linux PCs (192.168.0.1) als DNS Server Adresse für alle anderen PCs im LAN. Das ist eine statische Einstellung und man braucht sie nie wieder zu ändern. Ganz einfach.

Um dnrd vom Quellcode zu installieren macht, man folgendes:

Das Paket auspacken:
tar zxvf dnrd-2.10.tar.gz
cd dnrd-2.10/src/
kompilieren:
make
strip dnrd
installieren:
cp dnrd /usr/local/sbin/
ein leeres Verzeichnis namens /etc/dnrd/ erzeugen :
mkdir /etc/dnrd/
Der DNS proxy dnrd wird wie folgt benutzt (in diesem Beispiel sind 195.50.149.33 und 195.50.140.6 die IP Adressen der DNS Server deines Providers):
sobald die ppp-Verbindung aktiv wird:
dnrd -s 195.50.149.33 -s 195.50.140.6
wenn die  Verbindung beendet wird:
dnrd
dnrd wird in unseren Fall einfach von den Skripten /etc/ppp/ip-up und /etc/ppp/ip-down aus gestartet und das geschieht alles automatisch. Die Skripte, die du oben heruntergeladen hast, sind schon dafür vorbereitet und sie erwarten dnrd im Verzeichnis /usr/local/sbin/.

dnrd kann viel mehr als nur das. Es kann sogar als eigener kleiner DNS Server arbeiten. Unter Unix kann man immer in /etc/host.conf die Zeile
order hosts, bind
schreiben und dann allen Rechnern im kleinen privaten Netzwerk in der Datei /etc/hosts einen Namen geben. Leider können das die dummen Windows Rechner nicht. Falls dnrd die Datei /etc/hosts findet, dann spielt er automatisch DNS Server für die Einträge in dieser Datei. Das löst das Problem!

Die Syntax der /etc/hosts Datei ist wie folgt:
# syntax:
# ip-addr hostname alias1 alias2 ...
# example:
192.168.0.1 linuxpc.mynet linuxpc
192.168.0.2 peppermint.mynet pepper mint
Wenn dnrd läuft, dann kann man von überallaus im Netz http://linuxpc.mynet/ oder http://linuxpc/ anstelle von http://192.168.0.1/ benutzen.

Um dnrd nicht nur als DNS proxy, sondern auch als DNS Server für Einträge in /etc/hosts zu benutzen, sollte man dnrd schon beim Booten starten. Dazu fügt man die Zeile

daemon /usr/local/sbin/dnrd
am Ende des Abschnittes start in dem boot Skript /etc/rc.d/init.d/network ein (die Syntax diese Eintrages ist für redhat, mandrake etc... Bei Deiner Distribution mag das anders sein).

Das ist alles. Nun kann jeder in deinem Netz parallel mit jedem anderen Benutzer im Netz surfen und es ist ganz einfach, die PPP Verbindung zu starten, zu beenden oder einen anderen Provider zu benutzen. Setze einfach ein Bookmark auf den Link zu pppcontrol in deinem Browser.

Verbesserungen

Diejenigen, die sich entschieden haben, den DNS proxy dnrd zu benutzen, können auch die Dateien /etc/ppp/ip-up und /etc/ppp/ip-down editieren, so daß /etc/resolv.conf nicht mehr modifiziert wird. Kommentiere einfach die Zeilen mit
echo .....> /etc/resolv.conf
oder
cat > /etc/resolv.conf << ENDOFCAT
...
ENDOFCAT

aus. Danach benutzt man die loop back Adresse als DNS Server Adresse (überprüfe mit /sbin/ifconfig, daß es auch ein lo Interface gibt):
# This is /etc/resolv.conf when dnrd is running
nameserver 127.0.0.1
Der Vorteil ist, daß man nun den internen Pufferspeicher von dnrd auf allen Rechnern im Netz und nicht nur für die Rechner innerhalb des Netzes benutzt.

Um zu testen, ob der DNS proxy funktioniert, kann man nslookup verwenden:
>nslookup
Default Server:  localhost
Address:  127.0.0.1

>pepper
Server:  localhost
Address:  127.0.0.1

Non-authoritative answer:
Name:    peppermint.mynet
Address:  192.168.0.2
nslookup wird durch Tippen von strg-d (crtl-d) beendet.  

Fehleranalyse

In diesem Abschnit werde ich erkären, wie man debug Ausgaben für pppd aktiviert. Das wird dir helfen, herauszufinden, was schief gelaufen ist, falls es mal nicht funktioniert. Leider habe ich oft festgestellt, daß es nicht mein Konfigurationsfehler war, sondern ein Problem auf der Seite des Porviders.

Das erste, was pppd in unserem Fall macht, ist die serielle Schnittstelle (/dev/modem, z.b ein Link auf /dev/ttyS0) zu öffnen, um das Skript /etc/ppp/scripts/ppp-on-dialer-pap laufen zu lassen. Dieses Skript wird dann AT Befehle an das Modem schicken. Diese Befehle veranlassen dein Modem dazu, deinen Provider anzurufen. Wenn irgendetwas dabei daneben geht, finden sich die Fehlermeldungen in der Datei /etc/ppp/connect-errors. Meistens wird die Datei connect-errors genügend Hinweise auf das geben, was schief gelaufen ist. Falls das nicht der Fall ist, kann man die AT Befehle manuell eintippen. Dazu braucht man ein Terminalprogramm, das mit der seriellen Schnittstelle reden kann. Hierzu sind minicom (fast bei jeder Linuxdistribution dabei) oder cu (normalerweise Teil eines Paketes namens uucp) oder kermit (kann von http://www.columbia.edu/kermit/ck70.html heruntergeladen werden) geeignet. Man benutzt dieses Terminalprogramm, um mit dem Modem zu "reden". Wenn man AT tippt, sollte das Modem "OK" antworten. Falls nicht, dann überprüfe die Einstellung der Geschwindigkeit, die Stromversorgung usw... Falls es mit OK geantwortet hat, dann kann man den Befehl ATDT1234 probieren. Das Modem sollte dann die Nummer 1234 anrufen. Falls nicht, ist das Handbuch des Modems zu befragen. Das Kommando könnte auch ATD1234 (ohne T) heißen oder irgendeine andere Einstellung ist falsch.

Nachdem das Modem den Provider angerufen hat, ist der nächste Schritt die PPP Verhandlungsphase. Um zu beobachten, was dort passiert, muß man die syslog facility daemon.debug in /etc/syslog.conf einschalten. Editiere die Datei /etc/syslog.conf und füge ";daemon.debug" zu der Zeile, die mit /var/log/messages endet, hinzu. Z.B so:

*.info;mail.none;authpriv.none;daemon.debug   /var/log/messages
Als nächstes startet man syslog mit folgedem Befehl neu:
/etc/rc.d/init.d/syslog restart
Nun kann man die Option "debug" in /etc/ppp/options eintragen (das ist schon geschehen für die Dateien, die du oben im Kapitel pppd aufsetzen heruntergeladen hast). Nun tippt man:
tail -f /var/log/messages
und beobachtet die Debugmitteillungen während sich pppd mit dem Rechner des Providers unterhält:

Ein erfolgereicher Aufbau der Verbindung sieht so aus:
Jan 14 17:18:11 bearix pppd[721]: pppd 2.3.10 started by root, uid 0
Jan 14 17:18:34 bearix pppd[721]: Serial connection established.
Jan 14 17:18:34 bearix pppd[721]: Using interface ppp0
Jan 14 17:18:34 bearix pppd[721]: Connect: ppp0 <--> /dev/modem
Jan 14 17:18:35 bearix pppd[721]: sent [LCP ConfReq id=0x1 ]
Jan 14 17:18:37 bearix pppd[721]: rcvd [LCP ConfReq id=0x46 ]
Jan 14 17:18:37 bearix pppd[721]: sent [LCP ConfNak id=0x46 ]
Jan 14 17:18:38 bearix pppd[721]: rcvd [LCP ConfReq id=0x47 ]
Jan 14 17:18:38 bearix pppd[721]: sent [LCP ConfAck id=0x47 ]
Jan 14 17:18:38 bearix pppd[721]: sent [LCP ConfReq id=0x1 ]
Jan 14 17:18:38 bearix pppd[721]: rcvd [LCP ConfAck id=0x1 ]
Jan 14 17:18:38 bearix pppd[721]: sent [PAP AuthReq id=0x1 user="arcor" password="internet"]
Jan 14 17:18:40 bearix pppd[721]: rcvd [LCP ConfReq id=0x49 ]
Jan 14 17:18:40 bearix pppd[721]: sent [LCP ConfReq id=0x2 ]
Jan 14 17:18:40 bearix pppd[721]: sent [LCP ConfAck id=0x49 ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [LCP ConfAck id=0x2 ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [CHAP Challenge id=0x5 <0c7672840494152025f937ac4f5e135e>, name = "klndiinternet"]
Jan 14 17:18:41 bearix pppd[721]: sent [CHAP Response id=0x5 , name = "arcor"]
Jan 14 17:18:41 bearix pppd[721]: rcvd [CHAP Success id=0x5 ""]
Jan 14 17:18:41 bearix pppd[721]: sent [IPCP ConfReq id=0x1 ]
Jan 14 17:18:41 bearix pppd[721]: sent [CCP ConfReq id=0x1 ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfReq id=0x8e ]
Jan 14 17:18:41 bearix pppd[721]: sent [IPCP ConfAck id=0x8e ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfRej id=0x1 ]
Jan 14 17:18:41 bearix pppd[721]: sent [IPCP ConfReq id=0x2 ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [LCP ProtRej id=0xfb 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfNak id=0x2 ]
Jan 14 17:18:41 bearix pppd[721]: sent [IPCP ConfReq id=0x3 ]
Jan 14 17:18:41 bearix pppd[721]: rcvd [IPCP ConfAck id=0x3 ]
Jan 14 17:18:41 bearix pppd[721]: local IP address 145.253.88.6
Jan 14 17:18:41 bearix pppd[721]: remote IP address 145.253.1.150
Jan 14 17:18:41 bearix pppd[721]: primary DNS address 145.253.2.11
Jan 14 17:18:41 bearix pppd[721]: secondary DNS address 145.253.2.75
Jan 14 17:18:41 bearix pppd[721]: Script /etc/ppp/ip-up started (pid 723)
Jan 14 17:18:42 bearix pppd[721]: Script /etc/ppp/ip-up finished (pid 723), status = 0x0
Um das ganz zu verstehen, sollte man vermutlich die Details des ppp Protokolles kennen. Ich habe auch keine Ahnung, wie diese Protokoll funktioniert, aber ich kann einige Dinge erraten und das ist genug. "sent ... ConfReq" bedeutet z.B., daß dein Rechner eine Konfigurationsanfrage (configuration request) schickt, um irgendetwas auszuhandeln. Die Antwort darauf ist ein "rcvd ... ConfAck" (receive configuration request acknowledge) oder rcvd ... ConfRej" (receive configuration request reject). Falls alles glatt gelaufen ist, sieht man am Ende die dynamisch zugewiesene IP Adresse (local IP address) und die IP Adresse des Gateway Rechners deines Providers (remote IP address).

Es ist unmöglich jeden Fehlerfall hier zu beschreiben, zum einen, weil ich nicht weiß, was für einen Rechner/Modem du hast und zum anderen, weil es einfach zu viele Möglichkeiten gibt. Mit etwas Kreativität und den Dingen, die du hier gelernt hast, solltest du jedoch in der Lage sein, die meisten Fehler zu finden. Falls du es einfach nicht zum Laufen bekommst und es nicht wie ein Fehler auf deiner Seite aussieht, dann kann es sehr gut ein Fehler beim Provider sein. Nimm einfach einen anderen.

 

Referenzen