サイト間VPN (IPsec)やFastConnect で、OCIとオンプレミスを接続するのは、まー普通に出来ます。

でも、仕事とかになると回線が切れたらどうするのとかって、聞かれることありますよね。

そんな時は、あきらめて下さいと言いましょう。

回線屋さんにまかせるべきですって、強く言えば納得してもらえるでしょう。

とかいうと、細い目で見られてしまうので、頑張って冗長回線化してますって言えるようになりたいです。

なので、今回は、別リージョン同士でVPNやFastConnectを張って、片っぽが切れても、耐えれるネットワークを構築してみる練習をします。


ということで、くだらない前置きは、いらないとして

VCNに接続する回線を冗長化しようってことです。

FastConnect回線なんかの予備として、IPSecを足しとけば、良い感じの冗長ラインになりますよね。

OCI側は、これで冗長出来ますが、オンプレミス側のルーター冗長は、VRRPで同じ構成のルーターを構築するか、リージョン毎にルーターを用意してBGPを伝搬する等して対策しましょう。

それと、多分、BGPが必須ですね。静的ルーティングすると、ぶっ壊れたことを検知出来ないからです。

今回、別リージョンをサブスクライブしている環境ではないので、同じリージョンにVCNを2つ作成し、VCN間をDRG経由でリモートピアで接続する模擬環境とします。

同じリージョンでも、リモートピア接続出来るんですね。

でも、別リージョンを使える方は、本当に別リージョン同士をリモートピアで接続してみましょう。

ネットワーク・ビジュアライザで、見てみるとこんな感じです。

drg2とdrg3は、別リージョンということにしておいて下さい。

vpn2とvpn3が同じCPE(ルーター)に接続されて、OCIの中でRPC(リモートピア)で接続されているので、ループしそうですが、DRGが良い感じに交通整理してくれるので、ループしません。

vpn2がぶっ壊れたら、drg3からdrg2経由で、tc02にルーティングしてくれます。

逆にvpn3がぶっ壊れたら、drg2からdrg3経由で、tc03にルーティングしてくれます。

両方壊れたら、怒られます。

VCNは、別に1つでもかまいませんよ。今回は、見た目がかっこ良いので、2つにしただけですから。

基本的に、この図の通り構築すれば良いんですが、デフォルトからちょっとたけ修正が必要です。

アタッチメント・タイプのデフォルト:IPSec Tunnel, Virtual Circuit, Remote Peering Connection の、ルート・ディストリビューションのインポートを修正します。

優先度11,12,21に、IPSec Tunnel, Virtual Circuit, Remote Peering Connectionを追加します。

次に、全てのDRG表で、ECMPの有効化をチェックします。

この作業を2つのDRG両方とも行います。

これで、Okです。


出来たのは良き事ですが、本当に大丈夫なのって思いますよね。

では、実験環境も紹介します。

ヤフオクでゲットした激安ルーター、マイナーな FITEL F60が余っているので、こいつで実験しましょう。

RTX810とかの方がメジャーなんですが、たまたま、すぐに接続出来るのが、F60だったのです。

誰か頑張って、RTX版を作って下さい。

ちなみに、NAT-T環境です。

IPSecの構築は、OracleCloud サイト間VPN (IPsec)を 業務用ルーター F60 で接続しよう  を参考にして下さい。

 

まずは、OCIの環境パラメーターです。

VCN:tc02   10.10.0.0/16
DRG:drg2
IPSec:vpn2
 BGP ASN 65401
 Tunnel1 CPE    10.99.90.1/30
 Tunnel1 ORACLE 10.99.90.2/30
 Tunnel2 CPE    10.99.91.1/30
 Tunnel2 ORACLE 10.99.91.2/30
 
 Tunnel1:168.138.35.215
         BPgPG4HOTGvpsDEHogelO4ZIzttCew6Z8o6RiExdZvHogelL0n8FbO30Sil0yMzW
 Tunnel2:168.138.34.8
         6MgNjHupHogethJNC1yYrJ1qWQZuKoQf4HogehH5tNAbJOeoGt5iQQ8yWnqI22lV
 
 
VCN:tc03   10.11.0.0/16
DRG:drg3
IPSec:vpn3
 BGP ASN 65401
 Tunnel1 CPE    10.99.92.1/30
 Tunnel1 ORACLE 10.99.92.2/30
 Tunnel2 CPE    10.99.93.1/30
 Tunnel2 ORACLE 10.99.93.2/30
 
 Tunnel1:168.138.34.3
         zhmeknHogeudvLthX1AEXcTuATYEBzxbIhkJ4HHoge5gBV52u4UcW6iUEiuc2t6U
 Tunnel2:168.138.32.228
         MKZzQVshoGewBfo8SZ5ApYSd57wp6aq68b5RDvjKchhogf8GfNAP6hoOlJspcYjn

次に、F60 設定です。

基本的なとこ

ネットワーク:192.168.0.0/24

ゲートウェイ:192.168.0.1

F60のIP:192.168.0.14/24

 

enable
configure terminal

no service dhcp-server
no ip dhcp pool lan 1
no wlan-global 2.4G
no wlan-vap 1
no wlan-bridge 1

access-list 1 permit any

interface ewan 1
ip address 192.168.0.14 255.255.255.0
ip access-group 1 in
ip access-group 1 out
exit
ip name-server 192.168.0.1
ip route 0.0.0.0 0.0.0.0 192.168.0.1


 
VPN設定は、こっから
 
