AWSリソース間をインターネット経由で通信したらどこ通るか見てみる

記事タイトルとURLをコピーする

はじめに

VPCのよくある質問に以下のような文章があります。

Q:2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?

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

参考:よくある質問 - Amazon VPC | AWS

このように、AWSでホストされているインスタンスとサービスの間はAWSのプライベートネットワークを使用するとあります。

調査前は、なんとなく「そーなんだ~」と思っていたのですが、「Public IPアドレスを利用しているのにプライベートネットワーク」って違和感がありますし、 よくよく調べてみると、AWSのリージョンは31、エッジロケーションは400以上もあります。 AZの数もリージョンすべて合わせると99と、これだけの範囲でAWSのネットワーク内で留まるってすごすぎないか??と思い、気になったので調べてみました。

参考: AWS グローバルインフラストラクチャ | AWS

仮説 (通説に近い?)では、「AWS (Amazon)が保有するASのみを介した通信をプライベートネットワークと言っている」ことが言えれば良さそうです。

以下5つのパターンで検証してみました。

  • リージョンAのインスタンスからリージョンBにあるインスタンス
  • リージョンAのインスタンスからリージョンAにあるAWSサービス
  • リージョンAのインスタンスからリージョンBにあるAWSサービス
  • リージョンA内のインスタンスからエッジロケーション
  • 中国リージョンのS3サービスエンドポイントまでの経路を見てみる

注意事項

尚、今回の検証結果はあくまで一例です。

経路は検証する環境等によって変化する可能性が高いです。

経路を保証する記載ではないので、詳しくはドキュメントの参照やサポートへお問い合わせください。

前提知識

今回、調査するにあたって「 AWS グローバルネットワークにとどまります」とはどういうことか?ということを解説する必要がありますので、必要な知識のおさらいから始めます。

(本当はもっと書くべきことがありますが、テーマが変わってきてしまうので、今回説明するのに必要な知識のみを書いてます。ご了承ください。)

これから本ブログは「Public IPアドレスを使っているが、AWSのASのみを経由しているので、AWSグローバルネットワークに留まる」という結論に持っていきます。

結論の一文と「CGN Shared Address Space」、「Reserved Address」を聞いて、「なるほどね!あれね!」となる方はスキップしていただいて大丈夫です。

AWSのASのみを経由しているので、AWSグローバルネットワークに留まるとは?

インターネットとは、世界中のコンピュータ等の機器が接続されたネットワークが相互につながれたネットワークのことです。

接続されているといっても、無秩序につながっているわけではなく、ISP (Internet Service Provider) 等がそれぞれで管理するAS (Autonomous System)と呼ばれる単位で区切られています。

簡易図

ASはそれぞれのISP等が運用ポリシーによって管理されたネットワークの集まりです。

つまり、AS内部では独自の運用ポリシーに則って管理されており、パブリックIPアドレスを利用したとしても、AWS (Amazon)でASを保有しており、そのAS内部に留まっていれば「特定のネットワークに留まる」ということが言えます。

特別なIPアドレス

調査の中で、100.64.0.0/10や240.0.0.0/4のIPアドレスが出てきました。

これらのIPアドレスは以下のように分別されています。

IP Address Range 用途
100.64.0.0/10 CGN Shared Address Space
240.0.0.0/4 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)

技術的な解説は割愛しますが、概要だけ記すと以下のような内容になります。

CGN (Carrier Grade NAT) Shared Address Space:サービスプロバイダー内部のネットワークで利用されるプライベートIPアドレスレンジ Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED):将来利用のための予約されているIPアドレス

※ CGNとは、AS内で利用されるプライベートIPアドレスとパブリックIPアドレスを変換するNATの技術です。

