1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

IPv4 のパブリック IP が有料化になったこともあり、IPv6 について少し確認してみました。
せっかくなので記録として残しておきたいと思います。

構成

追加するネットワーク構成は以下になります。

スクリーンショット 2024-06-03 15.43.40.png

今回は検証のため、赤枠の部分に設定してみました。

設定

Step1. VPC ~ Step.2 サブネット ~ Step3. ルートテーブル の流れで設定を行いたいます。

Step1. VPC に IPv6 CIDR の追加

  • [ VPC > 対象のVPCを選択 > アクション > CIDR の 編集 ] をクリック
    スクリーンショット 2024-05-10 11.25.38.png

  • [ 新しい IPv6 CIDR を追加 ] をクリック
    スクリーンショット 2024-05-10 11.25.54.png

  • 以下を選択して [ CIDR を選択 ] をクリック

    Amazon 提供の IPv6 CIDR ブロック
    ネットワークボーダーグループ:ap-northeast-1
    スクリーンショット 2024-05-10 11.26.24.png

  • IPv6 CIDR が割り当てられていることを確認し [ 閉じる ] をクリック
    スクリーンショット 2024-05-10 11.27.35.png

Step2. サブネット に IPv6 CIDR の割り当て

先ほど VPC にて追加した IPv6 CIDR を サブネットに対し割り当てます。

  • [ VPC > サブネット ] をクリック
  • [ 対象のサブネットを選択 > アクション > IPv6 CIDR の編集 ] をクリック
    スクリーンショット 2024-05-10 11.28.45.png

IPv6 CIDR の編集

  • [ サブネットの CIDR ブロック > IPv6 CIDR を追加 ] をクリック
    スクリーンショット 2024-05-10 11.29.22.png

  • [ 保存 ] をクリック
    ※ 今回はデフォルトの CIDR ブロック で設定します。
    スクリーンショット 2024-05-10 11.29.51.png

以下のように追加されていればOKです。
スクリーンショット 2024-05-10 11.34.33.png

Step3. ルートテーブルの設定

  • [ VPC > サブネット > ルートテーブル > ルートテーブルのリンク ] をクリック
    スクリーンショット 2024-05-10 11.38.22.png

  • [対象ルートテーブルにチェックを入れ > アクション > ルートを編集 ] をクリック
    スクリーンショット 2024-05-10 11.39.31.png

  • ルートを追加 クリックし以下を入力 し [ 変更 ] をクリック

    送信先:::/0
    ターゲット:インターネットゲートウェイ
    スクリーンショット 2024-05-10 11.40.54.png

以下のように追加されていればOKです。
スクリーンショット 2024-05-10 11.42.47.png

検証

NW 的には有効化されましたが、実際にインスタンスにはどのように有効化されるかを確認しました。

新規インスタンスの IPv6 化

作成時に IPv6 IP を自動で割り当てる有効 にしておくことで有効になります。
スクリーンショット 2024-05-10 11.44.58.png

実際に確認してみると IPv6 が返ってくるのが確認できました。

IP 確認
$ curl ifconfig.io
2406:da14:1dfb:c6d7:d3a7:4552:70bf:e19

既存インスタンスの IPv6 化

この場合はちょっとだけ面倒で aws-cli や aws-sdk を利用する必要があります。

まずは IPv4 が返ってくることを確認します。

IP 確認
$ curl ifconfig.io
52.195.177.127

次に以下のコマンドを実行します。

assign-ipv6-addresses
% 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 が返ってきました。

IP 確認
$ curl ifconfig.io
2406:da14:1dfb:c6a5:6016:bfd2:3c6b:b7fc

マネジメントコンソールからも付与されていることが確認できました。
スクリーンショット 2024-05-10 14.44.32.png

わかったこと

今回の検証を通してわかったことを以下にまとめてみました。

  • 既存インスタンスの有効化には aws-cli や aws-sdk を利用
    調べた限りマネジメントコンソールで有効化させる機能は見つかりませんでした。
    いずれは対応されるのかなと思います。

  • IPv6 の場合はプライベート IP とパブリック IP は同じアドレス
    今まで IPv4 の場合はプライベートとパブリックで異なる IP アドレスが利用されていました。
    例えばプライベート IP が 172.16.1.141 でパブリック IP が 52.195.177.127 といった感じです。
    IPv6 にはそのような区別がなく同じ IP になります。
    $ 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>
    
    そのため、サブネットのルートテーブルに IGW をアタッチすると外部からアクセス可能になるため注意が必要です。

  • プライベートサブネットの場合は Egress-Only を利用するべき
    IPv4 の場合はプライベートサブネットが外部と通信するためには NAT ゲートウェイを用意していたと思います。
    ですが、IPv6 では Egress-Only インターネットゲートウェイを利用するのが良いです。

    追加前 (NAT 利用)
    スクリーンショット 2024-06-03 17.55.28.png

    追加後 (Egress-Only 利用)
    スクリーンショット 2024-06-03 17.55.37.png

    理由は、「利用料金が無料」 であることや 「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 は今後利用費用がかかってしまいます。
すぐに切り替えるのは難しうとも、まずは並行利用しつつ徐々に切り替えていく意識は持ったほうがよさそうです。


参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?