Slide 1

Slide 1 text

創明寮のNAT越え奮闘記 学部一年 s1290035 高棟雄斗(しんぶんぶん[@shinbunbun_]) 会津大学 OB/OG LT大会 2021

Slide 2

Slide 2 text

自己紹介 - 人間です - s1290035(学部一年) - AizuGeekDojo SA - Zli運営 - LINE API実践ガイド LINEログイン章 著者 - Epson Hack Trek2021優勝 - コミュニティ活動いろいろ - 最近やってること - 3社並列で仕事 + サークル6個 + 激重PJのPM - Nuxt.js、Node.jsを使ったWeb開発 - AWS使ってインフラ構築 - ラズパイとかESP32とかで遊ぶ - アイデンティティ管理、認証系 - 最近CTFと競プロを始めた - ツイ廃 - 保有資格: 漢検3級、英検2級、数検2級、応用情報技術者試験 ポートフォリオ(shinbunbun.info) @shinbunbun_sub @shinbunbun_

Slide 3

Slide 3 text

1ヶ月前の僕の部屋 今はもうちょい綺麗(なはず ...)

Slide 4

Slide 4 text

最近の生活 平日 休日

Slide 5

Slide 5 text

第一章 (ほぼ)無制限なDocker用ストレージを 求めて

Slide 6

Slide 6 text

Dockerを使おう - ローカルが汚すぎて嫌になった - なんかしらんけどnpmとpipが死んだ - GitHubのリポごとにDocker立てて開発

Slide 7

Slide 7 text

ラズパイDocker - コンテナ立てすぎてMacの容量たらん... - →そうだ、ラズパイに6TBの外付けHDDつないでそこに Docker立ててリモートアクセスしよう - ついでにVPNサーバを立てることにより、家の外からでもアクセス 可能に

Slide 8

Slide 8 text

Ver.1 実家時代

Slide 9

Slide 9 text

Ver.1 実家時代 - ラズパイにOpenVPNサーバを立てて、秋葉で買ったジャンクサーバをPKIの 認証局に - サーバ証明書、クライアント証明書を各々のデバイスに発行 - ラズパイ上でTUNデバイスをシミュレートしてL3でトンネリング - クライアントからのユニキャストパケットは全てOpenVPNサーバを経由 - ポート開放してDDNSを設定 - ラズパイ上のDockerへはVSCodeのDev Containerを使って接続 - ほぼローカルのDockerと同じように開発ができる

Slide 10

Slide 10 text

そして創明寮へ引越し... え!?NATあるじゃん!!!!! 第二章へ続く...

Slide 11

Slide 11 text

第二章 そうだ、NAT越えしよう

Slide 12

Slide 12 text

検討した案 1. ngrokでどっかーん 2. SoftEtherのVPN Azure使えばいい感じにしてくれるらしいからそれを使う 3. 実家のネットワークにラズパイを接続してそれ経由でアクセスする 4. VPS立ててそいつを経由させる - 条件 - mDNSを使いたいのでマルチキャストパケットが通るL2ブリッジが良い - 部屋にあるPCにVNCでアクセスとかもしたいから、できれば部屋のネットワーク に接続したい

Slide 13

Slide 13 text

1. ngrokでどっかーん 論外

Slide 14

Slide 14 text

2. SoftEtherのVPN Azure - やってみたけど上手くいかなかった - なんかしらんけどめっちゃ速度遅い - サーバの管理ツールがWindowsしかない - (一応Macもあるけど微妙...)

Slide 15

Slide 15 text

3. 実家のネットワークにラズパイを接続してそれ経由でアクセスする - やってみた

Slide 16

Slide 16 text

Ver.3 実家経由で接続

Slide 17

Slide 17 text

Ver.3 実家経由で接続 - ラズパイが足りなかったので、TP-Linkのルーターに付随しているOpenVPN サーバ機能を利用 - TUNデバイスしか選べないため、IPトンネルしか使えない - IPトンネルはL3なのでマルチキャストが通らない - DHCPが設定できない - 証明書認証が実装できない 使い物にならん...

Slide 18

Slide 18 text

4. VPS立ててそいつを経由させる - やってみた

Slide 19

Slide 19 text

Ver.4 EC2経由で接続

Slide 20

Slide 20 text

4. VPS立ててそいつを経由させる - AWSのEC2を使用 - 普通に使うと高いのでスポットインスタンスで - クライアントから送信する全トラフィックを転送するように設定 - フリーWi-Fiとかに繋いだときの暗号化手段としても使いたかったので

Slide 21

Slide 21 text

しかし... - インスタンスの設定を2回間違えて2回ともデータが吹っ飛ぶ - EC2嫌になってサヨナラ

Slide 22

Slide 22 text

Ver.5 Vultr経由で接続

Slide 23

Slide 23 text

Ver.5 Vultr経由で接続 - Vultr - RAM1GB、SSD25GB、転送量月1TBのインスタンスが月5ドルで使用可能 - 東京にサーバがある - VPNサーバあてのパケットだけを転送 - サーバのルーティングテーブルの設定がうまくいかなくて、全パケットの転送 ができなかった - これで一応うまくいった

Slide 24

Slide 24 text

今後の展望 - ラズパイだと処理速度が若干遅い&AArch32だと死ぬほど開発しにくい - X86で省電力なファンレスPCが欲しい... - ラズパイでk8sのクラスタ組みたい - ネットワークの知識が足らなすぎるのでネスペをとる - 春に申し込んでたけど忙しすぎて受けられなかった - ネットワークエンジニアになるかはわからないけど一般教養として知ってお きたい

Slide 25

Slide 25 text

宣伝① - LINE API実践ガイド - LINE APIに関する技術が大体全部載ってる - 初心者から経験者まで幅広く楽しめる!

Slide 26

Slide 26 text

宣伝②(在校生向け) - 技術座談会 - 日時: 5/9(日)13:00〜18:00 - 場所: 講義棟M5, M6 - 技術が好きな新入生(or興味がある新入生)と、そんな新入 生と繋がりたい先輩方を集めて、技術について語り明かす会 おわり