Wie stelle ich eine (dauerhafte) IP-Verbindung zwischen einem Nokia 3650 und einem Linux-PC her!?!

Änderungen:
25.06.2003 Punkt 6. Anwendungen über TCP/IP hinzugefügt
16.06.2003 Veröffentlichung dieser Anleitung

0. Generelle Überlegungen

Von Nokia gibt es (derzeit) keine Software, die es ermöglicht Daten zwischen den Mobilfunktelefon 3650 und Linux abzugleichen.
Damit bereits vorhandene Progamme (z.B. ftpd, nfsd...) auf das 3650 oder auch andere Series 60 (Symbian) Telefone portiert werden können, ist eine TCP/IP Verbindung allerdings zwingend erforderlich.
Der Aufbau einer ppp-Verbindung mit Linux als client über das DUN-Profile funktioniert zwar ohne Probleme, jedoch lässt sich dann nur eine Internetverbing über das Telefon herstellen. Versucht man dies über das SP-Profile, beendet das 3650 die Verbindung sofort. Soweit so gut (oder eher nicht gut). Nach dem Verbindungsaufbau über SPP und deren Beendigung öffnet das Nokia eigenständig eine ppp-Verbingung zum aufrufenden Rechner. Wird diese angenommen, versucht das Nokia den DNS-Namen "wsockhost.mrouter" aufzulösen. Kommt keine Antwort vom DNS-Server, beendet sich die Verbindung nach ca. 30 sec. ebenfalls. Hat bis hierhin alles funktioniert und der Rechner wsockhost.mrouter ist auch erreichbar, bleibt die Verbindung stehen..... geschafft!!!

1. Vorraussetzungen

  • Funktionierende Bluetoothunterstützung in der verwendeten Linuxinstallation.
    Ich benutze derzeit:
    - Kernel 2.4.19
    - bluez (libs, utils, sdp, pan)
    - USB-Bluetooth-Adapter von EPoX
  • pppd / dund für die ppp-Anfrage des Nokias.
  • DNS-Server (bind) um den DNS-Namen "wsockhost.mrouter" aufzulösen.

2. Auf der Linuxseite...

Wenn das Linux-Bluetooth-System arbeitet und das 3650 erkannt wurde, kann es mit folgenden Punkten weitergehen. Zur Verbindungskontrolle sollten ein paar Dateien zwischen Telefon und PC ausgetauscht werden (z.B. mit p3nfs).

2.1 SP-Profile anbieten

Da das Telefon selbstständig eine ppp-Verbindung über SPP aufbauen möchte, muss der PC dieses auch anbieten. Also an der Kommandozeile folgendes eingeben:

sdptool add --channel=2 SP

2.2 DNS-Konfigdateien

Um den Namen "wsockhost.mrouter" aufzulösen, muss im lokalen Netzwerk ein DNS-Server vorhanden sein.
Beispiele für einige Konfigurationsdateien von bind:

/etc/named.conf:
options {

    directory "/var/named";
    cleaning-interval 120;
    statistics-interval 0;
    notify no;
};
zone "localhost" in {
    type master;
    file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
    type master;
    file "127.0.0.zone";
};
zone "." in {
    type hint;    
    file "root.hint";
};
zone "mrouter" {
    type master;
    file "/var/named/mrouter.hosts";
    };
EOF
 
/var/named/127.0.0.zone:
$TTL 2D
@        IN SOA        localhost.   root.localhost. (
                42        ; serial (d. adams)
                1D        ; refresh
                2H        ; retry
                1W        ; expiry
                2D )        ; minimum
 
        IN NS        localhost.
1        IN PTR        localhost.
EOF
 
/var/named/localhost.zone:
$TTL 2D
@        IN SOA    @   root (
                42        ; serial (d. adams)
                1D        ; refresh
                2H        ; retry
                1W        ; expiry
                2D )        ; minimum
 
        IN NS        @
        IN A        127.0.0.1
EOF
 
/var/named/mrouter.hosts:
$ttl 38400
mrouter.    IN    SOA    bernd. bernd.pnd. (
            2003051402
            10800
            3600
            604800
            38400 )
mrouter.    IN    NS    bernd.
wsockhost.mrouter.    IN    A    192.168.2.1
192.168.2.1.mrouter.    IN    PTR    wsockhost
EOF

2.3 PPP-Server

Beispiel für die Datei /etc/ppp/options:
noauth
local
modem
proxyarp
debug
ms-dns 192.168.1.1  # DNS-Serveradresse, der den Namen "wsockhost.mrouter" aufloest
192.168.1.100:192.168.1.200  # Zu vergebende IP-Adressen

2.4 dund

Damit der PC die ppp-Verbindung annimmt, folgendes an der Komandozeile eingeben

dund --listen --channel=2

2.5 SP-Verbindung zum 3650 aufbauen

Die Vorbereitungen sind nun getroffen. Das 3650 erstellt mit folgender Eingabe eine eigenständige ppp-Verbindung:

rfcomm connect 2 <MAC-des-Nokia-3650> 2

3. Auf 3650-Seite

Bluetooth muss aktiviert sein und der Verbindungsaufbau muss jetzt eventuell bestätigt werden.

4. Testen...

Z.B. mit der Demoversion von Opera einige html-Seiten anschauen.

5. Weiteres...

Damit die Anfragen des Telefons auch über eine ISP-Verbindung weitergeleitet werden, müssen noch IP-Forwarding und NAT aktiviert sein:

IP-Forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward
NAT (Network Adress Translation)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ppp0 evtl. durch das verwendete Interface ersetzen.

6. Anwendungen über TCP/IP

Fast zeitgleich mit der Veröffentlichung dieser Anleitung ist die p3nfsd Version 5.13a erschienen. Sie hat als Option auch den TCP/IP-Transfer. Im Gegensatz zum reinen Bluetooth läuft der Datenaustausch über TCP/IP auch bei grösseren Entfernungen zwischen dem Handy und dem Bluetoothdongle ohne Abbruch. Die Übertragungsrate liegt in beiden Richtungen bei ca. 22000Bytes/s.