LoginSignup
9
0

More than 1 year has passed since last update.

[Oracle Cloud] DRG Route Tableで環境ごとにトラフィックを分離(Layer3 Isolation)してみてみた

Last updated at Posted at 2022-12-12

Oracle Cloud Infrastructur(OCI)の Dynamic Routing Gateway(DRG)は、単一の DRG で、顧客/支社単位や本番/開発等の異なる環境毎に外部接続されたオンプレミス とGCI 間のトラフィックを分離できます。
DRG に進入するパケットは、接続アタッチメント(VCN、IPSec、FastConnect、RPCなど)毎の通信リソースを DRGルート表へ関連付けてルーティング制御することができます。
ということで、オンプレミスとOCIで構成された重複ネットワーク・セグメントの 本番(Production) と 開発(Development)環境を単一の DRG でルーティング制御してネットワーク・トラフィックを分離してみてみます。
そしてネットワーク・ビジュアライザでグラフィカルに図面でルート制御できていることを確認します。

■ 構成

構成.jpg

事前に次を参考に構成しておきます。今回は、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画面

ナビゲーション・メニューを開き、「ネットワーク」をクリックし、「顧客接続性」グループにある「動的ルーティング・ゲートウェイ」をクリックします。
00_DRG画面.jpg

2) ルート・ディストリビューションのインポート画面

11_Import Route Distributions作成01.png

● 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 を設定

12_Import Route Distributions_VCN-Prod作成01.png

2) 設定確認

作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
12_Import Route Distributions_VCN-Prod作成02.jpg

● VCN-Dev ルート用インポート・ルート・ディストリビューションの作成画面

VCN-Dev から RPC へ通じるように ルート・ディストリビューション・ルールを追加します。

1) [ルート・ディストリビューションのインポート]画面

[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック

・名前: 任意の名前を設定
・ルート・ディストリビューション文
	- 優先度: 1
	- 一致タイプ: Attachment を設定
	- アタッチメント・タイプ・フィルタ: Remote Peering Connection を設定
	- DRGアタッチメント: DRG Attachment for RPC を設定

13_Import Route Distributions_VCN-Dev作成01.png

2) 設定確認

作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
13_Import Route Distributions_VCN-Dev作成02.jpg

● IPSec ルート用インポート・ルート・ディストリビューションの作成画面

IPSec Tunnel から VCN-Prod へ通じるように ルート・ディストリビューション・ルールを追加します。

1) [ルート・ディストリビューションのインポート]画面

[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック

・名前: 任意の名前を設定
・ルート・ディストリビューション文
	- 優先度: 1
	- 一致タイプ: Attachment を設定
	- アタッチメント・タイプ・フィルタ: Virtual Cloud Network を設定
	- DRGアタッチメント: DRG Attachment for VCN-Prod を設定

14_Import Route Distributions_IPSec作成01.png

2) 設定確認

作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
14_Import Route Distributions_IPSec作成02.jpg

● RPC ルート用インポート・ルート・ディストリビューションの作成画面

RPC から VCN-Dev へ通じるように ルート・ディストリビューション・ルールを追加します。

1) [ルート・ディストリビューションのインポート]画面

[ルート・ディストリビューションのインポートの作成]をクリックし、
インポート・ルート・ディストリビューションの作成画面で以下内容を入力し、[インポート・ルート・ディストリビューションの作成]をクリック

・名前: 任意の名前を設定
・ルート・ディストリビューション文
	- 優先度: 1
	- 一致タイプ: Attachment を設定
	- アタッチメント・タイプ・フィルタ: Virtual Cloud Network を設定
	- DRGアタッチメント: DRG Attachment for VCN-Dev を設定

15_Import Route Distributions_RPC作成01.png

2) 設定確認

作成されたImport Route Distribution画面に追加した Route Distribution Statementsを確認
15_Import Route Distributions_RPC作成02.jpg

● 設定確認

作成したインポート・ルート・ディストリビューションが追加されていることを確認
16_Import Route Distributions作成完了01.png

■ DRGルート表 作成

DRGに進入するパケットは、そのアタッチメントに割り当てられたDRGルート表のルールを使用してルーティングされます。
ということで、本番(Production) と 開発(Development)用の DRGルート表を作成し、事前に作成したルート・ディストリビューションのインポートを紐付けます。

