On 4-5 November, a group of enthusiastic and skillful people gathered at the 6th RIPE NCC hackathon with a theme of IPv6. The event was organized by RIPE NCC and DKNOG, sponsored by Comcast, hosted by IT University of Copenhagen and aimed to bring together open-minded developers and network engineers to work on different ideas and projects from the IPv6 field.
I was honoured to be a jury member and even before the hackathon we were quite busy rating all the submissions that came in, as the number of hackathon participants was limited. All potential participants had to submit a short bio, explain what kind of development (programming) knowledge they had, and also what their ideas or expectations for the hackathon were. We selected 24 participants – and what a skillful bunch that was! In total we were 33 people in the room, 24 participants, 5 jurors and 4 RIPE NCC staff for on-site support.
On Saturday, 4 November, the group came together at IT University of Copenhagen and after a short opening and update on logistics and rules of the hackathon, people got to work. First was a “speaker’s corner”, where everyone with an idea for a project explained it in a few sentences. After that, people chose what interested them, talked to the idea proposers, and formed interest groups. At the end, we had 5 interesting projects.
The Pocket Internet
The “Pocket Internet” project aimed to put together an automated IPv6 lab setup that can be easily installed and started for educational purposes. The idea was to setup a VM image with a bunch of docker containers that would start a BGP router, DNS server and all other applications, set up the internal networking on IPv6 and connect all the docker containers internally. Quite easy, automated, and very useful for IPv6 training courses and everyone that needs an IPv6 lab in a pocket.
IPv4 and IPv6 Disparities
The “IPv4 and IPv6 Disparities” project was all about finding the differences in IPv4 and IPv6 peering and BGP adjacencies, as well as differences in traceroutes to the same ASN between IPv4 and IPv6. Quite useful stuff if you are trying to find where your peering differs between the two protocols! The product that came out was for some reason called TraceMonks, as they started with TraceMon, then they decided that it should be a TreaceMon 4+6, next step was to solve the math problem in the name so it became TraceMon 10, that lead in somehow cryptic TraceMon X name, shortened phonetically to TraceMonks.
“IPvizzz6” project was all about visualization of IPv6 deployment on the globe.
Which country has what amount of IPv6 assignments, compared to other countries and to the world – but the interesting thing was that they used quite unusual metrics, like “country GDP” and such.
PCAP Or It Didn’t Happen
The “PCAP or it didn’t happen” project was developed by the smallest group, just 3 people, who started looking into libpcap source code to add some IPv6 functionality that was still missing. They realized that, for example, you can’t capture the network traffic with libpcap and filter out just icmpv6 packets, so they went into over 10,000 lines of code, figured out where to add this support and also fix the BPF filter code generator (that was the biggest challenge of them all).
Status of IPv6
“The status of IPv6” project was another visualization of IPv6 implementation around the globe, but here they didn’t focus on direct comparisons between countries, but more on the graphs of different indicators and visualization.
After the first day, all five groups presented their day’s work and were asked what they were missing and what they needed for day two. Interestingly, a majority of them said “a UX designer.” The day ended with a pizza for dinner and a pint or two in the pub.
On Sunday, 5 November, the groups continued their work. Everyone was trying to contribute as much as possible and the working spree and enthusiasm was unimaginable; people in the different groups engaged with each other, with lots of discussion and staring at each others laptops and other things that make group work efficient, inspirational, and full of ideas.
To stay neutral and be able to decide on the winner at the end of the day, jury members weren’t allowed to join any of the groups, but I was itching to go in and become a part of these projects and flow of ideas and work in all these projects!
By the end of the day, the groups started forming to make a final presentation on their two days of work.
The jury retreated for deliberation and from the beginning it was difficult to choose a clear winner, so we decided to vote like at Eurosong – pick the top 3 projects and give them 3, 2 and 1 point each, then calculate the results and announce the winner.
The prizes were StroopWafels, very tasty biscuits from Netherlands, and here are the winners!
3rd place: IPvizzz6
- Igor, Luuk, Nico, Pedro, Thomas
- Visualising global IPv6 deployment rates, comparing with various other metrics: GDP, CO2 emissions…
- Pretty, extendable, versatile, can be embedded
2nd place: “Pocket Internet” = educational lab in containers
- Andy, Cristian, Henrik, Harry, Evangelos, Samer
- Use-case: teaching networking basics, including IPv6, easy to start-up VM with Docker containers with DNS, BGP, web servers in “pods”, “pods” emulate inter-connected ASN
1st place: “PCAP or it didn’t happen”
- Daniel, Matthias, Moritz
- libpcap library re-write to support IPv6 filtering
- Most benefits for most users
- PLUS music by floppy-disc drive!
- Will be maintained in the future
- Pull request by libpcap folx already accepted! https://github.com/the-tcpdump-group/ libpcap/pull/660
The winners did a great presentation and also demonstrated how to write a timed sequence of sending ICMPv6 packets, capture them by libpcap, filter them out, and send the result to an old floppy drive that would start making some noise with its motor that is moving the head backwards and forward – and a result was a tune that we all know.
We took a video of the winners presentation and floppy drive performance.
Congratulations to everyone involved in this hackathon. It was great to be part of such an enthusiastic, smart, hard working and skillful group that did a lot of work to make IPv6 a little better!
We took a lot more photos over the two days, too. Check them out in this Flickr Photo Album.
Danish IPv6 Day
On Monday, 6 November, we gathered at Tivoli Hotel for Danish IPv6 day, where after a welcome speech by Chris Buckridge from RIPE NCC, my presentation on the RIPE-690 BCOP document followed and tried to raise some awareness about what sizes of IPv6 prefix delegations we need to choose for end-customers and how to assign them – statically or dynamically.
Nina Bargisen from Netflix explained why Denmark needs an IPv6 day, as they see just 3% of traffic from Denmark flowing to Netflix services on IPv6.
Tomasz Kossut from Orange Poland explained how they did an IPv6-only deployment in their mobile network, having over 2 million devices on IPv6-only today. He was followed by Torbjörn Eklöv, who explained how to deploy IPv6 in a scalable way. Before lunch we had Vesna Manojlović presenting the results of the hackathon and Moritz from the winning team explaining what they did in their project.
After lunch, Kristoffer Larsen from Telia explained how they did their IPv6 deployment and what their plans are, followed by Henrik Kramshøj from NorduNET, trying to squeeze in 30 minutes everything about IPv6 security. I believe that this presentation created the longest queues at the audience microphone.
Anders Mundt Due from DeNET explained IPv6 at .dk and university networks and for the end, Nathalie Trenaman went into the very interesting topic of Building IPv6 communities and lessons learned from 10 years of IPv6 training.
It was a quite intense 3 days of IPv6-related work and topics in Denmark. I hope to see this kind of work happen again and gather equally enthusiastic and hard working people like this time. I was deeply impressed!
Big thnx to all RIPE NCC staff on the ground, specially to Vesna Manojlović and Nathalie Trenaman for organizing the hackathon and DK IPv6 day.
Want to get started on your own IPv6 projects? Visit our Start Here page to begin.