【AWS】EC2間のパブリックIP通信はプライベートネットワーク通信か?

はじめに

Amazon Virtual Private Cloud(VPC) の「よくある質問」を見ていた際に気になる記述を見つけました。

https://aws.amazon.com/jp/vpc/faqs/

Q:2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
 
いいえ。パブリック IP アドレスを使用する場合、AWS でホストされているインスタンスとサービス間のすべての通信は AWS のプライベートネットワークを使用します。AWS ネットワークから発信され、AWS ネットワーク上の送信先を持つパケットは、AWS 中国リージョンとの間のトラフィックを除いて、AWS グローバルネットワークにとどまります。
 
さらに、データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に、物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間のトランスポート層セキュリティ (TLS) 接続などといった追加の暗号化レイヤーもあります。 

「よくある質問」では 2つのパブリック IP 間通信はインターネットを経由しない。と断言しております。

インターネットは Tier1~3 に分類されておりますが、公開情報が無いため詳細な事は解りません。

そのため、本記事では技術的に確認できる点から想定してみる事にしました。

確認環境

東京リージョンと大阪リージョンに EC2 を構築し、パブリック IP での通信経路を確認します。

検証環境構成図

 

やってみた

EC2 間の通信経路を確認(traceroute)

送信元/先として東京と大阪リージョンの EC2 を用意

東京リージョン / 大阪リージョン

traceroute コマンドで EC2 間の通信経路を確認

traceroute

IP アドレス仕分け

IP アドレスには一般的には利用できない IP アドレスがあり、予約済みとして IANA にて管理されております。

https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml

予約 IP アドレスと通常利用 IP アドレスでは確認観点が異なりますので、まずは IP アドレスの仕分けを行います。(解りやすくするためソート実施)

「traceroute 13.115.231.114 |awk '{print $2}' |grep '^[0-9]' | sort」結果

ただし、この結果では1ホップ目の IP アドレスが漏れてしまいますので追加します。

赤字が予約 IP アドレスとなり黒字が通常利用 IP アドレスとなります。

100.65.1.9
100.65.24.161
100.65.3.136
100.66.0.222
100.66.0.45
100.66.12.241
100.66.14.109
100.91.137.163
15.230.154.163
15.230.160.9
15.230.161.157
15.230.24.168
15.230.25.179
15.230.26.193
240.1.52.17
240.1.52.29
240.1.52.6
241.0.8.13
52.95.31.166
52.95.31.197
13.208.0.67  ※1ホップ目の追加
13.208.0.69  ※1ホップ目の追加
13.208.0.69  ※1ホップ目の追加

通常利用 IP アドレスを確認

通常利用 IP アドレスは「whois」コマンドを利用して管理者を確認していきたいと思います。

「whois」コマンド結果で得られる「OrgName」を基準に確認しました。

IP アドレス OrgName
15.230.154.163 Amazon Technologies Inc.
15.230.160.9 Amazon Technologies Inc.
15.230.161.157 Amazon Technologies Inc.
15.230.24.168 Amazon Technologies Inc.
15.230.25.179 Amazon Technologies Inc.
15.230.26.193 Amazon Technologies Inc.
52.95.31.166 Amazon Technologies Inc.
52.95.31.197 Amazon Technologies Inc.
13.208.0.67 Amazon Data Services Osaka
13.208.0.69 Amazon Data Services Osaka
13.208.0.69 Amazon Data Services Osaka

「Amazon Technologies Inc.」と「Amazon Data Services Osaka」の2種類の結果になりましたが、どちらも Amazon のため AWS と判断して良さそうです。

予約 IP アドレスを確認

次に予約 IP アドレスを確認していきます。

予約 IP アドレスは「whois」コマンドでは確認できないため、IANA のサイトから確認していきます。

IP アドレス Name RFC
100.65.1.9 Shared Address Space RFC6598
100.65.24.161 Shared Address Space RFC6598
100.65.3.136 Shared Address Space RFC6598
100.66.0.222 Shared Address Space RFC6598
100.66.0.45 Shared Address Space RFC6598
100.66.12.241 Shared Address Space RFC6598
100.66.14.109 Shared Address Space RFC6598
100.91.137.163 Shared Address Space RFC6598
240.1.52.17 Reserved RFC1112, Section 4
240.1.52.29 Reserved RFC1112, Section 4
240.1.52.6 Reserved RFC1112, Section 4
241.0.8.13 Reserved RFC1112, Section 4

RFC6598(100.64.0.0/10)で定義されている IP アドレスはキャリアグレード NAT と呼ばれ、プロバイダー網内で NAT するための IP アドレスとなります。

RFC1112(240.0.0.0/4)で定義されている IP アドレスはクラス E アドレスと呼ばれ、実験的な目的のために予約されているアドレスとなります。

クラス E アドレスが利用できる理由は解りませんでしたが、どちらも通常利用できる IP アドレスではない事が解りました。(クラス E アドレスに ping コマンドを実施しても一般エラーとなります)

結論

今回検証した結果では予約 IP アドレスの詳細が不明なため、AWS リージョン間通信が AWS 内ネットワークのみ経由している事を確認する事はできませんでしたが、AWS 以外のネットワークを経由している事も確認できませんでした。

  • AWS 内のみ経由している → 確認できなかった
  • AWS 以外を経由している → 確認できなかった

ただ、予約 IP アドレスはインターネットとは言えませんのでインターネットを経由していないと考えられますし、予約 IP アドレスは通常利用できる IP アドレスではないため AWS 内で利用されている可能性が高いと考えられます。

以上の点から、以下のような構成ではないかと想定しております。

想定構成図

予約 IP アドレスはリージョン間接続に利用し、パブリック IPはそれ以外のルータで利用しており、東京リージョンから予約 IP アドレスのネットワークを経由して大阪リージョンと通信を行っていると考えられます。

おわりに

いかがでしたでしょうか。

クラウド内ネットワークは公開情報が少ないため不明点が多いかと思います。

今回のように公開されている情報を元に検証してみる事で構成をイメージしやすくなります。

この記事が皆様のお役に立てればと考えております。

執筆担当者プロフィール
佐藤 大

佐藤 大(日本ビジネスシステムズ株式会社)

ハイブリッドクラウド本部に所属 エンジニア歴17年、サーバ/ストレージ/ネットワークと広く浅く担当し、ここ数年はクラウドをメインで実施

担当記事一覧