DNS のゾーンの SOA でドット (.) が含まれるメールアドレスを書く方法
DNS のゾーンの SOA レコードでは、管理者のメールアドレスを書くことができる。
ここで DNS パケットの制約上、記載するメールアドレス内のアットマーク "@" の代わりにドット "." を用いるという規則があることは、DNS サーバーを管理したことがある方であれば誰でもご存知のように有名な話である。
たとえば
abc@tsukuba.ac.jp
というメールアドレスの場合は、SOA には
abc.tsukuba.ac.jp
と書けば良い。
ここで子供の頃 (中学 2 年ごろ) から疑問に思っていたことが 1 つある。
メールアドレスの @ より前の部分 (ユーザー名の部分) にドット "." が含まれている場合はどうするのだろうか。
たとえば
abc.def@tsukuba.ac.jp
というアドレスをそのまま "@" を "." に置換すると、
abc.def.tsukuba.ac.jp
となる。これでは、この SOA レコードを見て管理者にメールを送ろうと思った人は、abc@def.tsukuba.ac.jp (間違ったアドレス) に送信してしまうだろう。
上記のようなくだらない疑問が昔からあったが、最近調べてみると、RFC1035 (http://www.ietf.org/rfc/rfc1035.txt) に以下のように記述されていることがわかった。
The DNS encodes theas a single label, and encodes the as a domain name. The single label from the is prefaced to the domain name from to form the domain name corresponding to the mailbox. Thus the mailbox HOSTMASTER@SRI- NIC.ARPA is mapped into the domain name HOSTMASTER.SRI-NIC.ARPA. If the contains dots or other special characters, its representation in a master file will require the use of backslash quoting to ensure that the domain name is properly encoded. For example, the mailbox Action.domains@ISI.EDU would be represented as Action¥.domains.ISI.EDU.
どうやらメールアドレスのユーザー名の部分 (@ より前の部分) にドット "." が含まれている場合は、"." を "¥." のようにエスケープして SOA に記載すれば良いらしい。
したがって、正解は
abc\.def.tsukuba.ac.jp
であるということがわかった。
ところで、この SOA レコードに本当に管理者のメールアドレスを記載している方はどのくらいいるのだろう。