Linux Router

Gemeint ist hier der Betrieb eines Computers mit Linux-Betriebssystem als Router.

Selbstverständlich kann man bei uns im Netz auch eigene Router betreiben. Um einen möglichst problemlosen Betrieb zu ermöglichen geben wir euch hier ein paar Tipps für die optimalen Einstellungen.

Bei uns im Netz ist es möglich ein eigenes lokales Subnetz zu betreiben. Als privates Netz sollte man das Netz 172.16.0.0/24 verwenden. Also die IP-Adressen 172.16.0.0-172.16.0.255. Alle anderen privaten Netze werden zum Teil von unseren Servern und internen Netzen verwendet und sollten gemieden werden!

Der Router muss eine VPN Verbindung zum VPN-Gateway aufbauen. Für alle Clients dahinter sollten zweimal Masquerading machen:

iptables -t nat -A POSTROUTING -o ppp0 -s 172.16.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE

Dabei ist ppp0 das VPN Device und eth0 das externe Device mit einer 10.3.0.0/16 er IP-Adresse.

Das liegt daran, dass bei einigen schlecht konfigurierten Firewalls einiger Anbieter die Path-MTU-Discovery nicht funktioniert. Dadurch, dass die MTU der VPN Verbindung < 1500 ist, kommt es zu Problemen beim Zugriff auf solche Server. Das gleiche Problem gibt es auch bei DSL Verbindungen, die über PPPOE laufen.

Beheben lässt sich das auf vielfache Weise:

  • MTU der Clients reduzieren z.B. auf 1400
  • Proxyserver für http Traffic verwenden
  • Die MTU/MSS auf dem eigenen Router umbiegen

Letzteres lässt sich mit iptables folgendermaßen realisieren:

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu