Series60 TCP
Aus Gentoo Linux Wiki
| 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
- Diese Anleitung ist im Verzeichnis TuxMobil Linux und Handy gelistet.
