はじめに
IPv4 のパブリック IP が有料化になったこともあり、IPv6 について少し確認してみました。
せっかくなので記録として残しておきたいと思います。
構成
追加するネットワーク構成は以下になります。
今回は検証のため、赤枠の部分に設定してみました。
設定
Step1. VPC ~ Step.2 サブネット ~ Step3. ルートテーブル の流れで設定を行いたいます。
Step1. VPC に IPv6 CIDR の追加
-
以下を選択して
[ CIDR を選択 ]
をクリック
Step2. サブネット に IPv6 CIDR の割り当て
先ほど VPC にて追加した IPv6 CIDR を サブネットに対し割り当てます。
IPv6 CIDR の編集
Step3. ルートテーブルの設定
-
ルートを追加 クリックし以下を入力 し
[ 変更 ]
をクリック
検証
NW 的には有効化されましたが、実際にインスタンスにはどのように有効化されるかを確認しました。
新規インスタンスの IPv6 化
作成時に IPv6 IP を自動で割り当てる を 有効
にしておくことで有効になります。
実際に確認してみると IPv6 が返ってくるのが確認できました。
$ curl ifconfig.io
2406:da14:1dfb:c6d7:d3a7:4552:70bf:e19
既存インスタンスの IPv6 化
この場合はちょっとだけ面倒で aws-cli や aws-sdk を利用する必要があります。
まずは IPv4 が返ってくることを確認します。
$ curl ifconfig.io
52.195.177.127
次に以下のコマンドを実行します。
% aws ec2 assign-ipv6-addresses --network-interface-id eni-03c2d829e90aa02c6 --ipv6-address-count 1
{
"AssignedIpv6Addresses": [
"2406:da14:1dfb:c6a5:6016:bfd2:3c6b:b7fc"
],
"NetworkInterfaceId": "eni-03c2d829e90aa02c6"
}
アサインできたようなのでインスタンスを再起動します。
改めて確認すると IPv6 が返ってきました。
$ curl ifconfig.io
2406:da14:1dfb:c6a5:6016:bfd2:3c6b:b7fc
マネジメントコンソールからも付与されていることが確認できました。
わかったこと
今回の検証を通してわかったことを以下にまとめてみました。
-
既存インスタンスの有効化には aws-cli や aws-sdk を利用
調べた限りマネジメントコンソールで有効化させる機能は見つかりませんでした。
いずれは対応されるのかなと思います。
-
IPv6 の場合はプライベート IP とパブリック IP は同じアドレス
今まで IPv4 の場合はプライベートとパブリックで異なる IP アドレスが利用されていました。
例えばプライベート IP が172.16.1.141
でパブリック IP が52.195.177.127
といった感じです。
IPv6 にはそのような区別がなく同じ IP になります。そのため、サブネットのルートテーブルに IGW をアタッチすると外部からアクセス可能になるため注意が必要です。$ curl ifconfig.io 2406:da14:1dfb:c6d7:d3a7:4552:70bf:e19 $ ifconfig |grep net inet 172.16.1.141 netmask 255.255.255.0 broadcast 172.16.1.255 inet6 fe80::499:78ff:fe38:4ceb prefixlen 64 scopeid 0x20<link> inet6 2406:da14:1dfb:c6d7:d3a7:4552:70bf:e19 prefixlen 128 scopeid 0x0<global> ether 06:99:78:38:4c:eb txqueuelen 1000 (Ethernet) inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host>
-
プライベートサブネットの場合は Egress-Only を利用するべき
IPv4 の場合はプライベートサブネットが外部と通信するためには NAT ゲートウェイを用意していたと思います。
ですが、IPv6 では Egress-Only インターネットゲートウェイを利用するのが良いです。理由は、「利用料金が無料」 であることや 「AZ 単位で用意する必要がない」 などが挙げられます。
ただし、外部サービスを利用する際などで IP 許可などが必要な場合は引き続き NAT ゲートウェイを利用した方が良さそです。
-
サブネットへ割り当てる範囲に気を付ける
IPv6 の場合、 VPC への CIDR 追加ができるのは 5 つまでのようです。IPv6 VPC CIDR ブロック
新しい VPC を作成する場合、単一の IPv6 CIDR ブロックを関連付けるか、または /44 から /60 の、/4 刻みで最大 5 つの IPv6 CIDR ブロックを関連付けることができます。
そのため、今回みたいに VPC へ割り当てた CIDR をそのままサブネットに適用してしまうと足りなくなってしまう恐れがあるので注意が必要です。
-
IPv4 と IPv6 の両方が利用できる場合は IPv6 が優先される
これは一般的な知識ではあるのですが両方利用できる場合は IPv6 を利用した通信が優先されます。
おわりに
ちょっとした検証でしたが、IPv4 から IPv6 へ切り替えるのはかなりインパクトがあるなと感じました。
とはいえ、IPv4 のパブリック IP は今後利用費用がかかってしまいます。
すぐに切り替えるのは難しうとも、まずは並行利用しつつ徐々に切り替えていく意識は持ったほうがよさそうです。
参考