ITわかり隊

CentOS 7.4 で自宅に内部DNSサーバー構築(Dnsmasq)

1 views

実現する機能

外部から自宅サーバー「http://ufuso.dip.jp」にアクセスすると、プロバイダーから提供されているルーター(192.168.24.1)がちゃんと自宅サーバー(192.168.24.241)に繋いでくれますが、自宅のWindowsノートパソコン(192.168.24.3)から自宅サーバー「http://ufuso.dip.jp」にアクセスすると繋いでくれません。ドメインufuso.dip.jpがIPアドレス192.168.24.241と同じパソコンのものだよと教えてくれるDNSサーバーが家庭内LAN内には無いからです。

そこで、自宅サーバーに自宅のWindowsノートパソコンやiPhone7からアクセスできるように自宅用のDNSサーバー(内部DNSサーバー)をDnsmasqで構築して、IPアドレス(192.168.24.240)だけではなくufuso.dip.jpでもアクセスできるようにしました。

事前準備

※可能であれば、ieServer.Net(無料)Dynamic DO!.jp(無料)やお名前.com(有料)などからドメインを取得済であること

Dnsmasq導入手順

以下の黒背景部分はGNOME端末を表示しています。紫色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。
1 Dnsmasqインストール

#Dnsmasqインストール
[root@ufuso ~]# yum -y install dnsmasq
インストール:
  dnsmasq.x86_64 0:2.76-2.el7_4.2                                               

完了しました!

#Dnsmasqを起動
[root@ufuso ~]# systemctl start dnsmasq

#Dnsmasqに自動起動設定 
[root@ufuso ~]# systemctl enable dnsmasq
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

2 Dnsmasq設定

#名前解決が必要なPCのIP、ホスト名の登録
[root@ufuso ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#PC毎のIPアドレスとホスト名を入力
192.168.24.240  ufuso.org
#PC毎のIPアドレスとホスト名を入力
192.168.24.241  ufuso.dip.jp  topi.0t0.jp

#dnsmasq再起動
[root@ufuso ~]# systemctl restart dnsmasq

#正引き、逆引きツールのInstall
[root@ufuso ~]# yum -y install bind-utils
インストール:
  bind-utils.x86_64 32:9.9.4-51.el7                                             

依存性関連をインストールしました:
  bind-libs.x86_64 32:9.9.4-51.el7                                              

完了しました!

#networkの設定変更のためnetwork-scriptsフォルダに移動
[root@ufuso ~]# cd /etc/sysconfig/network-scripts

#フォルダ内を一覧
[root@ufuso network-scripts]# ll
合計 236
#イーサネット名を確認
-rw-r--r--. 1 root root   372  9月 11 22:22 ifcfg-enp2s0
-rw-r--r--. 1 root root   311  9月 11 22:22 ifcfg-enp3s6
...
...
...
-rw-r--r--. 1 root root 15780  4月 13 05:24 network-functions
-rw-r--r--. 1 root root 26829  9月 12  2016 network-functions-ipv6

#enp2s0ファイルの編集
[root@ufuso network-scripts]# vi ifcfg-enp2s0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp2s0
UUID=9adaad69-1085-4bd3-adc6-e93caf1609b2
DEVICE=enp2s0
ONBOOT=yes
#名前解決の参照先を Dnsmasq サーバーのIPアドレスへ変更
DNS1=192.168.24.241
IPADDR=192.168.24.241
PREFIX=24
GATEWAY=192.168.24.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

#NetworkManager再起動
[root@ufuso network-scripts]# systemctl restart NetworkManager

#network再起動
[root@ufuso network-scripts]# systemctl restart network

#enp2s0のアクティブ化を確認
[root@ufuso network-scripts]# nmcli connection show --active
名前    UUID                                  タイプ          デバイス 
enp2s0  9adaad69-1085-4bd3-adc6-e93caf1609b2  802-3-ethernet  enp2s0

#network-scriptsから抜ける
[root@ufuso network-scripts]# cd

3名前解決ができることの確認(LinuxPCから確認する場合)


#サーバーの正引きテスト
[root@ufuso ~]# dig ufuso.dip.jp

; > DiG 9.9.4-RedHat-9.9.4-51.el7 > ufuso.dip.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER#サーバーの逆引きテスト
[root@ufuso ~]# dig -x 192.168.24.241

; > DiG 9.9.4-RedHat-9.9.4-51.el7 > -x 192.168.24.241
;; global options: +cmd
;; Got answer:
;; ->>HEADER

モバイルバージョンを終了