DNS設定の点検
    • PDF

    DNS設定の点検

    • PDF

    Article Summary

    VPC環境で利用できます。

    NAVERクラウドプラットフォームで提供する DNS設定を使用しない場合、内部管理のために提供されるサーバと正常な通信ができない場合があります。なるべく DNSを別途設定しないでください。別途 DNSを設定する場合、サーバイメージでサーバを作成したり、管理者パスワードを設定する過程などでエラーが発生することがあります。

    CentOS, Rocky Linux

    NAVERクラウドプラットフォームで提供している RedHat系の OSで DNS設定値とファイルを点検してください。

    参考

    CentOS 7と Rocky Linux 8を対象に説明します。

    1. DHCPから取得した NAVERクラウドプラットフォームの DNS設定値を確認します。VPC環境で提供される DNSサーバの IPアドレスは169.254.169.53169.254.169.54です。

      [root@centos78 ~]# grep domain-name /var/lib/dhclient/dhclient--eth0.lease
      option domain-name-servers 169.254.169.53,169.254.169.54;
      option domain-name-servers 169.254.169.53,169.254.169.54;
      
    2. /etc/resolv.conf ファイルの設定と内容を確認します。

      • ファイル内容が以下の情報と異なる場合、NAVERクラウドプラットフォームの DNSサーバと正常な通信ができない場合があります。ただし、ファイルを修正して OSを再起動すると、DHCPから受け取った NAVERクラウドプラットフォームの設定値に初期化されます。
      [root@centos78 ~]# cat /etc/resolv.conf
      ; generated by /usr/sbin/dhclient-script
      nameserver 169.254.169.53
      nameserver 169.254.169.54
      
    3. nslookupコマンドを実行して DNSクエリ動作を確認します。

      • 正常にクエリが動作する場合、169.254.1.5169.254.80.160が出力されます。
        [root@centos78 ~]# nslookup repo.ncloud.com
        Server:        169.254.169.53
        Address:    169.254.169.53#53
        
        Non-authoritative answer:
        repo.ncloud.com    canonical name = repo.ncloud.grm.ncloud.com.
        Name:    repo.ncloud.grm.ncloud.com
        Address: 169.254.1.5
        Name:    repo.ncloud.grm.ncloud.com
        Address: 169.254.80.160
        
      • NAVERクラウドプラットフォームが提供している DNS以外の DNSを使用する場合、まったく異なる IPアドレスを受け取ることになります。
        [root@centos78 ~]# nslookup repo.ncloud.com 8.8.8.8
        Server:        8.8.8.8
        Address:    8.8.8.8#53
        
        Non-authoritative answer:
        repo.ncloud.com    canonical name = repo.ncloud.grm.ncloud.com.
        Name:    repo.ncloud.grm.ncloud.com
        Address: 10.250.5.105
        

    Ubuntu

    NAVERクラウドプラットフォームで提供している Ubuntu 18.04、Ubuntu 20.04は systemd-resolvedを使用します。Ubuntu系の OSで DNS設定値とファイルを点検してください。

    参考

    Ubuntu 18.04、Ubuntu 20.04を対象に説明します。

    1. /etc/resolv.conf ファイルの設定と内容を確認します。

      • ファイルの Symbolic Link有無を確認します。
        • Ubuntu 18.04
          root@ubuntu1804:~# ll /etc/resolv.conf
          lrwxrwxrwx 1 root root 29 Nov 13  2019 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
          
        • Ubuntu 20.04
          root@ubuntu2004:~# ll /etc/resolv.conf
          lrwxrwxrwx 1 root root 39 Jan 24  2022 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
          
    2. ファイルの内容が以下の情報と同じか確認します。ただし、options edns0 trust-adオプションは OSバージョンによってオプションがない場合やオプション項目が異なる場合があります。

      • Ubuntu 18.04
        root@ubuntu1804:~# cat /etc/resolv.conf
        # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
        ... 省略...
        nameserver 127.0.0.53
        
      • Ubuntu 20.04
        root@ubuntu2004:~# cat /etc/resolv.conf
        # This file is managed by man:systemd-resolved(8). Do not edit.
        ... 省略...
        nameserver 127.0.0.53
        options edns0 trust-ad
        
    3. DHCPから取得した NAVERクラウドプラットフォームの DNS設定値を確認します。

      root@ubuntu2004:~# cat /run/systemd/resolved.conf.d/isc-dhcp-v4-eth0.conf
      [Resolve]
      DNS=169.254.169.53 169.254.169.54
      
    4. OS上で設定された DNS設定値を確認します。VPC環境で提供される DNSサーバの IPアドレスは169.254.169.53169.254.169.54です。

      root@ubuntu2004:~# cat /run/systemd/resolve/resolv.conf
      ... 省略...
      nameserver 169.254.169.53
      nameserver 169.254.169.54
      
      • もし以下のように表示される場合、DNSサーバ設定が異常な状態です。
        root@ubuntu2004:~# tail -2 /run/systemd/resolve/resolv.conf
        
        # No DNS servers known.
        
      • 該当する場合、次のように処理できます。
        root@ubuntu2004:~# cat /run/systemd/resolved.conf.d/isc-dhcp-v4-eth0.conf
        [Resolve]
        DNS=169.254.169.53 169.254.169.54
        
        root@ubuntu2004:~# systemctl restart systemd-resolved
        root@ubuntu2004:~# tail -2 /run/systemd/resolve/resolv.conf
        nameserver 169.254.169.53
        nameserver 169.254.169.54
        
    5. systemd-resolved デーモンの起動有無と状態を確認します。

      • インストールされた unitリストで systemd-resolved デーモンが enabled 状態の場合に、起動後にも正常動作できます。
        root@ubuntu2004:~# systemctl list-unit-files | grep systemd-resolved.service
        systemd-resolved.service               enabled         enabled
        
      • systemd-resolved デーモンが active 状態の場合に、正常動作できます。
        root@ubuntu2004:~# systemctl status systemd-resolved.service
        ●systemd-resolved.service-Network Name Resolution
             Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
             Active: active (running) since Sat 2023-01-07 00:29:09 KST; 2 months 4 days ago
               Docs: man:systemd-resolved.service(8)
                     https://www.freedesktop.org/wiki/Software/systemd/resolved
                     https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
                     https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
           Main PID: 587 (systemd-resolve)
             Status: "Processing requests..."
              Tasks: 1 (limit: 9421)
             Memory: 4.7M
             CGroup: /system.slice/systemd-resolved.service
                     └─587 /lib/systemd/systemd-resolved
        
      • IPアドレスが127.0.0.53の接続状態を確認します。systemd-resolve サービスによって53(nameservice port)ポートを経由して LISTEN 中である必要があります。
        root@ubuntu2004:~# netstat -anp | grep 127.0.0.53
        tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      587/systemd-resolve
        udp        0      0 127.0.0.53:53           0.0.0.0:*                           587/systemd-resolve
        
    6. systemd-resolve サービスで DNS設定値を確認します。

      • 以下のコマンドでクエリを送信する DNSサーバ情報を確認します。
        • Ubuntu 18.04
          root@ubuntu1804:~# systemd-resolve --status
          Global
                   DNS Servers: 169.254.169.53
                                169.254.169.54
           ... 省略...
          
        • Ubuntu 20.04
          root@ubuntu2004:~# systemd-resolve --status
          Global
                 LLMNR setting: no                 
          MulticastDNS setting: no                 
            DNSOverTLS setting: no                 
                DNSSEC setting: no                 
              DNSSEC supported: no                 
            Current DNS Server: 169.254.169.53     
                   DNS Servers: 169.254.169.53     
                                169.254.169.54
          ... 省略...
          
    7. /etc/hosts ファイルの権限を確認します。

      • /etc/hosts ファイルの Other Userに read権限を付与する場合に、systemd-resolved デーモンが正常動作します。デフォルト設定として /etc/hosts ファイルの権限は、644になっています。
      root@ubuntu2004:~# ls -l /etc/hosts
      -rw-r--r-- 1 root root 186 Jan 24  2022 /etc/hosts
      
    8. nslookupコマンドを実行して DNSクエリ動作を確認します。

      • 正常にクエリが動作する場合、169.254.1.5169.254.80.160が出力されます。
        root@ubuntu2004:~# nslookup repo.ncloud.com
        Server:		   127.0.0.53
        Address:	   127.0.0.53#53
        
        Non-authoritative answer:
        repo.ncloud.com	canonical name = repo.ncloud.grm.ncloud.com.
        repo.ncloud.grm.ncloud.com	canonical name = kr-vpc-init.ncloud.grm.ncloud.com.
        Name:	kr-vpc-init.ncloud.grm.ncloud.com
        Address: 169.254.1.5
        Name:	kr-vpc-init.ncloud.grm.ncloud.com
        Address: 169.254.80.160
        
      • NAVERクラウドプラットフォームが提供している DNS以外の DNSを使用する場合、まったく異なる IPアドレスを受け取ることになります。
        root@ubuntu2004:~# nslookup repo.ncloud.com 8.8.8.8
        Server:        8.8.8.8
        Address:    8.8.8.8#53
        
        Non-authoritative answer:
        repo.ncloud.com    canonical name = repo.ncloud.grm.ncloud.com.
        Name:    repo.ncloud.grm.ncloud.com
        Address: 10.250.5.105
        

    DNSに関するよくある質問

    Q. DNSクエリ時に以下のように isc socket bindエラーが発生します。どうすればいいですか?

    [root@ncp-server ~]# nslookup repo.ncloud.com
    Server:     169.254.169.53
    Address:    169.254.169.53#53
     
    Non-authoritative answer:
    repo.ncloud.com canonical name = repo.ncloud.grm.ncloud.com.
    repo.ncloud.grm.ncloud.com  canonical name = kr-vpc-init.ncloud.grm.ncloud.com.
    Name:   kr-vpc-init.ncloud.grm.ncloud.com
    Address: 169.254.80.160
    Name:   kr-vpc-init.ncloud.grm.ncloud.com
    Address: 169.254.1.5
    
    nslookup: isc_socket_bind: address in use
    

    この不具合は、顧客サービスネットワーク環境に対して ip local port_rangeの値が小さすぎたり、現在使用している socket portが過度に多い場合に発生します。
    ip local port_rangeは以下のように確認できます。デフォルトでは、最小ポート32768、最大ポート60999に設定されています。

    [root@ncp-server ~]# sysctl net.ipv4.ip_local_port_range
    net.ipv4.ip_local_port_range = 32768    60999
    

    再起動可能なサーバの場合は OSで再起動を行い、不可能な場合は現在使用しているソケット数を確認して不要なソケットを整理したり、ip local port_rangeの値を増やすことをお勧めします。
    正常な状態で DNSクエリを行う場合は、下記のように出力されることが確認できます。

    [root@ncp-server ~]# nslookup repo.ncloud.com
    Server:     169.254.169.53
    Address:    169.254.169.53#53
     
    Non-authoritative answer:
    repo.ncloud.com canonical name = repo.ncloud.grm.ncloud.com.
    repo.ncloud.grm.ncloud.com  canonical name = kr-vpc-init.ncloud.grm.ncloud.com.
    Name:   kr-vpc-init.ncloud.grm.ncloud.com
    Address: 169.254.80.160
    Name:   kr-vpc-init.ncloud.grm.ncloud.com
    Address: 169.254.1.5
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.