DNSで注意すべきコト

メーカー製品

DNS(Domain Name System)を使う上で、よくハマル落とし穴を紹介します。

レコードを登録するときなどに、RFC違反したりするので事前にチェックしましょう。

APEXドメインでCNAMEは利用できない

  • APEXドメインとは
    • ネイキッドドメインや、ZoneApexと呼ばれることもあります。
    • host名、サブドメインが無いものを指します。
      例)piteki.com

CNAME利用できないとは

WEBサイトによっては、
 例)piteki.com と
 例)www.piteki.com
の2パターンを同じWEBサイトとして取り扱い、閲覧できるようにしてるケースがあります。

この時、Aレコードであれば

piteki.com        A   1.1.1.1      ・・・可
www.piteki.com    A   1.1.1.1      ・・・可

のように、登録することが可能です。
しかし、CNAMEで登録したいようなケースが有った場合、

piteki.com        CNAME   123456.aaa.bbb.com      ・・・不可
www.piteki.com    CNAME   123456.aaa.bbb.com      ・・・可

APEXドメインをCNAME登録することはRFC違反となります。
厳密には、CNAME側の制約で、「CNAME レコードは、他のデータと共存することはできません。」に合致してしまうためです。

CNAME利用できない弊害と、回避策

良くあるケースで、CDN(ContentsDeliveryNetwork)を利用しようとした場合に、CNAME登録が基本設計のサービスが多いので、「www無しはどうすれば良いの…」と聞かれますが、基本的に回避策はありません。

www無しはAレコードで登録し、www無しの通信は、www有りへリダイレクトする

AWS環境であればRoute53で、APEXドメインでもAliasレコードをCNAMEの様に使える

TXTレコードの見落としがちな制限

割と良くハマる罠ですね。RFC全て覚えるとか無理なんですよ。。。
なので、良くあるケースをまとめました。

SPFとして登録不可

SPF(Sun Protection Factor)としてTXTレコード登録依頼時に注意すべき点は、既にCNAMEで利用されていないかです。前項でも紹介していますが、「CNAME レコードは、他のデータと共存することはできません。」なので、TXTとCNAMEも共存できません。

TXT文字制限

TXTレコードは、IP追加などで、どんどん情報量が増えていく傾向がありますが、1レコードあたりの文字数制限があるので注意が必要です。

最大文字数は255文字です。

超える場合は、引用符( ” )で分ければ使用可能です。

DKIMで255文字を超えるような場合も、「”」で分ければ問題ないです。

hoge  IN   TXT   "v=DKIM1; k=rsa; " "p=M....100文字....s1j2d" "ZptKj+X....150文字...DAQAB"

include階層制限

10階層までです。

一つずつ展開してCHKしていくのは大変なので、下記の様なチェックサイトで見るのが早いです。

SPF Surveyor - dmarcian
dmarcian's SPF Surveyor is an SPF diagnostic tool that presents a graphical view of SPF records. Discover any problems w...

アンダースコアの使い方

  1. test_www.piteki.com
  2. test-www.pite_ki.com

RFC違反となるのは、1.のようなhost名で利用するときで、ドメイン名では一応使えるみたいですが、Apache2.4からは、virtualhostで「 _ 」(アンダースコア)を使うこと自体が禁止され、Microsoftなどからも推奨しないと言われています。

ドメインにおいて、_ (アンダースコア)は使わないが吉

コメント