0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RHEL 8.10 ppc64le : BINDによるDNSサーバー設定(正引き・逆引き)

Last updated at Posted at 2026-02-01

はじめに

クローズド(インターネット非接続) 検証環境で、ホスト名による通信を可能にするため、RHELサーバーで BINDを用いてDNSサーバーを構築しました。その際の設定手順と確認方法の記録です。


動画

当記事のご参考動画です。音声動画で理解の一助にお役立てください。


環境

ppc64le アーキテクチャ RHEL 8.10 を使用しています。

# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.10 (Ootpa)"

(省略) 
# uname -a
Linux rhel810-mtest 4.18.0-553.el8_10.ppc64le #1 SMP Fri May 10 14:40:31 EDT 2024 ppc64le ppc64le ppc64le GNU/Linux
  • 192.18.10.251 : DNS サーバー自身(ns1.test.com)
  • 192.18.81.21 : testvm1.test.com
  • 192.18.81.22 : testvm2.test.com

  • 今回実装したいDNS設定のイメージ図

BINDのインストール

前提として DNF リポジトリは RHEL Base と AppStream を設定済です。

# mkdir -p /media/rhel810dvd/
# mkdir -p /media/rhel810-sup-dvd/

# mount -t iso9660 -o loop /work/iso/rhel-8.10-ppc64le-dvd /media/rhel810dvd/

# mount -t iso9660 -o loop /work/iso/supp-supplementary-8.10-rhel-8-ppc64le-dvd.iso /media/rhel810-sup-dvd/
/etc/dnf/dnf.conf 設定 (クリックで展開)
[RHEL-BaseOS]
name=RHEL810_BaseOS
baseurl=file:///media/rhel810dvd/BaseOS/
enabled=1
gpgcheck=0
gpgkey=file:///media/rhel810dvd/RPM-GPG-KEY-redhat-release

[RHEL-AppStream]
name=RHEL810_AppStream
baseurl=file:///media/rhel810dvd/AppStream/
enabled=1
gpgcheck=0
gpgkey=file:///media/rhel810dvd/RPM-GPG-KEY-redhat-release

[RHEL-Supplement]
name=RHEL_Supplement
baseurl=file:///media/rhel810-sup-dvd/
enabled=1
gpgcheck=0
gpgkey=file:///media/rhel810-sup-dvd/RPM-GPG-KEY-redhat-release

  • DNSサーバー本体である bind と動作確認ツール(digコマンド等)を含む bind-utils をインストールします。
# dnf install bind bind-utils -y
実行ログ (クリックで展開)
# dnf install bind bind-utils -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Last metadata expiration check: 0:03:08 ago on Fri 30 Jan 2026 07:14:35 PM EST.
Package bind-utils-32:9.11.36-13.el8.ppc64le is already installed.
Dependencies resolved.
================================================================================
 Package    Architecture  Version                    Repository            Size
================================================================================
Installing:
 bind       ppc64le       32:9.11.36-13.el8          RHEL-AppStream       2.1 M

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

Total size: 2.1 M
Installed size: 5.0 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Running scriptlet: bind-32:9.11.36-13.el8.ppc64le                         1/1
  Installing       : bind-32:9.11.36-13.el8.ppc64le                         1/1
  Running scriptlet: bind-32:9.11.36-13.el8.ppc64le                         1/1
  Verifying        : bind-32:9.11.36-13.el8.ppc64le                         1/1
Installed products updated.

Installed:
  bind-32:9.11.36-13.el8.ppc64le

Complete!

正引き(ホスト名 → IP)の設定

  • ゾーンの定義

/etc/named.conf を編集し、test.com というドメインをこのサーバーが管理するように定義を追加します。

/etc/named.conf
# 以下の内容を追記

#===add===
zone "test.com" IN {
    type master;
    file "test.com.db";
    allow-update { none; };
};
  • ゾーンデータベースファイルの作成

/var/named/ 配下に、具体的なホスト名とIPアドレスの紐付けを記載するファイル (/var/named/test.com.db ) を作成します。

IPアドレスとホスト名を紐づける実体ファイル を作成

/var/named/test.com.db
$TTL 1D
@       IN SOA  ns1.test.com. root.test.com. (
                                        2026013101 ; シリアル番号
                                        1D         ; リフレッシュ
                                        1H         ; リトライ
                                        1W         ; エクスパイア
                                        3H )       ; 最小TTL
        IN NS      ns1.test.com.
ns1     IN A       192.18.10.251 ; DNSサーバー自身のIP

testvm1 IN A       192.18.81.21
testvm2 IN A       192.18.81.22
  • パーミッション確認と設定

  • 所有権をBIND実行ユーザーに変更

# chown named:named /var/named/test.com.db
  • named.conf の構文チェック(何も表示されなければOK)
# named-checkconf /etc/named.conf
# echo $?
0
  • ゾーンファイルの構文チェック
# named-checkzone test.com /var/named/test.com.db
zone test.com/IN: loaded serial 2026013101
OK
# echo $?
0
  • named サービス再起動
# systemctl restart named

*稼働確認

testvm1.test.com の確認

# dig @localhost testvm1.test.com

; <<>> DiG 9.11.36-RedHat-9.11.36-13.el8 <<>> @localhost testvm1.test.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14952
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b6559a4559dde788e87264d1697d4c2d425ee5a5f1001f41 (good)
;; QUESTION SECTION:
;testvm1.test.com.		IN	A

;; ANSWER SECTION:
testvm1.test.com.	86400	IN	A	192.18.81.21

;; AUTHORITY SECTION:
test.com.		86400	IN	NS	ns1.test.com.

