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無しはどうすれば良いの…」と聞かれますが、基本的に回避策はありません。
TXTレコードの見落としがちな制限
割と良くハマる罠ですね。RFC全て覚えるとか無理なんですよ。。。
なので、良くあるケースをまとめました。
SPFとして登録不可
SPF(Sun Protection Factor)としてTXTレコード登録依頼時に注意すべき点は、既にCNAMEで利用されていないかです。前項でも紹介していますが、「CNAME レコードは、他のデータと共存することはできません。」なので、TXTとCNAMEも共存できません。
TXT文字制限
TXTレコードは、IP追加などで、どんどん情報量が増えていく傾向がありますが、1レコードあたりの文字数制限があるので注意が必要です。
最大文字数は255文字です。
超える場合は、引用符( ” )で分ければ使用可能です。
hoge IN TXT "v=DKIM1; k=rsa; " "p=M....100文字....s1j2d" "ZptKj+X....150文字...DAQAB"
include階層制限
10階層までです。
一つずつ展開してCHKしていくのは大変なので、下記の様なチェックサイトで見るのが早いです。
アンダースコアの使い方
- test_www.piteki.com
- test-www.pite_ki.com
RFC違反となるのは、1.のようなhost名で利用するときで、ドメイン名では一応使えるみたいですが、Apache2.4からは、virtualhostで「 _ 」(アンダースコア)を使うこと自体が禁止され、Microsoftなどからも推奨しないと言われています。
コメント