- はじめに
- 注意事項
- 前提知識
- 検証方法
- 先に検証結果
- リージョンAのインスタンスからリージョンBにあるインスタンス
- リージョンAのインスタンスからリージョンAにあるAWSサービス
- リージョンAのインスタンスからリージョンBにあるAWSサービス
- リージョンA内のインスタンスからエッジロケーション
- リージョンA内のインスタンスから中国リージョンのS3サービスエンドポイント
- おわりに
はじめに
VPCのよくある質問に以下のような文章があります。
Q:2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
いいえ。パブリック IP アドレスを使用する場合、AWS でホストされているインスタンスとサービス間のすべての通信は AWS のプライベートネットワークを使用します。AWS ネットワークから発信され、AWS ネットワーク上の送信先を持つパケットは、AWS 中国リージョンとの間のトラフィックを除いて、AWS グローバルネットワークにとどまります。 さらに、データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に、物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間のトランスポート層セキュリティ (TLS) 接続などといった追加の暗号化レイヤーもあります。
このように、AWSでホストされているインスタンスとサービスの間はAWSのプライベートネットワークを使用するとあります。
調査前は、なんとなく「そーなんだ~」と思っていたのですが、「Public IPアドレスを利用しているのにプライベートネットワーク」って違和感がありますし、 よくよく調べてみると、AWSのリージョンは31、エッジロケーションは400以上もあります。 AZの数もリージョンすべて合わせると99と、これだけの範囲で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を検索します。
出てこなかったものに関しては、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グローバルバックボーンというけど、それってどうなっているの???に切り込んで調査までしてみました、、!!
調べれば調べるほど分からないことがあり、かなり苦戦しましたが、先輩のおかげでなんとか書き上げることができました。
ありがとうございました。
気になっている方も一定数要るかと思いますので、参考になれば幸いです。