Für Rechner mit nur einer Netzwerkschnittstelle nach außen sind Routingtabellen relativ langweilig. Interessant wird es erst bei zwei oder mehr Netzwerkschnittstellen nach außen und wenn das Gerät beide Netze miteinander verbinden soll. Ein Rechner unter dem Betriebssystem kann als Router fungieren, wenn die entsprechende Kernel-Funktion einkompiliert ist. Bei den heutigen Kernels ist dies normalerweise der Fall, die Funktion ist aber aus Sicherheitsgründen normalerweise abgeschaltet. Als ersten Schritt der Konfiguration des Routers müssen Sie daher das IP-Forwarding einschalten. Im Prinzip bedeutet dies, daß der Linux-Rechner ankommende Pakete analysiert und Sie bei Bedarf an andere Rechner weiterleitet. Seit SuSE 8.0 müssen Sie für die Aktivierung des IP-Forwarding die Direktive IP_FORWARDING in der Datei /etc/sysconfig/sysctl auf yes setzen.
linux37:~ # cat /etc/sysconfig/sysctl ... ## Path: Network/General ## Description: forward/route IP(v4) packets ## Type: yesno ## Default: no # # Runtime-configurable parameter: forward IP packets. # Is this host a router? (yes/no) # IP_FORWARD="yes" ...
Ob das IP-Forwarding auch aktiv ist, können Sie der Datei /proc/net/snmp entnehmen. Dies ist dann der Fall, wenn die erste Zahl in der zweiten Reihe eine `1' ist.
linux37:~ # cat /proc/net/snmp Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams ... Ip: 1 64 33999 0 0 0 0 0 25813 22942 0 0 0 12257 4088 0 0 0 0 Icmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs In... Icmp: 1 0 1 0 0 0 0 0 0 0 0 0 0 107 0 107 0 0 0 0 0 0 0 0 0 0 Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFail... Tcp: 1 200 120000 -1 442 198 0 56 0 20216 17215 47 0 10 Udp: InDatagrams NoPorts InErrors OutDatagrams Udp: 5177 107 0 5637
Nun müssen Sie noch die zwei oder mehr Netzwerkschnittstellen konfigurieren. Als Beispiel nehmen wir einen Router an, der über die Netzwerkschnittstelle eth0 das Netz 10.0.1.0/24 und über eth1 das Netz 10.0.2.0/24 miteinander verbinden soll.
ds9:~ # ifconfig eth0 10.0.1.254 netmask 255.255.255.0 broadcast 10.0.1.255 ds9:~ # ifconfig eth1 10.0.2.254 netmask 255.255.255.0 broadcast 10.0.2.255
Jetzt müssen noch die Routen für die Schnittstellen gesetzt werden.
ds9:~ # route add 10.0.1.0 netmask 255.255.255.0 dev eth0 ds9:~ # route add 10.0.2.0 netmask 255.255.255.0 dev eth1
Wenn wir jetzt noch davon ausgehen, daß eine Verbindung zu weiteren Netzen (z. B. dem Internet) über das erste Netz erfolgt, müssen wir noch die Standardroute setzen. Als Gateway nehmen wir mal den Rechner mit der IP-Nummer 10.0.1.253.
ds9:~ # route add default gw 10.0.1.253
Und fertig ist der Router. War doch gar nicht so schwer.