-- Views
July 04, 26
スライド概要
JAWS ミート 2026
2026/7/4
Qiita や Zenn でいろいろ書いてます。 https://qiita.com/hmatsu47 https://zenn.dev/hmatsu47 MySQL 8.0 の薄い本 : https://github.com/hmatsu47/mysql80_no_usui_hon Aurora MySQL v1 → v3 移行計画 : https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book https://speakerdeck.com/hmatsu47
ゲームで挑戦! VPC の気持ちになって IPv4/v6 パケットをルーティングしよう! JAWS ミート 2026 2026/7/4 まつひさ(hmatsu47)
自己紹介 松久裕保(@hmatsu47) ● https://qiita.com/hmatsu47 ● 現在: ○ 名古屋で Web インフラのお守り係をしています ○ SRE チームに所属しつつ技術検証の支援をしています ○ 今年はカンファレンス・勉強会では DB 以外の話メインで! 2
前回(去年) ● 「ゲームで体感!Aurora DSQL の OCC」という体験型? LT を実施 ○ LT 枠に空きが出たため即興で Amazon Q CLI にゲームを作って もらう→「最後にコミットした人が勝ち!」ゲームを開催 3
今回 ● 「IPv6 VPC 学習ゲーム」で IPv6 専用 or IPv4/v6 混在 ネットワークとルーティングを学ぼう! ○ Kiro CLI で AI-DLC v2(α)を使って作成したゲーム ■ 作成過程の話などは別の機会に(今日は話しません) ■ ちなみにこれを作った直後 AI-DLC v2 が GA Preview に 4
というわけで ● さっそく挑戦してみましょう! 5
…といきなり言われても 困りそうなので 6
ちょっとだけヒント 7
ゲームは 3 ステージ ● ① IPv6 アドレスの分類 ● ②サーバー環境とクライアント環境の IPv6 対応 ● ③パケットのルーティング 8
① IPv6 アドレスの分類 ● GUA(グローバルユニキャストアドレス) ○ 特殊な GUA : NAT64/DNS64 で使う IPv4 埋め込みアドレス ● ULA(ユニークローカルユニキャストアドレス) 9
②サーバー環境とクライアント環境の IPv6 対応 ● ALB がある IPv4 サーバー環境の IPv6 対応 ○ (最低限)パブリックサブネット側のみ IPv6 アドレス追加で OK ● クライアント環境(プライベートサブネット)の IPv6 対応 ○ IPv6 外向き通信 : Egress-only インターネットゲートウェイへ ○ IPv4 外向き通信 : NAT ゲートウェイへ 10
③パケットのルーティング ● ここはノーヒントで! ○ 「ひっかけ」選択肢に注意して! 11
お待たせしました 12
ゲームで挑戦! ● 入口はこちら ○ https://dxgo35nl9iqn0.cloudfront.net/ ○ https://bit.ly/3T7r8RO ● 名前を入力→ゲーム開始! ● 各ステージ 1 分の時間制限あり ○ クリアできなくても再挑戦可能 ● クリアされた方先着 5 名にプレゼントあり 13
楽しんでいただけましたか? 14
ここからは解説編 15
① IPv6 アドレスの分類 ● IPv6 アドレスのうち AWS VPC で考慮の必要があるもの ○ GUA(グローバルユニキャストアドレス) ■ IPv6 では通常はプライベートサブネットにも GUA を割り当てる ■ 特殊な GUA として NAT64/DNS64 で使う IPv4 埋め込みアドレスがある → 64:ff9b::/96 ○ ULA(ユニークローカルユニキャストアドレス) → fc00::/7(現時点では fd00::/8 のみ使用/ AWS では IPAM で割り当て) ■ インターネットと通信しないプライベートサブネットで使うアドレス 16
②-1 サーバー環境の IPv6 対応 ● ALB がある IPv4 サーバー環境の IPv6 対応 ○ パブリックサブネット側のみ IPv6 CIDR ブロックを追加で OK ■ プライベートサブネットは IPv4 のままで対応可能 ■ ALB をデュアルスタック化 ■ パブリックサブネットのルートテーブルに IPv6 デフォルトルートを追加 17
これが(IPv4 only) 18
こう(デュアルスタック化) IPv6(GUA)割り当て ALBデュアルスタック化 IPv6デフォルトルート追加 19
②-2 クライアント環境の IPv6 対応(1/3) ● a) デュアルスタック化 ○ プライベートサブネットに IPv6 CIDR ブロックを追加 ○ ルートテーブルに IPv4/v6 デフォルトルートを追加 ■ IPv4 外向きは NAT ゲートウェイ(→インターネットゲートウェイ)へ ■ IPv6 外向きは Egress-only インターネットゲートウェイへ 20
②-2 クライアント環境の IPv6 対応(2/3) ● b) IPv6 シングルスタック化 ○ プライベートサブネットを IPv6 専用で作成して DNS64 有効化 ○ Route 53 VPC Resolver が A レコードの IPv4 アドレスを特殊な GUA(64:ff9b::/96)に変換 ■ このアドレス範囲は NAT ゲートウェイ(→インターネットゲートウェイ) へルーティング 21
②-2 クライアント環境の IPv6 対応(3/3) ● a) b) とも外部の IPv4 サイト宛ては NAT ゲートウェイへ ○ a) IPv4 プライベートアドレス→ IPv4 パブリックアドレスに変換 ○ b) IPv6 の特殊なアドレス(64:ff9b::/96)→ IPv4 パブリックアド レスに変換 ● IPv6 GUA(通常)のルーティング先に注意 ○ プライベートサブネット内のアドレスも IPv6 GUA ■ Egress-only インターネットゲートウェイに流さない 22
これが(IPv4 only) 23
こうなったり(デュアルスタック化) IPv6(GUA)割り当て EIGW作成 IPv6デフォルトルート追加 24
はたまたこうなったり(NAT64/DNS64) サブネット作成後、 ・NAT64用ルートをルートテーブ ルに追加 ・サブネットでDNS64有効化 IPv6(GUA)専用サブネット作成 &ルートテーブル作成・ IPv6デフォルトルート追加 25
③パケットのルーティング ● ステージ②の構成図(クライアント環境)をイメージしつつ ○ 前半はデュアルスタック環境で ○ 後半は IPv6 シングルスタック環境で(NAT64/DNS64) ● 実はインターネットゲートウェイに直接ルーティングす るパケットは流れてこない ○ 外からアクセス可能な IPv6 パブリックサブネットでは NAT など を使わずインターネットゲートウェイに直接ルーティングする 26
参考情報 27
AWS VPC 設定の詳細はこちらで ● BuriKaigi 2026(1/9)で「AWS で試して学ぶ IPv6」と いうタイトルのセッションをしたときの補足資料(Zenn) ○ https://zenn.dev/hmatsu47/books/burikaigi2026-aws-ipv6-study 28
IPv6 ハンズオン ● AWS IPv6 Hands On (japanese) ○ https://catalog.us-east-1.prod.workshops.aws/workshops/025ae486-39d3 -4de4-a12b-049970983d18/ja-JP ■ ● 内容は基礎的なもの Get hands-on with IPv6 ○ https://catalog.workshops.aws/ipv6-on-aws/en-US ■ EKS などにも対応 29