1. DNS/1/MX

MXレコードが存在しているときにCNAMEを指してはならないことははっきりしている。

MX検索したときに、qnameがCNAMEであるときにはどういう扱いを受けるのか。 (リゾルバー側での処理が必要かどうか、気になった。)

それはSMTPの問題である。

  1. MXは存在しなかった。
    • もしAの検索をするのであれば、CNAMEに対するAを検索することになる。
    • MXが存在しないということで、配送エラーにする。

-- ToshinoriMaeno 2017-03-20 08:39:11

https://tools.ietf.org/html/rfc974 (Obsoleted by: 2821)

If the response contains an answer which is a CNAME RR,
  it indicates that REMOTE is actually an alias for some other domain name.
  The query should be repeated with the canonical domain name.

とあるが、この部分はリゾルバーの責任というよりは、MTAの責任であろう。

/2821に相当部分があるか、調べてみなければ。

MXの検索を行って、CNAMEが返ってきたら:

  If a CNAME record is found instead, the resulting name is processed as if it were the initial name.

-- ToshinoriMaeno 2017-03-20 08:39:11

/5321 も調べないといけないのか。(この部分については変更はなさそう。)

2. google mail 利用例

answer: 092.jp 120 MX 10 aspmx.l.google.com
answer: 092.jp 120 MX 20 alt1.aspmx.l.google.com
answer: 092.jp 120 MX 20 alt2.aspmx.l.google.com
answer: 092.jp 120 MX 30 aspmx2.googlemail.com
answer: 092.jp 120 MX 30 aspmx3.googlemail.com

%dnsq a aspmx.l.google.com a.gtld-servers.net                 ~/dnsq/0328
1 aspmx.l.google.com:
172 bytes, 1+0+4+4 records, response, noerror
query: 1 aspmx.l.google.com
authority: google.com 172800 NS ns2.google.com
authority: google.com 172800 NS ns1.google.com
authority: google.com 172800 NS ns3.google.com
authority: google.com 172800 NS ns4.google.com
additional: ns2.google.com 172800 A 216.239.34.10
additional: ns1.google.com 172800 A 216.239.32.10
additional: ns3.google.com 172800 A 216.239.36.10
additional: ns4.google.com 172800 A 216.239.38.10

%dnsq a aspmx.l.google.com ns1.google.com

1 aspmx.l.google.com:
52 bytes, 1+1+0+0 records, response, authoritative, noerror
query: 1 aspmx.l.google.com
answer: aspmx.l.google.com 293 A 74.125.204.26

3. l.google.com

親子ゾーン同居だった。

%dnsq ns l.google.com ns1.google.com

2 l.google.com:
166 bytes, 1+4+0+4 records, response, authoritative, noerror
query: 2 l.google.com
answer: l.google.com 86400 NS ns4.google.com
answer: l.google.com 86400 NS ns3.google.com
answer: l.google.com 86400 NS ns2.google.com
answer: l.google.com 86400 NS ns1.google.com
additional: ns4.google.com 345600 A 216.239.38.10
additional: ns3.google.com 345600 A 216.239.36.10
additional: ns2.google.com 345600 A 216.239.34.10
additional: ns1.google.com 345600 A 216.239.32.10