5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle Cloud:OCIにオンプレミスのDNSと同期するDNSキャッシュサーバーを構成してみてみた

Last updated at Posted at 2018-12-13

#■目的
OCIのDNS名は、VCN DNSリゾルバ(169.254.169.254)を使用してVCN内でのみ解決できます。このIPアドレス(169.254.169.254)は、VCN内のインスタンスからのみ到達可能です。
オンプレミスのデータセンターが(VPNまたはFastConnectを介して)VCNに接続されている場合、オンプレミスのクライアントからのVCNインスタンスとその逆のインスタンスのDNS名の解決を可能にするために、VCN側にオンプレミスのDNSと同期するDNSキャッシュサーバーを配置します。

#■Network構成
構成図01.png

##●1. オンプレミスからVCNへのDNS Resolutionフロー

 ①クライアント(onp-inst)は、オンプレミスのDNSサーバー(192.168.0.2)へのDNSクエリ(oci-inst.ap.testvcn.oraclevcn.com)を開始
 ②オンプレミスDNSサーバーは、要求をプライベート接続(VPNまたはFastConnect)経由でVCNのDNS VM(10.0.0.2)に転送
 ③DNSクエリをVCN DNSリゾルバ(169.254.169.254)に転送
 ④DNS VM(10.0.0.2)はFQDNのIPアドレスを取得し、それをオンプレミスDNSサーバー(192.168.0.2)に戻す
 ⑤オンプレミスDNSサーバーがIPアドレスを取得し、クライアンに返します

##●2. VCNからオンプレミスへのDNS Resolutionフロー

①VCNのインスタンス(oci-inst)がDNSクエリ開始(onp-inst.customer.net)
②VCN内のサブネットで使用されるDHCPオプションで構成されたDNSサーバーは、DNS要求を受信します。 この場合、要求はVCNのDNS VMによって受信されます
③DNSクエリはプライベート接続(VPNのFastconnect)でオンプレミスDNSサーバー(192.168.0.2)に転送
④DNS VMは応答を取得し、それをクライアントに返します

#■OCI側DNSサーバー作成手順
OCIにDNSサーバー用のSecurity ListとDHCPオプション、Subnetを作成して、DNSサーバーを作成します

##●1. Security List 作成
DNS用 udp 53 Portを設定して作成
SecList01.png

##●2. DHCPオプション作成
DNS type を "Internet and VCN resolver"として設定して作成

DHCP01.png

##●3. Subnet作成
作成したSecurity ListとDNS type を追加して作成
subnet01.png

##●4. DNSサーバー用 VMインスタンス作成
Oracle Linux7.6のOC で VM インスタンスを 作成

##●5. Named(bind)インストールと設定
作成したVM インスタンスへ bindをインストール

①install bind
yum でbindをインストール

[root@customer-dns ~]# yum install bind
	Loaded plugins: langpacks, ulninfo
	ksplice-uptrack                                          |  951 B     00:00
	ol7_UEKR5                                                | 1.2 kB     00:00
	ol7_addons                                               | 1.2 kB     00:00
	ol7_developer                                            | 1.2 kB     00:00
	ol7_developer_EPEL                                       | 1.2 kB     00:00
	ol7_latest                                               | 1.4 kB     00:00
	ol7_optional_latest                                      | 1.2 kB     00:00
	ol7_software_collections                                 | 1.2 kB     00:00
	(1/16): ol7_addons/x86_64/updateinfo                       |  46 kB   00:00
	(2/16): ol7_developer/x86_64/updateinfo                    |  134 B   00:00
	(3/16): ol7_developer/x86_64/primary                       | 185 kB   00:00
	(4/16): ol7_developer_EPEL/x86_64/updateinfo               | 2.4 kB   00:00
	(5/16): ol7_UEKR5/x86_64/updateinfo                        |  11 kB   00:00
	(6/16): ol7_developer_EPEL/x86_64/primary                  | 8.0 MB   00:00
	(7/16): ol7_latest/x86_64/updateinfo                       | 755 kB   00:00
	(8/16): ol7_UEKR5/x86_64/primary                           | 2.4 MB   00:00
	(9/16): ol7_optional_latest/x86_64/updateinfo              | 585 kB   00:00
	(10/16): ol7_optional_latest/x86_64/primary                | 2.7 MB   00:00
	(11/16): ol7_latest/x86_64/primary                         |  11 MB   00:00
	(12/16): ol7_latest/x86_64/group                           | 659 kB   00:00
	(13/16): ol7_addons/x86_64/primary                         |  65 kB   00:00
	(14/16): ol7_software_collections/updateinfo               | 8.7 kB   00:00
	(15/16): ksplice-uptrack/7Server/x86_64/primary            | 2.7 kB   00:00
	(16/16): ol7_software_collections/primary                  | 3.7 MB   00:00
	ksplice-uptrack                                                           12/12
	ol7_UEKR5                                                               108/108
	ol7_addons                                                              247/247
	ol7_developer                                                           482/482
	ol7_developer_EPEL                                                  24124/24124
	ol7_latest                                                          11684/11684
	ol7_optional_latest                                                   9234/9234
	ol7_software_collections                                            12604/12604
	Resolving Dependencies
	--> Running transaction check
	---> Package bind.x86_64 32:9.9.4-72.el7 will be installed
	--> Finished Dependency Resolution

	Dependencies Resolved

	================================================================================
	 Package      Arch           Version                   Repository          Size
	================================================================================
	Installing:
	 bind         x86_64         32:9.9.4-72.el7           ol7_latest         1.8 M

	Transaction Summary
	================================================================================
	Install  1 Package

	Total download size: 1.8 M
	Installed size: 4.5 M
	Is this ok [y/d/N]: y
	Downloading packages:
	bind-9.9.4-72.el7.x86_64.rpm                               | 1.8 MB   00:05
	Running transaction check
	Running transaction test
	Transaction test succeeded
	Running transaction
	  Installing : 32:bind-9.9.4-72.el7.x86_64                                  1/1
	  Verifying  : 32:bind-9.9.4-72.el7.x86_64                                  1/1

	Installed:
	  bind.x86_64 32:9.9.4-72.el7

	Complete!

