AWSの勉強をしていたのですが、何故か、実務では、OCIを使うことになってしまいました。
まー、どっちもクラウド環境だし、似たり寄ったりしてるので、良いのですが
ということで、今回は、オラクルクラウドねたです。
OCIって、使うまで存在さえ知らなかったんですが、使ってみるとAWS程、高機能では無いですが、それなりに使えるやつです。
AWSと決定的に違うのは、無料枠が多いことですかね。
AWSだと外向き(エグレス)のネット代金をむしり取られますが、OCIは、無料です。
さらに今回のネタのipsecも無料なんですよね。
むちゃしそうな人が現れそうですが、無料なんですよ。
後、Arm系インスタンスの無料枠が大きくって、正直、借りてた仮想サーバーを一掃してしまう勢いです。
後発ということで頑張っているんでしょうが、永年無料でお願いしたいものです。
と前置きは、こんなとこで
ということで、ipsecなんですが、家のネットとクラウドをプライベートネットワークで接続しようという方は、そんなにいないと思うのですが、お勉強がてらにやってみたいぜと思う人は、いらっしゃるのではないかと思います。
前にJCOM ipv6の為にER-Xを使っていたのですが、NUROにしたので、使っていなかったんですね。
そこで、今回、ipsecで、VPN引くのに最適だったので使ってみました。
まず、前提として、我が家は、NURO光なんで、なぞの光ルーター(SGP200W)内に設置する必要があります。
こいつは、高度な設定が出来ないので、かなりの困り者なんですよ。
基本、OCIのipsecは、エンドポイントIPv4しか対応していません。
1.
SGP200WにIPv4 UDPの穴を空ける必要があるので、転送ルールにER-Xへ向けて、UDP 500と4500を追加しましょう。
やり方がわからない方は、chatGPTにでも尋ねて下さい。
2.
OCIで、ipsecの設定を行います。
仮想クラウド・ネットワークとサブネットは、適当に作っておいて下さい。
ネットワーキングメニューから、顧客接続性を選択します。
顧客構内機器(自分家の装置のこと)を選択すると、CPE(ER-Xのこと)の作成が出来るので、作成します。
ここで重要なのは、Public IPだけです。後は、適当で良さそうです。
名前は、適当 ベンダーは、OtherでOK
Public IPは、自分家のIPになるので、SGP200WのグローバルIPとなります。
3.
ネットワーキングメニュー - 顧客接続性から、動的ルーティング・ゲートウェイを選択し、作成します。
こいつは、仮想クラウド・ネットワークで、良い感じにルーテングしてくれる論理ルーターです。
作成後、使う仮想クラウド・ネットワークを選択する必要があるので、繋げたいサブネットが存在する仮想クラウド・ネットワークにアタッチする必要があります。
仮想クラウド・ネットワーク・アタッチメントの作成を押下して、仮想クラウド・ネットワークを選択します。
4.
ネットワーキングメニュー - 顧客接続性から、サイト間VPNを選択します。
いよいよipsecを作成します。
Create IPSec connectionを押下します。
コンパートメント(OCI作成時に決定)、顧客構内機器(2.で作成)、動的ルーティング・ゲートウェイ(3.で作成)を選択します。
今回、BGP動的ルーティングで行いますよ。
トンネルは、冗長性を考慮して2つ作らされちゃいます。
トンネル1
IKE:Version1
BGP ASN:65001
IPv4トンネル内インタフェース - CPE:10.99.98.1/30
IPV4トンネル内インタフェース - Oracle:10.99.98.2/30
トンネル2
IKE:Version1
BGP ASN:65001
IPv4トンネル内インタフェース - CPE:10.99.99.1/30
IPV4トンネル内インタフェース - Oracle:10.99.99.2/30
拡張オプションのDiffie-Hellmanグループを確認しておいて下さい。たぶん、GROUP5になっているはずです。
作成完了すると、各トンネルの共有シークレットが発行されるので、これを記録しておきましょう。
BGPを使うので、Oracle BGP ASNを記録しておきましょう。
それと、各トンネルのエンドポイントIPv4アドレス(Oracle VPN IP address)を記録しましょうね。
今回、NATルーター内とのipsecとなるので、ちょっと識別子に変更が必要なのです。
作成したサイト間VPNを編集し、CPE IKE Identifier typeをIPアドレス、CPE IKE 識別子をER-Xのローカルアドレス(192.168.0.2)にして下さい。
5.
ER-X(EdgeRouter X v2.0.9-hotfix.6)の設定
こっちは、GUIでほぼ出来ないので、コマンドかConfig Treeで行います。
設定した後は、リブートして下さい。
- IKE
set vpn ipsec ike-group vcn1-ike proposal 1 dh-group 5 set vpn ipsec ike-group vcn1-ike proposal 1 encryption aes128 set vpn ipsec ike-group vcn1-ike proposal 1 hash sha1
- ESP
set vpn ipsec esp-group vcn1-esp proposal 1 encryption aes128 set vpn ipsec esp-group vcn1-esp proposal 1 hash sha1
- IPSec
- トンネル1
set vpn ipsec site-to-site peer 168.44.44.5 authentication mode pre-shared-secret set vpn ipsec site-to-site peer 168.44.44.5 authentication pre-shared-secret qevnCDkljdfasfdjioPIFG65460fdsfsd89sdiojksdafafdsaiojsdaf6540f5S set vpn ipsec site-to-site peer 168.44.44.5 ike-group vcn1-ike set vpn ipsec site-to-site peer 168.44.44.5 local-address 192.168.0.2
- トンネル2
set vpn ipsec site-to-site peer 168.33.33.8 authentication mode pre-shared-secret set vpn ipsec site-to-site peer 168.33.33.8 authentication pre-shared-secret vdfs580dsfsdfklsdfa50FDHhrt80dfSDAFdf490fdjhdfdsfHDFg94980dfffQ6 set vpn ipsec site-to-site peer 168.33.33.8 ike-group vcn1-ike set vpn ipsec site-to-site peer 168.33.33.8 local-address 192.168.0.2
- トンネル1
- VTI
- トンネル1
set interfaces vti vti0 address 10.99.98.1/30 set vpn ipsec site-to-site peer 168.44.44.5 vti bind vti0 set vpn ipsec site-to-site peer 168.44.44.5 vti esp-group vcn1-esp
- トンネル2
set interfaces vti vti1 address 10.99.99.1/30 set vpn ipsec site-to-site peer 168.33.33.8 vti bind vti1 set vpn ipsec site-to-site peer 168.33.33.8 vti esp-group vcn1-esp
- BGP
set protocols bgp 65001 set protocols bgp 65001 neighbor 10.99.98.2 remote-as 31294 set protocols bgp 65001 neighbor 10.99.98.2 ebgp-multihop 100 set protocols bgp 65001 neighbor 10.99.98.2 update-source '10.99.98.1' set protocols bgp 65001 neighbor 10.99.99.2 remote-as 31294 set protocols bgp 65001 neighbor 10.99.99.2 ebgp-multihop 100 set protocols bgp 65001 neighbor 10.99.99.2 update-source '10.99.99.1' set protocols bgp 65001 network 192.168.0.0/24
set protocols bgp 65001 parameters default local-pref 200
- トンネル1
- Offload
set system offload ipsec enable
ER-Xのアドレス(192.168.0.2)は、環境によって変更して下さい。
通知する自分家のネットワークは、192.168.0.0/24 ですので、環境に合わせて変更して下さい。
これで、OCI側からのインスタンスとかからは、自分家のネッワークへルーティングが出来るようになります。
しかし、自分家のパソコンとかは、OCI側のネットワークをER-Xを経由するように設定する必要があるので、デフォルトルーテイングをER-Xにするか静的ルーティングするように設定しないと双方向通信出来ませんから。そういうのは、chatGPTに聞いて下さいね。
気になるパフォーマンスは、だいたい 180Mbps というぐらいでしょうか。
おまけネタです。
ipsecで、プライベートで接続する時に、DNSを相互に連携したいですよね
そういう時は、DNSリゾルバのエンドポイントを作ることで可能なんですが
なぜか、IPv6を割り当てたサブネットでは構築出来ないんですよ。
Internal Server Errorとかってなって作れません。
Oracleさん、治して下さいね