前回記事は、パブリッククラウド環境をCatoクラウドへ接続する方法として、vSocketとCross Connectを比較してみました。
続いて、本記事では実際にAWSをCross ConnectでCatoクラウドに接続する際の流れをご紹介します。
各パブリッククラウドの接続手順は、以下のCato Knowledge Baseもご参照ください。
まずは構成を決める
接続ロケーションを決める
AWSのDirect Connectロケーションと、CatoのCross Connectロケーションを照らし合わせ、利用するロケーションを2つ選択します。
Cato Knowledge Base | Cato Cross Connect Availability
2023年11月現在、日本国内のCross Connectロケーションは以下2つのみですので、AWSの東京または大阪リージョンを利用する場合には、この2つを選択します。
- Equinix TY2, Tokyo, Japan
- Equinix OS1, Osaka, Japan
ネットワーク構成を決める
続いて、ネットワーク構成を検討します。構成イメージとしては、Transit Gatewayを使うパターンと使わないパターンが考えられます。選択のポイントは、接続したいVPCが(将来の拡張も含めて)いくつあるかです。
構成例A : Transit Gatewayを利用しないパターン
- Direct Connect Gatewayに接続できるVPCの上限が20です。
- VPC同士のDirect Connect Gatewayでの折返し通信は、基本的には対応していません。※詳細はAWS側の仕様をご確認ください
構成例B : Transit Gatewayを利用するパターン
- Transit Gatewayに接続できるアタッチメントの上限が5,000です。
- Direct Connect Gatewayに接続できるTransit Gateway の上限が6です。
- 上記2点より、たくさんのVPCを接続する構成が可能です。
- Transit GatewayでVPC同士の折返し通信ができます。※通信させない構成も可能です
- 構成例Aと比較し、Transit Gatewayおよびアタッチメントの利用料金が発生します。
なお、構成例Aで構築した後にBに変更することも可能ですが、その際は、AWS側の設計変更や構成変更時の通信断が発生します。
ASNを割り振る
各仮想プライベートゲートウェイ(VGW)、Direct Connectゲートウェイ(DXGW)、トランジットゲートウェイ(TGW)と、Cato側の設備はBGPで経路交換を行うため、重複しないAS番号(ASN)を割り当てる必要があります。
なお、Cato側のASNは2byte(64512~65535)のみ対応しておりますが、4byte ASNとのピアリングに対応しているため、AWS側のASNは2byte、4byte(4200000000~4294967294)のどちらでも可能です。
Direct Connect接続部分のIPアドレスを決める
Direct Connect の両端に、接続セグメントを作成します。
具体的には、社内ネットワークで利用されていないIPアドレスレンジから、/30のIPアドレスレンジを2つ割当し、Cato側・AWS側のIPアドレスを決めます。
例として、検証用に構成を作成し、ASNとIPアドレスを割り当てた図が以下です。
以上で、構成が確定です。
Cross Connect用Siteを作成する
続いて、Cato Management Consoleから、Cross Connectで接続するSiteを作成します。
作成方法は通常のSiteと同じですが、Connection Type は「Cross Connect」を選択します。
この時点ではSiteを作成するのみでOKです。他の設定はDirect Connectの開通後に行います。
必要情報をCatoパートナーへ連絡する
ここまで準備ができたら、実際にDirect ConnectをCato側から接続してもらうよう、以下の必要情報をCatoサービスの提供元へ連絡します。
項目 | 説明 | 記載例 | |
1 | 対象のCato Site名 | 手順2で作成したSite名 | CrossConnectAWS |
2 | 接続するパブリッククラウド | AWS/Azure/GCP/ Oracle Cloud | AWS |
3 | パブリッククラウドのアカウントID | 上記のアカウント | AWSアカウント(数字12桁) |
4 | パブリッククラウドの利用リージョン | メインで利用されるリージョン | ap-northeast-1(Tokyo) |
5 | Primary Linkのロケーション | 手順1で選択したもの | Equinix TY2, Tokyo |
6 | Secondary Linkのロケーション | 手順1で選択したもの | Equinix OS1, Osaka |
7 | 接続帯域 | 回線帯域 | 1Gbps |
申請後、接続が準備されるまでに必要時間は、ロケーションによって異なります。1.のCross Connectロケーション一覧に納期の目安が書いてありますので、ご参照ください。2023年11月現在は日本ですと2週間程度となっています。
接続が準備され次第、パートナーから完了の連絡があります。
AWS側の設定を行う
パートナーから準備完了の連絡を受けたら、AWS側・Cato側それぞれに設定を行っていきます。
なお、以後の手順はすべて、前述の「構成例A Transit Gatewayを利用しない」パターンでの例となります。
Direct Connect接続をAcceptする
AWSコンソールの「Direct Connect」を確認すると、以下のように接続が準備されています。
状態がorderingとなっており、承諾待ちの状態です。IDをクリックすると「承諾する」ボタンがありますので、これをクリックして接続を承諾します。 2回線それぞれ承諾します。
しばらくすると状態が「available」になります。
Direct Connect Gatewayを作成する
設定項目は名称とASNのみです。ASNは手順1で決めたものを指定します。
Direct Connect Gatewayと仮想プライベートゲートウェイを紐付けする
作成したDirect Connect Gateway(以下DXGW)をクリックし、「ゲートウェイを関連付ける」に進みます。
紐付ける仮想プライベートゲートウェイ(以下VGW)をすべて選択します。
また、「許可されたプレフィックス」は、Cato側にBGPで広報するルートとなります。空欄にした場合には、各VPCのアドレスレンジが自動で広報されますので、特に要件がなければ空欄で問題ありません。
仮想インターフェイスを作成する
Primary、Secondaryそれぞれの接続に対し、仮想インターフェイス(以下VIF)を作成します。
以下に設定項目の例を掲載します。
タイプ | VIFをDXGWへ接続する場合は「プライベート」を選択 |
仮想インターフェイス名 | 任意の名前を入力 |
接続 | VIFを作成するDirect Connect接続をプルダウンで選択 |
仮想インターフェイスの所有者 | 通常は「自分のAWSアカウント」 |
ゲートウェイタイプ | DXGWへ接続する場合は「Direct Connect ゲートウェイ」を選択 |
Direct Connect ゲートウェイ | 先ほど作成したものをプルダウンで選択 |
Virtual Local Area Network | 元となるDirect Connect接続のVLANと同じ番号を指定 |
BGP ASN | 手順1で決めたCato側のASNを指定 |
上記まで入力したら「▶追加設定」をクリックして下に進みます。ここを忘れがちです。
アドレスファミリー | IPv4を選択 |
ルーターのピアIP | Cato側のIPアドレス |
AmazonルーターのピアIP | AWS側のIPアドレス |
BGP認証キー | 任意の文字列 ※設定必須 |
ジャンボMTU | チェックを入れない (Catoは非対応) |
SiteLinkの有効化 | チェックを入れない (Catoは非対応) |
すべて設定したら作成ボタンを押します。Primary/SecondaryそれぞれのVIFを作成したら、AWS側の設定は完了です。
CatoのSite側の設定を行う
続いて、Cato側の設定を行います。
Cross Connectを設定する
Network > 対象Site > Cross Connect の設定項目にて、Primary/Secondary の接続情報を設定します。手順1での設計どおりIPアドレスを設定します。また契約帯域に合わせたBandwidthを指定します。
設定後、Saveします。CatoとAWS間の疎通にしばらく時間がかかるため、次へ進みます。
BGPを設定する
続いて、Cato側のBGP設定を行います。左メニューの「BGP」から「New」をクリックして設定を作成します。PrimaryとSecondaryの2つの設定が必要です。
Name | 任意の名前を指定 |
ASN Settings Peer | 手順1で割り当てたAWS側のASN (この構成だとDXGWのASN) |
ASN Settings Cato | 手順1で割り当てたCato側のASN |
Peer | AWS側のIPアドレス |
続いてBGP Policyの設定です。こちらはCatoおよびAWS内のルーティングに応じて設定する必要があります。
Advertise | AWS側に対してどのようにルートをアドバタイズするかの設定です。 Default routeにすると、0.0.0.0をアドバタイズします。 もしAWS側で0.0.0.0を他に向ける必要がある場合には、All routesまたはSummary routesのアドバタイズをご検討ください。(※) |
Accept | AWS側からのRouteを受け入れるかどうかです。通常はチェックを入れます。 チェックを入れ忘れると、AWS側のルートをCatoで受け取らなくなってしまうので注意してください。 |
NAT | CatoからPeer宛の通信において、送信元IPアドレスをNATするかどうかです。 チェックを入れた場合には、送信元IPがCato側のPeer IPアドレスに変換されます。 |
※AWSの場合受け取れるルート数の上限があります。All routesをアドバタイズすると上限を超えがちなため、ご注意ください。(2023年11月現在は上限100ルート)
MD5 Auth | AWS側で設定したのと同じBGP認証キーの文字列を入力。入力必須です。 |
Metric | 低い値の経路が優先されますので、値をPrimary<Secondaryとするのが一般的ですが、Cato側で自動でPrimary側が優先されるため、Metricを同じ値にしても正常に動作します。(優先度の詳細は後述します) |
Hold time | デフォルト値で問題ありません。もし接続先のクラウド側で指定があればそれに従ってください。 |
Keepalive interval | |
Email Notification | BGPピアがDown/Upした際にEメールで通知する機能です。接続監視のため設定されることをおすすめします。 |
PrimaryとSecondary両方のBGP設定を作成したら、Saveします。
以上で設定は完了です。
接続テストを行う
続いて接続が正常にできるかのテストを行います。
Connectivityのテスト
先ほど設定したCross Connect のページで「Test Connectivity」ボタンをクリックします。Cato側からAWSに対し、ICMPでの疎通テストが実行されます。
以下のように「Success!」と表示されたら接続成功です。もし「Failed!」やその他エラーとなる場合は、アドレス設定がAWS側の設定と相違ないかを確認します。
BGPのステータス確認
BGPの設定画面で、「Show BGP Status」をクリックすると、BGPの状態が確認できます。
BGP Status | BGP の接続状態です。「Established via ~」となっていれば正常に接続できています。 「Not Established」やその他表示の場合、BGP Peerが張れていません。IPアドレスやASNが正しく設定されているか、BGP認証キーがAWS側と一致しているかを確認します。 |
Routes from neighbor | AWS側から受け取っているルートです。 ここが空欄の場合、BGP設定でAcceptのチェックが外れている可能性があります。 |
Routes to neighbor | AWS側へ渡しているルートです。BGP設定のAdvertiseで設定したルートが渡されます。 |
Catoルートテーブルの確認
Monitoring > Routing Table で、AWS内のルートを受け取れていることを確認します。
VPCのIPアドレスレンジが「DYNAMIC」で受け取れていれば正常です。
図のように、通常時は同じルートが2つあり、Secondary Linkから受け取っているルートはグレーアウトしています。Primary Linkが障害等でDownした場合には、自動でPrimaryのルートが消え、Secondaryのルートが有効になります。
AWS側のルートテーブルを設定・確認する
続いて、AWS側のルートテーブルを確認します。この検証構成ですと、サーバがいるサブネットのルートテーブルを確認します。
AWSのルートテーブルでは、BGPで受け取ったルートをルートテーブルに自動反映するか、しないかを設定することができます。上記の「ルート伝播の編集」の箇所です。
デフォルトは、伝播が「いいえ」になっており、自動反映はされません。どちらにするかは、サブネット内のルーティング要件に合わせて検討します。
今回は伝播を確認するために「はい」に設定しました。すると、ルートが以下のようになります。
「伝播済み」が「はい」となっているルートが、Cato側から自動反映されたルートです。今回はCatoからAWSへDefault routeとAll routesを広報しており、それがAWSのルートテーブルに反映されていることがわかります。
以上ですべての設定が完了です。セキュリティグループ等を確認の上、Cato網からAWS上のホストへ疎通が通ることを確認します。
その他補足情報
障害テストの実施
Direct Connectでは、仮想インターフェイスのメニューから、BGPの障害テストを行うことができます。
この方法で、Primary Linkに擬似的に障害を発生させ、Secondary Linkへの切り替わりを試験することができます。
今回構築した検証環境で試したところ、以下のような結果になりました。通信先(172.16.0.29)はAWSのEC2、通信元は別SiteのSocket配下にあるWindows PCです。
切り替え前 : 172.16.255.1(Primary LinkのAWS側アドレス)を経由していることがわかります。
疑似障害発生 : Pingを打ち続けた状態で、前述のAWSの障害テストを行いました。Pingが止まった後、数秒で再開しました。
切り替わり後 : もう一度Tracerouteしたところ、172.16.255.5(Secondary LinkのAWS側アドレス)を経由して到達しています。経路が切り替わっていることがわかります。
このように、構築後には障害テストを実施することをおすすめします。
Primary/Secondaryの優先度について
Cross Connectにおいては、Primary/Secondary Linkの優先度は、常にPrimary側が優先されるようCato側で制御されています。優先度はRouting TableのMetric Infomationから確認可能です。
Tunnel Metric(値が低いほうが優先)が、Primaryが5、Secondaryが10に自動設定されており、この値は変更することができません。
その下のWeightは、BGP設定の「Metric」で指定した値が反映されますが、経路選択においてはWeightよりもTunnel Metricが優先されるため、影響を与えることができません。
このため、両方のLinkをActive/Activeで利用することはできません。
まとめ
以上、長くなりましたが、AWSでのCross Connect接続方法のご紹介でした。
他のパブリッククラウドでも、おおよその流れは同じになりますので、参考にしていただけますと幸いです。