Oracle Cloud Infrastructur(OCI)の Dynamic Routing Gateway(DRG)は、単一の DRG で、顧客/支社単位や本番/開発等の異なる環境毎に外部接続されたオンプレミス とGCI 間のトラフィックを分離できます。
DRG に進入するパケットは、接続アタッチメント(VCN、IPSec、FastConnect、RPCなど)毎の通信リソースを DRGルート表へ関連付けてルーティング制御することができます。
ということで、オンプレミスとOCIで構成された重複ネットワーク・セグメントの 本番(Production) と 開発(Development)環境を単一の DRG でルーティング制御してネットワーク・トラフィックを分離してみてみます。
そしてネットワーク・ビジュアライザでグラフィカルに図面でルート制御できていることを確認します。
■ 構成
事前に次を参考に構成しておきます。今回は、DRGにアタッチされているVCN-Prod, VCN-Dev, IPSec, RPC の DRGルート表の作成と設定を行います。
・RPC手順: リージョン間を Remote VCN Peering してみてみた
・IPSec手順: YAMAHAルーターとOCIをBGPでIPSec VPN接続してみてみた
・ECMP手順: ECMP有効にして IPSec VPN接続してみてみた
・Trunsit Peering: DRGで東京リージョンを経由して、オンプレミスと 大阪リージョンを接続してみてみた
■ インポート・ルート・ディストリビューションの作成
インポート・ルート・ディストリビューションは、必要なルーティング・ポリシーです。
動的ルートはアタッチメントからインポートされ、インポート・ルート・ディストリビューションを使用して挿入されます。文の基準がアタッチメントで一致すると、DRGにアタッチされているネットワーク・オブジェクトに関連付けられたルートは、含んでいるディストリビューションに割り当てられたDRGルート表に動的にインポートされます。
ということで、まず DRGルート表に付与する 本番(Production) と 開発(Development)用のルート・ディストリビューションのインポートを作成します。
● ルート・ディストリビューションのインポート画面の表示
1)DRG画面
ナビゲーション・メニューを開き、「ネットワーク」をクリックし、「顧客接続性」グループにある「動的ルーティング・ゲートウェイ」をクリックします。
2) ルート・ディストリビューションのインポート画面
● VCN-Prod ルート用インポート・ルート・ディストリビューションの作成画面
VCN-Prod から IPSec-Tunne01, Tunnel02 へ通じるように ルート・ディストリビューション・ルールを追加します。
1) [ルート・ディストリビューションのインポート]画面
[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック
・名前: 任意の名前を設定
・ルート・ディストリビューション文1
- 優先度: 1
- 一致タイプ: Attachment を設定
- アタッチメント・タイプ・フィルタ: IPSec Tunnel を設定
- DRGアタッチメント: DRG Attachment for IPSec Tunnel01 を設定
・ルート・ディストリビューション文2
- 優先度: 2
- 一致タイプ: Attachment を設定
- アタッチメント・タイプ・フィルタ: IPSec Tunnel を設定
- DRGアタッチメント: DRG Attachment for IPSec Tunnel01 を設定
2) 設定確認
作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
● VCN-Dev ルート用インポート・ルート・ディストリビューションの作成画面
VCN-Dev から RPC へ通じるように ルート・ディストリビューション・ルールを追加します。
1) [ルート・ディストリビューションのインポート]画面
[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック
・名前: 任意の名前を設定
・ルート・ディストリビューション文
- 優先度: 1
- 一致タイプ: Attachment を設定
- アタッチメント・タイプ・フィルタ: Remote Peering Connection を設定
- DRGアタッチメント: DRG Attachment for RPC を設定
2) 設定確認
作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
● IPSec ルート用インポート・ルート・ディストリビューションの作成画面
IPSec Tunnel から VCN-Prod へ通じるように ルート・ディストリビューション・ルールを追加します。
1) [ルート・ディストリビューションのインポート]画面
[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック
・名前: 任意の名前を設定
・ルート・ディストリビューション文
- 優先度: 1
- 一致タイプ: Attachment を設定
- アタッチメント・タイプ・フィルタ: Virtual Cloud Network を設定
- DRGアタッチメント: DRG Attachment for VCN-Prod を設定
2) 設定確認
作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
● RPC ルート用インポート・ルート・ディストリビューションの作成画面
RPC から VCN-Dev へ通じるように ルート・ディストリビューション・ルールを追加します。
1) [ルート・ディストリビューションのインポート]画面
[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック
・名前: 任意の名前を設定
・ルート・ディストリビューション文
- 優先度: 1
- 一致タイプ: Attachment を設定
- アタッチメント・タイプ・フィルタ: Virtual Cloud Network を設定
- DRGアタッチメント: DRG Attachment for VCN-Dev を設定
2) 設定確認
作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
● 設定確認
作成したインポート・ルート・ディストリビューションが追加されていることを確認
■ DRGルート表 作成
DRGに進入するパケットは、そのアタッチメントに割り当てられたDRGルート表のルールを使用してルーティングされます。
ということで、本番(Production) と 開発(Development)用の DRGルート表を作成し、事前に作成したルート・ディストリビューションのインポートを紐付けます。
● DRGルート表画面の表示
● VCN-Prod用 DRGルート表の作成
1) DRGルート表の作成画面
[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック
・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
- ルート・ディストリビューションのインポート: 事前に作成した VCN-Prod用ルート・ディストリビューションのインポートを設定
2) 設定確認
作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
● VCN-Dev用 DRGルート表の作成
1) DRGルート表の作成画面
[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック
・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
- ルート・ディストリビューションのインポート: 事前に作成した VCN-Dev用ルート・ディストリビューションのインポートを設定
2) 設定確認
作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
● IPSec用 DRGルート表の作成
1) DRGルート表の作成画面
[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック
・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
- ルート・ディストリビューションのインポート: 事前に作成した IPSec用ルート・ディストリビューションのインポートを設定
2) 設定確認
作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
● RPC用 DRGルート表の作成
1) DRGルート表の作成画面
[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック
・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
- ルート・ディストリビューションのインポート: 事前に作成した RPC用ルート・ディストリビューションのインポートを設定
2) 設定確認
作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
● DRGルート表の作成確認
作成したDRGルート表と紐づくインポート・ルート・ディストリビューションを確認
■ アタッチメント設定
DRGを使用するには、他のネットワーク・リソースにアタッチする必要があります。
Drg Attachmentには、DRGにアタッチされているオブジェクトのタイプを示すタイプ・フィールドがあります。タイプ・フィールドは、次のいずれかの値に設定できます:
VCN
VIRTUAL_CIRCUIT
IPSEC_TUNNEL
REMOTE_PEERING_CONNECTION(RPC)
VCNをDRGにアタッチするには、Create Drg Attachment操作またはコンソールを使用して、DRGアタッチメント・オブジェクトを明示的に作成します。
ネットワーク・オブジェクトを作成(または削除)すると、仮想回線、IPSecトンネルおよびリモート・ピアリング接続のアタッチメントが自動的に作成(および削除)されます。
今回は事前にDRGへアタッチした VCN、IPSEC_TUNNEL, RPC の デフォルト Attachmentの設定を本番(Production) と 開発(Development)用DRGルート表へ紐づける設定をします。
● 仮想クラウド・ネットワーク(VCN)・アタッチメント設定
DRGへアタッチされた VCN-Prod, VCN-Dev の デフォルト・アタッチメントの設定を 各VCN用 DRGルート表へ紐づける設定をします。
DRG画面 > [仮想クラウド・ネットワーク・アタッチメント]をクリックして、VCN-ProdとVCN-Dev のアタッチメントを設定
1) VCN-Prod用アタッチメントの編集画面
VCN-Prod のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック
・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した VCN-Prod用DRGルート表を選択
2) VCN-Dev用アタッチメントの編集画面
VCN-Dev のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック
・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した VCN-Dev用DRGルート表を選択
3) 設定確認
● IPSecトンネル・アタッチメント設定
DRGへアタッチされた IPsec Tunnel の デフォルト・アタッチメントの設定を IPsec用 DRGルート表へ紐づける設定をします。
DRG画面 > [IPSecトンネル・アタッチメント]をクリックし、IPSec Tunnel01 と Tunnel02 のアタッチメントを設定
1) IPSec Tunnel01用アタッチメントの編集画面
IPSec Tunnel01 のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック
・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した IPSec用DRGルート表を選択
2) IPSec Tunnel02用アタッチメントの編集画面
IPSec Tunnel02 のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック
・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した IPSec用DRGルート表を選択
3) 設定確認
各IPSec-Tunnelアタッチメントに紐づくDRGルート表を確認
● Remote Peering Connection(RPC)・アタッチメント設定
DRGへアタッチされた RPC の デフォルト・アタッチメントの設定を RPC用 DRGルート表へ紐づける設定をします。
DRG画面 > [リモート・ピアリング接続アタッチメント]をクリックし、RPC のアタッチメントを設定
1) RPC用アタッチメントの編集画面
RPC のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック
・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した RPC用DRGルート表を選択
2) 設定確認
■ DRGルート情報確認
各 Attachments用に作成した DRG Route Tableのルート・ルールを確認して適切にルーティングされていることを確認
DRG画面 > [DRGルート表]をクリックし、作成したDRGルート表画面にある[すべてのルート・ルールの取得]をクリックして現在取得されているルート・ルールを確認します。
● VCN-Prod ルート・ルールの取得
VCN-Proc Attachments から IPSec-Tunnel Attachment へルーティングされていることを確認
IPSec-Tunnel は Tunnel01 と Tunnel02で 冗長化されて宛先CIDRが重複しているため、オンプレミス側で設定しているBGPの動作でActiveなTunnleが1つ決まり他はConflic状態になります。
ECMPを有効にするとBGPを使用した複数のFastConnect仮想回線または複数のIPSecトンネルをActiveにできます。
● VCN-Dev ルート・ルールの取得
VCN-Dev Attachments から RPC Attachment へルーティングされていることを確認
● IPSec ルート・ルールの取得
IPSec Attachments から VCN-Prod Attachment へルーティングされていることを確認
● RPC ルート・ルールの取得
RPC Attachments から VCN-Dev Attachment へルーティングされていることを確認
■ ネットワーク・ビジュアライザによるルート確認
設定したトラフィック・ルーティングにより ルーティング制御されていることをネットワーク・ビジュアライザで確認します。
Oracle 仮想ネットワークは、仮想クラウド・ネットワーク(VCN)、サブネット、ゲートウェイおよびその他のリソースで構成されます。
これらのエンティティは、多くの場合複雑なルーティングを介して関連付けられ、接続されています。
これらのリソースは、他のOracle Cloud Infrastructure (OCI)サービスとの複雑な関係を持つこともあります。
これらのエンティティとその関係を簡潔に把握する機能は、仮想ネットワークの設計と動作を理解するために不可欠です。
ネットワーク・ビジュアライザには、選択したリージョンおよびテナンシのすべてのVCNに実装されたトポロジのダイアグラムが表示されます。
● ネットワーク・ビジュアライザ画面
1)OCI コンソール
ナビゲーション・メニューを開き、「ネットワーキング」をクリックし、「ネットワーク・コマンド・センター」グループにある「ネットワーク・ビジュアライザ」をクリックします。
2)ネットワーク・ビジュアライザ画面
● 本番(Production) ルート確認
1. VCNーProd ルート確認
VCN-Proc Attachments から IPSec-Tunnel01 と Tunnel02 の Attachment へ通じていることを確認
2. IPSec Tunnel01 ルート確認
IPSec-Tunnel01 Attachments から VCN-Prod Attachment へ通じていることを確認
3. IPSec Tunnel02 ルート確認
IPSec-Tunnel02 Attachments から VCN-Prod Attachment へ通じていることを確認
● 開発(Development)ルート確認
1. VCN-Dev ルート確認
VCN-Dev Attachments から RPC Attachment へ通じていることを確認
2. RPC ルート確認
RPC Attachments から VCN-RPC へ通じていることを確認
■ Client/Server接続確認
本番(Production) と 開発(Development)それぞれ クライアント/サーバー接続できることを確認
● 本番(Production)環境接続確認
・ ssh接続確認
user@onp-inst ~ % ssh -i .ssh/id_rsa opc@10.0.0.2 hostname
prod-db1
・ Ping確認
user@onp-inst ~ % ping 10.0.0.2 -c 3
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=60 time=66.697 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=60 time=63.307 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=60 time=56.888 ms
--- 10.0.0.2 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 56.888/62.297/66.697/4.068 m
● 開発(Development)環境接続確認
・ ssh接続確認
[opc@dev-inst ~]$ ssh -i id_rsa opc@10.0.0.2 hostname
dev-db1
・ Ping確認
[opc@dev-inst ~]$ ping 10.0.0.2 -c 3
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=62 time=8.11 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=62 time=8.05 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=62 time=8.09 ms
--- 10.0.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.053/8.086/8.114/0.106 ms
[opc@dev-inst ~]$ client_loop: send disconnect: Broken pipe
■ おまけ
● DRGルート表を環境単位(Prod/Dev)に作成する構成
今回は、DRGにアタッチされたリソース毎にDRGルート表を作成しました。
環境単位(Prod/Dev)に作成する場合は次のような構成イメージになります。
■ 参考
・動的ルーティング・ゲートウェイ(DRG)
・ネットワーク・ビジュアライザ
・Introducing global connectivity and enhanced cloud networking with the dynamic routing gateway