Private DNSを使用すると、OCIのVCN内に Private DNS のエンドポイントIPを作成することができます。
これにより、VCN と OSNリソースの名前解決をオンプレミスから行うことができ、Internet の DNS にアクセスすることなく、Private DNS 通じてVCN内インスタンス と Object Storage等のOracle Services Network(OSN)サービスのホスト名を取得することができます。
ということで、オンプレミスとOCIをIPSec VPN接続し、オンプレミスからOCIのサービスへ名前解決できるようにしてみてみます。
■ 構成
事前にPrivate DNS以外を上記図のように作成し、Transit Routing の設定でObject Storageとオンプレミスを疎通できるようにしておきます。
・参考:
- IPSec VPN: Oracle Cloud: NEC IXルーターを冗長構成でIKEv2 IPSec VPN接続してみてみた
- Transit Routing: Transit Routing + IPSec VPN / FastConnectで Object Storage, Autonomous Databaseへ接続してみてみた
■ 手順
● Private DNS エンドポイントIP作成
1) 対象VCNアクセス
名前解決したい対象のVCNへアクセスし、画面にある「DNSリゾルバのVCN」をクリック
2) プライベート・リゾルバの詳細画面
3) エンドポイント画面
4) エンドポイントの作成画面
以下項目を入力し、[エンドポイントの作成]をクリック
・名前: エンドポイント名を設定
・サブネットの選択:Private DNSエンドポイントを配置するSubnetを選択
・エンドポイント・タイプ: ここでは[リスニング]を選択
・リスニングIPアドレス: Private DNSエンドポイントIPを設定
5) エンドポイント作成確認
■ 動作確認
● オンプレミス側インスタンス設定
今回Linuxインスタンスなので、/etc/resolv.confへOCI Private DNSのエンドポイントを設定
- /etc/resolv.conf設定
[root@onp-inst ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.0.0.254
● Computeインスタンスのホスト名解決確認
オンプレミスのインスタンスから、OCI Computeインスタンスへ名前解決して疎通できることを確認
1) Computeインスタンスのホスト名確認
テストするComputeインスタンスのドメイン付きホスト名(FQDN)を確認
オンプレミスからこのFQDNが名前解決できることを確認
2) nslookup確認
FQDNからIPアドレスを調べる「nslookup」コマンドでComputeインスタンスのホスト名解決できることを確認
[root@onp-inst ~]# nslookup tokyo-inst01.privatesubnet.vcn10000.oraclevcn.com
;; Got SERVFAIL reply from 192.168.0.254, trying next server
Server: 10.0.0.254
Address: 10.0.0.254#53
Name: tokyo-inst01.privatesubnet01.vcn10000.oraclevcn.com
Address: 10.0.0.2
3) ping疎通確認
FQDNでping疎通できることを確認
[root@onp-inst ~]# ping tokyo-inst01.privatesubnet01.vcn10000.oraclevcn.com -c 3
PING tokyo-inst01.privatesubnet01.vcn10000.oraclevcn.com (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=62 time=4.56 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=62 time=17.7 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=62 time=4.81 ms
--- tokyo-inst01.purivatesubnet01.vcn10000.oraclevcn.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 4.566/9.034/17.724/6.146 ms
● Object Storageのホスト名解決確認
オンプレミスのインスタンスから、OCI オブジェクトストレージへ名前解決して疎通できることを確認
1) Computeインスタンスのホスト名確認
Object Storageのホスト名は次の「オブジェクト・ストレージおよびアーカイブ・ストレージApi」から確認できます。
今回は、Tokyoリージョンなので、"objectstorage.ap-tokyo-1.oraclecloud.com"となります。
・参考: API参照とエンドポイント
2) nslookup確認
FQDNからIPアドレスを調べる「nslookup」コマンドでObject Storageのホスト名解決できることを確認
[root@onp-inst ~]# nslookup objectstorage.ap-tokyo-1.oraclecloud.com
Server: 10.0.0.254
Address: 10.0.0.254#53
Non-authoritative answer:
objectstorage.ap-tokyo-1.oraclecloud.com canonical name = objectstorage.ap-tokyo-1.oci.oraclecloud.com.
Name: objectstorage.ap-tokyo-1.oci.oraclecloud.com
Address: 134.70.80.3
3) ping疎通確認
FQDNでping疎通できることを確認
[root@onp-inst ~]# ping objectstorage.ap-tokyo-1.oraclecloud.com -c 3
PING objectstorage.ap-tokyo-1.oci.oraclecloud.com (134.70.80.3) 56(84) bytes of data.
64 bytes from 134.70.80.3: icmp_seq=1 ttl=62 time=129 ms
64 bytes from 134.70.80.3: icmp_seq=2 ttl=62 time=18.7 ms
64 bytes from 134.70.80.3: icmp_seq=3 ttl=62 time=4.85 ms
--- objectstorage.ap-tokyo-1.oci.oraclecloud.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 4.857/51.126/129.806/55.922 ms
4) traceroute確認
Internetを通らず、VPNのPrivate NWを通じてObject Storageへ疎通していることを確認
[root@onp-inst ~]# traceroute -I objectstorage.ap-tokyo-1.oraclecloud.com
traceroute to objectstorage.ap-tokyo-1.oraclecloud.com (134.70.80.3), 30 hops max, 60 byte packets
1 192.168.0.254 (192.168.0.254) 0.698 ms 0.691 ms 0.689 ms
2 * * *
3 134.70.80.3 (134.70.80.3) 29.672 ms * *
■ 参考
● OCIドキュメント
・ 仮想クラウド・ネットワークのDNS
・ Private DNS
● Oracle Speakerdeck
・ OCI技術資料 : 仮想クラウド・ネットワーク (VCN) 詳細
● ユースケース
・ VCNとオンプレミス・ネーム・サーバー間の接続
・ A-Teamクロニクル/プライベートDNSの実装
● Oracle Help Center Learn
・ Configure private DNS zones views and resolversプライベート DNS ゾーンのビューとリゾルバーを構成する
● Oracle Architecture Center
・ Use private DNS in interconnected VCNs and On-premises