2006/3/18

DNSのCNAMEレコードの誤った使い方(Internet)

非固定IPを使ってサーバ公開しているとdyndns.orgとかのダイナミックDNSサービスが便利に使えますよね。

でも、独自ドメインを取ってCNAMEを使って別名定義をする際には注意が必要です。

私がハマった恥ずかしい設定を説明します。

MXレコードの先がCNAMEレコード

これは全然駄目なパターンです。hijiki.netのzone設定ファイルで、 DDNSのAレコードの名前をyotan.dyndns.orgを例に取って以下に記します。

@ IN MX 10 mail.hijiki.net.
mail IN CNAME yotan.dyndns.org.

xxx@hijiki.net宛てのメールMTAは始めにMXレコードのhijiki.netを探してそれのAレコードはmail.hijiki.netだと思いますが、 実際にmail.hijiki.netを引いてみるとCNAMEでまだまだ先がある事を知り、ショックを受けます(笑)

実際これはRFC974,RFC2181に違反しているため、設定してはいけません。単にアドレス解決のコストがかかるだけでなく、 MTAによっては転送すら行えません。

MXレコードと同じ名前のCNAMEがただ存在する

以下に例を示します

@ IN MX 10 yotan.dyndns.org.
@ IN CNAME yotan.dyndns.org.

この例ではxxx@hijiki.net宛てはMXレコードを引くと直にAレコードであるyotan.dyndns.orgを引くのでメールは自宅のサーバに転送されますが、 次のCNAMEが曲者です。

この二つのレコードに関連性は無いように見えますが、MTAがPostfixの場合、 わざわざCNAMEを参照してEnvelope-toをxxx@yotan.dyndns.orgに変更してしまいます。 当然そのあて先を受けたMTAは自分が受け付けるドメインではないため転送を拒否します。

CNAMEは別にIPアドレスを引く際の別名という位置づけではなく、メールのあて先を変更する目的もありますので、 Postfixの動きは正しいそうです。

じゃあどうしようか

いわゆるDNS設定で言う「@」の指定ではCNAMEは使えないということになります。

hijiki.netのアドレス解決したい場合はAレコードで指定するのが無難です。以下の感じです。

@ IN MX 10 hijiki.net.
@ IN A 127.0.0.1
www IN CNAME hijiki.net.
mail IN CNAME hijiki.net.

@のAレコードはおとなしくDiCE等で自動更新させましょう。wwwやmailはMTAから参照しない名前となりますので、 CNAMEを使っても大丈夫です(アドレス解決のコストはかかりますが)

おわりに

二番目の問題は暫くハマりました。まさかPostfixにトラップがあったとは…。 CNAMEは便利そうだったのですがMTAによって(更にVersionによって)挙動が微妙に異なるようなので使いすぎには注意したほうが良さそうです。

2006/3/ 5

WRT54G-JPに豆腐を入れて遊ぶ(Internet)

オークションでLinksysのWRT54G-JPが格安で手に入ったので、 噂の改造ファームであるtofuを入れました。

tofuは一番流行っている改造ファームであるHyperWRTに更に独自機能をつけたもので、 痒いところに手が届くといった印象でした。

WRT54G-JPが到着するまでは同社のBEFSR41C-JP V3を利用しており、WRT-54GC-JPが出たときには数日だけ遊んだのですが余りの低スペックに愕然とし、 有線ルータと無線APを分けて利用していたのですが、 無線APと一緒にして機器類の設置をシンプルにする目的とWRT54G-JPは標準ファームでも電波状態が良いと聞いていたため半分実験がてら交換してみました。

最低限必要な機能は以下の通り

  • SNMP TrapなりSyslogなりでまともな情報が取れること
    (WRT54GC-JPはSyslogですが必要な情報は何一つ取れません)
  • ポートフォワーディングのエントリが20くらいあると将来も安心
    (WRT54G-JPの標準ファームは10エントリ)
  • DHCPのIPアドレスリース時にMACアドレス指定で固定IPを割り振れること
    (HyperWRTでも無理)
  • 無線機能の設定変更してもWAN回線が切断されないこと
    (WRT54GC-JPは何を適用しても全リセットでした)

特に高望みしている訳ではないと思いますが、 HyperWRTでも実装されていない機能としてtofuにはSyslog機能とDHCPの固定IP割り当てが魅力的でした。

使用したVersionはv4.30.1, HyperWRT 2.1b1 +tofu13cとなります。

残念なのが、ポートフォワーディングで元ポートと先ポートを別のものに設定する機能が無いのと事くらいでしょうか。

今のところPPPoE接続で15時間程経ちましたが特に問題はなさそうです。無線も全然問題なく使えます。

ハードスペックの関係で標準ファームでも有線のスループットは25Mbpsと遅めですが、現在はADSLなので問題ありません。 将来光回線にしたらその時考えますが、今のところこのルータは気に入りました(BEFSR41C-JPに比べてデカすぎるのはちょっと… ですが)

投稿者 yotan : 10:04 | エントリの評価