Source based routing with wireguard


What this article is about? This article describes how to configure a linux router to send traffic from specific IPs to a non-default (wireguard) route. With such a setup, you will be able to use a VPN with ‘smart’ devices (A TV, Nintendo Switch, etc…) which do not have native wireguard support. Configure wireguard interface First, we configure a new wireguard interface which we will call sbr0. Note that we are not using wg-quick to bring the device up since we want to have full control over its configuration (and not use it as a default route anyway).…
Read more ⟶

Fiber7 an einem IPv6 Linux router


Konfiguration unter Linux Dieser Artikel befasst sich mit der Konfiguration von IPv6 + Fiber7. Warum IPv6? Weil es zu IPv6 eigentlich nicht viel zu sagen gibt :-) IPv6 auf dem Router einrichten Wir gehen von einem Router mit 2 physikalischen interfaces aus: wan0 und lan0. Sysctl und router interface einrichten Zuerst stellen wir sicher, dass der Router sich nicht via SLAAC automatisch konfiguriert, da Init7 dies nicht (mehr) wirklich supported.…
Read more ⟶

Ejabberd cluster setup


Some notes about ejabberd clustering Setup the first node Note: If you are already running a single ejabberd node (called ejabberd@localhost) i’d recommend to simply dump mnesia and import it again: changing the node name might be too much work We will call the first node ejabberd@first.example.com Install erlang and ejabberd Create your ejabberd.cfg file In ejabberdctl.cfg: set INET_DIST_INTERFACE={10,0,0,1} (where 10.0.0.1 is the ip of first.example.com!) Start the node via ejabberdctl --node ejabberd@first.…
Read more ⟶

Dyson Pure Cool Link Internals


I got a Dyson Pure Cool Link fan a few days ago and started to tinker with it :-) (after having a look at the app and deleting it after ~5 Minutes. Ugh). Device Overview Well: It is a Fan. But a fan with a remote control and Wifi! Plug it in The fan can be used without all the Wifi stuff, but that wouldn’t be much fun. Unfortunately, you are forced to install Dysons app which has tons of ‘analytics-tracking’ built in.…
Read more ⟶

libfairydust.so - fixing closed source software


I’ve developed a small cuda/openCL wrapper library for the Brutus Cluster. The code is hosted at github and should work with cuda 4.x and ATI/AMDs OpenCL implementation. How does it work? Simply LD_PRELOAD libfairydust.so (export LD_PRELOAD=/path/to/libfairydust.so) and start ‘fairyd.pl’. The library works by ‘hijacking’ some cuda/opencl calls: Do i need it? Unless you are running a cluster: no. Libfairydust only makes sense while used in combination with a batchsystem, such as LSF.…
Read more ⟶

Qualcomm crypto driver


The tale of two identical devices I own two Xperia Z devices: One for my daily use and one to test my AOSP port. My (unencrypted) test device always feelt snappier than my encrypted for-daily-use phone. Well: That’s not a big surprise: Running with an encrypted /data partion will have some performance impact… but sometimes it just felt a little bit too slow. Searching for the root cause I quickly discovered (as expected) that my slow/encrypted device is much slower at doing any IO on /data.…
Read more ⟶

How to deploy DNSCurve


I’ve recently started to support DNSCurve on my nameservers running djbdns and you might do the same on your infrastructure: deploying DNSCurve turned out to be very easy and took about 1 hour of work! Migrating your server to DNSCurve But let’s start with the installation: First, you need to install a dnscurve-forwarder: The forwarder will listen for incoming requests on your public_interface:53 and forwards all queries to the dns-server (such as tinydns) listening on 127.…
Read more ⟶

Bittorrent specification mess


I am the author of a (rather unpopular ;-)) BitTorrent client called Bitflu and started to notice that the protocol specification went from ‘very good’ to ‘bad’ in the last few months. Sometimes there are undocumented features/extensions, sometimes it’s just hard to find the location of the documentation. This small page attempts to collect and extend the BitTorrent protocol documentation. Bencoding All clients need to implement some encoding called Bencoding (it’s like a binary form of XML).…
Read more ⟶