これらのIPアドレスについては、RFC6890の中で、以下のように定義されています。

                 +----------------------+----------------------+
                 | Attribute            | Value                |
                 +----------------------+----------------------+
                 | Address Block        | 100.64.0.0/10        |
                 | Name                 | Shared Address Space |
                 | RFC                  | [RFC6598]            |
                 | Allocation Date      | April 2012           |
                 | Termination Date     | N/A                  |
                 | Source               | True                 |
                 | Destination          | True                 |
                 | Forwardable          | True                 |
                 | Global               | False                |
                 | Reserved-by-Protocol | False                |
                 +----------------------+----------------------+

                       Table 3: Shared Address Space
                 +----------------------+----------------------+
                 | Attribute            | Value                |
                 +----------------------+----------------------+
                 | Address Block        | 240.0.0.0/4          |
                 | Name                 | Reserved             |
                 | RFC                  | [RFC1112], Section 4 |
                 | Allocation Date      | August 1989          |
                 | Termination Date     | N/A                  |
                 | Source               | False                |
                 | Destination          | False                |
                 | Forwardable          | False                |
                 | Global               | False                |
                 | Reserved-by-Protocol | True                 |
                 +----------------------+----------------------+

                     Table 15: Reserved for Future Use

ここで着目するのは、どちらもGlobalがFalseとなっていることです。

Globalの定義は、RFC8190で修正があり、以下のようになっています。

   o  Globally Reachable - A boolean value indicating whether an IP
      datagram whose destination address is drawn from the allocated
      special-purpose address block is forwardable beyond a specified
      administrative domain.

   The same relationship between the value of "Destination" and the
   values of "Forwardable" and "Global" described in [RFC6890] holds for
   "Globally Reachable".  If the value of "Destination" is FALSE, the
   values of "Forwardable" and "Globally Reachable" must also be FALSE.

つまり、「Global」のブール値がFalseとなっているIPアドレスレンジでは、指定された範囲から超えたIPアドレスへの転送不可ということになり、「Forwardable」もFalseとなります。

このことから、CGN Shared Address SpaceとReserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)はAS内部の通信であり、前後のIPアドレスから所属するASを推察できます。

検証方法

東京リージョンにEC2インスタンスを立ち上げ、サービスのエンドポイントに向けてtracerouteコマンドを実行します。 ホップしたIPアドレスをHURRICANE ELECTRIC INTERNET SERVICESのBGP Toolkitで検索し、ASを検索します。

www.he.net

出てこなかったものに関しては、whoisで検索し、Organizationsを確認しました。

クロスリージョンでの検証は東京リージョン→シンガポールリージョンで実行しました。

尚、最初と一部の最後のホップは利用しているEC2のIPアドレスであり、AWS保有であることが自明であることや、セキュリティの観点から記載していません。 ご了承ください。

先に検証結果

Public IPアドレスを使っているが、AWSのASのみを経由しているので、AWSグローバルネットワークに留まる

中国リージョンに向けた通信以外は基本的にトラフィックはAmazon管理のASのみを経由しているように見えました。

リージョンAのインスタンスからリージョンBにあるインスタンス

検証した構成図は以下の通りです。

IP Address AS 備考
100.65.27.16 (AS内通信) CGN Shared Address Space
100.66.12.18 (AS内通信) CGN Shared Address Space
100.66.14.226 (AS内通信) CGN Shared Address Space
241.0.7.203 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
15.230.160.46 AmazonTechnologiesInc.
100.91.181.32 (AS内通信) CGN Shared Address Space
15.230.209.33 AmazonTechnologiesInc.
52.93.11.13 AmazonTechnologiesInc.
52.93.11.58 AmazonTechnologiesInc.
150.222.3.209 AmazonTechnologiesInc.
203.83.223.17 AS16509 AmazonTechnologiesInc.
100.66.4.122 (AS内通信) CGN Shared Address Space
100.66.7.34 (AS内通信) CGN Shared Address Space
100.66.10.39 (AS内通信) CGN Shared Address Space
100.66.8.93 (AS内通信) CGN Shared Address Space

リージョンAのインスタンスからリージョンAにあるAWSサービス

IP Address AS 備考
100.65.27.208 (AS内通信) CGN Shared Address Space
100.66.12.22 (AS内通信) CGN Shared Address Space
100.66.14.224 (AS内通信) CGN Shared Address Space
100.66.3.65 (AS内通信) CGN Shared Address Space
100.64.3.199 (AS内通信) CGN Shared Address Space
100.64.16.25 (AS内通信) CGN Shared Address Space
52.219.0.174 AS16509 AmazonTechnologiesInc.

