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

HowTo: SAMP (Slug, Apache, Mysql, Php)

Also wie bekomme ich Mediawiki und Torrentflux, natürlich zusätzlich zur NAS Funktion mittels Samba und NFS, auf einen Slug? Vorweg schonmal die gute Nachricht: Es geht! Das Problem ist weniger der 266 MHz. ARM Prozessor, den der Linksys NSLU2 hat, sondern vielmehr die 32 MB RAM. Im Debian Etch für ARM gibt es zwar alles was das Herz begehrt, aber ein simples apt-get -s install mediawiki mysql-server apache2 php5 installiert zwar die passende Software, diese ist aber leider bei weitem nicht auf die beschränkten Hardwareverhältnisse eines Slug optimiert. Ich habe mir also die Mühe gemacht die Software auf so wenig wie möglich Resssourcenverbrauch zu trimmen. Los gehts…. Continue reading

Ciao Mac Mini -> Hello Slug

Lange hat die Lösung ja nicht gehalten. Nachdem jemand spontan meinen Mac Mini G4 haben wollte, musste ich in einer Blitzaktion meine Daten umziehen. Glücklicherweise hatte ich mir in weißer Vorraussicht bereits einen Linksys NSLU2 „SLUG“ gekauft. SLUG taken from wikipediaAlso erst mal schnell das IMAP Postfach per imapsync auf gmail hochgeladen. Ja ich weiß wer will den der Datenkrake Google noch freiwillig seine Daten geben, aber es war nunmal der einzige Freemailanbieter mit IMAP Unterstützung. Außerdem Wissen die doch eh schon alles über mich ;-). Dann noch Debian Etch auf den Slug installiert und zwei Onnto USB RAID Gehäuse angeschlossen und den Mac Mini verkauft. Jetzt fehlte mir aber halt noch ein bisschen Funktionalität:

  • samba
  • NFS Server
  • MediaWiki
  • Torrentflux
  • MythTV
  • MythTV war relativ schnell durch Elgato EyeTV ersetzt. Jetzt kommt meine Lizenz hier endlich mal richtig zu Ehren! Die restlichen Punkte erforderten etwas Arbeit, aber letztlich habe ich alles auf meinen Slug gequetscht! Mehr dazu im Howto.

    MP4Box könnte etwas gesprächiger sein :-(

    Ich bastel nun seit ein paar Tagen daran meine MythTV Aufnahmen in iPod kompatible MP4 Files zu konvertieren. mencoder habe ich schon soweit, dass er mir ein 2-pass kodiertes Video und ein AAC Audio File ausspukt. Aber leider kommt beim Multiplexen mit MP4Box nur Müll raus. Der Grund ist einfach: Mein /tmp Verzeichniss ist mit 300 MB etwas zu klein für 1 GB Film. Aber warum sagt mir das MP4Box nicht einfach. Nö da wird einfach schön bis auf 100% gemuxt und ein MP4 geschrieben, was halt dann kaputt ist. *gr* Ein einfaches Anhängen der Option „-tmp“ hat das Problem behoben. Das hätte ich auch eher haben können.

    Re: Homeserver: Was tun?

    So, ich habe endlich eine passende Lösung gefunden. Nachdem ein neuer Intel Mac Mini bei uns Einzug gehalten hat, wurde der PowerPC Mac Mini frei. Also: Raus mit der grauen Kiste. 10762Aber wie komme ich halbwegs bezahlbar an eine ausfallsichere Datenhalde? Nach längerem gegoogle bin ich auf das „Onnto RS-M2BF DataWhale 2-Bay RAID System“ gestoßen. Es handelt sich um ein Gehäuse für zwei SATA Festplatten, die dann unter anderem zu einem RAID-1 System zusammengefasst werden können. Anschluss findet das Teil dann in meinem Fall via USB2 an den Mac Mini. Das Teil gibt es auch mit eSATA und Firewire Anschluss. Also dann zwei 500 GB Festplatten rein, Debian Etch in der Power PC Variante auf den Mac Mini und los gehts! Dann noch einen DVB-T Stick angeschlossen, der auch gleich erkannt wurde. Nur noch die passende Firmware nach /lib/firmware kopiert und schon tut das Teil. MythTV funktioniert problemlos. Alles in allem ist jetzt der große Tower verschwunden und der Lüfterlärm ist nun auch um einiges weniger geworden.

    1075610759 10765

    Macbook missing

    Mein Macbook ist weg! Nein nicht verloren, geklaut oder so. Es ist in Reparatur! Was Größeres ist eigentlich nicht kaputt, nur ein kleiner Riss im Plastik der Oberschale.10322 10325Ich muss sagen mein altes iBook war hier deutlich robuster. Nun arbeite ich ersatzweiße mit einem Acer Travelmate 4072WLMI mit Ubuntu Feisty Fawn, was mir ziemlich deutlich die Probleme von Linux auf dem Desktop (Notebook) aufweißt. Das Acer hat eh schon nur noch eine Akkulaufzeit von ca. 45 Minuten, da wiegt es schon ziemlich schwer, dass kein Standby Mode funktioniert. In Bereitschaft läßt sich der Rechner noch schicken, wacht dann allerdings nicht mehr korrekt auf. Der Ruhezustand funktioniert überhaupt nicht. Am schlimmsten ist jedoch die Konfiguration von X. Es ist schon etwas utopisch dem Linux eine anständige Dual Head konfiguration zu entlocken. Soll heißen Notebook Display (1280×800) + 19″ TFT (1280×1024) und dann so, dass man den TFT abschalten kann. Nachdem ich etwas Zeit investiert hatte, habe ich dieses Vorhaben abgebrochen. Das Macbook kommt hoffentlich bald wieder! Abgesehen von diesen Hardwareproblemen läßt es sich jedoch super mit dem Gnome Desktop arbeiten.

    Linux Radio

    Normalerweise höre ich gerne hier in Mittelfranken den Rocksender Star FM. So auch heute im Auto, allerdings habe ich die Frequenz eingeschaltet, die ab 16 Uhr dem Alternativ Sender Radio Z gehört (95,8 MHz). Daher war ich etwas verwundert von der Existenz von Antenne Tux zu hören. Deren Sendung lief nämlich gerade auf Radio Z. Was ich zu hören bekam war teilweise durchaus interessant: Es wurde nur „podsave“ Musik gespielt (Gema frei, meist Creative Commons) und die Beiträge handelten von z.B. „freiem Bürgerfunk in Münster“, „geistigem Eigentum auf dem G8 Gipfel“ oder „den Linuxpaten„. Alles in allem ein schönes Projekt, was es zu erhalten gilt. Allerdings muss ich die Audioqualität bemängeln: Die Jungs von Radio Z haben die Sendung wohl aus dem Internet mit relativ geringer Bitrate runtergeladen. Jedenfalls gab es einige unschöne Artefakte während der Sendung.

    Für alle Interessierten, gibts die aktuelle Sendung natürlich auch zum Download auf www.antennetux.de.

    Happy WDS mit OpenWRT

    Endlich hatte ich mal Zeit mein WLAN Netz zu debuggen. Bei diesem April kein richtig funktionierendes WLAN im Garten ist unzumutbar! 😉 Das Problem: WDS funktioniert so halb. ich kann meine beiden per WDS angebundenen Accesspoints wunderbar pingen. Kaum Paketverluste. Clients die per LAN Kabel an den Accesspoints hängen haben auch keine Probleme. Allerdings kann ich mich per WLAN nur kurz an den OpenWRT Kisten anmelden. Nach kuerzer Zeit unterbicht aber die Verbindung und das wars. Keine WLAN Verbindung mehr möglich. Nun habe ich heute debuggt und noch ein paar fehlende nvram settings eingetragen. Und siehe da, jetzt tuts.

    Diese Einstellungen sind alle benötigten Werte für die WDS „Clients“. Weitere Parameter sind nicht nötig:

    wl0_akm=psk
    wl0_infra=1
    wl0_ifname=eth1
    wl0_mode=ap
    wl0_ssid=meinetolleSSID
    wl0_closed=0
    wl0_macmode=disabled
    wl0_lazywds=0
    wl0_antdiv=-1
    wl0_wpa_psk=08/15-4711
    # Mac Adresse des Accesspoints zu dem der WDS Link aufgebaut werden sol:
    wl0_wds=MA:CA:DD:RE:SS:E
    wl0_wep=disabled
    wl0_radio=1
    wl0_maclist=
    wl0_channel=5
    wl0_crypto=tkip

    Pimp my screen

    Eines der must have tools im *nix Umfeld ist ohne Zweifel „screen„. Allerdings haben mich einige Dinge immer etwas genervt:

  • Windows: Das schöne Feature verschiedener Fenster innerhalb einer Screen Sitzung hat leider diverse Hacken: In welchem Fenster bin ich gerade überhaupt? Wieviele Windows gibts es eigentlich?
  • Titles: Windows können mit Namen versehen werden. Da man im Administrationsalltag auf X verschiedenen Servern eingeloggt ist, wäre es doch schön anhand der screen titles erkennen zu können, auf welchem Host man im entsprechenden Fenster eingeloggt ist.
  • SSH Agent: Wie kommt man an einen laufenden ssh-agent der im Screen läuft und von allen Screen Windows aus nutzbar ist.
  • Irgendwie lebte ich mit diesen Problemchen und war zu faul mal eine Lösung zu suchen. Aber dann habe ich mich durchgerungen!

    Problem: Windows

    Die Lösung hierzu kam von meinem Kollegen Hombertho:
    Man füge in die .screenrc folgendes ein:

    caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

    Schon hat man eine schöne „Taskbar“ mit allen vorhanden Fenstern sowie farblicher Markierung des aktuell aktiven Fensters im unteren Bereich des Screens. 10014

    HowTo dynamic Titles:

    Alle Hosts die diesen Code in der .bashrc oder .bash_profile haben aktualisieren die screen titles beim einloggen auf $user@$host:

    function rename_screen_tab () { echo -ne "x1bk$@x1b\"; return 0; }
    if [[ "$TERM" = screen* ]]; then
    echo
    PROMPT_COMMAND="rename_screen_tab ${USER}@${HOSTNAME%%.*}; $PROMPT_COMMAND"
    fi

    Der Host auf dem screen läuft sollte natürlich ebenfalls den Code in der .bashrc haben. Sonst wird der Screen Title beim Ausloggen nicht wieder zurück geändert.

    SSH Agent für screen:

    Um dieses zu bewerkstelligen hilft ein Screen Window welches immer vorhanden sein muss und den ssh-agent Prozess vorhält.
    .screenrc:

    setenv SSH_AUTH_SOCK $HOME/.screen-ssh-agent
    screen -t agent bash -c "ssh-agent -a $SSH_AUTH_SOCK $SHELL; ssh-add;"