概要
オンプレミス拠点とOCI間をVPN接続する構成において、オンプレミス拠点が複数存在することは珍しくない。
通信要件として各オンプレミス拠点とOCI間の通信のみが存在する場合は問題ないが
オンプレミス拠点間の通信をOCI経由で行いたい場合はOCIの標準機能では実現が不可能である。
理由はOCIの仕様上(厳密にいうとDRGの仕様)、拠点間通信のためのルーティングを行えないためである。
(参考資料)
[動的ルーティング・ゲートウェイ(DRG)][1]
[1]:https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/managingDRGs.htm
※「ルート伝播の制限事項」ご参照
そこでOCI上にルータを役割をしてくれる中継サーバを配置、
そちらの中継サーバを経由して拠点間通信が行えるか試してみることにした。
検証構成
検証シナリオ
・疑似オンプレミス拠点を用意するためにNEC IX2105×2台をVPNルータとして構築、
異なるインターネット回線経由でOCIとIPSec接続
・類似オンプレミス拠点のネットワークアドレスを上記検証構成の通りに定義、
各ネットワークには疎通確認用のTEST PC(OS:Windows)を用意
・VCN上に仮想マシンを配置、OS(Oracle Linux)のルーティング機能を有効にし
類似オンプレミス拠点間通信の中継が可能な状態にする
・検証構成の動作確認としてTEST PC1とTEST PC2間でpingによる疎通確認を行う
ステータス確認
(中継サーバ)
・ルーティングテーブル確認
・TEST PC1(10.0.0.100)及びTEST PC2(10.100.0.100)宛のping疎通確認
・パケット転送機能のステータス確認
net.ipv4.ip_forward = 1になっていればONの状態
ステータスが1ではなく0になっている場合は修正が必要
(CPE1)
ルーティングテーブル確認
OCI側からadvertiseされた0.0.0.0/0と172.16.1.0/24を受信できている
CPE1(config)# show ip route
IP Routing Table - 7 entries, 3 hidden, 2038 frees
Entries: 4 Connected, 1 Static, 0 RIP, 0 OSPF, 2 BGP
Codes: C - Connected, S - Static, R - RIP, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP
* - Candidate default, s - Summary
Timers: Age
B* 0.0.0.0/0 [20/0] via 10.1.255.102, Tunnel0.0, 0:00:22
10.0.0.0/8 is subnetted, 3 subnets
C 10.0.0.0/24 [0/1] is directly connected, GigaEthernet1.0, 0:01:11
C 10.1.255.100/30 [0/1] is directly connected, Tunnel0.0, 0:03:01
C 10.1.255.104/30 [0/1] is directly connected, Tunnel1.0, 0:03:00
S 140.204.0.0/16 [1/1] via 172.32.0.1, GigaEthernet0.0, 0:03:02
172.16.0.0/16 is subnetted, 1 subnets
B 172.16.1.0/24 [20/0] via 10.1.255.102, Tunnel0.0, 0:00:23
172.32.0.0/16 is subnetted, 1 subnets
C 172.32.0.0/24 [0/1] is directly connected, GigaEthernet0.0, 0:03:03
CPE1(config)#
(CPE2)
ルーティングテーブル確認
OCI側からadvertiseされた0.0.0.0/0と172.16.1.0/24を受信できている
CPE2(config)# show ip route
IP Routing Table - 7 entries, 2 hidden, 2039 frees
Entries: 4 Connected, 1 Static, 0 RIP, 0 OSPF, 2 BGP
Codes: C - Connected, S - Static, R - RIP, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP
* - Candidate default, s - Summary
Timers: Age
B* 0.0.0.0/0 [20/0] via 10.1.255.102, Tunnel0.0, 0:35:24
10.0.0.0/8 is subnetted, 3 subnets
C 10.1.255.100/30 [0/1] is directly connected, Tunnel0.0, 0:57:15
C 10.1.255.104/30 [0/1] is directly connected, Tunnel1.0, 0:57:14
C 10.100.0.0/24 [0/1] is directly connected, GigaEthernet1.0, 0:55:59
S 140.204.0.0/16 [1/1] via 192.168.255.1, GigaEthernet0.0, 0:57:22
172.16.0.0/16 is subnetted, 1 subnets
B 172.16.1.0/24 [20/0] via 10.1.255.102, Tunnel0.0, 0:45:50
C 192.168.255.0/24 [0/1] is directly connected, GigaEthernet0.0, 0:57:22
CPE2(config)#
感想など
・DRGではオンプレミス側にあるネットワーク間通信を中継してくれない仕様はわかっていたので
中継サーバをおいてルーティングさせたら実現できるのでは?という発想から検証を実施してみた
ところあっさり成功したのでちょっと嬉しかった。
・とりあえず動作確認の目的だったため中継サーバのルーティングはOracle Linuxの標準機能を
利用したがもし本番環境用に利用を検証する際はFortigate等の有償の仮想アプライアンスの利用も
考慮したほうがいいと思った(動作保証、サポート等の観点から)。
・本文章は個人で検証した内容の記録であり、検証方法及び結果を保証するものではないことを
あらかじめご了承・ご理解いただけますようお願い致します。