rpmfind.netからダウンロードしてきた最新版のrpmファイルをインストールします。
注意
ホスト名に使用できる文字は英数字と−(ダッシュ)のみです。
DNSサーバで使用するファイルを設定するため/etc/named.confを作成します。
ここで、ホスト名をfirewall、ドメイン名をspace.local、IPアドレス(サブネット)を192.168.0.0/24とします。
localhost(ループバック正引き)ゾーンファイルの作成
firewall.space.local、dnsmaster.space.local、localhost、143.90.***.**、143.90.***.***の後ろには必ず.(ドット)をつけること。
0.0.127.in-addr.arpa(ループバック逆引き)ゾーンファイルの作成
space.local(正引き)ゾーンファイルの作成
firewall.space.local、dnsmaster.space.local、localhost、143.90.***.**や143.90.***.***の後ろには必ず.(ドット)をつけること。
0.168.192.in-addr.arpa(逆引き)ゾーンファイルの作成
resolv.confの編集
nameserverの最初には、DNSサーバに割り当てたIPアドレス。
nameserverの2番目には、ODNのプライマリDNSのIPアドレス。
nameserverの3番目には、ODNのセカンダリDNSのIPアドレス。
DNS(bind)の起動
nslookupによる動作確認
(digコマンドも利用可能です。使用方法はDNS HOWTOを参照してください。)
nslookupコマンド入力
3行目にはDNSサーバに割り当てたIPアドレスが表示されます。
サーバ起動時にDNSを自動起動させる
chkconfig、linuxconf、setupを使う方法があります。今回はchkconfigを使用します。
現在の自動起動状況を確認します。
何度も書きましたがファイルを編集した場合は必ず各ゾーンファイルのシリアル番号を元の番号より増やしてから再起動するようにしてください。
/var/log/messagesに表示されるログについて
Jul 19 20:04:44 firewall named[10755]: Zone "0.0.127.in-addr.arpa" (file 0.0.127.in-addr.arpa): N o default TTL ($TTL) set, using SOA minimum instead
Jul 19 20:04:44 firewall named[10755]: Zone "space.local" (file space.local): No default TTL ($TT L) set, using SOA minimum instead
Jul 19 20:04:44 firewall named[10755]: Zone "0.168.192.in-addr.arpa" (file 0.168.192.in-addr.arpa ): No default TTL ($TTL) set, using SOA minimum instead
各ゾーンファイルに$TTL **が書かれていないとき表示される。
named[453]: Lame server on 'www.tsx.to' (in 'tsx.to'?): [64.65.0.244].53 'ns7.tafeu.net'
named[453]: ns_forw: query(www.tsx.to) All possible A RR's lame
このメッセージは、named が、ネームサーバからあるドメインについて、「このサーバがそのドメインのネームサーバだよ」 と教わったのに、問い合わせてみると、そのネームサーバからは、「そのドメインについては何も知らないよ」、 と返答されるということを示しています。
これは「レイム・デリゲーション」として知られており、どこにもない参照のことです。レイム・サーバが自分のものでないのなら、それについてあなたができることは何もありません。こちらからできることはなにもありませんので、無視してかまいません。
Jul 19 13:43:58 firewall named[10104]: Cleaned cache of 1 RRset
Jul 19 13:43:58 firewall named[10104]: USAGE 995517838 995460238 CPU=0.49u/0.2s CHILDCPU=0u/0s
Jul 19 13:43:58 firewall named[10104]: NSTATS 995517838 995460238 A=243 NS=50 SOA=51 SRV=15 ANY=2
Jul 19 13:43:58 firewall named[10104]: XSTATS 995517838 995460238 RR=251 RNXD=242 RFwdR=250 RDupR=0 RFail=0 RFErr=0 RErr=0 RAXFR=0 RLame=0 ROpts=0 SSysQ=192 SAns=301 SFwdQ=58 SDupQ=17 SErr=2 RQ=361 RIQ=0 RFwdQ=0 RDupQ=2 RTCP=0 SFwdR=250 SFail=0 SFErr=0 SNaAns=49 SNXD=198
これらは統計情報なので、必要なければ無視してかまいません。1時間に一回ログに吐き出されます。
# rpm -ivh bind-8.2.2_P5-9vl1.i386.rpm # rpm -ivh bind-utils-8.2.2_P5-9vl1.i386.rpm (これはインストールしておいた方がいいかもしれません。) # rpm -ivh bind-devel-8.2.2_P5-9vl1.i386.rpm (これはインストールしておく必要はないかもしれません。)DNS HOWTOを参照するのもいいでしょう。
注意
ホスト名に使用できる文字は英数字と−(ダッシュ)のみです。
DNSサーバで使用するファイルを設定するため/etc/named.confを作成します。
ここで、ホスト名をfirewall、ドメイン名をspace.local、IPアドレス(サブネット)を192.168.0.0/24とします。
# vi /etc/named.conf options { directory "/var/named"; allow-transfer { ***.***.***.***; localhost;← ゾーン転送の制限 } ***.***.***.***のみ } localhost(デバッグ用) zone "." { type hint; file "named.ca"; } zone "localhost" { ┐ type master; │ file "localhost"; ├これは無くても問題ありません } ┘ zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa"; } zone "space.local" { type master; file "space.local"; } zone "0.168.192.in-addr.arpa" { type master; file "0.168.192.in-addr.arpa"; notify no; ← インターネットに迷惑をかけないため ゾーンファイルのどれかが更新されても、 その情報をセカンダリ(スレーブ)サーバに伝えないようにする。 }ftp://rs.internic.net/domain/から最新のnamed.caをダウンロードし、/var/namedにコピーします。
localhost(ループバック正引き)ゾーンファイルの作成
# vi /var/named/localhost $TTL 3D @ IN SOA firewall.space.local. dnsmaster.space.local. ( 2001071701 ;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400 ) ;Default TTL ;← (これは無くても問題ありません) IN NS localhost. IN NS 143.90.***.**. ← これは無くても問題ありません IN NS 143.90.***.***.← これは無くても問題ありません localhost. IN A 127.0.0.1 ;← これは無くても問題ありませんSerial numberは2001年7月17日に1回目の編集を行ったという意味です。DNSを何らかの作業により変更した場合はSerial numberを一つ以上増やしてください。この場合、Serial numberの変更はlocalhostだけでなく、0.0.127.in-addr.arpa、space.local、0.168.192.in-addr.arpaの全てのファイルを同じものに変更し、DNSを再起動してください。
firewall.space.local、dnsmaster.space.local、localhost、143.90.***.**、143.90.***.***の後ろには必ず.(ドット)をつけること。
0.0.127.in-addr.arpa(ループバック逆引き)ゾーンファイルの作成
# vi /var/named/0.0.127.in-addr.arpa $TTL 3D @ IN SOA firewall.space.local. dnsmaster.space.local. ( 2001071701 ;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400 ) ;Default TTL ;← これは無くても問題ありません IN NS localhost. IN NS 143.90.***.**. ← ODN プライマリDNS IN NS 143.90.***.***.← ODN セカンダリDNS 1 IN PTR localhost ;← これは無くても問題ありませんfirewall.space.local、dnsmaster.space.local、localhost、143.90.***.**や143.90.***.***の後ろには必ず.(ドット)をつけること。
space.local(正引き)ゾーンファイルの作成
# vi /var/named/space.local $TTL 3D @ IN SOA firewall.space.local. dnsmaster.space.local. ( 2001071701 ;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400 ) ;Default TTL ;← これは無くても問題ありません IN NS firewall.space.local. IN NS 143.90.***.**. ← ODN プライマリDNS IN NS 143.90.***.***.← ODN セカンダリDNS ;← これは無くても問題ありません space.local IN MX 10 firewall.space.local. ;← これは無くても問題ありません localhost IN A 127.0.0.1 win2kserver IN A 192.168.0.1 firewall IN A 192.168.0.254 ;← これは無くても問題ありません pass0 IN CNAME firewall.space.local. www IN CNAME firewall.space.local. ftp IN CNAME firewall.space.local. mail IN CNAME firewall.space.local. ;← これは無くても問題ありませんfirewall.space.localはAレコードを持った実際のマシンでなければなりません。また、CNAMEレコードのマシンをSOAレコードのマシンとして記述することは許されていません。
firewall.space.local、dnsmaster.space.local、localhost、143.90.***.**や143.90.***.***の後ろには必ず.(ドット)をつけること。
0.168.192.in-addr.arpa(逆引き)ゾーンファイルの作成
# vi /var/named/0.168.192.in-addr.arpa $TTL 3D @ IN SOA firewall.space.local. dnsmaster.space.local. ( 2001071701 ;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400 ) ;Default TTL ;← これは無くても問題ありません IN NS firewall.space.local. IN NS 143.90.***.**. ← ODN プライマリDNS IN NS 143.90.***.***.← ODN セカンダリDNS ;← これは無くても問題ありません 1 IN PTR win2kserver.space.local. 254 IN PTR firewall.space.local. ;← これは無くても問題ありませんfirewall.space.local、dnsmaster.space.local、localhost、143.90.***.**や143.90.***.***の後ろには必ず.(ドット)をつけること。
resolv.confの編集
# vi /etc/resolv.conf search space.local nameserver 192.168.0.254 nameserver 143.90.***.** nameserver 143.90.***.***searchは自分で決めたドメイン名を入力。
nameserverの最初には、DNSサーバに割り当てたIPアドレス。
nameserverの2番目には、ODNのプライマリDNSのIPアドレス。
nameserverの3番目には、ODNのセカンダリDNSのIPアドレス。
DNS(bind)の起動
# /etc/rc.d/init.d/named startとして起動します。
# more /var/log/messagesとして、DNSが問題なく動作しているか確認してください。正常に起動されていれば以下のようになります。
Jul 19 20:40:05 firewall named[10908]: hint zone "" (IN) loaded (serial 0) Jul 19 20:40:05 firewall named[10908]: master zone "0.0.127.in-addr.arpa" (IN) loaded (serial 2001071801) Jul 19 20:40:05 firewall named[10908]: space.local:15: data "localhost" outside zone "space.local" (ignored) Jul 19 20:40:05 firewall named[10908]: master zone "space.local" (IN) loaded (serial 2001071801) Jul 19 20:40:05 firewall named[10908]: master zone "0.168.192.in-addr.arpa" (IN) loaded (serial 2001071801) Jul 19 20:40:05 firewall named[10908]: listening on [127.0.0.1].53 (lo) Jul 19 20:40:05 firewall named[10908]: listening on [192.168.0.254].53 (eth0) Jul 19 20:40:05 firewall named[10908]: listening on [10.0.0.254].53 (eth1) Jul 19 20:40:05 firewall named[10908]: Forwarding source address is [0.0.0.0].1039 Jul 19 20:40:05 firewall 7月 19 20:40:05 named: named startup succeeded Jul 19 20:40:05 firewall named[10909]: group = 25 Jul 19 20:40:05 firewall named[10909]: user = named Jul 19 20:40:05 firewall named[10909]: Ready to answer queries..(ドット)が抜けていたり、設定が間違っていたりすると何かしらのエラーが出力されます。その場合はファイルをよく確認してみてください。
nslookupによる動作確認
(digコマンドも利用可能です。使用方法はDNS HOWTOを参照してください。)
nslookupコマンド入力
# nslookup firewall.space.local Server: firewall.space.local Address: 192.168.0.254 Aliases: Name: Address:2行目にはDNSサーバ名が表示されます。
3行目にはDNSサーバに割り当てたIPアドレスが表示されます。
サーバ起動時にDNSを自動起動させる
chkconfig、linuxconf、setupを使う方法があります。今回はchkconfigを使用します。
現在の自動起動状況を確認します。
# chkconfig --list named2行目にはDNSサーバ名が表示されます。すると、以下のように表示されます。
named 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフX Windowを利用しているのであれば3及び5をオンするように設定します。こちらの環境ではX Windowを利用していませんので、3のみオンにしたいと思います。
# chkconfig named onこれでサーバを再起動しても自動的にDNSは起動するようになります。念のため先ほどの方法で確認してください。
# chkconfig --list named
named 0:オフ 1:オフ 2:オフ 3:オン 4:オフ 5:オフ 6:オフ
何度も書きましたがファイルを編集した場合は必ず各ゾーンファイルのシリアル番号を元の番号より増やしてから再起動するようにしてください。
/var/log/messagesに表示されるログについて
Jul 19 20:04:44 firewall named[10755]: Zone "0.0.127.in-addr.arpa" (file 0.0.127.in-addr.arpa): N o default TTL ($TTL
Jul 19 20:04:44 firewall named[10755]: Zone "space.local" (file space.local): No default TTL ($TT L
Jul 19 20:04:44 firewall named[10755]: Zone "0.168.192.in-addr.arpa" (file 0.168.192.in-addr.arpa ): No default TTL ($TTL
各ゾーンファイルに$TTL **が書かれていないとき表示される。
named[453]: Lame server on 'www.tsx.to' (in 'tsx.to'?): [64.65.0.244].53 'ns7.tafeu.net'
named[453]: ns_forw: query(www.tsx.to) All possible A RR's lame
このメッセージは、named が、ネームサーバからあるドメインについて、「このサーバがそのドメインのネームサーバだよ」 と教わったのに、問い合わせてみると、そのネームサーバからは、「そのドメインについては何も知らないよ」、 と返答されるということを示しています。
これは「レイム・デリゲーション」として知られており、どこにもない参照のことです。レイム・サーバが自分のものでないのなら、それについてあなたができることは何もありません。こちらからできることはなにもありませんので、無視してかまいません。
Jul 19 13:43:58 firewall named[10104]: Cleaned cache of 1 RRset
Jul 19 13:43:58 firewall named[10104]: USAGE 995517838 995460238 CPU=0.49u/0.2s CHILDCPU=0u/0s
Jul 19 13:43:58 firewall named[10104]: NSTATS 995517838 995460238 A=243 NS=50 SOA=51 SRV=15 ANY=2
Jul 19 13:43:58 firewall named[10104]: XSTATS 995517838 995460238 RR=251 RNXD=242 RFwdR=250 RDupR=0 RFail=0 RFErr=0 RErr=0 RAXFR=0 RLame=0 ROpts=0 SSysQ=192 SAns=301 SFwdQ=58 SDupQ=17 SErr=2 RQ=361 RIQ=0 RFwdQ=0 RDupQ=2 RTCP=0 SFwdR=250 SFail=0 SFErr=0 SNaAns=49 SNXD=198
これらは統計情報なので、必要なければ無視してかまいません。1時間に一回ログに吐き出されます。