Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
創明寮のNAT越え奮闘記
Search
Yuto Takamune
April 29, 2021
Programming
1
1.2k
創明寮のNAT越え奮闘記
会津大学 OB/OG LT大会 2021 フリーテーマLT
Yuto Takamune
April 29, 2021
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
0
250
RustのLINEBot SDKを自作した話
shinbunbun_
0
980
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
2.8k
NixOSでもご自宅k8sがしたい!
shinbunbun_
2
2.6k
カーネルレベルでTwitterを禁止しよう
shinbunbun_
0
170
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
320
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
150
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
880
IEEE802.1X認証を導入してみた
shinbunbun_
0
200
Other Decks in Programming
See All in Programming
Honoの来た道とこれから
yusukebe
19
3k
開発効率向上のためのリファクタリングの一歩目の選択肢 ~コード分割~ / JJUG CCC 2024 Fall
ryounasso
0
360
/←このスケジュール表に立ち向かう フロントエンド開発戦略 / A front-end development strategy to tackle a single-slash schedule.
nrslib
1
590
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
150
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
130
2万ページのSSG運用における工夫と注意点 / Vue Fes Japan 2024
chinen
3
1.3k
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
270
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4k
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.4k
Android 15 でアクションバー表示時にステータスバーが白くなってしまう問題
tonionagauzzi
0
140
僕がつくった48個のWebサービス達
yusukebe
18
17k
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
130
Featured
See All Featured
Become a Pro
speakerdeck
PRO
24
5k
Done Done
chrislema
181
16k
What's in a price? How to price your products and services
michaelherold
243
12k
Typedesign – Prime Four
hannesfritz
39
2.4k
Ruby is Unlike a Banana
tanoku
96
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Designing Experiences People Love
moore
138
23k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Transcript
創明寮のNAT越え奮闘記 学部一年 s1290035 高棟雄斗(しんぶんぶん[@shinbunbun_]) 会津大学 OB/OG LT大会 2021
自己紹介 - 人間です - 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_
1ヶ月前の僕の部屋 今はもうちょい綺麗(なはず ...)
最近の生活 平日 休日
第一章 (ほぼ)無制限なDocker用ストレージを 求めて
Dockerを使おう - ローカルが汚すぎて嫌になった - なんかしらんけどnpmとpipが死んだ - GitHubのリポごとにDocker立てて開発
ラズパイDocker - コンテナ立てすぎてMacの容量たらん... - →そうだ、ラズパイに6TBの外付けHDDつないでそこに Docker立ててリモートアクセスしよう - ついでにVPNサーバを立てることにより、家の外からでもアクセス 可能に
Ver.1 実家時代
Ver.1 実家時代 - ラズパイにOpenVPNサーバを立てて、秋葉で買ったジャンクサーバをPKIの 認証局に - サーバ証明書、クライアント証明書を各々のデバイスに発行 - ラズパイ上でTUNデバイスをシミュレートしてL3でトンネリング -
クライアントからのユニキャストパケットは全てOpenVPNサーバを経由 - ポート開放してDDNSを設定 - ラズパイ上のDockerへはVSCodeのDev Containerを使って接続 - ほぼローカルのDockerと同じように開発ができる
そして創明寮へ引越し... え!?NATあるじゃん!!!!! 第二章へ続く...
第二章 そうだ、NAT越えしよう
検討した案 1. ngrokでどっかーん 2. SoftEtherのVPN Azure使えばいい感じにしてくれるらしいからそれを使う 3. 実家のネットワークにラズパイを接続してそれ経由でアクセスする 4. VPS立ててそいつを経由させる
- 条件 - mDNSを使いたいのでマルチキャストパケットが通るL2ブリッジが良い - 部屋にあるPCにVNCでアクセスとかもしたいから、できれば部屋のネットワーク に接続したい
1. ngrokでどっかーん 論外
2. SoftEtherのVPN Azure - やってみたけど上手くいかなかった - なんかしらんけどめっちゃ速度遅い - サーバの管理ツールがWindowsしかない -
(一応Macもあるけど微妙...)
3. 実家のネットワークにラズパイを接続してそれ経由でアクセスする - やってみた
Ver.3 実家経由で接続
Ver.3 実家経由で接続 - ラズパイが足りなかったので、TP-Linkのルーターに付随しているOpenVPN サーバ機能を利用 - TUNデバイスしか選べないため、IPトンネルしか使えない - IPトンネルはL3なのでマルチキャストが通らない -
DHCPが設定できない - 証明書認証が実装できない 使い物にならん...
4. VPS立ててそいつを経由させる - やってみた
Ver.4 EC2経由で接続
4. VPS立ててそいつを経由させる - AWSのEC2を使用 - 普通に使うと高いのでスポットインスタンスで - クライアントから送信する全トラフィックを転送するように設定 - フリーWi-Fiとかに繋いだときの暗号化手段としても使いたかったので
しかし... - インスタンスの設定を2回間違えて2回ともデータが吹っ飛ぶ - EC2嫌になってサヨナラ
Ver.5 Vultr経由で接続
Ver.5 Vultr経由で接続 - Vultr - RAM1GB、SSD25GB、転送量月1TBのインスタンスが月5ドルで使用可能 - 東京にサーバがある - VPNサーバあてのパケットだけを転送
- サーバのルーティングテーブルの設定がうまくいかなくて、全パケットの転送 ができなかった - これで一応うまくいった
今後の展望 - ラズパイだと処理速度が若干遅い&AArch32だと死ぬほど開発しにくい - X86で省電力なファンレスPCが欲しい... - ラズパイでk8sのクラスタ組みたい - ネットワークの知識が足らなすぎるのでネスペをとる -
春に申し込んでたけど忙しすぎて受けられなかった - ネットワークエンジニアになるかはわからないけど一般教養として知ってお きたい
宣伝① - LINE API実践ガイド - LINE APIに関する技術が大体全部載ってる - 初心者から経験者まで幅広く楽しめる!
宣伝②(在校生向け) - 技術座談会 - 日時: 5/9(日)13:00〜18:00 - 場所: 講義棟M5, M6
- 技術が好きな新入生(or興味がある新入生)と、そんな新入 生と繋がりたい先輩方を集めて、技術について語り明かす会 おわり