Kabelloses Internet mit Linux

Mobiles Internet ist nicht länger ein "Buzzword" sondern mittlerweile Realität. UMTS heißt das Zauberwort. Internet - schneller als ISDN, jedoch langsamer als DSL - dafür jedoch ohne Kabel und zum "mitnehmen". Doch wie bringt man Linux das schnelle Mobilinternet bei? Wie schafft man es alles so zu konfigurieren, dass die Handhabung möglichst bequem ist?

Bei der Planung meines Umzuges musste ich recht schnell feststellen, dass die T-Com nicht in der Lage ist mich an meinem neuen Wohnort mit DSL zu versorgen. Schnell musste daher eine andere Lösung her. Zu meinem Glück wurde gerade zu diesem Zeitpunkt im Fernsehen von Vodafone das sogenannte "Zuhause"-Paket beworben. Dieses besteht zum einen aus einem Mobiltelefon mit Festnetzrufnummer und/oder einer sogenannten "Mobile Connect Card" (MCC), die per UMTS eine Verbindung ins Internet aufbauen kann und bei mangelndem UMTS auf GPRS ausweicht, welches eine wesentlich höhere Ausbaustufe aufweist, jedoch auch um einiges langsamer ist.

Zwar ist ein Volumen von 5.000 MB für 29.95 Euro relativ teuer, wenn man es mit DSL-Flatrates vergleicht, doch wesentlich günstiger als eine eigene sDSL-Standleitung (die einzige Breitbandige Alternative, wenn aDSL nicht verfügbar ist) und mit einem Volumenbasierten Tarif wesentlich besser kalkulierbar als eine minutenbasierte ISDN-Verbindung (außer im lokalen Bereich hat scheinbar kein Anbieter mehr einen Volumenbasierten ISDN-Tarif). Desweiteren sehe ich die Satellitenvarianten nicht als wirkliche Alternative an.

Ein kurzer Test mit dem Handy in der neuen Wohnung ergab, dass ich dort UMTS Empfang habe. Grundsätzlich jedoch würde es mir auch nichts ausmachen ausschließlich mit GPRS im Internet "unterwegs zu sein", da ich mit dem volumenbasierten Tarif auch bei langsameren Verbindungen nicht mehr zahlen würde.

Da die von Vodafone eingesetzte Mobile Connect Card eine PCMCIA-Karte ist musste ich zunächst einmal meinem Server beibringen diese "schlucken zu können". Nachdem ich einige Suchmaschinen befragt hatte, kam ich zu dem Ergebnis, dass ich es mit einer P111 von Elan Digital Systems versuchen würde. Sie wird von der Firma als Linuxkompatibel beworben und erhielt auch in einschlägigen Foren recht gute Bewertungen, die ich bisher auch nur bestätigen kann.

Bei Vodafone war es eine Sache von wenigen Minuten. Ich bestellte und bekam meine Mobile Connect Card (und auch mein "Zuhause"-Telefon, da ich nun komplett wechseln wollte). Dazu eine Menge Papierkram, und jede Menge SIM-Karten :-) Der Vodafone Verkäufer machte mich darauf aufmerksam, dass die Aktivierung ca. 2 Tage dauern könnte, doch das machte mir nichts, da ich eh alles auf meinen neuen Wohnort angemeldet hatte.

Dennoch konnte ich es nicht lassen "Zuhause" in meinem alten zuhause mal kurz anzutesten. Nachdem ich die SIM-Karten sortiert und beschriftet hatte (mittlerweile habe ich ja nun 3 Stück mit unterschiedlichen Tarifen) verbaute ich zunächst die P111. Hierfür ist lediglich der sogenannte "yenta"-Treiber im Kernel erforderlich. Dieser ist in der Regel in den meisten Distributionen von Haus aus integriert und erkennt die Karte von daher sofort ohne Probleme. Nun folgte Level 2. Nach dem einlegen der SIM Karte in die Mobile Connect Card (hierbei handelt es sich Hardwaremäßig übrigens um eine "Novatel Merlin U630", die nun ein hübsches "Vodafone-Kleidchen" besitzt) und dem einlegen der MCC in die P111 findet der Kernel auch umgehend eine neue serielle Schnittstelle (Tut er es nicht fehlt vermutlich der Treiber serial_cs).

Ein Zugriff mit minicom auf die serielle Schnittstelle zeigt, dass es sich um ein AT-Modem handelt. ATI gibt folgende Informationen zurück:

Manufacturer: Novatel Wireless Incorporated
Model: Merlin U630 (HW REV [0:55])
Revision: 12.0-12.0  [2005-02-09 17:22:37]
IMEI: 12345xxxxxxxxxx
+GCAP: +CGSM,+ES

