DNSとは「192.168.0.xxx」などといった数字だけのIPアドレスを「http://www.siruko.com」 といった覚えやすいアドレスに変換してくれるソフトです。
自宅のWEBサーバにアクセスするとき、外部からは「http://siruko.com/kuro」でアクセスできたのに自宅LANから 「http://siruko.com/kuro」でアクセスすると LAN内のルータの画面が出てきてしまい、 アクセスできません(直接IPアドレス指定ならアクセスできますが)。今までは玄箱のWEBサーバ、 メールサーバにアクセスするにはIPアドレスを使って(どうせメールサーバは内部からしかアクセスしないし)いましたが ここは玄人っぽく玄箱にアドレスを設定していこうと思います。
ここでの設定では自宅LANから自宅LANの名前解決しか設定しません。外部からのアクセスは設定せず、 外部へのアクセスの際にはプロバイダから収得しているDNSサーバを設定しています。
通常DNSの設定はプロバイダから提供されているアドレスをルータに設定しているかと思います。
DNSサーバであるBIND9をインストールします。
/etc/bind/ディレクトリに以下の設定ファイルがあります
bind.keys | |
db.0 | ブロードキャスト用 :変更しない |
db.127 | ローカルホスト用 :変更しない |
db.255 | ブロードキャスト用 :変更しない |
db.empty | 変更しない |
db.local | ローカルホスト用 :変更しない |
db.root | ルートDNSサーバが登録 :変更しない |
named.conf | BINDの基本設定ファイル、named.conf.localをインクルードしている |
named.conf.default-zones | |
named.conf.local | named.confからインクルードされている設定ファイル |
named.conf.options | 内部DNS用に外部のDNAサーバのアドレスを登録 |
rndc.key | |
zones.rfc1918 | 変更しない |
↓今回新規追加するファイル
db.siruko.com | ホスト名からIPアドレス検索 |
db.192.168.0 | IPアドレスからホスト名検索 |
#vi /etc/bind/named.conf.options
allow-query { 192.168.0.0/24; localhost; }; :内部用DNS設定
allow-recursion { 192.168.0.0/24; localhost; }; :内部用DNS設定
allow-transfer { none; }; forwarders { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; :プロバイダ
ら提供されているDNSサーバ2つを記述
version "unknown"; :余計な情報を公開しない
#vi /etc/bind/named.conf.loca
このファイルはnamed.confからインクルードされている
zone "siruko.com" { :無料ドメインから収得したドメイン名を記述
type master;
file "/etc/bind/db.siruko.com";
};
zone "0.168.192.in-addr.arpa" { :LAN内ネットワークが192.168.0.xxxの場合
type master;
file "/etc/bind/db.192.168.0";
};
#vi /etc/bind/db.siruko.com
ドメインアドレス名 → IPアドレスへの正引き変換
$TTL 86400
@ IN SOA siruko.com. root.siruko.com. (自分のドメイン名の後にメールアドレス (@の代わりに「.」と表記、語尾に「.」を付けるのを忘れずに)
2005052905 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
IN NS alpha.siruko.com. :DNSサーバのアドレスを設定、語尾に「.」を付ける
IN MX 10 alpha.siruko.com. :メールサーバのアドレスを設定、語尾に「.」を付ける
対応させたいアドレス名とIPアドレスを表記(1つのIPアドレスに複数のドメインアドレス名を登録できます)
www IN A 192.168.0.101 :www.siruko.comにアクセスすると192.168.0.101に接続
alpha IN A 192.168.0.101 :alpha.siruko.comにアクセスすると192.168.0.101に接続
beta IN A 192.168.0.102 :beta.siruko.comにアクセスすると192.168.0.102に接続
gamma IN A 192.168.0.103 :gamma.siruko.comにアクセスすると192.168.0.103に接続
router IN A 192.168.0.1 :router.siruko.comにアクセスすると192.168.0.1に接続
#vi /etc/bind/db.192.168.0
IPアドレス → ドメインアドレス名への逆引き変換
$TTL 86400@ IN SOA siruko.com. root.siruko.com. (自分のドメイン名の後にメールアドレス (@の代わりに「.」と表記、語尾に「.」を付けるのを忘れずに)
2005052905 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
IN NS alpha.siruko.com. :DNSサーバのアドレスを設定、語尾に「.」を付ける
101 IN PTR alpha.siruko.dyndns.ort. :192.168.0.101にアクセスするとalpha.siruko.comに接続、語尾に「.」を付ける
102 IN PTR beta.siruko.com. :192.168.0.102にアクセスするとbeta.siruko.comに接続、語尾に「.」を付ける
103 IN PTR gamma.siruko.com. :192.168.0.103にアクセスするとgamma.siruko.comに接続、語尾に「.」を付ける
1 IN PTR router.siruko.com. :192.168.0.1にアクセスするとrouter.siruko.comに接続、語尾に「.」を付ける
コマンド:ファイアウォール設定
サーバのファイアウォールの53番のポートを空けておく
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 53 -j ACCEPT
コマンド:動作テスト
必要なプログラムをインストールします
内部のテスト
#dig @localhost xxx.siruko.com
外部へのテスト
クライアント側:Windowsの設定
DNSサーバの設定が終わったらクライアントの設定をします。 Windowsですと「コントロールパネル」→「ネットワーク接続」→「使用しているネットワーク接続」→「プロパティ」 → 「インターネットプロトコル(TCP/IP)」→「次のDNSサーバのアドレスを使う」の設定で
優先DNSサーバ:今回設定したDNSサーバのIPアドレス
代替DNSサーバ:ルータのIPアドレス(玄箱のDNSサーバがダウンしたときの代替用。ルータにプロバイダから収得したDNSサーバが登録している場合のみ有効)
Windowsのコマンドプロンプトでnslookupを実行してチェックする
ルータのドメインアドレス名が表示されればOK
玄箱のWEBサーバのIPアドレスが表示されればOK(192.168.0.xxxと表示されるはず
YahooのIPアドレスが表示されればOK
![]() | BIND9によるDNSサーバ構築 川原 龍人 伊藤 宏通 野津 新 ![]() ![]() ![]() ![]() ![]() by G-Tools |