ドメイン名そのもの(ホスト名を除いたもの)に対して Aレコードを追加する
BINDなどでゾーンファイルを記述する際に、
ドメイン名そのもの(ホスト名を除いたもの)に対してAレコードを追加することができる。
たとえば下記のような感じ
# vi /etc/named.conf zone "tokyo.ac.jp" { type master; file "tokyo.ac.jp"; };
# vi /var/named/tokyo.ac.jp $TTL 3600 @ IN SOA ns01 root( 2013102301 60 60 3600 3600 ) IN NS ns01 IN MX 10 mail IN A 192.168.10.182 ns01 IN A 192.168.10.181 mail IN A 192.168.10.182
この場合 tokyo.ac.jp という名前を nslookup すると以下のようなメッセージが帰ってくる。
# nslookup tokyo.ac.jp Server: 127.0.0.1 [bash] Address: 127.0.0.1#53 Name: tokyo.ac.jp Address: 192.168.10.182
これは tokyo.ac.jp の Aレコードのクエリを投げているので当然だが、
このように ドメイン名そのものに対して Aレコードを記述することができる。
別に記述しなくても良いのだが、記述しない場合は nslookup した結果、IPアドレスが表示されなくなる。
# vi /etc/named.conf zone "tokyo.ac.jp" { type master; file "tokyo.ac.jp"; };
# vi /var/named/tokyo.ac.jp $TTL 3600 @ IN SOA ns01 root( 2013102301 60 60 3600 3600 ) IN NS ns01 IN MX 10 mail ; IN A 192.168.10.182 コメントアウト ns01 IN A 192.168.10.181 mail IN A 192.168.10.182
(Linux の nslookup の場合)
# nslookup tokyo.ac.jp Server: 127.0.0.1 Address: 127.0.0.1#53 *** Can't find tokyo.ac.jp: No answer
(Windows の nslookup の場合)
C:>nslookup tokyo.ac.jp サーバー: UnKnown Address: 192.168.10.178 名前: tokyo.ac.jp
この結果はドメイン名そのものに対して Aレコードのクエリを投げているので当然である。
ドメイン名そのものに対して Aレコードをつける意味的には
たとえばドメイン名に対してWebサーバのIPアドレスを Aレコードで記述しておけば、
その名前でアクセスすればそのページが表示されるということを意味している。
つまりドメイン名だけでWebサーバにアクセスできるので覚えやすいなどのメリットがある。
Webサーバの ホスト名+ドメイン名 で登録している場合は、そのDNSサーバを参照しているクライアントから以下のような感じでアクセスする必要があるが
http://www.tokyo.ac.jp
ドメイン名だけのAレコードをWebサーバのIPで登録すれば
http://tokyo.ac.jp
のような感じでアクセスが可能になる。
DNSで別名をつける
たとえば BINDの設定を以下のようにしてみる。
で、クライアントにこのDNSサーバを参照させる。
# vi /etc/named.conf zone "hoge.com" { type master; file "hoge.com"; };
# vi /var/named/hoge.com $TTL 10 @ IN SOA watanabe.hoge.com. test.hotmail.co.jp. ( 2013071601; 60; 10; 604800; 60; ) ; IN NS dns01.hoge.com. IN NS dns02.hoge.com. www IN A 192.168.10.57 test IN A 210.136.114.107 //avexのページ
するとクライアントでブラウザで下記のURLを入力すると
http://test.hoge.com
avexのページが表示される。
つまりいろんなインターネットのサイトに別名をつけることができるということである。
またこれを実験して発見したことが
たとえば avexの実際のサイトのURLは
http://avex.jp/index.html
のようになっているので、Webページを表示する際に実際のURLに変換をしてWebページを表示しているということ。
この際にたとえば jpドメイン用のDNSサーバなどを自前で内部に作成していたりすると、
この実際のURLの変換作業の際に名前解決に失敗するので、(jpのゾーンファイルに実際のURLと同じ avex.jp も登録してもだめ)
Webページが表示されないので注意すること。
たぶん test.tokyo.ac.jp というドメイン名からIPに変換する際に
ブラウザの中で上記以外の何かをやっている感じがする。
なので失敗している。
本物のルートDNSサーバに教えてもらっていない場合は、
それを受け入れずに表示しないようになっているとか。。。
原因的にはjpドメイン用のDNSサーバ上でのネガティブキャッシュの可能性もあるのか。
現段階では原因は特定できていない。
もしくはWebサーバ側(たとえば avex側)でそのURLで接続をしにきていない場合は拒否するとか、
本物のルートDNSサーバをたどってきていない場合は接続を拒否する設定が入っている可能性がある。
こちらの可能性のほうが大きい
なぜなら ciscoのサイト( http://www.cisco.com )の場合は
comというドメインを定義して、
# vi /etc/named.conf zone "com" { type master; file "com"; };
# vi /var/named/com $TTL 3600S @ IN SOA dns root ( 2013101701 60S 120S 240S 360S ) IN NS dns dns IN A 192.168.10.173 abc IN A 72.163.4.161 ;cisco IN A 72.163.4.161
のようにしたらいけたので。。。。
この際にCiscoのサイトのWebページが表示されても URLの部分が変換されなかったそういったサイトは大丈夫なのかも。
ためしに同じ条件で avexnet.jp と www.cisco.com を試してみたら、
1.http://aaa.watanabe.net ← zone jp の定義によって 210.136.114.107 (avexnet.jp) に変換
2.http://bbb.watanabe.net ← zone com の定義によって 72.163.4.161 (www.cisco.com) に変換
1はだめだったのに、2はいけた。
やっぱりサイトの設定によってはじいているようだ。
www.google.co.jp などもだめだった。