toyaoWebサーバーが、外部からのアクセスだとサクサク動くのに、家庭内LANからだとなんか待たされる感があって、「なんでかな?」と思ったので調べてみました。
mdnsというポートからのパケットがなにやら送信リトライを繰り返していました。マルチキャストDNSというものでした。
その語句自体は初めて聞くもので、どうやらApple社の開発したRendezvousというプロトコルに関係するものだそうな。
最初はそれをインストールすれば問題は解決するんかな?と思っていろいろ調べていたけど、どうも方向性が違うような気がしたので、
試しに /etc/hosts にwindowsクライアントのマシン名を登録するとサクっと解決しました。
WebサーバーとWindowsクライアントの間で名前解決出来てないだけでした。
Windowsマシンが固定IPアドレスならばこれで解決なのだけれど、うちにはDHCPクライアントマシンがあと2台…
案の定それらのマシンからは問題解決してなかったので、
そういえば、DHCPで取得したIPアドレスはプライベートネットワーク間でどうやって名前解決してるんやろう…と思って
いろいろ調べてみたら、DHCP+DNSのコラボで解決出来ることがわかりました。
DNSサーバーって聞くとなんか難しそうな感じがしてたので、今まで避けて来たのですが、この際勉強してみるのもいいかなと思って設定しました。
/etc/named.confの設定
// プライベートネットワーク内からのみアクセスを許可
acl toyao-net {
192.168.xxx.0/24;
127.0.0.1;
};//ゾーンの設定
zone “toyao.net” {
type master;
file “/etc/bind/db.toyao.zone”;
allow-update{
127.0.0.1; #DHCPサーバのアドレスを指定
};
};
zone “xxx.168.192.in-addr.arpa” {
type master;
file “/etc/bind/db.toyao.rev”;
allow-update{
127.0.0.1; #DHCPサーバのアドレスを指定
};
};
/etc/bind/db.toyao.zone の内容
db.toyao.revも同じ内容でいいので作っておく。(だけど別ファイルにしないとうまくいかない)
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
/etc/resolv.conf の設定
nameserver 192.168.xxx.xxx ← プライベートDNSサーバーのアドレス
nameserver yyy.yyy.yyy.yyy ← ISP提供のDNSサーバーのアドレス
nameserver xxx.xxx.xxx.xxx
/etc/dhcp3/dhcpd.conf の設定
zone toyao.net. { #正引きtoyao.netのマスター・ゾーンサーバを指定
primary localhost;
}zone xxx.168.192.in-addr.arpa. { #逆引きxxx.168.192.in-addr.arpaのマスター・ゾーンサーバを指定
primary localhost;
}
bindのリスタート
/etc/init.d/bind9 restart
dhcpdのリスタート
/etc/init.d/dhcp3-server restart
DHCPクライアントがIPアドレスを取得したときに、サーバー側で以下のようのログが/var/log/syslog に出ていればOKです。
named[10947]: client 127.0.0.1#33119: updating zone ‘toyao.net/IN’: adding an RR at ‘vaioU.toyao.net’ A
named[10947]: client 127.0.0.1#33119: updating zone ‘toyao.net/IN’: adding an RR at ‘vaioU.toyao.net’ TXT
named[10947]: journal file /etc/bind/db.toyao.zone.jnl does not exist, creating it
dhcpd: Added new forward map from vaioU.toyao.net to 192.168.xxx.19
named[10947]: client 127.0.0.1#33119: updating zone ‘xxx.168.192.in-addr.arpa/IN’: deleting rrset at ’19.xxx.168.192.in-addr.arpa’ PTR
named[10947]: client 127.0.0.1#33119: updating zone ‘xxx.168.192.in-addr.arpa/IN’: adding an RR at ’19.xxx.168.192.in-addr.arpa’ PTR
named[10947]: journal file /etc/bind/db.toyao.rev.jnl does not exist, creating it
dhcpd: added reverse map from 19.xxx.168.192.in-addr.arpa. to vaioU.toyao.net