During a weekend of coding and fun, we have achieved our goal to hack together a set of tools that can help with IPv6 adoption and to visualise IPv6 deployment. Join us in celebrating the results of the sixth RIPE NCC hackathon, with links to documentation, pictures and stories.
In November 2017, the RIPE NCC's sixth hackathon took place as part of Danish IPv6 Week. The goal of the hackathon: to promote IPv6! We had support from both ISOC and DKNOG, with Comcast acting as sponsor. The venue for the event was the IT University of Copenhagen.
As is tradition: photos of laptop stickers
In search of IPv6 Connectivity
This hackathon was to be our second in Copenhagen - the first having been the RIPE Atlas Interface hackathon attached to the RIPE 72 meeting back in May 2016. That time we were in the Tivoli Congress Centre, which was a nice venue, but I was looking for something more informal this time.
Also, even though all the other events of Danish IPv6 week were held at the Tivoli, the network there did NOT support IPv6. In fact, after contacting many potential alternative venues in Copenhagen, including IT University, I realised that none of them would be able to offer IPv6 connectivity!
Therefore, we accepted the offer by ITU, and decided to create our own IPv6 tunnel, as one of the side-projects for the hackathon. This situation was mentioned during IPv6 Day by Anders Mundt Due, from DeNET, in his presentation on IPv6 at .dk and university networks.
Cooperation and hard work
We all started working together before we even got to Copenhagen: we used a mailing list and EtherPad and IRC to coordinate the projects, learn about each other and share ideas and data. The jury (John, Jan, Nathalie, Sebastian, Christian and Vesna) had to make difficult decisions as to which applicants to accept, since we had limited support for funding travel and limited space. Participants suggested projects and brainstormed. Logistics facilitators made sure we had lots of food and drinks and power-cables. And the RIPE NCC colleagues from Operations Department helped us set up five Virtual Machine servers for collaborative access and a physical machine to carry data with us - kudos, we are very grateful for that!
Brainstorming and work in progress
From many suggestions on the list and during the initial introduction, several projects crystallised, teams formed, and the intensive work took place. Between stroopwafels, cappuccino breaks and sandwiches, we enjoyed the creative space of the Design Lab within ITU, with glass windows on all sides, two levels and many whiteboards.
0. IPv6 Network Setup
Project Zero was not officially part of the hackathon results, but I do find it important to mention it. Before the start of the hackathon, on Friday morning, Henrik and Sebastian made a small IPv6-enabled dual-stack network at ITU using our own equipment. The uplink was IPv4 only, but using a public IPv4 address. So with a Soekris 5501 hardware and the OpenBSD operating system, we could create an IPv6 router with tunnel to Hurricane Electric. This gave us a routed IPv6 /48 which we could distribute using a local Juniper EX2200-C switch and three Ubiquiti Networks UniFi APs.
1. “PCAP or it didn’t happen”
Moritz presented his idea to add IPv6 capability to PCAP (packet capturing) tools, in order to improve troubleshooting capabilities for network administrators. Packet Capturing tools such as tcpdump, WireShark and others use the "libpcap" library, and until that day it did not support symbolic filtering for ICMPv6 packets type field values (e.g. icmp6-echoreply or icmp6-routeradvert).
Together with Mathias and Daniel, they dived into the thousands lines of bytecode and assembly language of Berkeley Packet Filter (BPF). Most of the work was done during the Saturday night, and a pull request was submitted to the maintainers of the libpcap source code.
To make their results more interesting to the rest of participants, during the second day they acquired a Raspberry PI, and made a floppy-disk drive play music while reading Microsoft DOS floppy disc!
At the closing party on Sunday, we got the news that the pull request was merged! That means that you can now download the newest version of libpcap from GitHub , with the extended support for ICMPv6 - or you can wait until your favourite OS gets updated.
This is a big step towards feature-parity between IPv4 and IPv6 tools for network operators and sysadmins.
There is still more work to be done, for example: dealing with extension headers. Stay tuned!
2. “Pocket Internet”
There were three suggested projects that focused on educational aspects: teaching IPv6 to networking students or "civil society". They have merged into the one with catchiest name - Pocket Internet.
The idea for this project came from Dave Plonka, who could not attend in person, but was very generous with sharing input and references. As there is still a need to improve IPv6 address space activity visualisations, Pedro made a proposal to work on this, and together with Igor, Luuk, Nico and Thomas came up with pretty visualisations that can give useful insights into differences of IPv6 deployment rates per country, and compare that with other metrics: e.g. population, gross domestic product (GDP), or CO2 emissions, in "tree map" and "bubble chart" form. The tools are both extendable - you can add your own data sources (in JSON) - and highly versatile and customisable, since they are based on Google Charts. The visualisations can also be embedded in your own pages - please let us know if you do! Here is the live version for you to play with:
4. “IPv4 and IPv6 Disparities” and TraceMonks
The largest team was mostly comprised of academics, and Greeks, with a sprinkling of network operators: Andrea, Baptiste, Ioana, Nikos, Petros, Richard, Shahin and Vasileios. They started by wanting to compare IPv4 & IPv6 disparities, both on control and data-plane - and ended up with combining existing RIPE Atlas visualisation with additions that made it into TraceMonks!
This tool is useful if you are trying to optimise IPv6 paths based on the measurement of disparities between IPv4 and IPv6 BGP paths and RIPE Atlas traceroutes. If you want to continue working with this data, you can use publicly available API
and a dataset of full mesh (100x100 ASNs ) traceroutes.
5. “The Status of IPv6”
The team with the best workspace (on the balcony!) has made a webpage aggregating multiple data sources, to give us an holistic and historical view of the IPv6 adoption. Asbjørn, Christoffer, Ioana, Kristina, Nico and RIPE NCC staff, Christian, Jasper and Steve, have made many interesting combinations of routing data and RIR allocation statistics.
Diversity and having fun
Between twenty-four participants, five RIPE NCC staff and three more jurors, we were people from 18 different countries - the largest geographical diversity in all six hackathons! Gender diversity was not as impressive, one of the bigger challenges for the organisers is still to make sure there are more women included.
In order to make the hackathon a fun event, we ticked several usual boxes and added a few new experiences:
- Visit to a local hackerspace = Labitat
- Good coffee = cappuccino machine!
- Stickers exchange
- Topical T-shirts!
- Much stroopwafels
- Good beer = (multiple) visit(s) to the local craft beer places
- Teasing blockchain colleagues who had an event in the same venue
- Sauna and dipping in the coooooooold canals during the lunch break
Since RIPE NCC hackathons are not competitive, every team has gotten a prize in the form of stroopwafels or some other Dutch delicacy. However, the jury agreed that the project with most impact is the "libpcap" improvement, and therefore Moritz got the honour of presenting their work at Danish IPv6 Day.
The sixth hackathon was one more in the series of successful events. People who participated were very positive about what they learned, how they connected with others and how their project is going to contribute to the increased deployment of IPv6.
I am grateful to all participants, jurors, ITU, catering and sponsors for making this hackathon a success! See you again in 2018, and of course, on-line.
All Results in One Table
|PCAP or It Didn't Happen||Code||Slides|
|IPv4 & IPv6 Disparities||Code||Slides|
|The Status of IPv6||Code||Slides|
- All the presentations
- All the code
- Original info about the hackathon:
- ISOC blog post
Merged pull request in libpcap