Blog

2018.04.18

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)が多い
IETF受付
IETF受付

参加者は毎回増えており、今回は過去最大とのことです。

  • 240名の参加者(現地220名、リモート20名)
  • 35個のプロジェクト
Hackathon会場の様子
Hackathon会場の様子

写真で見ても分かる通り、かなり多くの参加者がいて、会場は熱気に包まれていました!

Hackathonの流れ

Hackathonに参加するまでの流れ

次にIETF Hackathonに参加するまでの流れは以下となります。(簡単ですね!)

  1. 参加するプロジェクトを決定(既存プロジェクトから選択)
    • プロジェクト一覧はHackathon Wikiに記載される
    • リンクはIETF101 Hackathonのもの。Hackathon Wiki - HERE!より辿れる。
    • Projects Included in Hackathonがプロジェクト一覧。
    • 自らプロジェクトを主催することも可能(=Championになる)
  2. プロジェクトの主催者(Champion)に参加したい旨を連絡
  3. IETF Hackathonへ参加登録
    • HackathonページのSignup for the Hackathon - HEREより辿れる
    • 登録は無料
    • 参加者一覧も参照可能View the list of Hackathon Attendees - HEREより辿れる

今回私が参加したのは、弊社で標準化支援活動をさせて頂いている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シャツ
Hackathon Tシャツ

右側がHackathonのTシャツ+ネームカードです。左側がIEFTのです。
ストラップの色の違いは、白が写真撮影OKの人、赤が写真撮影NGの人になっています。

1日目は、朝9時ぐらいに始まり夜22時まで続く感じです。お昼とかも食べながらひたすら実装やら解析やらをしている感じですね。(訓練された開発者の方であれば、余裕なスケジュールです!)
2日目は朝9時ぐらいに始まり、午後一には終わる感じです。

現地に着いたら、プロジェクト毎にテーブルが確保されていますので、そこに向かうと合流できます。

dots interop
dots interop

(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の使い方)

また、スライドの最後で、レピダムの名前も紹介して頂いています!

wrapup_lepidum
wrapup_lepidum

最後に

今回、IETF101 Hackathonに参加してみて一番印象に残っているのは、皆休みも忘れて実装/議論に真剣に取り組んでいる姿でした。 また、その後のIETF会議でもHackathonの結果含め積極的に議論が交わされており、協力して世の中をより便利に安全にしたいという強い思いが直に感じられました。

今回の経験を通し、標準化活動により世の中に貢献できること、Hackathonがその標準化を1歩ずつ着実に進めるために重要な役割をはたしていると、改めて確認することが出来ました。

いかがでしたでしょうか。
IETF Hackathonの雰囲気が伝わることで興味を持つ人が増え、今後Hackathon仲間が増えてくれるとうれしいです!

レピダムでは、全てのモノがインターネットに繋がっていく時代において、これからもセキュリティー・オートメーション分野における技術を推進してまいります。

また当社では、IETFなどの標準化活動やそれらを元にしたOSS開発を主に行なっております。それらの知見を元にし、商用システムのアーキテクチャ設計・開発、インフラ設計、セキュリティコンサルなども実施しております。
興味のある方は、ぜひお気軽にお問い合わせください!