Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORACOM」/vpn-for-esp32-using-wireguard-and-iot-platform-soracom

SORACOM
October 02, 2021

 5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORACOM」/vpn-for-esp32-using-wireguard-and-iot-platform-soracom

2021年10月2日(土)の Maker Faire Tokyo 2021ミニプレゼンテーションで、松下が発表した「5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORACOM」」の資料です。

SORACOM

October 02, 2021
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. 5分で解説! ESP32 で使える VPN 「WireGuard」と IoT プラットフォーム「SORACOM」 Oct. 2, 2021

    Maker Faire Tokyo 2021 / ミニプレゼンテーション #MFTokyo2021 株式会社ソラコム テクノロジー・エバンジェリスト 松下 享平 (Max / @ma2shita)
  2. WireGuard-ESP32-Arduino を使う #include <WireGuard-ESP32.h> static WireGuard wg; char private_key[] =

    "{YOUR [Interface] PrivateKey}"; IPAddress local_ip(192, 168, 200, 254); // [Interface] Address char public_key[] = "{YOUR [Peer] PublicKey}"; char endpoint_address[] = "{YOUR [Peer] Endpoint}"; int endpoint_port = 11010; configTime(9 * 60 * 60, 0, "ntp.jst.mfeed.ad.jp", "ntp.nict.jp", "time.google.com"); delay(3000); // Wait for adjust wg.begin(local_ip, private_key, endpoint_address, public_key, endpoint_port); 接続 (setup()内 等) 設定 (ヘッダ部 等) 取り込み 1 2 3 公式からインストール可能 時刻合わせがポイント WireGuard サーバーから 払い出された値を設定 https://github.com/ciniml/WireGuard-ESP32-Arduino 7行 3行
  3. TLS → WireGuard で 141KB のダイエット 0 100,000 200,000 300,000

    400,000 500,000 600,000 700,000 800,000 900,000 MQTT+TLS MQTT+WireGuard 【参考】MQTTのみ フラッシュメモリーの使用量 MQTT+TLS MQTT+WireGuard 【参考】MQTTのみ -141KB しかもL3レイヤー上で トンネリング = 上位アプリ不問の 自由度 ESP32(M5Stack Basic)上でWireGuardを使用したMQTT実装サンプル https://qiita.com/ma2shita/items/0f0dce8ff0e45cf9fbac 素の実装に +30KB で WireGuard が組み込める
  4. WireGuard のサーバー側は? Linux Box 等で構築 ⚫ Linux kernel 5.6 でマージ済み

    ⚫ Raspberry Pi なら pivpn.io で簡単設定 セキュアリンクサービス 「SORACOM Arc」 ⚫ 2021年6月から開始済み、無料枠あり ⚫ Wi-Fi 向けの VPN に加えて、データ転送サービス「SORACOM Beam」等の IoT の開発手間を減らすサービスも利用できるように!
  5. MQTT over WireGuard で MQTTS (AWS IoT Core) へ 接続するには?

    WireGuard NGINX + Stream モジュール MQTT MQTTS AWS IoT Core Wi-Fi SORACOM Arc SORACOM Beam MQTT Wi-Fi NGINXのStreamモジュールでMQTT <=> MQTTS変換をしてAWS IoT Coreへ接続する https://qiita.com/ma2shita/items/e0b83868bf64834f3bc6 ESP32(M5Stack Basic)上でWireGuardを使用したMQTT実装サンプル https://qiita.com/ma2shita/items/0f0dce8ff0e45cf9fbac MQTTS
  6. ESP32で使えるVPN「WireGuard」と IoTプラットフォーム「SORACOM」 ✓ WireGuard は ESP32(M5Stack) で使える lwIP Stack が動くプラットフォームなら検討価値あり

    ✓ TLS 実装よりも軽量、L3 上 VPN で自由度あり 空いた141KBを有効活用できる ✓ サーバー側も自力で実装&運用可能 SORACOM Arc + SORACOM サービスでも同じことができる (だいたい無料枠アリ!) ✓ 続きは Web で! → Twitter: @ma2shita で URL 紹介します! #MFTokyo2021 もしくはフォローいただければ!