DNS難しい!
DNSって、家庭のパソコンでネットにつないだりするとき、
殆ど意識せずに使えるせいか、ちょっとなめていたね。
今、とりあえず、BJD(BlackJumboDog)でDNSサーバを立ててるんですが、
BJDだとやっぱり機能が足りないのかも・・・
ローカルのマシンが、WinXP2台、VineLinux1台で、
XPにBJDを乗せてDNSを立てているのですが、
1台をコンテンツサーバ、
もう一台をフルサービスリゾルバにしていて、
外部に、ルートDNSサーバの代わりとして、comのサーバを立て、
named.caファイルを13台のルートサーバから、そのcomサーバのみに書き換え、
外部のcomのDNSにはccna1~ccna4のA(ホスト)レコードと、
自身のNS(nameサーバ)を登録、
(com NS in ns.com
ns A in XX.XX.XX.XX
ccna4 NS in ns.ccna4.com
ns.ccna4 A in xx.xx.xx.xx
・・・(以下略
)
コンテンツサーバには、内部で立ててるサーバの公開アドレスを登録
(ccna4 NS in ns.ccna4.com
www A in xx.xx.xx.xx
mail A in xx.xx.xx.xx
ns A in xx.xx.xx.xx)
(※全部同じアドレスでPATをかけているので、
CNAMEを使って別名で登録でも可能だと思う)
フルサービスリゾルバには、内部の名前解決を登録
(ccna4 NS in ns.ccna4.com
www A in yy.yy.yy.yy
ns A in yy.yy.yy.yz
mail CNAME in ns.ccna4.com)
(再帰要求 TTL=86400 ・・・のはず)
クライアントPC(XPでDNSを立てているが、Web等ではクライアント)
の設定ではDNSサーバへの問い合わせは、
フルサービスリゾルバに問い合わせ、
例えば、www.ccna3.comへアクセスするには、
自身のDNSキャッシュを確認し、
キャッシュに残っていなければ、DNS設定に従い、
フルサービスリゾルバに問い合わせに行く(スタブリゾルバ機能)
フルサービスリゾルバは、自身のDNSに登録されていないため、
named.caに登録されたルートサーバ(書き換えてあるためcomサーバ)
に問い合わせに行く(反復問い合わせ)、
comサーバは、自身の設定に従い、
comのネームサーバ(自分自身)を確認し、
ccna4.com (ccna4)が登録されている、
NSで登録されているので、
ns.ccna4.comと言う、ccna4.comのネームサーバのIPアドレスを、
反復問い合わせの応答として返す、
フルサービスリゾルバは、ns.ccna4,comに、
www.ccna4.comのアドレスを問い合わせる、
ns.ccna4.comは、Aレコードにwwwが登録されているので、
そのIPアドレスを返す、
フルサービスリゾルバは、帰ってきたアドレスを、
自身のキャッシュに残し、
スタブリゾルバ(クライアント)へリゾルブしたとして返す、
クライアントは帰ってきたIPアドレスを元にブラウザからアクセスする。
と言った、非常に面倒な流れを追うことになる。
これが、BJDだと、
反復問い合わせが上手くいかないのか、
(設定が悪いのかもしれないが・・・)
NSレコードをうまく処理してくれない。
あまりに上手くいかないので、
明日は、せっかくVineLinux入ってるんだし、
BINDを使ってDNSを立ててみようかと言う話の流れです。
(VineLinuxには初めからBINDが入っている)
あぁ・・・また新しい設定勉強しなくちゃいけない・・・
DNSって、家庭のパソコンでネットにつないだりするとき、
殆ど意識せずに使えるせいか、ちょっとなめていたね。
今、とりあえず、BJD(BlackJumboDog)でDNSサーバを立ててるんですが、
BJDだとやっぱり機能が足りないのかも・・・
ローカルのマシンが、WinXP2台、VineLinux1台で、
XPにBJDを乗せてDNSを立てているのですが、
1台をコンテンツサーバ、
もう一台をフルサービスリゾルバにしていて、
外部に、ルートDNSサーバの代わりとして、comのサーバを立て、
named.caファイルを13台のルートサーバから、そのcomサーバのみに書き換え、
外部のcomのDNSにはccna1~ccna4のA(ホスト)レコードと、
自身のNS(nameサーバ)を登録、
(com NS in ns.com
ns A in XX.XX.XX.XX
ccna4 NS in ns.ccna4.com
ns.ccna4 A in xx.xx.xx.xx
・・・(以下略
)
コンテンツサーバには、内部で立ててるサーバの公開アドレスを登録
(ccna4 NS in ns.ccna4.com
www A in xx.xx.xx.xx
mail A in xx.xx.xx.xx
ns A in xx.xx.xx.xx)
(※全部同じアドレスでPATをかけているので、
CNAMEを使って別名で登録でも可能だと思う)
フルサービスリゾルバには、内部の名前解決を登録
(ccna4 NS in ns.ccna4.com
www A in yy.yy.yy.yy
ns A in yy.yy.yy.yz
mail CNAME in ns.ccna4.com)
(再帰要求 TTL=86400 ・・・のはず)
クライアントPC(XPでDNSを立てているが、Web等ではクライアント)
の設定ではDNSサーバへの問い合わせは、
フルサービスリゾルバに問い合わせ、
例えば、www.ccna3.comへアクセスするには、
自身のDNSキャッシュを確認し、
キャッシュに残っていなければ、DNS設定に従い、
フルサービスリゾルバに問い合わせに行く(スタブリゾルバ機能)
フルサービスリゾルバは、自身のDNSに登録されていないため、
named.caに登録されたルートサーバ(書き換えてあるためcomサーバ)
に問い合わせに行く(反復問い合わせ)、
comサーバは、自身の設定に従い、
comのネームサーバ(自分自身)を確認し、
ccna4.com (ccna4)が登録されている、
NSで登録されているので、
ns.ccna4.comと言う、ccna4.comのネームサーバのIPアドレスを、
反復問い合わせの応答として返す、
フルサービスリゾルバは、ns.ccna4,comに、
www.ccna4.comのアドレスを問い合わせる、
ns.ccna4.comは、Aレコードにwwwが登録されているので、
そのIPアドレスを返す、
フルサービスリゾルバは、帰ってきたアドレスを、
自身のキャッシュに残し、
スタブリゾルバ(クライアント)へリゾルブしたとして返す、
クライアントは帰ってきたIPアドレスを元にブラウザからアクセスする。
と言った、非常に面倒な流れを追うことになる。
これが、BJDだと、
反復問い合わせが上手くいかないのか、
(設定が悪いのかもしれないが・・・)
NSレコードをうまく処理してくれない。
あまりに上手くいかないので、
明日は、せっかくVineLinux入ってるんだし、
BINDを使ってDNSを立ててみようかと言う話の流れです。
(VineLinuxには初めからBINDが入っている)
あぁ・・・また新しい設定勉強しなくちゃいけない・・・