;; ADDITIONAL SECTION:
ns1.test.com.		86400	IN	A	192.18.10.251

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Fri Jan 30 19:26:21 EST 2026
;; MSG SIZE  rcvd: 123

testvm2.test.com の確認

# dig @localhost testvm2.test.com

; <<>> DiG 9.11.36-RedHat-9.11.36-13.el8 <<>> @localhost testvm2.test.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53376
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: c8fab7a532d9804edf845156697d4c5e43c506bee7326731 (good)
;; QUESTION SECTION:
;testvm2.test.com.		IN	A

;; ANSWER SECTION:
testvm2.test.com.	86400	IN	A	192.18.81.22

;; AUTHORITY SECTION:
test.com.		86400	IN	NS	ns1.test.com.

;; ADDITIONAL SECTION:
ns1.test.com.		86400	IN	A	192.18.10.251

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Fri Jan 30 19:27:10 EST 2026
;; MSG SIZE  rcvd: 123

逆引き(IP → ホスト名)の設定

  • /etc/named.conf に、IPアドレスからホスト名を引くための設定を追加します。
/etc/named.conf
#===add2===
zone "81.18.192.in-addr.arpa" IN {
    type master;
    file "192.18.81.db";
    allow-update { none; };
};
  • 逆引き用データベースファイル (/var/named/192.18.81.db) の作成

IPアドレスの末尾(第4オクテット)とホスト名の対応を記述します。
※ホスト名の末尾には . (ドット) が必須です。

$TTL 1D
@       IN SOA  ns1.test.com. root.test.com. (
                                        2026013101 ; シリアル
                                        1D         ; リフレッシュ
                                        1H         ; リトライ
                                        1W         ; エクスパイア
                                        3H )       ; 最小TTL
        IN NS      ns1.test.com.

21      IN PTR     testvm1.test.com.
22      IN PTR     testvm2.test.com.

※ホスト名の末尾に . (ドット) を忘れないように注意


  • 所有権の変更とパーミッション設定
# chown named:named /var/named/192.18.81.db
  • ゾーンファイルの構文チェック
# named-checkzone 81.18.192.in-addr.arpa /var/named/192.18.81.db
zone 81.18.192.in-addr.arpa/IN: loaded serial 2026013101
OK
  • named サービス再起動
# systemctl reload named

  • 稼働確認
# dig @localhost -x 192.18.81.21

; <<>> DiG 9.11.36-RedHat-9.11.36-13.el8 <<>> @localhost -x 192.18.81.21
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3152
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 0310dea05352ca8f7bc98b52697d4e92882a57c21f100ffb (good)
;; QUESTION SECTION:
;21.81.18.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
21.81.18.192.in-addr.arpa. 86400 IN	PTR	testvm1.test.com.

;; AUTHORITY SECTION:
81.18.192.in-addr.arpa.	86400	IN	NS	ns1.test.com.

;; ADDITIONAL SECTION:
ns1.test.com.		86400	IN	A	192.18.10.251 

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Fri Jan 30 19:36:34 EST 2026
;; MSG SIZE  rcvd: 146
# dig @localhost -x 192.18.81.22

; <<>> DiG 9.11.36-RedHat-9.11.36-13.el8 <<>> @localhost -x 192.18.81.22
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17175
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: ef1b330575ec3811a820b4f7697d4f050db16370ecd4158a (good)
;; QUESTION SECTION:
;22.81.18.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
22.81.18.192.in-addr.arpa. 86400 IN	PTR	testvm2.test.com.

;; AUTHORITY SECTION:
81.18.192.in-addr.arpa.	86400	IN	NS	ns1.test.com.

;; ADDITIONAL SECTION:
ns1.test.com.		86400	IN	A	192.18.10.251 

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Fri Jan 30 19:38:29 EST 2026
;; MSG SIZE  rcvd: 146

ANSWER SECTIONtestvm1.test.comtestvm2.test.com が表示され、正しく名前解決できていることが確認できました。


外部クライアントからのアクセス許可

  • /etc/named.conf 修正

デフォルトでは localhost からのクエリしか許可されていないため、/etc/named.confoptions セクションで listen-onallow-queryを変更します。(IPv4のみ)

/etc/named.conf
options {
	listen-on port 53 { any; };        # 127.0.0.1 から any(全インターフェース)に変更
	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";
	secroots-file	"/var/named/data/named.secroots";
	recursing-file	"/var/named/data/named.recursing";
	allow-query     { localhost; 192.18.0.0/16; };  #<= 問い合わせを許可するネットワーク範囲を指定

  • OSのファイアウォール(firewalld)でDNS通信を許可します。
# firewall-cmd --add-service=dns --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services
cockpit dhcpv6-client dns rsct-ctrmc ssh

稼働確認

他のサーバーで DNS サーバーとして設定して名前解決できるかを確認します。

pvcroot@localhost:~> cat /etc/resolv.conf
options single-request-reopen
nameserver 192.18.10.251 
pvcroot@localhost:~> nslookup 192.18.81.21
21.81.18.192.in-addr.arpa	name = testvm1.test.com.

pvcroot@localhost:~> nslookup 192.18.81.22
22.81.18.192.in-addr.arpa	name = testvm2.test.com.

nslookup で無事に名前解決ができていました。


tips

SELinux の影響で named サービスがファイルを読み込めず起動に失敗することがあります。 もし起動エラーが出た場合は、以下のコマンドでコンテキストを修正してご確認ください。

# restorecon -v /var/named/*.db

おわりに

別のサーバーの設定で DNS サーバーによる名前解決の設定が必要となり、突貫で DNS サーバーの設定を行いました。無事動作して一安心です。

ご参考になれば幸いです。

以上です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?