Im Prinzip genügt es schon, den Routing-Daemon in.routed zu starten und alle anderen Rechner im Netz wissen dann darüber Bescheid.
Damit ist aber die Funktion des Routers noch nicht abgestellt. Auf anderen Rechenrn eingetragene Default-Routes oder missbräuchliche Nutzung sind weiterhin möglich.
Es gibt aber im Kernel eine Variable, die das Routing blockiert. Diese kann man entweder im laufenden Betrieb umsetzen oder auch schon beim Konfigurieren des Kernels angeben.
# turn off ipforwarding options "IPFORWARDING=-1"Eine passende Stelle ist hinter all den anderen Optionen und vor den Kommentaren zur "config vmunix"-Zeile.
Im laufenden Betrieb benutzt man adb:
# adb -w -k /vmunix /dev/mem _ip_forwarding/W-1 _ip_forwarding?W-1 $qDabei modifiziert die Zeile mit "/" den Kernel auf der Platte und die Zeile mit "?" den Kernel im Speicher.
Und wie macht man das Routing wieder an?
# adb -w -k /vmunix /dev/mem _ip_forwarding/W0 _ip_forwarding?W0 $q
# mv /sys/`arch -k`/OBJ/ip_input.o /sys/`arch -k`/OBJ/ip_input.o.FCS # mv /sys/netinet/in_proto.c /sys/netinet/in_proto.c.FCS # cp ./in_proto.c /sys/netinet/in_proto.c # cp ./ip_input.c /sys/netinet/ip_input.cNun muss man einen neuen Kernel bauen. Aber zuvor setzen wir noch in der Kernel-Konfiguration folgende Optionen:
# turn off ipforwarding options "IPFORWARDING=-1" # drop source routed packets options "IPBLOCKSOURCEROUTE=1"Jetzt kann der neue Kernel gebaut werden:
# KERNELNAME=`head -1 /etc/motd | sed -e "s/.*(//" -e "s/).*//"` # cd /sys/`arch -k`/conf # config $KERNELNAME # cd ../$KERNELNAME # make # mv /vmunix /vmunix.old # mv vmunix /vmunix # rebootNatürlich kann man die Option im laufenden Betrieb umschalten, sodass Source-Route wieder geht:
# adb -w -k /vmunix /dev/mem _ip_block_source_routed/W0 _ip_block_source_routed?W0 $qMit W1 statt W0 schaltet man das Source Routing dann wieder ab.