Direct ConnectとGWを整理してみた

# 背景・目的

Direct Connectについて整理します。
過去には下記の記事をまとめました。一部内容は重複いたします。

https://qiita.com/zumax/items/8a25279a38c4738986aa

https://qiita.com/zumax/items/5aca0e1b841082a3c6c5

https://qiita.com/zumax/items/61e6deb1db77274df65f

https://qiita.com/zumax/items/52828a4dd06cbd9fcf63

# まとめ
下記に特徴をまとめます。

|特徴|説明|
|:--|:--|
|接続|利用者ルーターとAWSルーター間の接続を指す<BR><BR>下記の3つがあります。<BR>・占有<BR>・ホスト接続<BR>・共有|
|VGW|仮想プライベートゲートウェイ|
|DXGW|Direct Connect Gateway<BR>異なるリージョンのVirtual Private Cloud（VPC）とオンプレミスネットワークをAWS Direct Connectを介して接続するためのゲートウェイ<BR><BR>最大20個のVGWまで接続が可能|
|TGW|VPCを5,000個までアタッチできる<BR>VPC同士の通信が可能<BR>IPは重複しないように注意が必要|
|VIF|Direct Connect ロケーションとAWS間の接続インターフェイス<BR>AWS上の何とつなぎたいかにより、作るべきVIFのタイプが変わる。<BR><BR>3つの仮想インターフェイス（VIF）がある<BR>・Private VIF<BR>・Transit VIF<BR>・Public VIF|
|BGP|ボーダーゲートウェイプロトコル<BR>インターネット上のデータ転送に最適なネットワークルートを決定する一連のルール<BR>BGPはデータが移動する可能性のあるすべての経路を調べて、最適な経路を選択すること|
|AS|ネットワークの塊、郵便局のようなもの<BR><BR>郵便物は郵便局から宛先の郵便局に送信され、その街の郵便局がその町内で郵便物を配達する<BR><BR>データパケットは、宛先インターネットプロトコルアドレスを含むASに到達するまで、ASからASにホップしてインターネットを通過する<BR><BR>そのAS内のルーターは、パケットをIPアドレスに送信する|
|ASN|ASNは、ネットワークルーターとの外部通信にのみ必要<BR><BR>AS内の内部ルーターおよびコンピューターは、そのAS内のデバイスとしか通信しないため、AS番号を知る必要はない|


# 概要

下記の資料がとてもわかりやすく、参考にさせていただきました。感謝です。

https://minorun365.connpass.com/event/285537/presentation/

## オンプレミスとAWS間の接続する方法
下記の3つが考えられます。

|通信経路 | 特徴|
|:--|:--|
|インターネット|手軽|
|Site-to-Site VPN|セキュア|
|Direct Connect|高帯域|

## Direct Connectとは
クラウドからDirect Connect ロケーションまでの専用線を提供してくれるサービス

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/9c9867f3-d865-626f-fa94-3405339d549c.png)

- データセンターのルーターとDirect Connect ロケーション間を利用者側でつなぐ
- Direct Connect ロケーション間は、NW事業者がつなぐ
- AWSアカウントのVGWは、自分で作成する
- AWSルーターと、VGW間はNW事業者にVIF作成を手配する

### 接続
利用者ルーターとAWSルーター間の接続方法は、下記の3種類があります。

| 種類 |説明 |接続|VIF|
|:--|:--|:--|:--|
|占有型|帯域は全部自分たちで利用できる。<BR>VIFに制限なし|ユーザ|ユーザ|
|ホスト接続|一部帯域を占有できる。<BR>VIFは1本だけ利用できる|ユーザに一部提供|ユーザ|
|共有型|他社と相乗りする|NW事業者|ユーザ|

## Virtual Private GW / Direct Connect GW / Transit Gateway
### VGW
下記を基に整理します。

https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/virtualgateways.html

- 仮想プライベートゲートウェイを指します
- 仮想プライベートゲートウェイは、接続する VPC にアタッチされている必要があります
- VPCとオンプレミス環境を接続するためのゲートウェイです
- VPCがAWS Direct ConnectやVPN接続を通じて、オンプレミスのネットワークと安全に通信します
- VGWを利用することで、企業のオンプレミスネットワークとAWS上のVPC間で、インターネットを経由しないプライベートな接続を確立できます

