net17.de

Netfilter Conntrackd für OpenSuSE 10.2 umwandeln und installieren

Mit vielen Fenstern lässt sich besser arbeiten...
Beryl machts möglich

Allgemeines

Ziel war eine hochverfügbare Firewall mit Sessionübernahme. D.h. eine Verbindung über die redundante Firewall bricht bei Ausfall einer dieser Firewalls nicht ab, der Benutzer bekommt von dem Ausfall nichts mit, da seine Session transparent von der anderen Firewall übernommen wird.

Zum Test und zur Umwandlung der benötigten Komponenten habe ich mehrere Vmware Maschinen benutzt:

  1. Entwicklungsmaschine: OpenSuSE 10.2 mit alles was das Entwicklerherz begehrt, u.a. gcc, automake, autoconf, openssl-dvel,libcrypt-devel, popt-devel etc.
  2. Firewall 1: OpenSuSE 10.2 minimal mit Textoberfläche
  3. Firewall 2: OpenSuSE 10.2 minimal mit Textoberfläche (Kopie von Firewall 1)

Benötigt werden folgende Pakete:

Vom OpenSuSE 10.2 Installationsmedium

Wer jetzt schon keine Lust mehr hat....am Ende der Seite gibts meine fertigen RPM's zur Installation unter OpenSuSE 10.2.

Kernel

Für die Installation habe ich mich entschlossen den zur Zeit neuesten Linux Kernel 2.6.20.7 zu benutzen. conntrackd braucht einen Kernel > 2.6.18, was aber auch mit dem Standardkernel von OpenSuSE 10.2 funktionieren sollte. Da aber der Kernel sowieso übersetzt werden muss, kann man auch direkt den neuesten nehmen.

Erhältlich ist der Kernel auf Linux Kernel 2.6.20.7.

Nach dem Download des Kernel Images wird folgendes gemacht:

Beryl macht einfach nur Spass...

libnfnetlink

Diese Library ist eine reine API für Netfilter Entwicklungen.

Also, los gehts...

Burning down the house...
Fenster schliessen auf Beryl Art

libnetfilter_conntrack

Diese Library ist die Library für conntrackd und basiert auf libnfnetlink.

Ohne VMware wäre alles viel umständlicher...

conntrackd

Dies ist der eigentliche Daemon der das Session Tracking und die Session Übernahme zur Verfügung stellt.

keepalived

keepalived stellt ein einfaches Clustering für z.B. IP-Adressen zur Verfügung und ergä daher conntrackd recht gut. Ausserdem erwähnt Pablo es als Beispiel :-)

Webradio und Hörspiele lassen die Zeit wie im Flug vergehen...

RPMS

Und wieder für alle die durchgehalten haben meine RPM's für OpenSuSE 10.2:

Compile Fehler beim Umwandeln von keelived 1.1.13 mit Linux Kernel > 2.6.20

Sollten beim Umwandeln von keepailed Fehler mit bereits definierten Typen auftreten, bei mir wars:
In file included from /usr/include/net/ethernet.h:26,
from ../include/vrrp_arp.h:29,
from vrrp_arp.c:29:
/usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’
/usr/src/linux/include/linux/types.h:22: error: previous declaration of ‘dev_t’ was here
/usr/include/sys/types.h:67: error: conflicting types for ‘gid_t’
/usr/src/linux/include/linux/types.h:54: error: previous declaration of ‘gid_t’ was here
undo so weiter, und so weiter....
dann kann man sich mit folgendem Trick behelfen:
Wechseln in das Verzeichnis mit dem keepalive Sourcecode und dann die Datei: keepalived/vrrp/vrrp_arp.c editieren
Dort steht:
/* system includes */
#include "linux/if_packet.h"

/* local includes */
#include "vrrp_arp.h">
#include "memory.h">
#include "utils.h">
jetzt die beiden Blöcke einfach vertauschen so das local includes zuerst steht:
/* local includes */
#include "vrrp_arp.h">
#include "memory.h">
#include "utils.h">

/* system includes */
#include "linux/if_packet.h"

Das sollte helfen.