Oracle Cloud: OCI에 온프레미스 DNS와 동기화할 DNS 캐시 서버를 구성해 보았습니다.

■목적



OCI의 DNS 이름은 VCN DNS 해석기(169.254.169.254)를 사용하여 VCN 내에서만 확인할 수 있습니다. 이 IP 주소(169.254.169.254)는 VCN의 인스턴스에서만 도달할 수 있습니다.
온프레미스 데이터 센터가 (VPN 또는 FastConnect를 통해) VCN에 연결되어 있으면 온프레미스 클라이언트의 VCN 인스턴스와 그 반대의 DNS 이름을 확인할 수 있도록 VCN 측에 온프레미스 DNS와 동기화할 DNS 캐시 서버를 배포합니다.

■네트워크 구성





● 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 서버용 보안 목록 및 DHCP 옵션인 Subnet을 만들어 DNS 서버를 만듭니다.

●1. Security List 작성


DNS用 udp 53 Portを設定して作成



●2. DHCP 옵션 작성



DNS 유형을 "Internet and VCN resolver"로 설정하여 생성



●3. Subnet 작성



작성한 Security List 및 DNS type을 추가하여 작성


● 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 사용 포트 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)을 설정



● 2. OCI 인스턴스의 VCN Subnet 설정



작성한 DHCP Option을 Subnet에 부여


● 3. OCI 인스턴스 설정 확인



OCI 인스턴스를 다시 시작하면 구성된 DHCP Option의 DNS 서버에 액세스하도록 OS 설정이 이루어집니다.

①OCI 인스턴스 재시작
oci-inst를 [Reboot] 버튼으로 재부팅


② 설정 반영 확인
다시 시작한 인스턴스에 로그인하여/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

좋은 웹페이지 즐겨찾기