bind9で内部向けDNS構築　（Ubuntu14.04 Server）

#前提
ubuntu14.04 serverにてbind9を構築します

#パッケージ取得
<pre><code># apt-get install -y bind9
</pre></code>
#bind設定
##named.conf設定
###named.confをローカル用に編集
named.confをバックアップ
<pre><code># cd /etc/bind
# cp -p named.conf named.conf.org</pre></code>
/etc/bind/named.conf.default-zonesを/etc/bind/named.conf.local-zonesに書き換え
<pre><code># vi named.confinclude 
～～省略～～
"/etc/bind/named.conf.default-zones";</pre></code>

<pre><code># vi named.confinclude 
～～省略～～
"/etc/bind/named.conf.local-zones";</pre></code>
差分チェック
<pre><code># diff named.conf named.conf.org
11c11
< include "/etc/bind/named.conf.local-zones";
---
> include "/etc/bind/named.conf.default-zones";</pre></code>
###named.conf.optionsをローカル用に編集
named.conf.optionsをバックアップ
<pre><code># cp -p named.conf.options  named.conf.options.org</pre></code>
directoryの下に以下追記
<pre><code># vi named.conf.options
options {
        directory "/var/cache/bind";
        listen-on port 53 { localhost; 192.168.10.0/24; };
        allow-query { localhost; 192.168.10.0/24; };
        recursion no;
～～省略～～</pre></code>
差分チェック
<pre><code># diff named.conf.options named.conf.options.org
3,5d2
<         listen-on port 53 { localhost; 192.168.10.0/24; };
<         allow-query { localhost; 192.168.10.0/24; };
<         recursion no;</pre></code>
#zoneファイル作成
##zoneの定義
named.conf.local-zoneというファイルを作成し、以下の内容で保存

```named.conf.local-zones
zone "local.net" IN {
  type master;
  file "local.net.zone";
};
```

zoneファイルの場所へ移動
<pre><code># cd /var/cache/bind/</pre></code>

zoneファイルを作成
自身のアドレス（192.168.10.7）をliunx1というNSで設定
ローカルエリアネットワーク内にあるliunx2をAレコードで追加

```local.net.zone
$TTL 86400

@ IN SOA local.net root.local.net (
  2017121408     ; Serial
  3600           ; Refresh
  900            ; Retry
  604800         ; Expire
  86400          ; Minimum
)

@            IN NS linux1
linux1 IN A  192.168.10.7
linux2 IN A  192.168.10.24
```

named.confの検証
<pre><code># named-checkconf</pre></code>

zoneファイルの検証
<pre><code># named-checkzone local.net /var/cache/bind/local.net.zone
zone local.net/IN: loaded serial 2017121408
OK</pre></code>

##bind再起動
bindを再起動して設定を反映させます
<pre><code># /etc/init.d/bind9 restart
 * Stopping domain name service... bind9                                        
 waiting for pid 5966 to die
                                                                          [ OK ]
 * Starting domain name service... bind9                                  [ OK ]</pre></code>

##interfacesファイル編集
interfacesファイルのパスへ移動
<pre><code># cd /etc/network/</pre></code>
interfacesファイルに以下を追記
<pre><code># vi interfaces
～～省略～～
        dns-search local.net
        dns-nameservers 192.168.10.7　←内部DNS
        dns-nameservers 8.8.8.8　　　　←外部DNS(google)</pre></code>

インターフェース再起動
※コンソールでないと接続が切れる場合がありますのでご注意下さい
<pre><code># ifdown eth0 && sudo ifup eth0        </pre></code>

反映されていることを確認する
<pre><code># cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.10.7
nameserver 8.8.8.8
search local.net</pre></code>
#DNSが正常に機能しているか確認
pingを利用して名前解決できているか確認
<pre><code># ping -c 4  linux1.local.net
PING linux1.local.net (192.168.10.7) 56(84) bytes of data.
64 bytes from 192.168.10.7: icmp_seq=1 ttl=64 time=3.73 ms
64 bytes from 192.168.10.7: icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from 192.168.10.7: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 192.168.10.7: icmp_seq=4 ttl=64 time=0.055 ms

--- linux1.local.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.045/0.969/3.730/1.594 ms</pre></code>


#つまづいたこと
タイポくらい
<pre><code># named-checkconf
/etc/bind/named.conf.options:5: unknown option 'recuresion'</pre></code>
recursionをrecuresionとしていたようです。