Direct ConnectとなんちゃらGateway

2023/06/12に公開

はじめに

この記事の続きです↓
https://zenn.dev/fdnsy/articles/39609b00d080b7

Direct Connectの続きです。
今回はDirect Connectを効率的に使うためのGatewayについて勉強していきます。

なんちゃらGatewayがたくさんあるので、混乱しないように一つづつ見ていきましょう!

ちょっと復習

前回はConnectionとVIFを使って専用線を引くところまで勉強しました。
そして、どちらも新規に用意するのが大変でしたね。

では、VPCがたくさんある場合どうしたらいいでしょうか。
今回はここから開始します。

Direct Connect Gateway

VPCが複数ある。
そんな時に活躍するのがDirect Connect Gateway(長いのでDXGW)です。

図の通りですが、DXGWは複数のVPCの前に設置できます。
そうすることでVIF1本で複数のVPCを繋げられるようになりました!
すごい!!

リージョンをまたげる

DXGWを一つ作成すると他の全てのリージョンからもアクセスすることができます。
ということは、東京リージョンでDXGWを作成すればアメリカのオハイオリージョンとも
専用線を使ったセキュアな通信ができる!
ということですね。

DXGWができないこと

とても便利なDXGWでした。
しかし、DXGWにもできないことがあります。
まず、DXGWにVPCは最大で20個までしか接続できません。
(え、そもそも20個も接続することあんの?)

それともうひとつ。
この図を見たときに、なんとなくですがVPC同士が接続できそうと思いませんでしたか?
私は思っちゃいました。

しかし、DXGWではVPC同士を繋げることはできません。
VPC同士を接続するには次に紹介するTransit Gatewayが必要です。

ここで少し疑問に思ったこと

Q. VPC peeringを使えばVPC同士を繋げられるのでは?
A. 繋げられます。
しかし、VPC peeringはVPC同士を1:1で繋ぐので、VPCがたくさんあると設定が大変です。
VPCが管理できる範囲の数ならVPC peeringを使った方がいいと思います。

あと、これに関しては参考資料に貼っている勉強会の「Transit Gatewayを使わなければならない場面を改めて考えてみる」で
すごく分かりやすく説明されていたので、是非そちらを見てください!

Transit Gateway(TGW)

21個以上のVPCを接続する or VPC間で接続をする場合、このTGWを使います。

TGWを使うことで、VPC間で相互接続できます。
VPCのIPは被らないように気をつけてください。

大変便利なTGWですが、いくつか落とし穴があります。

落とし穴1

まずは、VIFです。

今までの説明は全てプライベートVIFでした。
覚えていない方は前回の記事へどうぞ!

TGWを使うには前回の記事で名前だけ出てきた「トランジットVIF」を使います。
名前の通り、トランジットゲートウェイを使うためのVIFです。

落とし穴2

Connectionのタイプです。
今までは最も安価な「共有型」での接続を考えていました。

しかし、トランジットVIFを使う場合、「共有型」は使えません。
トランジットVIFの場合は「占有型」か「ホスト接続」を使います。

これらの制限をクリアした上で、TGWを使うことができます。

既に共有型で契約してるんですが?

しかし、どうしても「共有型」でTGWが使いたいという、そこのあなた
そんなあなたのために抜け道が用意されています。
こうです。

これは共有型のプライベートVIFでの接続が可能です。
しかし、VPCの接続数は20個までとなります。

なんちゃらゲートウェイがたくさん出てきて大変でした。
とりあえずこれでゲートウェイは出尽くしました。

Direct Connectのネットワーク基礎

ここからはDirect Connectで使われているネットワークの技術を見てみます。

自律システム(AS)

まず自律システム(AS)の前に、Internet Service Provider(ISP)を思い出しましょう!
ISPはみなさんがお家でインターネットを使えるようにしてくれている事業者(プロバイダー)です。

eo光とかソフトバンク光など有名なところがいくつかありますね。
みなさんのお家はどのこプロバイダーでしょうか?

では、ASってなんでしょうか?
ASは一つのネットワークの単位です。
まず、ネットワークと言われて頭に浮かぶのはこんな感じだと思います。

まさに世界中を繋ぐインターネットですね。

しかし、ASはもう少し小さいネットワークの単位です。
例えばこんな感じ。

みなさんの契約しているISP毎の単位です。
ASはISPが管理している以外にも、大きい企業や政府機関などのネットワークの場合もあります。

ということは、このASがたくさん集まったのが一つの大きなインターネットということです。

ASについてもう少し詳しく説明すると
一つのネットワークですが、「ルーティングポリシー」を持つネットワークです。

ルーティングポリシーはパケットをどこに送るか?どの道を使って送るか?というルールのことです。
このルールのおかげでパケットを正しい送り先に最短で送ることができます。

ASにはASNとい呼ばれる固有の番号が割り振られています。
これはAS同士が通信する際に必要な識別子です。

番号は1~65535(64512~65535はプライベートアドレス)があります。
これはIPアドレスと同じで、ASNが被ってしまうとうまく通信ができなくなります。

次は、AS同士が通信をする際に必要なGBPについて見てみましょう。

BGP

Border Gateway Protocol(BGP)はAS同士が通信するためのプロトコル(お約束)です。
ASはAS間でパケットを送り合うためにBGPを介して「経路情報」を教え合います。

このBGPがないとどうなるか?
パケットが行き場をなくして消失したり
迷子になって目的地まで辿り着くのに時間がかかったりします。

AS同士はBGPを使って、「IPアドレス」「接続しているAS」などの経路情報を知らせることができます。
そうして、世界中のASが間接的に接続することで巨大なネットワーク。そう、インターネットになるのです。

BGPを使うことで、ASは不要なASを通らずに目的のASまで辿り着くことができます。
これはASがパケットを送信する際に、自身のASNをAS_Path(付加情報)として付けることで実現しています。

迷路で自分が通ったところに印をつければ、2回目はそこは通らなくても良いですね。
同じように、自身のASNが含まれたAS_Pathがついた経路情報が回ってくると、ASはその情報を破棄します。
そうすることで、最短のルートを導き出すことができます。

Direct Connectの通信

では、Direct ConnectでどのようにASが割り当てられているのでしょうか。
図を見てみましょう。

ちょっとごちゃっとしてしまいましたが、
オンプレミス側は「ルーター」
AWS側は「DXGW」「TGW」「VGW」にASNが割り当てられます。

ちなみに、AWS側はASNが重複しても通信できるようです。
恐らく他の識別子を使って通信しているのでしょう。

まとめ

今回もかなり長くなってしまいました。
なんちゃらゲートウェイがありすぎて覚えるのも書くのも大変です。

所感としては、オンプレミスとAWSを繋ぐということで、ネットワークの知識が大切だなと感じました。
BGP,ASについて全然知識がなかったので勉強するいい機会になりました。

今回の記事も前回と同様に「AWS Direct Connectと愉快なGWたちをおさらいする会」を参考にさせて頂きました。
今回説明した内容が、より分かりやすく動画になっているので、ぜひこちらも見てみてください。

参考資料
https://minorun365.connpass.com/event/285537/presentation/
https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-an-autonomous-system/
https://blog.serverworks.co.jp/tech/2020/07/01/asn-with-dx-transitgateway/

GitHubで編集を提案

Discussion