LoginSignup
2
2

More than 1 year has passed since last update.

[OCI]Private DNS Resolverを利用して別のVCNにあるDBシステムにDNS名(FQDN)でアクセスしてみた

Last updated at Posted at 2020-11-26

はじめに

OCIのDatabase Cloud ServiceのDBシステムは、プライベートIPアドレスがDHCPによる割り当てとなっていて固定できないため、DNS名(FQDN)でアクセスすることが推奨されています。
同一VCNでのアクセスの場合はVCNのDNSリゾルバが名前解決をしてくれますが、ローカルピアリング、リモートピアリングなどでピアリングしたVCNからはデフォルトではDNS名を使用してアクセスすることができません。

今回は先日リリースされたPrivate DNS Resolverの機能を利用して、ピアリングされている異なるVCN内のサーバからDNS名(FQDN)でDBシステムにアクセスできるような構成を検証しました。
こちらの記事はわずか1日の命でした。。。)

検証した構成は以下の図のようになります。

スクリーンショット 2020-11-26 18.51.58.png

1. APサーバ側VCNの設定

1-1. VCNの作成

VCNを作成します。

名前 AP-VCN
CIDRブロック 10.1.0.0/16
このVCNでDNSホスト名を使用 チェックをオン

1-2. Local Peering Gatewayの作成

AP-VCNにLocal Peering Gatewayを作成します

名前 LPG-AP-VCN

1-3. Internet Gatewayの作成

AP-VCNにInternet Gatewayを作成します。

名前 IG-AP-VCN

1-4. Route Tableの作成

AP-VCNにRoute Tableを作成します。
名前:RT-AP-Subnet

ターゲット・タイプ 宛先 ターゲット
インターネット・ゲートウェイ 0.0.0.0/0 IG-AP-VCN
ローカル・ピアリング・ゲートウェイ 10.2.0.0/16 LPG-AP-VCN

1-5. Network Security Groupの作成

AP-VCNにPrivate DNS Endpoint用のNetwork Security Groupを作成します。

名前:NSG for DNS_AP_VCN

イングレスルール1
ソース・タイプ CIDR
ソースCIDR 10.1.1.0/24
IPプロトコル UDP
ソースポート範囲 入力しない
宛先ポート範囲 53
イングレスルール2
ソース・タイプ CIDR
ソースCIDR 10.2.1.0/24
IPプロトコル UDP
ソースポート範囲 入力しない
宛先ポート範囲 53

1-6. Subnetの作成

