IETF101 Hackathonに参加して来ました!
こんにちは。アーキテクトの永田です。
今回、初めてIETF Hackathonに参加して来ました。今後参加したいと考えている方向けに、Hackathonってこんな感じだったよという内容をお伝えできればと思います。
IETF Hackathonについて
Hackathonとは
まず、Hackathon(ハッカソン)についてです。 Hackathonは、ハック(hack)とマラソン(marathon)を組み合わせた造語になり、これらの単語の意味の通り、次の特徴を持ちます。
- エンジニアなどが複数メンバーで一つのチームを組む
- 与えられたテーマ・目的に向かって、短期間で集中して成果を競う
IETFについて
IETFではインターネット技術の標準化を行う団体です。オープンな組織であり誰でも参加が可能です。
IETFで標準化された技術で有名なものとしては、皆さんが普段ブラウザでWebページを見るときに何気なく使用しているHTTP1.1があげられます。 最近ですと、Googleが開発しYouTubeにも採用したQUICや、HTTPの最新バージョンであるHTTP/2もIETFで標準化されています。
レピダムでは標準化活動の一環として、このIETFに参加しています。
年に3回会議が開催され、今回で101回目のため、IETF101と呼ばれます。
IETF Hackathonの特徴
IETFでは、2015年3月のIETF92からIETF Hackathonが開催されており、今回のIETF101で丁度10回目となります。
- IETF meetingの前々日と前日の2日間に渡って集中的に実施(土曜日、日曜日)
- IETF標準化に関連することがテーマ
- どのテーマに参加するかは参加者の自由
- 動くコード(Running Code)が重視される
- 内容はプロトコル実装や相互運用性テスト(interoperability)が多い

参加者は毎回増えており、今回は過去最大とのことです。
- 240名の参加者(現地220名、リモート20名)
- 35個のプロジェクト

写真で見ても分かる通り、かなり多くの参加者がいて、会場は熱気に包まれていました!
Hackathonの流れ
Hackathonに参加するまでの流れ
次にIETF Hackathonに参加するまでの流れは以下となります。(簡単ですね!)
- 参加するプロジェクトを決定(既存プロジェクトから選択)
- プロジェクト一覧はHackathon Wikiに記載される
- リンクはIETF101 Hackathonのもの。
Hackathon Wiki - HERE!
より辿れる。 Projects Included in Hackathon
がプロジェクト一覧。- 自らプロジェクトを主催することも可能(=Championになる)
- プロジェクトの主催者(Champion)に参加したい旨を連絡
- IETF Hackathonへ参加登録
- Hackathonページの
Signup for the Hackathon - HERE
より辿れる - 登録は無料
- 参加者一覧も参照可能
View the list of Hackathon Attendees - HERE
より辿れる
- Hackathonページの
今回私が参加したのは、弊社で標準化支援活動をさせて頂いているNTTコミュニケーションズ西塚様がchampionをされているDOTS Interopになります。
Hackathon当日の流れ
Hackathon当日のタイムテーブルですが、1日の密度がかなり濃くなっています。
以下は、今回のIETF101 Hackathonのタイムテーブルです。
- Saturday, March 17
- 08:00: Room open for setup by project champions
- 09:00: Room open for all - Pastries and coffee provided
- 09:30: Hackathon kickoff
- 09:45: Form Teams
- 12:30: Lunch provided
- 15:30: Afternoon break - Snacks provided
- 19:00: Dinner provided
- 22:00: Room closes but is NOT locked
- Sunday, March 18
- 09:00: Room opens - Pastries and coffee provided
- 12:30: Lunch provided
- 13:30: Hacking stops, prepare brief presentation of project
- 14:00: Project presentation to other participants and judges
- 15:45: Closing remarks and opportunities for next time
- 16:00: Hackathon ends
- 17:00: Tear down complete
1日目に受付をします。名前を伝えるとネームカードとHackathon Tシャツが貰えます!

右側がHackathonのTシャツ+ネームカードです。左側がIEFTのです。
ストラップの色の違いは、白が写真撮影OKの人、赤が写真撮影NGの人になっています。
1日目は、朝9時ぐらいに始まり夜22時まで続く感じです。お昼とかも食べながらひたすら実装やら解析やらをしている感じですね。(訓練された開発者の方であれば、余裕なスケジュールです!)
2日目は朝9時ぐらいに始まり、午後一には終わる感じです。
現地に着いたら、プロジェクト毎にテーブルが確保されていますので、そこに向かうと合流できます。

(ISOCが撮影した写真も公開されていました。)
IETF HackathonページでのDOTSプロジェクトテーブルの様子(ISOC撮影)
その後、プロジェクトのchampionの進行で、interopなど予定していた作業が進行していきます。
なお、現地で参加する場合、朝昼晩3食+おやつ付きです!

今回のIETF101 Hackathonの実施内容(DOTS interop)
interopで実施したこと
今回のHackathonのinteropでは、DOTS Signal Channelのdraft-18を元にした、相互運用性テストを行いました。
- 最新draft仕様に沿ったparameter(URI-path, cuid/mid)の確認(実装可否の確認)
- DOTS Gatewayの接続検証、Gateway用parameter(cdid)の確認
- DTLS PKIに加え、DTLS PSKでの接続確認
今回、IETF101 Hackathonの前に、3回ad-hocでプロジェクト内部のinteropを行ったおかげで、大きなトラブルもなく進行出来ました。
interopで実際に使ったソースコードは、go-dotsのgithubにて公開されています!
今回は色々と実装&バグフィックスしながらinteropを行いました。(詳細はcommit log参照)
draftの想定通りに実装ができるかの確認、draftの記載が曖昧なところの意識合わせなどが、実際に動くコード(Running Code)を使うことによって可能となります。
interopの実施結果
DOTS interopで実施したことは、Hackathon2日目で各プロジェクト毎に発表が行われます。 DOTSはChampionである西塚様が発表されました。
発表のスライドはIETF101のHackathonページで公開されています。 IETF101-DOTSinterop-Hackathon.pptx
スライドの大きなポイントとしては以下になります。
- 実機(NCC Group)にもDOTS serverが組み込まれて動いており、OSS DOTS client(nttdots)とのMitigationRequestの接続性が確認できたこと
- DOTS signal channelのdraft仕様の安定が確認できたこと(ライブラリなど実装の課題から、直近でdraftの仕様を大きく変えたが、安定して接続)
- DOTS Gatewayの仕様に対する議論(cdidの使い方)
また、スライドの最後で、レピダムの名前も紹介して頂いています!

最後に
今回、IETF101 Hackathonに参加してみて一番印象に残っているのは、皆休みも忘れて実装/議論に真剣に取り組んでいる姿でした。 また、その後のIETF会議でもHackathonの結果含め積極的に議論が交わされており、協力して世の中をより便利に安全にしたいという強い思いが直に感じられました。
今回の経験を通し、標準化活動により世の中に貢献できること、Hackathonがその標準化を1歩ずつ着実に進めるために重要な役割をはたしていると、改めて確認することが出来ました。
いかがでしたでしょうか。
IETF Hackathonの雰囲気が伝わることで興味を持つ人が増え、今後Hackathon仲間が増えてくれるとうれしいです!
レピダムでは、全てのモノがインターネットに繋がっていく時代において、これからもセキュリティー・オートメーション分野における技術を推進してまいります。
また当社では、IETFなどの標準化活動やそれらを元にしたOSS開発を主に行なっております。それらの知見を元にし、商用システムのアーキテクチャ設計・開発、インフラ設計、セキュリティコンサルなども実施しております。
興味のある方は、ぜひお気軽にお問い合わせください!