BINDを使ってLAN向けDNSサーバを作ろう!
ここでは、BINDを使ったLAN内用DNSの構築手順について掲載してあります。
非固定IPの場合、外部向けのDNSを立てることができないので、今回はLAN内でのみ参照をするDNSサーバを構築します。
尚、説明で使用しているドメイン"mhserv.mydns.jp"やネットワークアドレス"192.168.10"は各自の環境に合わせて変更してください。
DNSとは…?
ブラウザで「http://183.79.135.206/」に接続すると、一体どこに繋がるでしょうか?
試してみると分かりますが、これはyahoo!Japanのトップページに繋がります。しかし、これでは覚えづらい、分かりづらい、どこに繋がるか分からず不安、と良い事なしですよね。
そこで、「http://www.yahoo.co.jp/」なんてURL(ドメイン)を付けてやります。このURLを見れば、どこに繋がるかだいたい分かりますね。
このように、IPアドレスとドメインを相互変換するシステムのことをDNS(Domain Name System)といいます。
BINDとは…?
Berkeley Internet Name Domainの略で、世界で最も普及しているDNSサーバです。
BINDのインストール
BINDと関連のパッケージをインストールします。
[root@co ~]# yum -y install bind caching-nameserver
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ bind.x86_64 32:9.11.4-9.P2.el7 を インストール
--> 依存性の処理をしています: bind-libs-lite(x86-64) = 32:9.11.4-9.P2.el7 のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: bind-libs(x86-64) = 32:9.11.4-9.P2.el7 のパッケー ジ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: liblwres.so.160()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libisccfg.so.160()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libisccc.so.160()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libisc.so.169()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libdns.so.1102()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libbind9.so.160()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> 依存性の処理をしています: libGeoIP.so.1()(64bit) のパッケージ: 32:bind-9.11.4-9.P2.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ GeoIP.x86_64 0:1.5.0-14.el7 を インストール
--> 依存性の処理をしています: geoipupdate のパッケージ: GeoIP-1.5.0-14.el7.x86_64
---> パッケージ bind-libs.x86_64 32:9.11.4-9.P2.el7 を インストール
--> 依存性の処理をしています: bind-license = 32:9.11.4-9.P2.el7 のパッケージ: 32:bind-libs-9.11.4-9.P2.el7.x86_64
---> パッケージ bind-libs-lite.x86_64 32:9.11.4-9.P2.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ bind-license.noarch 32:9.11.4-9.P2.el7 を インストール
---> パッケージ geoipupdate.x86_64 0:2.5.0-1.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
================================================================================
インストール中:
bind x86_64 32:9.11.4-9.P2.el7 base 2.3 M
依存性関連でのインストールをします:
GeoIP x86_64 1.5.0-14.el7 base 1.5 M
bind-libs x86_64 32:9.11.4-9.P2.el7 base 154 k
bind-libs-lite x86_64 32:9.11.4-9.P2.el7 base 1.1 M
bind-license noarch 32:9.11.4-9.P2.el7 base 88 k
geoipupdate x86_64 2.5.0-1.el7 base 35 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+5 個の依存関係のパッケージ)
総ダウンロード容量: 5.2 M
インストール容量: 12 M
Downloading packages:
(1/6): GeoIP-1.5.0-14.el7.x86_64.rpm | 1.5 MB 00:00
(2/6): geoipupdate-2.5.0-1.el7.x86_64.rpm | 35 kB 00:00
(3/6): bind-libs-9.11.4-9.P2.el7.x86_64.rpm | 154 kB 00:00
(4/6): bind-9.11.4-9.P2.el7.x86_64.rpm | 2.3 MB 00:01
(5/6): bind-libs-lite-9.11.4-9.P2.el7.x86_64.rpm | 1.1 MB 00:03
(6/6): bind-license-9.11.4-9.P2.el7.noarch.rpm | 88 kB 00:03
--------------------------------------------------------------------------------
合計 1.4 MB/s | 5.2 MB 00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 32:bind-license-9.11.4-9.P2.el7.noarch 1/6
インストール中 : geoipupdate-2.5.0-1.el7.x86_64 2/6
インストール中 : GeoIP-1.5.0-14.el7.x86_64 3/6
インストール中 : 32:bind-libs-lite-9.11.4-9.P2.el7.x86_64 4/6
インストール中 : 32:bind-libs-9.11.4-9.P2.el7.x86_64 5/6
インストール中 : 32:bind-9.11.4-9.P2.el7.x86_64 6/6
検証中 : GeoIP-1.5.0-14.el7.x86_64 1/6
検証中 : geoipupdate-2.5.0-1.el7.x86_64 2/6
検証中 : 32:bind-license-9.11.4-9.P2.el7.noarch 3/6
検証中 : 32:bind-libs-9.11.4-9.P2.el7.x86_64 4/6
検証中 : 32:bind-libs-lite-9.11.4-9.P2.el7.x86_64 5/6
検証中 : 32:bind-9.11.4-9.P2.el7.x86_64 6/6
インストール:
bind.x86_64 32:9.11.4-9.P2.el7
依存性関連をインストールしました:
GeoIP.x86_64 0:1.5.0-14.el7
bind-libs.x86_64 32:9.11.4-9.P2.el7
bind-libs-lite.x86_64 32:9.11.4-9.P2.el7
bind-license.noarch 32:9.11.4-9.P2.el7
geoipupdate.x86_64 0:2.5.0-1.el7
完了しました!
BINDの設定
[root@co ~]# vi /etc/named.conf
options { # listen-on port 53 { 127.0.0.1; }; # 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"; allow-query { localhost; localnets; }; # 追記ここから allow-recursion { localhost; localnets; }; allow-transfer { localhost; localnets; }; forwarders { 192.168.10.1;(ルータのアドレス) }; version "unknown"; # 追記ここまで dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view "internal" { zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; # 追記ここから include "/var/named/named.mhserv.info(取得したドメイン).zone"; # 追記ここまで };
LAN内向けゾーン定義ファイルの作成
BINDが参照するLAN内でのゾーン定義ファイルを作成し、以下を入力します。
[root@co ~]# vi /var/named/named.mhserv.info.zone
zone "mhservinfo" {
type master;
file "mhserv.info.db";
};
zone "10.168.192.in-addr.arpa" {
type master;
file "10.168.192.in-addr.arpa.db";
};
LAN内向け正引きゾーンDBの作成
ドメインからIPアドレスを参照する正引きゾーンの一覧を作成します。
ドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
設定の内容についての詳しい説明はWebOS Goodies様の記事がとても参考になります。
[root@co ~]# vi /var/named/mhserv.info.db
$TTL 86400 @ IN SOA mhserv.info. root.mhserv.info.( 2020010501 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS mhserv.info. IN MX 10 mhserv.info. @ IN A 192.168.10.101 * IN A 192.168.10.101
LAN内向け逆引きゾーンDBの作成
続いて、IPアドレスからドメインを参照する逆引きゾーンの一覧を作成します。
こちらもドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
[root@co ~]# vi /var/named/10.168.192.in-addr.arpa.db
$TTL 86400 @ IN SOA mhserv.info. root.mhserv.info.( 2020010501 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS mhserv.info. 101 IN PTR mhserv.info.
BINDの起動
設定が終わったら、BINDを起動します。
[root@co ~]# systemctl start named
[root@co ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
サーバ機のDNSを変更
サーバのDNSを自分自身を参照するように変更します。
eth0の部分は環境に合わせて変更してください。(例:ens33など)
[root@co ~]# sed -i 's/DNS1=.*/DNS1=127.0.0.1/g' /etc/sysconfig/network-scripts/ifcfg-eth0
[root@co ~]# systemctl restart network
設定ができているかどうか確認しましょう。
[root@co ~]# yum -y install bind-utils
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ bind-utils.x86_64 32:9.11.4-9.P2.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
================================================================================
インストール中:
bind-utils x86_64 32:9.11.4-9.P2.el7 base 258 k
トランザクションの要約
================================================================================
インストール 1 パッケージ
総ダウンロード容量: 258 k
インストール容量: 584 k
Downloading packages:
bind-utils-9.11.4-9.P2.el7.x86_64.rpm | 258 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 32:bind-utils-9.11.4-9.P2.el7.x86_64 1/1
検証中 : 32:bind-utils-9.11.4-9.P2.el7.x86_64 1/1
インストール:
bind-utils.x86_64 32:9.11.4-9.P2.el7
完了しました!
まずは正引きから。
[root@co ~]# dig mhserv.info
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> mhserv.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49614
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mhserv.info. IN A
;; ANSWER SECTION:
mhserv.info. 86400 IN A 192.168.10.101
;; AUTHORITY SECTION:
mhserv.info. 86400 IN NS mhserv.info.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: 日 1月 05 04:27:45 JST 2020
;; MSG SIZE rcvd: 70
続いて逆引きです。
[root@co ~]# dig -x 192.168.10.111
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -x 192.168.10.101
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3945
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;101.10.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
101.10.168.192.in-addr.arpa. 86400 IN PTR mhserv.info.
;; AUTHORITY SECTION:
10.168.192.in-addr.arpa. 86400 IN NS mhserv.info.
;; ADDITIONAL SECTION:
mhserv.info. 86400 IN A 192.168.10.101
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: 日 1月 05 04:28:34 JST 2020
;; MSG SIZE rcvd: 111
それぞれ、設定したIPアドレスとホスト名が表示されればOKです。
WindowsでのDNSの設定
Windows機でネットワークインターフェースにDNSの設定を行います。
動作確認
DNSサーバを設定したWindows機で、IPアドレスやドメインが引けるかを確認します。
今回新しく登場したコマンド
- dig
[広告]

トップページ
Rocky Linux 8
CentOS 7
○準備
○VMware Player
○Hyper-V(Win Proのみ)
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他
Scientific Linux 6
CentOS 5
ブログ
[広告]