openSUSE Leap 16

Dnsmasq : インストールと設定2025/10/17

 

小規模な内部ネットワーク向けの軽量な DNS フォワーダー/DHCP サーバーソフトウェア [Dnsmasq] のインストールと設定です。

[1] Dnsmasq をインストールします。
dlp:~ #
zypper -n install dnsmasq
[2] Dnsmasq の設定です。
dlp:~ #
vi /etc/dnsmasq.conf
# 26行目 : コメント解除
# ドメイン名の無いクエリは上位サーバーに問い合わせない
domain-needed

# 28行目 : コメント解除
# プライベート IP アドレスの逆引き要求は上位サーバーに問い合わせない
bogus-priv

# 60行目 : コメント解除
# [resolv.conf] に記述のサーバーに上から順に問い合わせる
strict-order

# 74行目 : もし必要であれば追記
# 指定のドメインは指定のサーバーに問い合わせる
# 下例の場合 [server.education] ドメインは [10.0.0.10] のサーバーに問い合わせる
server=/server.education/10.0.0.10

# 152行目 : コメント解除
# ホスト名に自動的にドメイン名を付加する
expand-hosts

# 162行目 : 自身のドメイン名を追記
domain=srv.world

dlp:~ #
systemctl enable --now dnsmasq

[3] IP アドレスとホスト名のエントリは [/etc/hosts] へ登録します。
以上の設定により、クライアントからの要求に対して、設定した内部ドメインは [/etc/hosts] を参照し、その他は上位の DNS サーバーに問い合わせて結果を返します。
dlp:~ #
vi /etc/hosts
127.0.0.1       localhost localhost.localdomain
::1             localhost localhost.localdomain ipv6-localhost ipv6-loopback
# 設定するエントリを追記
10.0.0.30   dlp.srv.world dlp
10.0.0.31   www.srv.world www 

dlp:~ #
systemctl reload dnsmasq

[4] Firewalld を有効にしている場合は、DNS サービスの許可が必要です。DNS は [53/TCP,UDP] を使用します。
dlp:~ #
firewall-cmd --add-service=dns

success
dlp:~ #
firewall-cmd --runtime-to-permanent

success
[5] 内部ネットワーク内の任意のクライアントホストから名前解決可能か確認しておきます。
node01:~ #
zypper -n install bind-utils
# 名前解決の参照先を Dnsmasq サーバーへ変更 ( [enp1s0] は自身の環境に置き換え )

node01:~ #
nmcli connection modify enp1s0 ipv4.dns 10.0.0.30

node01:~ #
nmcli connection up enp1s0
node01:~ #
dig dlp.srv.world.


; <<>> DiG 9.20.11 <<>> dlp.srv.world.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61677
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;dlp.srv.world.                 IN      A

;; ANSWER SECTION:
dlp.srv.world.          0       IN      A       10.0.0.30

;; Query time: 0 msec
;; SERVER: 10.0.0.30#53(10.0.0.30) (UDP)
;; WHEN: Fri Oct 17 15:14:39 JST 2025
;; MSG SIZE  rcvd: 58

node01:~ #
dig -x 10.0.0.30


; <<>> DiG 9.20.11 <<>> -x 10.0.0.30
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45481
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;30.0.0.10.in-addr.arpa.                IN      PTR

;; ANSWER SECTION:
30.0.0.10.in-addr.arpa. 0       IN      PTR     dlp.srv.world.

;; Query time: 0 msec
;; SERVER: 10.0.0.30#53(10.0.0.30) (UDP)
;; WHEN: Fri Oct 17 15:15:29 JST 2025
;; MSG SIZE  rcvd: 78
関連コンテンツ