#### VGWの課題 
VPCが増えるたびに、VGWとVIFを作成する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/3032c7d8-bbfd-d637-32f5-837da39efd0b.png)

その都度、費用が発生する。

### DXGW
下記を基に整理します。

https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/direct-connect-gateways-intro.html

Direct Connect Gateway（DXGW）とは、AWSのサービスで、異なるリージョンのVirtual Private Cloud（VPC）とオンプレミスネットワークをAWS Direct Connectを介して接続するためのゲートウェイです。

DXGWを使用して VPC を接続します。AWS Direct Connect ゲートウェイは、次のいずれかのゲートウェイに関連付けます。

- 同一リージョン内に複数の VPC がある場合は Transit Gateway
- 仮想プライベートゲートウェイ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/90c447f1-8082-108b-0d07-aaba53fcabee.png)

一つのVIFで複数のVGWを関連付けられます。

#### DXGWの課題
下記の課題があります。
- 関連付けできるVGWは、20個まで
- VPC同士の通信ハブとしてはりようできない、VPC間の通信には利用できない

### Transit Gateway
Transit Gateway（TGW）により、上記のDXGWの課題を解決できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/3c68bb5b-f9d4-2cde-9022-a80a0fc4ecaa.png)

- VPCを5,000個までアタッチできる
- VPC同士の通信が可能
- IPは重複しないように注意が必要

## VIF
3つの仮想インターフェイス（VIF）があります。
AWS上の何とつなぎたいかにより、作るべきVIFのタイプが変わる。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/06498e77-d3d2-0d02-05d1-1f64d5017cb8.png)

### プライベートVIF
プライベートIPを用いてオンプレミスからVPC間で通信する。下記のとおり、VGWに直接つなげるパターンと、DXGWを経由してVGWに接続するパターンの2つがある。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/de201f7d-dc55-2419-5696-659c4c8d1919.png)

### パブリックVIF
S3などのVPC外のAWSサービスと、専用線接続する際に使用します。両端のルーターにグローバルIPが必要になります。
また、名前解決の手段を別途確保する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/9ce72f01-4d8d-e566-85ce-bb661ff314ff.png)

### Transit VIF
Transit Gatewayとつなげたい場合に、使用する。
接続タイプとして、「専有型」と「ホスト接続」のみ利用可能。（共有型はTransit VIFが使用できない）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/f269e5ec-3f6c-3160-2e6c-6bfdb8c3c19d.png)

#### 共有型接続におけるTransit VIF
VPC間の接続に使用するだけ、Transit VIFを使用しなくてもよい。しかしDXGWとVGWの接続数は20個が上限。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/be95b31e-37c4-18d8-90b3-cb066ae30ee4.png)

## BGP
ネットワーク機器どうしで経路情報を交換するプロトコル。

https://aws.amazon.com/jp/what-is/border-gateway-protocol/

> ボーダーゲートウェイプロトコル (BGP) は、インターネット上でのデータ転送に最適なネットワークルートを決定する一連のルールです。インターネットは、標準化されたプロトコル、デバイス、通信技術によって相互に接続された何千もの民間、公共、企業、および政府のネットワークで構成されています。インターネットを閲覧すると、データは配信先に到達する前に複数のネットワークを経由します。BGP の責任は、データが移動する可能性のあるすべての経路を調べ、最適な経路を選択することです。たとえば、米国のユーザーがヨーロッパのオリジンサーバーでアプリケーションをロードする場合、BGP はその通信を迅速かつ効率的に行います。

- インターネット上のデータ転送に最適なネットワークルートを決定する一連のルール
- BGPはデータが移動する可能性のあるすべての経路を調べて、最適な経路を選択すること

### AS
ネットワークの塊、郵便局のようなもの

https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-an-autonomous-system/

