ネットワークとインフラに関心がある大学院生です。2028年3月に修士課程を修了予定です。
離れた拠点にある機器同士を、同じ LAN につながっているかのように通信させる仕組み(L2 透過オーバーレイ)を研究しています。従来方式は IP パケット単位の通信までしか扱えませんでしたが、Ethernet フレーム全体を転送することで、ARP・DHCP・mDNS・IPv6 の NDP/RA といった「同じ LAN の中でしか使えない通信」を拠点をまたいで扱えるようにするものです。
研究室の共同プロジェクトの一部で、私が担当しているのは検証環境の設計と構築です。
- Raspberry Pi 4 台とスイッチで、拠点をまたいだ通信が成立するかを確かめられる環境を自分で構成しました
- エージェントを入れていない素の端末を 2 台用意し、それぞれの LAN ポートの先に Bridge として動作する Raspberry Pi を 1 台ずつ配置しています
- 2 台の Bridge を 1 台のスイッチに集約し、そこからクラウドへ接続する構成にしました
- 端末側は Wi-Fi を無効化して有線のみに固定しています。通信が必ず Bridge を経由することを保証するためです
機器をどうつなぐか、何を無効にすれば検証として成立するかを考える作業が、一番面白いと感じた部分です。
浴槽での幼児の溺水事故を防ぐ見守りデバイスです。ラバーダックに Leafony(ESP32)を内蔵して浴槽に浮かべ、幼児の入水を検知して Web サーバ経由で保護者の端末に通知します。チーム開発で、私はデバイス側のプログラムを担当しました。
- 加速度センサの傾きから水上と陸上を判定する処理。しきい値を 45 度として設計しました
- 振動の標準偏差を使って入水を検知する処理
- 検知までの時間の調整と、デバッグ用の動作モードの実装
リポジトリ(チーム): https://github.com/nanocom2024/bath-guard-duck-device
- ネットワーク:L2 / L3、ARP・DHCP・mDNS・IPv6 NDP/RA、スイッチング、tcpdump
- OS・機器:Linux、Raspberry Pi、ネットワークインターフェースの設定
- 言語:Go(研究)、C++(組み込み)、C、C# / Unity、JavaScript / React / Next.js、PHP