リージョンAのインスタンスからリージョンBにあるAWSサービス

IP Address AS 備考
100.65.25.176 (AS内通信) CGN Shared Address Space
100.66.12.236 (AS内通信) CGN Shared Address Space
100.66.14.68 (AS内通信) CGN Shared Address Space
241.0.7.198 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
52.95.31.30 AS16509 AmazonTechnologiesInc.
100.91.177.173 (AS内通信) CGN Shared Address Space
100.100.6.41 (AS内通信) CGN Shared Address Space
100.100.65.96 (AS内通信) CGN Shared Address Space
100.100.65.21 (AS内通信) CGN Shared Address Space
100.100.20.100 (AS内通信) CGN Shared Address Space
52.93.28.226 AS16509 AmazonTechnologiesInc.
240.0.28.5 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
240.0.28.25 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
240.0.28.26 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
241.0.4.128 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
100.66.2.185 (AS内通信) CGN Shared Address Space
100.66.1.167 (AS内通信) CGN Shared Address Space
100.65.4.209 (AS内通信) CGN Shared Address Space
100.64.2.165 (AS内通信) CGN Shared Address Space
100.64.9.8 (AS内通信) CGN Shared Address Space
100.64.25.173 (AS内通信) CGN Shared Address Space

リージョンA内のインスタンスからエッジロケーション

IP Address AS 備考
241.0.7.192 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
52.95.31.32 AS16509 AmazonTechnologiesInc.
100.91.149.100 (AS内通信) CGN Shared Address Space
150.222.247.141 AmazonTechnologiesInc.
100.91.134.114 (AS内通信) CGN Shared Address Space
52.93.66.126 AmazonTechnologiesInc.
100.91.135.213 (AS内通信) CGN Shared Address Space
100.64.50.253 (AS内通信) CGN Shared Address Space
150.222.77.31 AmazonTechnologiesInc.
100.64.50.254 (AS内通信) CGN Shared Address Space
100.64.50.254 (AS内通信) CGN Shared Address Space

リージョンA内のインスタンスから中国リージョンのS3サービスエンドポイント

IP Address AS 備考
100.65.26.112 (AS内通信) CGN Shared Address Space
100.66.12.120 (AS内通信) CGN Shared Address Space
100.66.14.232 (AS内通信) CGN Shared Address Space
241.0.7.205 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
240.0.252.30 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
240.0.252.22 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
242.2.242.9 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
52.93.73.225 AmazonTechnologiesInc.
15.230.129.212 AmazonTechnologiesInc.
52.93.72.94 AmazonTechnologiesInc.
100.91.149.160 (AS内通信) CGN Shared Address Space
100.91.148.20 (AS内通信) CGN Shared Address Space
100.91.134.16 (AS内通信) CGN Shared Address Space
240.0.188.14 (AS内通信) Reserved (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED)
150.222.77.240 AmazonTechnologiesInc.
151.148.8.205 Amazon.com,Inc.
219.158.24.57 China Unicom
219.158.19.74 China Unicom
219.158.24.57 China Unicom
219.158.16.85 China Unicom
124.65.194.78 China Unicom
123.126.0.174 China Unicom
bt-204-238.bta.net.cn China Unicom
54.222.0.167 AS55960 Beijing Guanghuan Xinwang Digital Technology co.Ltd
bt-204-238.bta.net.cn China Unicom
54.222.25.114 AS55960 Beijing Guanghuan Xinwang Digital Technology co.Ltd
54.222.25.117 AS55960 Beijing Guanghuan Xinwang Digital Technology co.Ltd
54.222.1.35 AS55960 Beijing Guanghuan Xinwang Digital Technology co.Ltd

おわりに

今回はAWSグローバルバックボーンというけど、それってどうなっているの???に切り込んで調査までしてみました、、!!

調べれば調べるほど分からないことがあり、かなり苦戦しましたが、先輩のおかげでなんとか書き上げることができました。

ありがとうございました。

気になっている方も一定数要るかと思いますので、参考になれば幸いです。

篠﨑 勇輔(書いた記事を見る)

クラウドインテグレーション部 SRE2課

入社4年目