> ASを町の郵便局のようなものとして想像してみてください。郵便物は郵便局から宛先の町の郵便局に送られ、その町の郵便局がその町内で郵便物を配達します。同様に、データパケットは、宛先インターネットプロトコル（IP）アドレスを含むASに到達するまで、ASからASにホップしてインターネットを通過します。そのAS内のルーターは、パケットをIPアドレスに送信します。

- 街の郵便局のようなもの
- 郵便物は郵便局から宛先の郵便局に送信され、その街の郵便局がその町内で郵便物を配達する
- データパケットは、宛先インターネットプロトコルアドレスを含むASに到達するまで、ASからASにホップしてインターネットを通過する
- そのAS内のルーターは、パケットをIPアドレスに送信する

> すべての郵便局がその町内のすべての住所（アドレス）に郵便物を配達するのと同じように、すべてのASが特定のIPアドレスのセットを制御します。特定のASが制御できるIPアドレスの範囲は、「IPアドレス空間」と呼ばれます。

- すべての郵便局画素の町内のすべての住所（アドレス）に郵便物を配達するように、すべてのASが特定のIPアドレスのセットを制御する
- 特定のASが制御できるIPアドレスの範囲は、IPアドレス空間と呼ばれる

> 通常、各ASは、インターネットサービスプロバイダー (ISP)、大規模なエンタープライズテクノロジー企業、大学、政府機関などの 1 つの大規模な組織によって運営されます。

- 各ASは、ISP，大規模なエンタープライズ企業、大学、政府機関などの大規模組織により運営される

### ASN
他のASと番号が重ならないように裁判される。IPアドレスのようにプライベートASNがある

https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-an-autonomous-system/

> 各ASには、自律システム番号（ASN）が割り当てられており、これは各企業が固有のビジネスライセンスを持つ方法と同様です。しかし、企業とは異なり、外部の第三者が、その番号だけでASを参照することがよくあります。
> AS番号（ASN）は、1～65534の間の固有の16ビット番号、または131072～4294967294の間の32ビット番号です。これらは、AS（番号）という形式で表示されます。たとえば、CloudflareのASNはAS13335です。ある統計によると、世界中で90,000件以上のASNが使用されています。

> ASNは、ネットワークルーターとの外部通信にのみ必要です（下記の「BGP とは？」をお読みください）。AS内の内部ルーターおよびコンピューターは、そのAS内のデバイスとしか通信しないため、AS番号を知る必要はありません。

- ASNは、ネットワークルーターとの外部通信にのみ必要
- AS内の内部ルーターおよびコンピューターは、そのAS内のデバイスとしか通信しないため、AS番号を知る必要はない

> ASNを割り当てる管理機関から番号が付与される前に、ASN は特定の資格を満たす必要があります。ASNは特定のサイズで、明確なルーティングポリシーを持ち、他のASEへの複数の接続が必要です。利用可能なASNの数は限られており、制限なく配布すると、供給が枯渇し、ルーティングがはるかに複雑になります。

-  ASNを割り当てる管理機関から番号が付与される前に、ASN は特定の資格を満たす必要がある

### GWにASNを設定する必要がある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/66bb29ba-f277-0ffb-c833-11419a468a23.png)

- オンプレミスとクラウドのGWでは、ASNは重複が不可である
- DXGW以降は、ASNは重複可能

# 考察
今回、下記の資料をもとにあらためて整理してみました。
今まで、個別にふわっと覚えていた内容が、少し繋がった気がします。大変わかりやすく感謝です。今後も理解を深めていきたいと思います。

https://minorun365.connpass.com/event/285537/presentation/


# 参考
https://qiita.com/zumax/items/8a25279a38c4738986aa

https://qiita.com/zumax/items/5aca0e1b841082a3c6c5

https://qiita.com/zumax/items/61e6deb1db77274df65f

https://qiita.com/zumax/items/52828a4dd06cbd9fcf63

https://minorun365.connpass.com/event/285537/presentation/

https://d1.awsstatic.com/webinars/jp/pdf/services/20210209-AWS-Blackbelt-DirectConnect.pdf

https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/virtualgateways.html

https://aws.amazon.com/jp/what-is/border-gateway-protocol/