Results of the RIPE NCC Hackathon Version 6During 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. https://labs.ripe.net/Members/becha/results-hackathon-version-6https://labs.ripe.net/logo.png

Results of the RIPE NCC Hackathon Version 6

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 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

Six projects

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.

The network was able to support approximately 100/100Mbps and was quite stable for the two days, except the DNS service we used blocked us on Saturday morning when everybody turned up with their laptops, and did a lot of DNS in a short while.

We have since heard that ITU is now working actively in establishing IPv6 connectivity for the university again.

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 team consisting of Andy, Cristian, Evaggelos, Harry, Henrik and Samer wanted to create a highly automated lab environment to resemble basic Internet connectivity and services, based mostly on a virtualised environment. It should offer both IPv4, IPv4+IPv6 and IPv6-only environments, so trainees understand and can experience the differences.

The final result was based on a modular architecture, so that different lab environments can be set up. This was achieved by using docker and automation is used to create repeatable lab setups, defining modular PODs of different type, that communicated with each other via BGP routing. Routing containers run BIRD4 and BIRD6, DNS container runs BIND, web container runs NGNIX and client container offers SSH. This provides, for example, a lab that illustrates how DNS name resolution enables migration to IPv6.

3. "IPviz6"

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: https://thewildhorse.github.io/IPv6TreeMap/

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.

Having fun

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

Conclusions

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.

1 Comment

It was really great to become a part of IPv6 Hackathon! Nice people, well-organized event, nice place, good memories forever!!! Thanks to ISOC, DKNOG, Comcast and the IT University of Copenhagen! And of course a very big thanks to you, Vesna! Hope for the future cooperation)

Add comment

You can add a comment by filling out the form below. Comments are moderated so they won't appear immediately. If you have a RIPE NCC Access account, we would like you to log in.

The RIPE NCC uses cookies. Some of these cookies may have been set already. More information about our cookies can be found in our privacy policy. You can accept our cookies either by clicking here or by continuing to use the site.