IPv6の現状とAWSの設定について
久しぶりの投稿になります、CCIインフラ担当のYAMADAです。
自宅環境のIPv6化について書いてから、1年以上がたちました。引き続きIPv6ですが、クラウド編ということでAWSでIPv6を体験してみました。
IPv6の普及率
ところでこの一年、あまりIPv4の枯渇やIPv6の普及状況についての話題を聞いた記憶はありません。実際のところどうなのでしょう。以下のURLを参考にさせてもらうと、家庭向けの足回り回線は順調に普及しているが、企業やサービス提供側含めた状況としては1,2年では変わらず5年とか10年ははかかりそうといったところでしょうか。IPv6よりAIが普及するほうが早い気がしてきました。
現状問題なくIPv4で社内ネットワークや外部へのサービスを提供できており、何年何月にIPv4が使えなくなるという具体的な話もない中でこれらをIPv6化する話はでてこないかもしれません。それでもこれらサービスをオンプレ環境からAWS等クラウド化する計画でもあれば、IPv6化するには良いタイミングかもしれません。自分の関わる環境はそれなりにクラウド化されていますがIPv6は設定していないので、AWSにてVPCからIPv6の設定を見ていこうと思います。
AmazonのIPv6利用状況
AWSの設定を見ていく前に、Amazonの海外と国内のサイトwww.amazon.com、www.amzon.co.jpのアドレスをnslookupで確認してみました。どちらもIPv6のアドレスが確認できます。 国内の主要サイトではまだまだIPv4のみが多いようですが、AmazonだけでなくGAFAMのサイトはIPv6化されていました。
C:\>nslookup www.amazon.com サーバー: UnKnown Address: 192.168.*.* 権限のない回答: 名前: www-amazon-com.customer.fastly.net Addresses: 2606:2cc0::374 2606:2cc0:1::374 2606:2cc0:2::374 2606:2cc0:3::374 162.219.225.118 Aliases: www.amazon.com tp.47cf2c8c9-frontier.amazon.com
そしてAWSのトップページaws.amazon.comですが、CloudFrontでIPv4のみの様でした。次回以降になりますがCloudFrontのIPv6の設定も見ていければと思います。
C:\>nslookup aws.amazon.com サーバー: UnKnown Address: 192.168.*.* 権限のない回答: 名前: dr49lng3n1n2s.cloudfront.net Address: 143.204.75.78 Aliases: aws.amazon.com tp.8e49140c2-frontier.amazon.com
VPCのIPv6設定について
VPCの作成で、IPv6が割り当てられます。もちろん、プライベートとは違って唯一無二のグローバルアドレスです。 IPv4のプライベートIPアドレスに当たるユニークローカルアドレスというものもありますが、気にすることなくAWSから割り当てられたグローバルアドレスを使用しましょう。
「VPCの作成」より以下のラジオボタンでIPv6を有効化します。
これだけで、/56のIPv6が割り当てられました。
ところでこのアドレス、whoisを引いてみるとAPNICから2406:da00::/24
でAmazonに割り振られているのがわかります。なぜ、アジア太平洋地域を担当しているレジストリであるAPNICからなのか。リージョンをap-northeast-1としてVPCを作成したからですが、IPv6では経路の集約等に対応するため、リージョンごとに担当のレジストリから割り振りを受けているのでしょう。
ちなみに、同じリージョンap-northeast-1でたてたEC2で使用しているElastic IP(もちろんIPv4)をwhoisで確認すると北米地域担当のARINから割り振られていました。
サブネットの設定
次に、サブネットを設定してみます。
VPCに割り当てられているIPv6が/56であり、1サブネットに設定できるIPv6のサイズは/64で固定されているため256サブネットで使用できることに。IPv4ではVPCに/24を割り当て/26で4サブネットにすることが多かったので、IPv6の大きさを改めて実感しました。
ルートテーブルの設定
デフォルトルートをインターネットゲートウェイに向けてみたいと思います。インターネットゲートウェイを作成し、VPCにアタッチしておきます。VPCの画面より、メインルートテーブルからルートテーブルの設定画面を開きます。さらにルートタブを開き、「ルートを編集」よりデフォルトルートを追加しましょう。
IPv4のデフォルトルートは0.0.0.0/0ですが、IPv6のデフォルトルートは::/0となります。0を表示しない記法のため、デフォルトルートはすべて0なのでこんなに短く省略されてしまいます。
NATゲートウェイとEggress-only インターネットゲートウェイ
IPv6では、VPC、サブネットのIPアドレスはグローバルアドレスでした。この場合NATが不要になりますが、プライベートサブネットからはどのようにインターネットに出ればよいのでしょう。NATゲートウェイであればインターネット上からサブネット内に入ってくることはできませんが、Eggress-only インターネットゲートウェイはその名のとおり外向けのトラフィックのみを通すゲートウェイです。どのように使うものかとこれまでわかっていなかったのですが、IPv6でNATゲートウェイの代わりに使うものと考えればよさそうです。もちろん、インターネットゲートウェイには違いないので、IPv4はインターネットからのアクセス許可、IPv6は許可しないといったパブリックサブネットがあれば、両インターネットゲートウェイをデフォルトルートに向けることは可能でしょう。
セキュリティグループの設定
セキュリティグループの設定もIPv6で特に変わることはありません。ホストを指定する場合、(インターフェース部に0が続くと省略されるがそうでない場合は)確かに長くはなりますがそれだけのことです。IPoE環境であればほぼIPv6のプレフィックスは変更されないので、個人でAWS環境を構築している場合そのIPv6アドレスからssh等を許可しておくことが可能です。
EC2の起動
VPCでIPv6を設定したので、EC2もIPv6を有効にして起動してみます。コンソールから起動する場合は、IPv6を有効化するだけです。
起動したインスタンスにログインしifconfigコマンドで確認したところ、確かにコンソールに表示されたIPv6アドレスが設定されていることが確認できました。IPv6でもLinuxサーバではリンクローカルのfe80はこれまでよく見てきましたが、グローバルIPが設定されているだけで新しい視界に足を踏み入れた気になります。
今回のIPv6体験と今後の予定
今回は、サーバ側環境として手始めにAWSのVPCにIPv6を有効にしてEC2インスタンスをたててみました。
自宅回線をIPv6化しただけでは、IPv6を理解することはできません。サーバ側もIPv6で構築する経験が必要です。
今回インスタンスまで立てたので、次回はApacheをうごかしたり、ロードバランサーを通してみたりしてみようかと考えています。