Grundsätzlich sollte es also Problemlos möglich sein diese Karte mittels eines geeigneten Chat-Skriptes mit dem pppd zu betreiben. Doch zunächst benötigen wir ein passendes peer-Skript:

#################################################
# /etc/ppp/peers/umts
#################################################
lock
# Mit diesem Skript werden wir die Merlin U630 steuern
connect "/usr/sbin/chat -V -f /etc/ppp/umts.chat"
defaultroute
/dev/tts/2 # korrekte serielle Schnittstelle angeben
460800
crtscts
modem
usepeerdns
novj
noauth
# idle gibt an, nach wieviel Sekunden inaktivität
# Das Modem auflegt
idle 300
# persist und demand sind wichtig, damit der pppd
# auf Netzwerkanfragen wartet, und eine UMTS
# Verbindung automatisch aufbaut, wenn dies nötig ist
persist
demand
noipdefault
#################################################

Soweit so gut. Das sieht alles noch nach einer normalen Modemkonfiguration mit Dial on Demand aus. Jetzt wird es jedoch etwas kniffeliger, da der AT-Standard für GPRS, bzw. UMTS erweitert wurde. Desweiteren kommen einige Befehle zum Einsatz, welche nur für die Novatel Merlin U630 gelten. Daher kann es sein, dass sie mit anderen Karten nicht funktionieren. Das alles packen wir in das Chat-Skript:

#################################################
# /etc/ppp/umts.chat
#################################################
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
# Der nächste Befehl ist kein Standardbefehl, aber
# sehr wichtig. Wir fragen mit AT+CPIN? ob bereits
# die SIM-PIN eingegeben wurde. Wenn wir kein READY
# bekommen übergeben wir die PIN und schauen danach
# erneut ob es geklappt hat (ACHTUNG! WIE BEIM HANDY
# GILT AUCH HIER 3 MAL FALSCHE PIN == GESPERRTE SIM!)
# Ersetze xxxx durch Deine PIN.
"" "AT+CPIN?" READY-AT+CPIN=\042xxxx\042- "\c" OK "\c"
"" "AT+CPIN?" READY "\c" OK "\c"
TIMEOUT 120
"" "AT&F"
OK "ATZ"
OK "ATE0V1&D2&C1S0=0+IFC=2,2"
OK "ATE1"
# Hiermit teilen wir der Karte mit, welchen APN
# sie verwenden soll
OK "AT+CGDCONT=1,\042IP\042,\042web.vodafone.de\042"
# Diese etwas ungewöhnliche Nummer teilt dem Modem
# mit, dass es den APN anwählen soll.
OK "ATDT*99***1#"
CONNECT c
#################################################

Anderer Provider als Vodafone: Bei anderen Providern sind in der Regel andere APNs, Einwahlnummern und teilweise auch Benutzername und Kennwort für den Internetzugang nötig. Informationen darüber finden sich im Handykult-Forum. Der APN "web.vodafone.de" muss ersetzt werden. Die Rufnummer hinter dem Befehl "ATDT" muss angepasst werden und eine eventuell vorhandene Benutzername/Passwort-Kombination muss in der PAP Authentifizierungsdatei hinterlegt werden. (Vielen Dank an Peter für diese Infos).

Grundsätzlich haben wir nun alles beisammen, um Linux mit dem pppd per UMTS ins Internet zu bringen. Ich denke es versteht sich von selbst, dass man den Zugriff auf das Chat-Skript beschränken sollte, damit nicht jeder auf die PIN zugreifen kann. Dennoch ist es generell ein Sicherheitsrisiko die PIN auf dem Dateisystem liegen zu haben.

Doch nun geht es weiter und wir starten ins Internet. Man kann zum einen die Verbindung manuell mit

pon umts
die Verbindung starten. Mit
poff
beendet man Sie wieder. Dennoch macht es Sinn um das dial on demand zu nutzen den pppd direkt beim starten des Systems zu aktivieren:
pppd call umts

Damit bleibt der pppd im Hintergrund aktiv und startet eine Verbindung, sobald er Verkehr auf dem Netzwerkinterface bemerkt. Es dauert wenige Sekunden, bis man merkt, dass die Verbindung steht und sich etwas tut, aber danach geht es recht zügig. Nach der in der /etc/ppp/peers/umts angegebenen "idle"-Zeit beendet der pppd die Verbindung. Das ppp-Interface bleibt jedoch aktiv und wartet auf den nächsten Netzwerkverkehr.