dnsmasqネームサーバ機能でMX,PTR,SRV,TXT,CNAME,NAPTRといったDNSレコードの設定 †関連記事 †dnsmasqのネームサーバ機能 †dnsmasqの基本機能の一つは、/etc/hostsファイルの記述内容をDNSレコードとして、問い合わせに応じるネームサーバです。/etc/hostsの記述内容が、Aレコード(ホスト名に対応するIPv4アドレス)や、AAAAレコード(ホスト名に対応するIPv6アドレス)になります。 またdnsmasqは、通常の名前解決のDNSレコード以外のDNSレコード、MX, PTR, SRV, TXT, CNAME, NAPTRといったDNSレコードが利用できます。 この記事では、dnsmasqのネームサーバ機能で利用できるDNSレコードのうち、Aレコード、AAAAレコード以外のDNSレコードを利用する手順を説明します。対象とするdnsmasqのバージョンは、Ubuntu12.04上のバージョン2.59です。 MXレコード †MXレコードはメール配送のために利用されるDNSレコードです。 mx-host †mx-host=MX name(,SMTPサーバ名)(,優先度) MX name(メールアドレスのドメインパート)についてのSMTPサーバのホスト名を設定します。 mx-host設定例 †mx-host=example.tld,smtp0.example.tld,10 mx-host=example.tld,smtp1.example.tld,20 MXレコードの問い合わせ結果は以下になります。 # host -t MX example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: example.tld mail is handled by 20 smtp1.example.tld. example.tld mail is handled by 10 smtp0.example.tld. # mx-target †mx-target=SMTPサーバ名 mx-hostがSMTPサーバの設定なしに設定されていた場合、それに対応するSMTPサーバを設定します。 mx-target設定例 †mx-target=smtp.example.tld MXレコードの問い合わせ結果は以下になります。 # host -t MX dnsmasq-srv Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: dnsmasq-srv mail is handled by 0 smtp.example.tld. # selfmx †A, AAAAレコードが登録されている各ホストに対して、そのホスト自身をSMTPサーバとして指すMXレコードを返すようになります。 selfmx設定例 †selfmx MXレコードの問い合わせ結果は以下になります。 # host -t MX ubuntu.example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: ubuntu.example.tld mail is handled by 1 ubuntu.example.tld. # localmx †A, AAAAレコードが登録されている各ホストに対して、mx-targetで設定された値をMXレコードとして返すようになります。 localmx設定例 †localmx MXレコードの問い合わせ結果は以下になります。 # host -t MX ubuntu.example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: ubuntu.example.tld mail is handled by 1 dnsmasq-srv. # PTRレコード †PTRレコードは、IPアドレスの逆引き、つまりIPアドレスからホスト名を名前解決するためのDNSレコードです。 ptr-record †ptr-record=in-addr.arpaドメインのホスト名,対応するホスト名 in-addr.arpaは逆引きの名前空間のドメインです。 ptr-record設定例 †ptr-record=1.20.168.192.in-addr.arpa,ubuntu PTRレコードの問い合わせ結果は以下になります # host 192.168.20.1 Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: 1.20.168.192.in-addr.arpa domain name pointer ubuntu. # SRVレコード †SRVレコードは、ドメイン上のサービスの場所を解決するDNSレコードです。 srv-host †srv-host=<_service>.<_prot>.[<domain>],[<target>[,<port>[,<priority>[,<weight>]]]] srv-host設定例 †srv-host=_ldap._tcp,ldapserver.example.tld,389 SRVレコードの問い合わせ結果は以下になります # host -t SRV _ldap._tcp.example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: _ldap._tcp.example.tld has SRV record 0 0 389 ldapserver.example.tld. # TXTレコード †TXTレコードはホストやドメインに対応する任意のテキストデータを提供するDNSレコードです。 メールのドメイン詐称を防ぐためのSPF(Sender Policy Framework)などで利用されています。 txt-record †txt-record=ホスト・ドメイン名(,テキストデータ) txt-record設定例 †txt-record=example.tld,"v=spf1 a -all" TXTレコードの問い合わせ結果は以下になります # host -t TXT example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: example.tld descriptive text "v=spf1 a -all" # CNAMEレコード †CNAMEレコードは、ホスト名に別名を付けるためのDNSレコードです。 cname †cname=別名,別名を割り当てるホスト名 「別名を割り当てるホスト名」はdnsmasqのAレコードとして存在している必要があります。 cname設定例 †cname=debian,ubuntu CNAMEレコードの問い合わせ結果は以下になります # host debian Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: debian is an alias for ubuntu. ubuntu has address 192.168.20.1 # NAPTRレコード †NAPTRレコードは、指定したドメイン名に様々な情報を定義するためのDNSレコードです。 naptr-record †naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>] naptr-record設定例 †naptr-record=_sip._udp.example.tld,0,0,s,SIP+D2U,!^.*$!sip:customer-service@example.tld! NAPTRレコードの問い合わせ結果は以下になります # host -t NAPTR _sip._udp.example.tld Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: _sip._udp.example.tld has NAPTR record 0 0 "s" "SIP+D2U" "!^.*$!sip:customer-service@example.tld!" . # dnsmasqのDNS機能は、SOAやNSなどのインターネット上の本格的なDNSサーバとして必要なレコードはサポートしていませんが、 以上、dnsmasqのネームサーバ機能で、MX, PTR, SRV, TXT, CNAME, NAPTRといったDNSレコードを設定する方法についてでした。 |