Cambus.net

Frederic Cambus online presence.

RIPE Atlas : An Internet Measurement Network

I’ve been taking part in the RIPE Atlas community since a few weeks already, a project which aims to build the biggest Internet measurement network ever. By doing so, I’m now hosting a small probe (built around a Lantronix XPort Pro module) sent by the RIPE NCC which is doing round-the-clock reporting.

This is a picture of my setup, the probe is connected to an USB power adapter :

RIPE Atlas Setup

And here is a closer picture of the probe :

RIPE Atlas Probe

Basically, the probe is measuring round-trip time (RTT) to the each of the 13 root servers and also does ”anycast instance discovery” measurements, which is precisely why I find this project particularly interesting. Put simply, it allows to know which instance of a given root server you end up querying; for example, when I query the K-root server, I end up connecting to the DENIC operated instance located in Frankfurt (Germany). The RIPE NCC produce publicly available maps using the collected metrics, which allow gravitational radius visualizations for each server instances. For reference, here is list of all root servers instances.

Unexpectedly, the probe is also a nice way to monitor my Internet connection, which according to this graph is pretty stable :

RIPE Atlas Uptime

OpenDNS Stickers

Earlier last week, I received the OpenDNS stickers I requested through their dedicated e-mail account at the end of December. It was a nice suprise, as I was just coming back from work and had totally forgot about this. They are some nice pieces of DNS related collectables, and I couldn’t resist posting a picture here :)

Even if I’m not using their public DNS servers on a permanent basis, they sure proved useful along the years and saved me more than once in some desperate situations. I should mention that I also appreciate their efforts in raising DNS awareness to the general public. So thank you OpenDNS!

PS : They now have a dedicated page for the stickers, and you can request some here.

OpenDNS Stickers

Hurricane Electric IPv6 Certification

I recently completed Hurricane Electric IPv6 certification and reached the “Sage” level. This was a fun and educational process and I would recommend it to anyone interested about the topic, as it’s a really nice way to start getting familiar with IPv6.

Also, I should mention certified IPv6 Sages are entitled to receive a free IPv6 themed t-shirt :)

IPv6 Certification Badge for fcambus

ANSi Web Browser Concept

This is an attempt at building a text mode Web browser interface. It has built in tabs, back and forward buttons, an home button, an address bar with favicon display, bookmark icon, and country flag. It also comes with a few default extensions : a pagerank plugin, a currency converter, a weather plugin, and a music player as well. What else could you ask for? The possibilities are infinite.

By the way, in case you wonder if such a browser makes sense in the social media era, the answer is YES : you can of course share the pages on various social media sites. The icons used come from the ANSi Social Media Icon Set (CC-BY-SA 3.0 licensed).

The rationale behind this design is quite simple : text mode is the undisputed best way to display information on a computer screen. There is no other option.

You can download this mockup as an ansi file, or converted in PNG (with iCE colors turned ON) for easier viewing.

Happy New Year 2012!

ANSi Web Browser

Compiling Apache 1.3.x on Modern Linux Distributions

For a lot of reasons, some people still want to be able to run Apache 1.3 on modern Linux distributions, and unfortunately for them, it doesn’t compile out of the box anymore. The encountered errors are, however, easy to fix and you will learn how to do so in this tutorial.

We start by downloading and unpacking sources of the latest 1.3.x version, which happens to be 1.3.42 :

wget http://archive.apache.org/dist/httpd/apache_1.3.42.tar.gz
tar xvfz apache_1.3.42.tar.gz

We then run the configure script :

cd apache_1.3.42
./configure

Most likely, this will fail and this error message will get displayed :

+ Warning: Your 'echo' command is slightly broken.
+ It interprets escape sequences per default. We already
+ tried 'echo -E' but had no real success. If errors occur
+ please set the SEO variable in 'configure' manually to
+ the required 'echo' options, i.e. those which force your
+ 'echo' to not interpret escape sequences per default.

+ NOTE: You may also need to edit the shell invoked by
+       'configure'. Some shells (e.g. dash) have a
+       faulty echo builtin.
+ using installation path layout: Apache (config.layout)

This happens because in most modern distributions, sh is just an alias to dash, and dash interprets escape sequences which are therefore not echoed as they should.

The workaround is to simply use bash instead of sh to run the script :

bash ./configure

Now, let’s compile everything :

make

After compiling a few files, the process will halt with this error :

gcc -c  -I../os/unix -I../include   -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DNO_DL_NEEDED `../apaci` htpasswd.c
htpasswd.c:101:12: error: conflicting types for ‘getline’
/usr/include/stdio.h:671:20: note: previous declaration of ‘getline’ was here
make[2]: *** [htpasswd.o] Error 1

The internal Apache getline function is conflicting with the getline function from the standard I/O library. We can simply fix this by renaming the getline function, which is defined and called in htdigest.c, htpasswd.c, and logresolve.c :

sed -i 's/getline/apache_getline/' src/support/htdigest.c
sed -i 's/getline/apache_getline/' src/support/htpasswd.c
sed -i 's/getline/apache_getline/' src/support/logresolve.c

Let’s run make again, and everything should finally compile without problem :

make

Please note, however, that Apache 1.3 branch reached end of life and is therefore depreceated and not supported anymore. It means you will not be getting any bugfixes or security updates and should anything happen, you will have to patch the source files yourself.