②firewalld設定
DNS使用Port 53を通すように設定


[root@customer-dns ~]# firewall-cmd --permanent --add-port=53/udp
	success
[root@customer-dns ~]# firewall-cmd --permanent --add-port=53/tcp
	success
[root@customer-dns ~]# systemctl restart firewalld

③/etc/named.conf設定
・デフォルトの/etc/named.confをバックアップ

[root@customer-dns ~]# mv /etc/named.conf /etc/named.conf.org

・DNS設定
オンプレミスDNSサーバー(192.168.0.2)のキャッシュDNSとなるよう設定

[root@customer-dns ~]# vi /etc/named.conf
	options {
	        listen-on port 53 { any; };
	        allow-query    { localhost; 10.0.0.0/16; 192.168.0.0/16; };
	        forward        only;
	        forwarders     { 169.254.169.254; };
	        recursion yes;
	};

	zone "customer.net" {
	        type       forward;
	        forward    only;
	        forwarders { 192.168.0.2; };
	};

④named起動

[root@customer-dns ~]# service named restart
	Redirecting to /bin/systemctl restart named.service

#■OCI側インスタンスのDNSサーバー指定設定
OCI内のインスタンスが作成したDNSサーバーにアクセスするためには、VCNのSubnetに付与されているDHCP Optionsを設定します

##●1. DHCP Options作成
ここでは、AP-Subnet用のDHCP Optionを作成し以下項目を設定して[Create DHCP Option]をクリックして作成

  ・Options:Custom Resolver
  ・Search Domain:オンプレミスのドメイン(customer.net)を設定

AP-DHCP.png

##●2. OCIインスタンスのVCN Subnet設定
作成したDHCP Option をSubnetに付与
AP-Subnet.png

##●3. OCIインスタンスの設定確認
OCIインスタンスを再起動することによって、設定したDHCP OptionのDNSサーバーにアクセスするようにOS設定がされます

①OCIインスタンス再起動
oci-instを [Reboot]ボタンで再起動
reboot.png

②設定反映確認
再起動したインスタンスにログインして、/etc/resolv.confを読み、オンプレミスのドメインが付与され、作成したDNS(nameserver)のIPが設定されていることを確認

[opc@oci-inst ~]$ cat /etc/resolv.conf
	; generated by /usr/sbin/dhclient-script
	search customer.net ap.testvcn.oraclevcn.com testvcn.oraclevcn.com
	nameserver 10.0.0.2

#■DNS名前解決確認

##●1. OCI-->オンプレミス確認
OCIのインスタンス(oci-inst)からオンプレミスのインスタンス(onp-inst)のDNS名前解決できることを確認

① nslookupで名前解決確認
ホスト名でnslookupを実行し、ドメイン名とIPアドレス、DNSサーバーのIPアドレスを確認

[opc@oci-inst ~]$ nslookup onp-inst
	Server:         10.0.0.2
	Address:        10.0.0.2#53

	Non-authoritative answer:
	Name:   onp-inst.customer.net
	Address: 192.168.1.11

② ホスト名でssh接続できることを確認
sshを実行して接続先のホスト名を確認

[opc@oci-inst ~]$ ssh -i id_rsa opc@onp-inst hostname
	onp-inst

##●2. オンプレミス-->OCI確認
・オンプレミスのインスタンス(onp-inst)からOCIのインスタンス(oci-inst)のDNS名前解決できることを確認

① nslookupで名前解決確認
ホスト名でnslookupを実行し、ドメイン名とIPアドレス、DNSサーバーのIPアドレスを確認

[root@onp-inst ~]# nslookup oci-inst
	Server:         192.168.0.2
	Address:        192.168.0.2#53

	Non-authoritative answer:
	Name:   oci-inst.ap.testvcn.oraclevcn.com
	Address: 10.0.2.11

② ホスト名でssh接続できることを確認
sshを実行して接続先のホスト名を確認

[root@onp-inst ~]# ssh -i id_rsa opc@oci-inst hostname
oci-inst
5
1
2

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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?