Website-Icon .: blog cscholz.io :.

Linux Router mit UMTS-Stick für PS3 mit dhcp und upnp

Da ich gerade umgezogen bin und noch keinen festen Internet Anschluss haben, musste ich mir erstmal mit meinem UMTS Stick behelfen. Zum surfen reicht das ja alle mal…. doch was mach ich mit meiner PS3? 😉

Um die auch über den UMTS Stick laufen zu lassen, habe ich als erstes einen DHCP Server installiert, sowie einige Änderungen an den Standard Einstellungen vorgenommen.

Notebook Netzwerkkarte: eth0
UMTS-Stick: ppp0

DHCP einrichten

apt-get install dhcp3-server
/etc/default/dhcp3-server
INTERFACES="eth0"
/etc/dhcp3/dhcpd.conf
subnet 10.5.5.0 netmask 255.255.255.0 {
 range 10.5.5.2 10.5.5.254;
 option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 10.5.5.1;
#  option broadcast-address 10.5.5.255;
 default-lease-time 600;
 max-lease-time 7200;
}
host vostro3300 {
 hardware ethernet f0:4d:a2:86:c8:ff;
 fixed-address 10.5.5.1;
}
host ps3 {
 hardware ethernet 00:24:8d:4a:b3:bc;
 fixed-address 10.5.5.2;
}

Der lokalen Netzwerkkarte eth0 habe ich über den Network-Manager von gnome die IP 10.5.5.1 zugewiesen und anshließend den DHCP Server gestartet.

/etc/init.d/dhcp3-server start

Routing/iptables

Nun kommt das Routing. Die PS3 soll ja schließlich auch Zugriff auf das Internet erhalten

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
#echo "net.ipv4.conf.default.forwarding = 1" >> /etc/sysctl.conf
#echo "net.ipv4.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p

Nun noch das Masquerading für ausgehende Pakete

iptables -A FORWARD -o ppp0 -i eth0 -s 10.5.5.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

UPNP

UPNP ermöglicht es Netzwerkgeräten die notwendigen Firewallanpassungen automatisch vorzunehmen, darauf möchte ich natürlich nicht verzichten.

apt-get install linux-igd
route add -net 239.0.0.0 netmask 255.0.0.0 eth0
upnpd eth1 eth0

Nun ist soweit alles die Firewallregeln, sowei der upnpd müssen zwar händisch gestartet werden, jedoch lässt sich das auch alles per Skript gestalten. Da ich nicht immer meine PS3 eingeschaltet habe, müssen die Dienste auch nicht immer laufen.

/etc/upnpd.conf
upnp_log_filename = "/var/log/upnpd.log";

Testen

Ob das ganze nun funktioniert hat, kann jetzt getestet werden. Dazu einfach auf der Playstation den Internet-Test anwerfen und schauen was passiert.

Ob die upnpd die Firewall Regeln korrekt erweitert hat, lässt sich wie folgt heraus finden:

iptables -t nat -L

Probleme

Ich hatte bei meinem UMTS-Stick das Problem, dass die PS3 zwar die Internetverbindung erkannt hat, jedoch keine Geschwindigkeiten der Verbindung ermitteln konnte. Grund war ein uneinheitlicher MTU Wert. Ich musste von 1500 (default bei vielen devices) manuell auf 1492 umstellen.

ifconfig eth0 mtu 1492
ifconfig ppp0 mtu 1492
* und manuell auf der PS3, im Punkt Netzwerk
Die mobile Version verlassen