Tips

2015.03.31

Linux BIND 第4回

ドメイン名そのもの(ホスト名を除いたもの)に対して 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 などもだめだった。

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search