Series60 TCP

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
Laptops Motherboards Servers Eingabegeräte RAID Controller TV Karten Wireless Andere Hardware Andere Architekturen alphabetischer Hardware Index



Dieses Howto erklärt, wie man eine TCP/IP Verbindung zu einem Symbian Series60 Device am Beispiel meines Siemens SX1 herstellt. Geräte anderer Hersteller sollten aber genauso funktionieren. Ich habe in meiner Konfiguration Infra Rot verwendet, da mein Laptop kein Bluetooth hat, falls ihr BT einsetzt, bitte die Device-Namen entsprechend anpassen.

Für NFS braucht man das Tool p3nfs, eine Suche auf bugs.gentoo.org, im Gentoo-Forum und im Internet liefert massig Ergebnisse.


[Bearbeiten] Rechner-Konfiguration

Zuerst benötigen wir ein paar Tools, wofür genau, sage ich später:

emerge -av ppp iptables bind

Natürlich muss auch der ganze PPP und Paketfilter-Kram im Kernel aktiv sein. Außerdem IR und/oder BT, aber darauf gehe ich jetzt nicht ein.

Dann benötigen wir eine PPP-Verbindung zum Telefon. Hier die Konfigurationsdatei:

/etc/ppp/peers/sx1

noauth
local
modem
proxyarp
/dev/ircomm0             # IR oder BT device
ms-dns 192.168.2.23      # Eine IP der Gentoo-Box, unter der der DNS-Server erreichbar ist
192.168.2.4:192.168.2.5  # Die IPs, die Telefon und Gentoo-Box zugewiesen bekommen

Starten können wir die Verbindung (zu diesem Zeitpunkt evtl. noch ohne oder mit anderer DNS-IP) nun mit:

pppd -d -detach call sx1

Die Verbindung steht. Jedenfalls für einige Sekunden. Dann kappt das Handy sie selbstständig. Ein Blick in 'tcpdump -vv -i ppp0' zeigt, dass das Telefon versucht wsockhost.mrouter aufzulösen. Hier kommt bind ins Spiel:

In der Datei /etc/bind/named.conf wird die Zone mrouter erstellt (ganz unten) und es werden zwei erlaubte IPs (oben) hinzugefügt. Einmal eine IP der Gentoo-Box (siehe PPP-Config, DNS-Eintrag), die lediglich dazu dient, named starten zu können noch bevor die PPP-Verbindung besteht und einmal die IP von ppp0:

options {
        directory "/var/bind";

        // uncomment the following lines to turn on DNS forwarding,
        // and change the forwarding ip address(es) :
        //forward first;
        //forwarders {
        //      123.123.123.123;
        //      123.123.123.123;
        //};

        listen-on-v6 { none; };
        listen-on { 127.0.0.1; 192.168.2.23; 192.168.2.4; };

        // to allow only specific hosts to use the DNS server:
        //allow-query {
        //      127.0.0.1;
        //};

        // if you have problems and are behind a firewall:
        //query-source address * port 53;
        pid-file "/var/run/named/named.pid";
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "pri/localhost.zone";
        allow-update { none; };
        notify no;
};

zone "127.in-addr.arpa" IN {
        type master;
        file "pri/127.zone";
        allow-update { none; };
        notify no;
};
zone "mrouter" {
        type master;
        file "/var/bind/mrouter.hosts";
};


/var/bind/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.4
192.168.2.4.mrouter.    IN    PTR    wsockhost


Soweit, so gut. Führt man nun

/etc/init.d/named start

aus, bevor man die PPP-Verbindung aufbaut, sollte diese auch stabil bleiben, solange sie physisch besteht.

Nun wollen wir noch NAT, das geht einfach:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Fertig! Um das ganze zu testen, kann man z.B. mal Opera auf dem Smartphone starten und drauf los surfen, hf.

Damit das ganze nicht jedes mal so ein Gefrickel ist, habe ich mir folgendes kleines Skript geschrieben:

#!/bin/bash
if [ `/usr/bin/whoami` = "root" ] ; then
        echo "Enabling IP-forwarding..."
        echo 1 > /proc/sys/net/ipv4/ip_forward
        echo ""
        echo "Setting up NAT-routing..."
        iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
        echo ""
        echo "Starting DNS daemon to emulate mRouter..."
        /etc/init.d/named start
        echo ""
        echo "Initializing PPP connection to phone..."
        echo "============================================================"
        echo "PRESS CTRL+C TO STOP THE CONNECTION AND STOP THE DNS DAEMON!"
        echo "============================================================"
        pppd -d -detach call sx1
        echo ""
        echo "Stopping DNS-daemon..."
        /etc/init.d/named stop
else
        echo "Required to be root, sorry..."
fi

[Bearbeiten] Links

'Persönliche Werkzeuge