Blog roundup 2009

So lange nicht mehr geblogt. Da ich aber kürzlich mal wieder auf die Idee gekommen bin mein WordPress zu aktualisieren, habe ich gleich mal etwas aufgeräumt und der Seite ein neues Bild verpasst. Ich bin natürlich letztes Jahr nicht untätig gewesen. Es gab allerdings zu Hause und @work viel zu tun. Leider hat es sich nicht bewährt das Alix Board gleich noch als Fileserver (über USB Platten) mit zu nutzen. Nach längerer erfolgloser Suche nach einem geeigneten NAS (am besten mit Geode Chip und der Möglichkeit openvpn zu nutzen), habe ich mich aus Kostengründen dazu entschieden wieder einen Homeserver aufzubauen. Um den Stromverbrauch in Grenzen zu halten und trotzdem ordentliche Performance bei OpenVPN zu haben, habe ich mit ein Board mit Atom 330 CPU gekauft. Für die Nutzung als Server im Keller hat ein einfaches Intel Board mit 2 GB RAM dicke ausgereicht. Das Ganze dann in ein altes Standard-ATX Gehäuse gepackt, Ubuntu 8.04 LTS Server auf einen 4 GB USB Stick installiert und schon war der Homeserver fertig. Ich habe mich noch entschieden 2x1TB Festplatten in das Gehäuse einzubauen und per Software RAID 1 als Dateiablage zu nutzen. Ohne Festplatten braucht das Setup ca. 30 W, was auch nicht viel mehr ist, als ein NAS + Alix. Mit laufenden Festplatten sinds ca. 45-50 W, aber da ich die selten brauche, lasse ich sie nach 20 Minuten einschlafen. Dann noch Monitoring per Nagios auf den RAID Status, sowie den Stromsparmodus der Festplatten gebaut und fertig. Die Kiste steht jetzt im Keller, ist per Gigabit angebunden und spielt Default Gateway, DHCP Server und DNS Relay. Hintendran hängt dann meine Fritzbox für die Telefonie und den Zugang zum Netz per Kabel. Ich bin mit der Zusammenstellung recht zufrieden. Telefon ist von Basteleien am Server nicht betroffen und der Rechner hat genug Performance für alle Aufgaben. Ich bekomme locker 16-20 MBit über das OpenVPN drüber, was sogar für FullHD ausreichend ist.

Don’t use OpenVPN with UDP? Bad performance?

Ich stellte schlechte OpenVPN Performance über ein 100MBit Netzwerk fest. Von meinem Macbook aus erreichte ich via Tunnelblick nur ca. 10 MBit auf einen Linux Server. Nach längeren Tests stellte es sich heraus, dass ein Schwenk auf TCP anstatt von UDP das Problem beseitigt und ich annähernd 100 MBit über den Tunnel übertragen kann. Keine Ahnung, ob das nur in meiner Konfiguration der Fall, ein generelles Problem oder nur bei den Messungen via iperf der Fall ist.

openvpn with cryptodev support

Da ich seit einigen Tagen Besitzer eines Alix 6B2 mit Geode CPU bin, musste natürlich auch die Hardware AES Beschleunigung dieser Plattform ausgenutzt werden. Um das ganze unter Linux zum laufen zu bekommen, ist etwas patching nötig. Unter diversen *BSD Varianten funktioniert das wohl „out of the box“. Es braucht einen Linux Kernel mit geode-aes support und den Cryptodev Patches. Ich habe die OCF Impelementierung und einen Standard 2.6.26.2 Kernel genutzt. Im Archiv ocf-linux-20080704.tar.gz gibt es ein Unterverzeichniss ocf welches nach linux-2.6.26.2/crypto/ocf kopiert werden möchte. Anschließend habe ich den Kernel patch angewendet: linux-2.6.26.2 $ patch -p0 < ../ocf-linux-26-20080704.patch. Laut einem Mailinglisten Eintrag auf der OCF Liste brauchts noch einen Patch für 2.6.26er kernel. Diesen habe ebenfalls eingespielt: linux-2.6.26.2 $ patch -p0 < ../ocf-2.6.26.patch. Nun kann man normal via make menuconfig seinen Kernel konfigurieren. Für crypdodev support auf Geode sind folgende Einstellungen nötig:

CONFIG_OCF_OCF=m
CONFIG_OCF_CRYPTODEV=m
CONFIG_OCF_CRYPTOSOFT=m
CONFIG_CRYPTO_DEV_GEODE=m

Sobald der Kernel gebootet ist, sollte man die Module geode-aes, ocf, cryptodev und cryptosoft laden können und über die cryptotools erste Tests (z.B. cryptotest 100 4096) machen können. Damit nun auch Anwendungen wie z.B. OpenVPN von der Hardwareunterstützung profitieren können, muss openssl gepatcht werden. Ich habe hierzu das Source Paket von openssl aus dem kommenden Debian lenny verwendet, gepatcht und installiert:

# apt-get --default-release=lenny source openssl
# cd openssl-0.9.8g/
openssl-0.9.8g # patch -p0 < ../ocf-linux-20080704/openssl-0.9.8g.patch
openssl-0.9.8g # vi debian/rules
[...]
CONFARGS = --with-cryptodev --prefix=/usr --openssldir=/usr/lib/ssl no-idea no-mdc2 no-rc5 zlib enable-tlsext
[...]
"debian/rules" 173L, 6720C geschrieben
openssl-0.9.8g # dpkg-buildpackage -rfakeroot -uc -b

Sobald die gepatchte openssl Version installiert ist kann man via openssl engine prüfen ob crpytodev Support gegeben ist. Falls ja trägt man noch

cipher AES-128-CBC
engine cryptodev
in seine OpenVPN Config ein und kann von der Hardware Beschleunigung profitieren.

Folgendes Howto hat sehr weitergeholfen:
http://www.docunext.com/wiki/My_Notes_on_Patching_2.6.22_with_OCF