● DRGルート表画面の表示

DRG画面 > [DRGルート表]をクリック
21_DRGルート表01.png

● VCN-Prod用 DRGルート表の作成

1) DRGルート表の作成画面

[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック

・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
	- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
	- ルート・ディストリビューションのインポート: 事前に作成した VCN-Prod用ルート・ディストリビューションのインポートを設定

22_DRGルート表_VCN-Prod01.png

2) 設定確認

作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
22_DRGルート表_VCN-Prod02.jpg

● VCN-Dev用 DRGルート表の作成

1) DRGルート表の作成画面

[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック

・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
	- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
	- ルート・ディストリビューションのインポート: 事前に作成した VCN-Dev用ルート・ディストリビューションのインポートを設定

23_DRGルート表_VCN-Dev01.png

2) 設定確認

作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
23_DRGルート表_VCN-Dev02.jpg

● IPSec用 DRGルート表の作成

1) DRGルート表の作成画面

[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック

・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
	- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
	- ルート・ディストリビューションのインポート: 事前に作成した IPSec用ルート・ディストリビューションのインポートを設定

24_DRGルート表_IPSEC01.png

2) 設定確認

作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
24_DRGルート表_IPSEC02.jpg

● RPC用 DRGルート表の作成

1) DRGルート表の作成画面

[DRGルート表の作成]をクリックし、次の項目を設定して[DRGルート表の作成]をクリック

・名前: DRGルート表の名前を設定
・ルート表設定: 以下項目を設定
	- ルート・ディストリビューションのインポートの有効化: 有効化するためにチェック
	- ルート・ディストリビューションのインポート: 事前に作成した RPC用ルート・ディストリビューションのインポートを設定

25_DRGルート表_RPC01.png

2) 設定確認

作成されたDRG Route Table画面に追加した ルート・ディストリビューションのインポートを確認
25_DRGルート表_RPC02.jpg

● DRGルート表の作成確認

作成したDRGルート表と紐づくインポート・ルート・ディストリビューションを確認
26_DRGルート表作成完了.png

■ アタッチメント設定

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 のアタッチメントを設定
31_Attachment_VCN画面.png

1) VCN-Prod用アタッチメントの編集画面

VCN-Prod のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック

・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した VCN-Prod用DRGルート表を選択

32_Attachment_VCN-Prod編集01.png

2) VCN-Dev用アタッチメントの編集画面

VCN-Dev のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック

・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した VCN-Dev用DRGルート表を選択

33_Attachment_VCN-Dev編集01.png

3) 設定確認

各VCNアタッチメントに紐づくDRGルート表を確認
34_Attachment_VCN完了.png

● IPSecトンネル・アタッチメント設定

DRGへアタッチされた IPsec Tunnel の デフォルト・アタッチメントの設定を IPsec用 DRGルート表へ紐づける設定をします。
DRG画面 > [IPSecトンネル・アタッチメント]をクリックし、IPSec Tunnel01 と Tunnel02 のアタッチメントを設定
41_Attachment_IPSec画面.png

1) IPSec Tunnel01用アタッチメントの編集画面

IPSec Tunnel01 のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック

・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した IPSec用DRGルート表を選択

42_Attachment_IPSecーTunne01編集01.png

2) IPSec Tunnel02用アタッチメントの編集画面

IPSec Tunnel02 のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック

・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した IPSec用DRGルート表を選択

43_Attachment_IPSecーTunne02編集01.png

3) 設定確認

各IPSec-Tunnelアタッチメントに紐づくDRGルート表を確認
44_Attachment_IPSec完了.png

● Remote Peering Connection(RPC)・アタッチメント設定

DRGへアタッチされた RPC の デフォルト・アタッチメントの設定を RPC用 DRGルート表へ紐づける設定をします。
DRG画面 > [リモート・ピアリング接続アタッチメント]をクリックし、RPC のアタッチメントを設定
51_Attachment_RPC画面.png

1) RPC用アタッチメントの編集画面

RPC のアタッチメントをクリックし、[編集]をクリックし、アタッチメントの編集画面で次の項目を設定して[変更の保存]をクリック

・表示名: アタッチメントの名前を必要に応じて更新
・DRGルート表の選択: 事前に作成した RPC用DRGルート表を選択

