Kernel-Module aktivieren, Userspace-Programme einrichten und Grundkonfiguration vornehmen

Wir benötigen von Ihrer aktuellen Linux-Distribution die verwendeten Kernel-Sourcen, damit wir noch ein paar benötigte Module nachinstallieren können. Je nach eingesetzter Distribution können diese Sourcen bereits unter /usr/src/linux vorliegen, oder müssen erst noch mittels Paket-Managers nachgeladen werden. Schlagen Sie dafür im Kapitel "Nachladen der Kernel-Sourcen" in der Dokumentation Ihrer Distribution nach bzw. bemühen Sie eine Suchmaschine.

Im ersten Schritt werden wir folgende Module im Kernel aktivieren:

Führen Sie nun die Übersetzung der Kernel-Sourcen wie gewohnt aus und starten Sie Ihren Rechner neu.

Wenn Ihr Rechner ohne Probleme neu gestartet hat, sollten die Befehle modinfo tun und modinfo bonding Daten zum angegebenem Modul ausgeben. Sollte das System jedoch erwähnen, dass die angegebenen Module nicht gefunden wurden, dann ist bei Ihrer Kernel-Konfiguration / Übersetzung etwas schief gelaufen.

Übersetzen des Userspace-Programms ifenslave

Damit wir mehrere VPN-Tunnel zu einem einzigen Port-Channel zusammenfassen können, benötigen wir das Userspace-Programm ifenslave, welches den Kernel-Sourcen im Verzeichnis ./Documentation/network beiliegt.

Übersetzen des Programms:

cd /usr/src/linux/Documentation/network/
gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave
cp ifenslave /sbin/ifenslave

Nun sollte das Programm ifenslave Systemweit für Administratoren zur Verfügung stehen. Bei Aufruf des Befehls sollte eine kleine Hilfe (auch als Usage bekannt) zu sehen sein. Sollte der Befehl im System nicht gefunden werden, so wird es wohl während dem Übersetzen des Quellcodes / bzw. beim Kopieren der Binary zu einem Problem gekommen sein.

Laden der benötigten Kernel-Module

Für den reibungslosen Betrieb unseres VPN-Tunnel benötigen wir die zuvor übersetzten Kernel-Module. Stellen Sie sicher, dass nach jedem Neustart des Systems die notwendigen Module ordnungsgemäß geladen werden, bevor eine der Server-Software - welche wir hier verwenden werden - gestartet wird.

Folgende Module müssen geladen werden:

modprobe tun
modprobe bonding mode=0 miimon=100 downdelay=500 updelay=900

Informationen zum Module "bonding" finden Sie unter:
http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt

Konfigurieren der Netzwerk-Schnittstelle

Nachdem die Module ordnungsgemäß geladen wurden und der Befehl lsmod beide Module in der Ausgabe aufweist, können wir die notwendigen Netzwerk-Skripts anlegen. Je nach Distribution unterscheidet sich die Konfiguration der Netzwerk-Schnittstellen.

In diesem Abschnitt werden wir die Konfiguration der Schnittstelle selbst vornehmen. Wie Sie die Netzwerkparameter automatisch bei Systemstart eintragen lassen, lesen Sie bitte in der Dokumentation Ihrer Distribution nach.

Nun legen wir manuell die Daten der Netzwerk-Schnittstelle von "bond0" auf dem ROOT-SERVER fest:

/sbin/ifconfig bond0 192.168.10.1 netmask 255.255.255.252 broadcast 192.168.10.3 up

Nun legen wir manuell die Daten der Netzwerk-Schnittstelle von "bond0" auf dem HOME-ROUTER fest:

/sbin/ifconfig bond0 192.168.10.2 netmask 255.255.255.252 broadcast 192.168.10.3 up

Für den VPN-Tunnel verwenden wir ein /30 Netzwerk, welches uns eine Netzwerk-Adresse, 2 Host-Adressen und eine Broadcast-Adresse zur Verfügung stellt. Als Netzwerk verwenden wir hier in unserem Beispiel 192.168.10.0/30. Rein theoretisch wäre es hier auch möglich, reine Host-Adressen /32 zu verwenden und hinterher mittels des dynamischen Routings und der Broadcast-Adresse 255.255.255.255 sich zwei IP-Adressen zu sparen.

Übersetzen des Userspace-Programms ip aus dem IPROUTE2-Paket

Für die Einrichtung unserer IP-Adressen verwenden wir das Userspace-Programm ip - aus dem IPROUTE2-Paket. Das Userspace-Programm ip bietet uns einen besseren Konfigurations-Komfort als wie das veraltete ifconfig Userspace-Programm, welches den meisten Distributionen bereits beiliegt.

Seite zum Projekt IPROUTE2: http://www.linuxfoundation.org/en/Net:Iproute2
Download der aktuellen Version: http://developer.osdl.org/dev/iproute2/download/iproute2-latest (BZIP2 kompremiertes Datenarchiv)

Nun werden wir den Source herunterladen und den Quellcode auf unser Host-System zu Binary-Code übersetzen:

wget http://developer.osdl.org/dev/iproute2/download/iproute2-latest
tar xjf iproute2-latest
cd iproute2-latest
./configure
make
make install
ln -s /usr/sbin/ip /sbin/ip

Einige Distributionen wie z.B. Gentoo erwarten das Userspace-Programm ip im Ordner /sbin/ . Aus diesem Grund erstellen wir in dieses Verzeichnis einen symbolischen Link.

Seite 1: Bündelung mehrerer Internet-Zugänge zur Steigerung der Geschwindigkeit
Seite 2: Kernel-Module aktivieren, Userspace-Programme einrichten und Grundkonfiguration vornehmen
Seite 3: Routing vorbereiten, Schnittstellen konfigurieren und Routing einrichten
Seite 4: vTUN installieren und einrichten
Seite 5: Dynamisches Routing mit OLSR einrichten
Seite 6: Abschluss