TCP Routing

Routing bedeutet, mehrere Netzwerke miteinander zu verbinden und Pakete aus einem Teilnetz in das andere weiterzuleiten und umgekehrt. Der Rechner krypton hat zwei Netzwerkschnittstellen, eth0 und eth1. Jede Netzwerkkarte bekommt von Linux einen Namen zugewiesen.

Das Routen vom TCP-Prokoll gestaltet sich relativ einfach. Zuerst weisen wir der ersten Schnittstelle die IP-Nummer "192.168.1.1", der anderen "192.168.0.1" zu. Das kann bequem mit einem Administrationstool oder per Hand mit

ifconfig eth0 192.168.1.1 broadcast 192.168.1.255 netmask 255.255.255.0 up
ifconfig eth1 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0 up

erledigt werden. Nun müssen wir noch festlegen, welche Pakete über welche Schnittstelle geleitet werden sollen.

Neuere Linuxe setzen die Routen für die Netzgeräte selbstständig. Lediglich die Default-Route (da, wo alles langgeht, wenn keine andere Regel zutrifft) und das Gateway (Ziel der Default-Route) muss i.d.R. definiert werden.

route add default gw <IP> eth0

Falls wider Erwarten das Routing nicht funktioniert, so kann das mehrere Ursachen haben. Die häufigste Fehlerquelle ist, dass das IP-Forwarding vom Kernels aus Sicherheitsgründen deaktiviert. Diese Option kann mit dem Befehl

echo "1" > /proc/sys/net/ipv4/ip_forward

eingeschaltet werden.