52_Attachment_RPC編集01.png

2) 設定確認

アタッチメントに紐づくDRGルート表を確認
53_Attachment_RPC完了.png

■ DRGルート情報確認

各 Attachments用に作成した DRG Route Tableのルート・ルールを確認して適切にルーティングされていることを確認
DRG画面 > [DRGルート表]をクリックし、作成したDRGルート表画面にある[すべてのルート・ルールの取得]をクリックして現在取得されているルート・ルールを確認します。
26_DRGルート表作成完了.png

● VCN-Prod ルート・ルールの取得

VCN-Proc Attachments から IPSec-Tunnel Attachment へルーティングされていることを確認
IPSec-Tunnel は Tunnel01 と Tunnel02で 冗長化されて宛先CIDRが重複しているため、オンプレミス側で設定しているBGPの動作でActiveなTunnleが1つ決まり他はConflic状態になります。
ECMPを有効にするとBGPを使用した複数のFastConnect仮想回線または複数のIPSecトンネルをActiveにできます。
62_ルート・ルール取得VCN-Prod Attachments.png

● VCN-Dev ルート・ルールの取得

VCN-Dev Attachments から RPC Attachment へルーティングされていることを確認
63_ルート・ルール取得VCN-Dev Attachments.jpg

● IPSec ルート・ルールの取得

IPSec Attachments から VCN-Prod Attachment へルーティングされていることを確認
64_ルート・ルール取得IPSec Attachments.jpg

● RPC ルート・ルールの取得

RPC Attachments から VCN-Dev Attachment へルーティングされていることを確認
65_ルート・ルール取得 RPC Attachments.jpg

■ ネットワーク・ビジュアライザによるルート確認

設定したトラフィック・ルーティングにより ルーティング制御されていることをネットワーク・ビジュアライザで確認します。
Oracle 仮想ネットワークは、仮想クラウド・ネットワーク(VCN)、サブネット、ゲートウェイおよびその他のリソースで構成されます。
これらのエンティティは、多くの場合複雑なルーティングを介して関連付けられ、接続されています。
これらのリソースは、他のOracle Cloud Infrastructure (OCI)サービスとの複雑な関係を持つこともあります。
これらのエンティティとその関係を簡潔に把握する機能は、仮想ネットワークの設計と動作を理解するために不可欠です。
ネットワーク・ビジュアライザには、選択したリージョンおよびテナンシのすべてのVCNに実装されたトポロジのダイアグラムが表示されます。

● ネットワーク・ビジュアライザ画面

1)OCI コンソール

ナビゲーション・メニューを開き、「ネットワーキング」をクリックし、「ネットワーク・コマンド・センター」グループにある「ネットワーク・ビジュアライザ」をクリックします。
80_ネットワーク・ビジュアライザ00.jpg

2)ネットワーク・ビジュアライザ画面

81_Network Visualizer画面.png

● 本番(Production) ルート確認

1. VCNーProd ルート確認

VCN-Proc Attachments から IPSec-Tunnel01 と Tunnel02 の Attachment へ通じていることを確認
82_Network Visualizer_VCN-Prod(矢印).jpg

2. IPSec Tunnel01 ルート確認

IPSec-Tunnel01 Attachments から VCN-Prod Attachment へ通じていることを確認
84_Network Visualizer_IPSec-Tunnel01(矢印).jpg

3. IPSec Tunnel02 ルート確認

IPSec-Tunnel02 Attachments から VCN-Prod Attachment へ通じていることを確認
85_Network Visualizer_IPSec-Tunnel02(矢印).jpg

● 開発(Development)ルート確認

1. VCN-Dev ルート確認

VCN-Dev Attachments から RPC Attachment へ通じていることを確認
83_Network Visualizer_VCN-Dev(矢印).jpg

2. RPC ルート確認

RPC Attachments から VCN-RPC へ通じていることを確認
86_Network Visualizer_RPC(矢印).jpg

■ 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)に作成する場合は次のような構成イメージになります。
旧構成(Prod-Devまとめ構成).jpg

■ 参考

動的ルーティング・ゲートウェイ(DRG)
ネットワーク・ビジュアライザ
Introducing global connectivity and enhanced cloud networking with the dynamic routing gateway

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0