« Spectrum Scale GUIのインストール その2 | トップページ | Raspberry Pi 4 の到着 »

2020年7月23日 (木)

VMWare上のCentOS7.7でDNSを立ち上げた

とあるアプリケーションを試してみたくなった。で、そのアプリケーションはDNSでのFQNを前提としている。前から、自前DNSがあるといろいろと便利だろうと思っていたので立ち上げてみた。

環境はCentOS 7.7。VMWare ESXi 6.0, Parent OSはWindows10。
VMは20GBディスク+1GBメモリの最小構成。

Step1: bindをインストール

# yum -y install bind bind-utils

Step2: /etc/named.confの編集

options {
// listen-on port 53 { 127.0.0.1; };  << コメントアウト
listen-on port 53 { 192.168.1.250; }; << 実際にListenするIPアドレスに変更
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
// allow-query { localhost; };     << コメントアウト
allow-query { 192.168.1.0/24; };  << 受け付けるIPアドレス

正引き用に以下を追加する。ここではドメイン名としてpathpilot.localを、/var/namedに保存する設定ファイル名をpathpilot.localにしている。
zone "pathpilot.local" IN {
  type master;
  file "pathpilot.local";
  allow-update { none; };
};

逆引き用に以下を追加する。
zone "1.168.192.in-addr.arpa" IN {
     type master;
     file "pathpilot.local.rev";
     allow-update { none; };
};

Step3: /var/named/pathpilot.localの作成

以下の内容でpathpilot.localを作成。serialは任意の数字列で良いみたい。
DNSとしてpath01.pathpilot.local、このpath01と今回登録したいdiscoverのIPアドレスを設定する。

$TTL 1D
@ IN SOA path01.pathpilot.local. root.pathpilot.local. (
      2020072301 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
    IN NS path01.pathpilot.local.
path01 IN A 192.168.1.250
discover IN A 192.168.1.120

新たにDNSにサーバーを追加した場合は、discoverの下にサーバー名とそのIPアドレスを追記すればよい。

Step4: /var/named/pathpilot.local.revの作成

$TTL 1D
@ IN SOA path01.pathpilot.local. root.pathpilot.local.(
               2020072301 ; serial
               1D ; refresh
               1H ; retry
               1W ; expire
               3H ) ; minimum
       IN NS path01.pathpilot.local.
250 IN PTR path01.pathpilot.local.
120 IN PTR discover.pathpilot.local.

新たにDNSにサーバーを追加した場合は、IPアドレスの最後値(discoverの場合は192.168.1.120の120)とサーバー名を追加すればよい。

Step5: ちゃんと設定できたか確認

/etc/named.confの確認。何も表示されなければOKなんだと思う。
# named-checkconf

Step3で作成したファイルの確認
# named-checkzone pathpilot.local /var/named/pathpilot.local
zone pathpilot.local/IN: loaded serial 2020072301
OK
#

Step4で作成したファイルの確認
# named-checkzone pathpilot.local.rev /var/named/pathpilot.local.rev
zone pathpilot.local.rev/IN: loaded serial 2020072301
OK
#

Step6: Firewallの設定

以下コマンドを実行してFirewallにdnsサービスを追加、確認する。
# firewall-cmd --add-service=dns --permanent
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client dns ssh
  ports:  
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Step7: namedのスタート

# systemctl start named
# systemctl enable named
# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since 木 2020-07-23 16:49:24 JST; 2s ago
Process: 67484 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 67496 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 67494 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 67498 (named)
Tasks: 4
CGroup: /system.slice/named.service
└─67498 /usr/sbin/named -u named -c /etc/named.conf

7月 23 16:49:24 localhost.localdomain named[67498]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2020072301
7月 23 16:49:24 localhost.localdomain named[67498]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
7月 23 16:49:24 localhost.localdomain named[67498]: zone localhost/IN: loaded serial 0
7月 23 16:49:24 localhost.localdomain named[67498]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
7月 23 16:49:24 localhost.localdomain named[67498]: zone pathpilot.local/IN: loaded serial 2020072301
7月 23 16:49:24 localhost.localdomain named[67498]: zone localhost.localdomain/IN: loaded serial 0
7月 23 16:49:24 localhost.localdomain named[67498]: all zones loaded
7月 23 16:49:24 localhost.localdomain named[67498]: running
7月 23 16:49:24 localhost.localdomain named[67498]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted
7月 23 16:49:24 localhost.localdomain named[67498]: resolver priming query complete
#

以上でDNSサーバーの設定は完了。次にDNSクライアント側からDNSにアクセスして動作確認する。

Step8: DNSクライアント側の設定と正引きと逆引きの確認

クライアント側でも以下をインストール。
yum install bind-utils

その後、以下を実施。
resolv.confの設定
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.250
domain pathpilot.local
#

正引きの確認
# nslookup discover.pathpilot.local
Server: 192.168.1.250
Address: 192.168.1.250#53

Name: discover.pathpilot.local
Address: 192.168.1.120

#

逆引きの確認
# nslookup 192.168.1.250
250.1.168.192.in-addr.arpa name = path01.pathpilot.local.



以上でDNSの設定は完了。

追記:
/var/named/pathpilot.localと.revを変更したら、変更内容を反映させるために以下を実行のこと。
systemctl restart named

 

« Spectrum Scale GUIのインストール その2 | トップページ | Raspberry Pi 4 の到着 »

ソフトウエア導入」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Spectrum Scale GUIのインストール その2 | トップページ | Raspberry Pi 4 の到着 »