vpn enable
vpnlog enable
 
ipsec access-list 1 ipsec ip any any
ipsec access-list 2 ipsec ip any any
ipsec access-list 3 discard ip 192.168.0.0 0.0.0.255 any
ipsec access-list 64 bypass ip any any
 
ipsec transform-set P2-POLICY esp-aes-256 esp-sha256-hmac
 
crypto security-association
ikealive freq 20
exit

 
vpn2-1本目
crypto isakmp policy 1
authentication prekey
encryption aes 128
group 5
hash sha
key ascii BPgPG4HOTGvpsDEHogelO4ZIzttCew6Z8o6RiExdZvHogelL0n8FbO30Sil0yMzW
lifetime 28800
nat-traversal enable rfc3948-also spoofed alivefreq 20
negotiation-mode aggressive
idtype-pre fqdn
my-identity 192.168.0.14
peer-identity address 168.138.35.215
exit
 
crypto map vpn2_t1 1
 match address 1 multi-path
 mode tunnel
 set peer address 168.138.35.215
 set peer isakmp-policy 1
 set pfs group5
 set security-association lifetime seconds 3600
 set transform-set P2-POLICY
 set security-association always-up
exit
 
interface ipsecif 1
crypto map vpn2_t1
ip address 10.99.90.1 255.255.255.252
ip mtu 1500
exit

 
vpn2-2本目
crypto isakmp policy 2
authentication prekey
encryption aes 128
group 5
hash sha
key ascii 6MgNjHupHogethJNC1yYrJ1qWQZuKoQf4HogehH5tNAbJOeoGt5iQQ8yWnqI22lV
lifetime 28800
nat-traversal enable rfc3948-also spoofed alivefreq 20
negotiation-mode aggressive
idtype-pre fqdn
my-identity 192.168.0.14
peer-identity address 168.138.34.8
exit
 
crypto map vpn2_t2 2
 match address 1 multi-path
 mode tunnel
 set peer address 168.138.34.8
 set peer isakmp-policy 2
 set pfs group5
 set security-association lifetime seconds 3600
 set transform-set P2-POLICY
 set security-association always-up
exit
 
interface ipsecif 2
crypto map vpn2_t2
ip address 10.99.91.1 255.255.255.252
ip mtu 1500
exit

 
vpn3-1本目
crypto isakmp policy 11
authentication prekey
encryption aes 128
group 5
hash sha
key ascii zhmeknHogeudvLthX1AEXcTuATYEBzxbIhkJ4HHoge5gBV52u4UcW6iUEiuc2t6U
lifetime 28800
nat-traversal enable rfc3948-also spoofed alivefreq 20
negotiation-mode aggressive
idtype-pre fqdn
my-identity 192.168.0.14
peer-identity address 168.138.34.3
exit
 
crypto map vpn3_t1 11
 match address 2 multi-path
 mode tunnel
 set peer address 168.138.34.3
 set peer isakmp-policy 11
 set pfs group5
 set security-association lifetime seconds 3600
 set transform-set P2-POLICY
 set security-association always-up
exit
 
interface ipsecif 11
crypto map vpn3_t1
ip address 10.99.92.1 255.255.255.252
ip mtu 1500
exit
 

 
vpn3-2本目
crypto isakmp policy 12
authentication prekey
encryption aes 128
group 5
hash sha
key ascii MKZzQVshoGewBfo8SZ5ApYSd57wp6aq68b5RDvjKchhogf8GfNAP6hoOlJspcYjn
lifetime 28800
nat-traversal enable rfc3948-also spoofed alivefreq 20
negotiation-mode aggressive
idtype-pre fqdn
my-identity 192.168.0.14
peer-identity address 168.138.32.228
exit
 
crypto map vpn3_t2 12
 match address 2 multi-path
 mode tunnel
 set peer address 168.138.32.228
 set peer isakmp-policy 12
 set pfs group5
 set security-association lifetime seconds 3600
 set transform-set P2-POLICY
 set security-association always-up
exit
 
interface ipsecif 12
crypto map vpn3_t2
ip address 10.99.93.1 255.255.255.252
ip mtu 1500
exit
 

BGP 経路設定
 
access-list 5 permit 192.168.0.0 0.0.0.255
route-map local_net permit 1
match ip address 5
exit
 
router bgp 65401
neighbor 10.99.90.2 ebgp-multihop 255
neighbor 10.99.90.2 remote-as 31898
neighbor 10.99.91.2 ebgp-multihop 255
neighbor 10.99.91.2 remote-as 31898
neighbor 10.99.92.2 ebgp-multihop 255
neighbor 10.99.92.2 remote-as 31898
neighbor 10.99.93.2 ebgp-multihop 255
neighbor 10.99.93.2 remote-as 31898
redistribute connected route-map local_net
exit

設定保存、再起動

end

save SIDE-A.cfg

reset


後は、Ping応答しそうな インスタンスを構築して、Pingしてみましょう。

応答が無かったら、セキュリティリスト、NSG、サブネットのルーティングテーブルなんかを調べましょう。

ルーティングテーブルは、とりあえず、DRGにルートするようにすれば良いです。

応答があったら、片っぽをぶっ壊す為に、CPE IKE 識別子 を適当なアドレスに変更してみて下さい。

Pingが途切れるはずです。

でも、Ping応答が復活すれば成功です。

めでたし

Joomla templates by a4joomla