IPv6環境で使えるかどうかという問い合わせがあり検討をしてみました。
IPv6接続をいったん整理
- 相手に電話をかけるには自分も電話番号が必要です。
- IPv4サーバーに接続するには自分もIPv4アドレスが必要です。
- IPv6サーバーに接続するには自分もIPv6アドレスが必要です。
プロバイダーがIPv6対応している必要があります。確認君や診断君で出るグルーバルアドレスのことです。
やり方を簡単にいうと
- VPC で IPv6 を使用可能にする。
- セキュリティグループで ::/0 443 を許可する。
- EC2 を起動するとき IPv6 を有効にする。
補足事項
- 生成された IPv6 は EC2 を停止しても同じアドレスを維持します。そのため ElasticIP は不要です。
- 本記事はWindowsサーバーを2台用意してテストを行いました。
VPC
項目 | 値 |
---|---|
名前 | test-ipv6-vpc |
IPv4 CIDR ブロック | IPv4 CIDR の手入力 |
IPv4 CIDR | 172.16.0.0/16 |
IPv6 CIDR ブロック | Amazon 提供の IPv6 CIDR ブロック |
ネットワ―クポーター | ap-northeast-1 |
テナンシー | デフォルト |
補足:Amazon 提供にすると Amazon が生成してくれます。
サブネット
項目 | 値 | |
---|---|---|
VPC ID | (test-ipv6-vpc) | |
名前 | test-ipv6-1c | |
AZ | ap-northeast-1c | |
IPv4 CIDR ブロック | 172.16.0.0/24 | |
IPv6 CIDR ブロック | 2406:aa12:34:ae00::/56 2406:aa12:34:ae[00]::64 |
[ ]は16進数 |
補足:[00]はセグメントのことだと思われます。
インターネットゲートウェイ
名前 test-ipv6-igw
作成後 [VPCにアタッチ] を実行
ネットワーク ACL
名前 test-ipv6-acl
VPC (test-ipv6-vpc)
ルートテーブル
ルート | ターゲット | |
---|---|---|
2406:aa12:34:ae00::/56 | local | |
172.16.0.0/16 | local | |
0.0.0.0/0 | igw-09402ef36xxxx | ←追加 |
::/0 | igw-09402ef36xxxx | ←追加 |
サブネットの関連付けで test-ipv6-1c
EC2 セキュリティグループ
名前 test-ipv6-sg
VPC vpc-03cacxxxx
インバウンドルール
タイプ | プロトコル | ポート | ソース | |
---|---|---|---|---|
RDP | TCP | 3389 | 111.222.333.444/32 | 会社(自宅)のグローバルIP |
HTTPS | TCP | 443 | ::/0 |
補足:リモートデスクトップは IPv4 を使用します。
EC2
ネットワーク設定
項目 | 値 |
---|---|
VPC | (test-ipv6-vpc) |
サブネット | (test-ipv6-1c) |
パブリック IP の自動割り当て | 有効化 |
IPv6 IP を自動で割り当てる | 有効化 |
セキュリティグループ | (test-ipv6-sg) |
テスト
EC2を2台立ててサーバークライアントとしてテストしました。
セキュリティグループで 443 ::/0 を開けます。
ローカルでやろうとするとIPv4を無効にするのが難しいですよね。
クラウドは超便利です。
まとめ
IPv6で構築する方法を紹介しました。
設定自体は簡単なのですが、久々にVPCから作ったのでそこで躓きました。
IPv6の対応は10年前に作ったのですが当時はテスト環境が大変でした。
AWSはセキュリティグループが使えるので格段に楽です。