AP-VCNにSubnetを作成します。
APサーバを配置するSubnet(AP-Subnet

名前 AP-Subnet
サブネット・タイプ リージョナル
CIDRブロック 10.1.1.0/24
ルート表 RT-AP-Subnet
サブネット・アクセス パブリック・サブネット
DNS解決 「このSUBNETでDNSホスト名を使用」のチェックをオン
DNSのDHCPオプション Default DHCP Options for AP-VCN
セキュリティ・リスト Default Security List for AP-VCN

1-7. Private DNSエンドポイントの作成

DNSリゾルバ名をクリックします。
スクリーンショット 2020-11-26 19.01.39.png
リソース欄の「エンドポイント」をクリックします。
スクリーンショット 2020-11-26 11.55.20.png
「エンドポイントの作成」をクリックします。
スクリーンショット 2020-11-26 11.55.30.png
エンドポイントを作成します。

名前 DNS_AP_VCN
サブネットの選択 AP-Subnet
エンドポイント・タイプ リスニング
ネットワーク・セキュリティ・グループを使用してトラフィックを制御 チェックをオン
ネットワーク・セキュリティ・グループ NSG for DNS_AP_VCN
「エンドポイントの作成」をクリック
スクリーンショット 2020-11-26 12.04.52.png

2. DBサーバ側VCNの設定

2-1. VCNの作成

VCNを作成します。

名前 DB-VCN
CIDR 10.2.0.0/16
このVCNでDNSホスト名を使用 チェックをオン

2-2. Local Peering Gatewayの作成

DB-VCNにLocal Peering Gatewayを作成します。

名前 LPG-DB-VCN

2-3. ピアリング接続の確立

LPG-DB-VCNの「…」から「ピアリング接続の確立」をクリックします。

ローカル・ピアリング・ゲートウェイの指定 「下を選択」を選択
仮想クラウド・ネットワーク 「AP-VCN」を選択
ピア・ゲートウェイ 「LPG-AP-VCN」を選択

2-4. Internet Gatewayの作成

DB-VCNにInternet Gatewayを作成します。

名前 IG-DB-VCN

2-5. Route Tableの作成

DB-VCNにRoute Tableを作成します。

名前:RT-DB-Subnet

ターゲット・タイプ 宛先 ターゲット
インターネット・ゲートウェイ 0.0.0.0/0 IG-DB-VCN
ローカル・ピアリング・ゲートウェイ 10.1.0.0/16 LPG-DB-VCN

2-6. Network Security Groupの作成

DB-VCNにPrivate DNS Endpoint用のNetwork Security Groupを作成します。

名前:NSG for DNS_DB_VCN

イングレスルール1
ソース・タイプ CIDR
ソースCIDR 10.1.1.0/24
IPプロトコル UDP
ソースポート範囲 入力しない
宛先ポート範囲 53
イングレスルール2
ソース・タイプ CIDR
ソースCIDR 10.2.1.0/24
IPプロトコル UDP
ソースポート範囲 入力しない
宛先ポート範囲 53

DB-VCNにDBアクセス用のNetwork Security Groupを作成します。

名前:NSG for DB1

イングレスルール1
ソース・タイプ CIDR
ソースCIDR 10.1.1.0/24
IPプロトコル TCP
ソースポート範囲 入力しない
宛先ポート範囲 1521

2-7. Subnetの作成

DB-VCNにSubnetを作成します。
DBサーバを配置するSubnet(DB-Subnet

名前 DB-Subnet
サブネット・タイプ リージョナル
CIDRブロック 10.2.1.0/24
ルート表 RT-DB-Subnet
サブネット・アクセス パブリック・サブネット
DNS解決 「このSUBNETでDNSホスト名を使用」のチェックをオン
DNSのDHCPオプション Default DHCP Options for DB-VCN
セキュリティ・リスト Default Security List for DB-VCN

2-8. Private DNSエンドポイントの作成

DNSリゾルバ名をクリックします。
スクリーンショット 2020-11-26 14.18.30.png
リソース欄の「エンドポイント」をクリックします。
スクリーンショット 2020-11-26 14.18.52.png
「エンドポイントの作成」をクリックします。
スクリーンショット 2020-11-26 14.19.05.png
エンドポイントを作成します。

名前 DNS_DB_VCN
サブネットの選択 DB-Subnet
エンドポイント・タイプ リスニング
ネットワーク・セキュリティ・グループを使用してトラフィックを制御 チェックをオン
ネットワーク・セキュリティ・グループ NSG for DNS_DB_VCN
「エンドポイントの作成」をクリック
スクリーンショット 2020-11-26 14.19.44.png

3. AP-VCNのPrivate DNS Resolverの設定

3-1. AP-VCNへのプライベート・ビューの追加

「プライベート・ビューの管理」をクリックします。
スクリーンショット 2020-11-26 19.22.33.png
「DB-VCN」を選択し、「変更の保存」をクリックします。
スクリーンショット 2020-11-26 19.23.20.png
プライベート・ビュー「DB-VCN」が関連づけられました。
スクリーンショット 2020-11-26 19.23.34.png
##3-2. AP-VCNへのDHCPオプションの追加

リソース欄の「DHCPオプション」をクリックします。
スクリーンショット 2020-11-26 19.35.48.png
「DHCPオプションの作成」をクリックします。
スクリーンショット 2020-11-26 19.39.17.png
DHCPオプションを作成します。

名前 DHCP Option for AP-Subnet
DNSタイプ カスタム・リゾルバ
DNSサーバー 10.1.1.254
スクリーンショット 2020-11-26 19.34.55.png
##3-3. AP-SubnetのDHCPオプションの変更
「編集」をクリックします。
スクリーンショット 2020-11-26 19.44.21.png
DHCPオプションを「DHCP Option for AP-Subnet」に変更して、「変更を保存」をクリックします。
DHCPオプション DHCP Option for AP-Subnet
スクリーンショット 2020-11-26 19.45.42.png

4. DB-VCNのPrivate DNS Resolverの設定

4-1. DB-VCNへのプライベート・ビューの追加

DNSリゾルバ名をクリックします。
スクリーンショット 2020-11-26 20.22.18.png
「プライベート・ビューの管理」をクリックします。
スクリーンショット 2020-11-26 20.24.15.png
「AP-VCN」を選択して、「変更の保存」をクリックします。
スクリーンショット 2020-11-26 20.24.32.png
##4-2. DB-VCNへのDHCPオプションの追加
リソース欄の「DHCPオプション」をクリックします。
スクリーンショット 2020-11-26 20.43.43.png
「DHCPオプションの作成」をクリックします。
スクリーンショット 2020-11-26 20.46.15.png
DHCPオプションを作成します。

名前 DHCP Option for DB-Subnet
DNSタイプ カスタム・リゾルバ
DNSサーバー 10.2.1.254
スクリーンショット 2020-11-26 20.29.23.png
##4-3. DB-SubnetのDHCPオプションの変更
「編集」をクリックします。
スクリーンショット 2020-11-26 20.36.29.png
DHCPオプションを「DHCP Option for DB-Subnet」に変更して、「変更の保存」をクリックします。
DHCPオプション DHCP Option for DB-Subnet
スクリーンショット 2020-11-26 20.38.35.png

以上でPrivate DNS Resolverの設定とPrivate DNS Resolverを使用するためのDHCPの設定が完了しました。

5. コンピュート・インスタンスの作成

APサーバ

名前 AP1
OS Oracle Linux 7.9
サブネット AP-Subnet
IPアドレス 10.1.1.100
ホスト名 ap1

6. DBCSインスタンスの作成

DBサーバ

名前 DB1
サブネット DB-Subnet
ネットワーク・セキュリティ・グループ NSG for DB
ホスト名 db1

7. 名前解決の確認

nslookupでAP1からDB1(db1.dbsubnet.dbvcn.oraclevcn.com)の名前解決ができるか確認します。

[opc@ap1 ~]$ nslookup db1.dbsubnet.dbvcn.oraclevcn.com
Server:		10.1.1.254
Address:	10.1.1.254#53

Name:	db1.dbsubnet.dbvcn.oraclevcn.com
Address: 10.2.1.2

[opc@db1 ~]$

AP-VCNにあるAP1から、DB-VCNにあるDB1の名前解決ができました。

同様に、DB1からAP1(ap1.apsubnet.apvcn.oraclevcn.com)の名前解決ができるか確認します。

opc@db1 ~]$ nslookup ap1.apsubnet.apvcn.oraclevcn.com
Server:		10.2.1.254
Address:	10.2.1.254#53

Name:	ap1.apsubnet.apvcn.oraclevcn.com
Address: 10.1.1.100

[opc@db1 ~]$

DB-VCNにあるDB1から、AP-VCNにあるAP1の名前解決ができました。

8. SQL*PlusでのDB接続確認

AP1にSSHクライアントからopcユーザでログインします。

Oracle Instant Clientをインストールします。

sudo yum -y install oracle-release-el7
sudo yum install -y oracle-instantclient19.6-sqlplus.x86_64

Oralce Client用の環境変数の設定を/etc/profileに追加します。

sudo vi /etc/profile

以下の内容をファイルの末尾に追加します。

export ORACLE_HOME=/usr/lib/oracle/19.6/client64/lib
export NLS_LANG=Japanese_Japan.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=/usr/lib/oracle/19.6/client64/bin:$PATH

環境変数の設定を有効化します。

source /etc/profile

tnsnames.oraファイルを作成し、DB1の$ORACLE_HOME/network/admin/tnsmanes.oraファイルの内容をコピー&ペースとします。
tnsnames.ora内の接続記述子でのホストの指定は、DNS名での指定となっています。

sudo vi $ORACLE_HOME/network/admin/tnsnames.ora
tnsnames.ora
DB1_NRT1M2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = db1.dbsubnet.dbvcn.oraclevcn.com)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DB1_nrt1m2.dbsubnet.dbvcn.oraclevcn.com)
    )
  )

SQL*PlusでDB1のCDBにsysユーザで接続してみます。

opc@ap1 ~]$ sqlplus sys/Demo#1Demo#1@DB1_NRT1M2 as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 木 11月 26 12:03:06 2020
Version 19.6.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.9.0.0.0
に接続されました。
SQL>

無事、接続できました。
めでたし、めでたし。

参考情報

DNS in Your Virtual Cloud Network
Oracle A-Team Chronicles:Provisioning Custom DNS Resolvers for FQDN Resolution

2
2
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
2
2