Help us understand the problem. What is going on with this article?

Dnsmasq 軽量 DNS サーバ構築

はじめに

仮想開発環境に簡単なDNSが欲しくなったので、dnsmasqでさっくりDNSを構築することにした

構成

  • OS : CentOS 7.6.1810 x86_64
  • MW : dnsmasq

構築

  • Server

以下の環境設定で作るものとする

サーバ名 IP アドレス FQDN
dns-server 10.2.0.5 dns-server.localdomain.local
サーバ名 リゾルバ IP 設定ファイル 用途
dns-server 127.0.0.1 /etc/resolv.conf ローカルドメイン名前解決 / キャッシュ
dns-server 10.2.0.5 /etc/resolv_dnsmasq.conf グローバル名前解決
  • Dnsmasq Install
sudo yum install -y dnsmasq bind-utils
  • 基礎設定
vim /etc/dnsmasq.conf
#上位DNSへの設定
resolv-file=/etc/resolv_dnsmasq.conf
strict-order
#ゾーン設定(複数ドメインがある場合はここに追記)
# -> localdomain.local ドメインは 10.2.0.5 に問い合わせる。
server=/localdomain.local/10.2.0.5
# -> 10.2.0.xxxの逆引きは 10.2.0.5 に問い合わせる。
server=/0.2.10.in-addr.arpa/10.2.0.5
#log出力
log-facility=/var/log/dnsmasq.log
  • localの名前解決用(自身の名前解決を自身でやるので、lo(127.0.0.1)を指定)
vim /etc/resolv.conf
domain     localdomain.local
nameserver 127.0.0.1
  • local以外の名前解決用(ダイレクトにグローバルのパブリックDNSを設定)
/etc/resolv_dnsmasq.conf
# 上位ISPのDNSサーバ
nameserver 1.1.1.1
nameserver 8.8.8.8
  • 静的ルートを設定する場合(nmcliやipで設定するのが今風、以下は昔ながらの方法)

以下の設定は、10.2.0.0/24 へ行きたいときには、dns-server 側の eth1 を通って、10.2.0.0/24 のデフォルトゲートウェイである 10.2.0.5 へ行ってという意味です。

vim /etc/sysconfig/static-routes
any net 10.2.0.0 netmask 255.255.255.0 gw 10.2.0.5 dev eth1
  • 名前解決設定
### 自身の設定はIP アドレス FQDN HOST名で必ず設定
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.2.0.5    dns-server.localdomain.local dns-server
### 以下名前解決設定
10.2.0.6    virt.localdomain.local virt-server
  • 適用
systemctl restart dnsmasq
  • クライアント側からの利用

基本的には、上で作ったDNSサーバをDNSとして登録すればいいだけです

vim /etc/resolv.conf
search    localdomain.local
nameserver    10.2.0.5
  • 設定したら確認

virt.localdomain.localとして作ったサーバから、問い合わせてみる

dig +short virt.localdomain.local
> 10.2.0.6
dig +short -x 10.2.0.6
> virt.localdomain.local
dig +short www.google.com
> 172.217.26.4

ちゃんとローカルもグローバルもひけていればOK、なお、キャッシュされるので、2回目以降は早くアクセスできるはず。

最後に

Windowsデスクトップなどの場合は一々設定が面倒だと思いますので、DHCPサーバルータにデフォルトDNSとして登録すると良いでしょう。Linuxでも個人利用などの場合は、同様にすると良いです。
この構成はあくまで、覚書なので参考までにどうぞ

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away