#navi(../)
* dnsmasqネームサーバ機能でMX,PTR,SRV,TXT,CNAME,NAPTRといったDNSレコードの設定 [#z3693fac]
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#i45990b5]
-[[dnsmasqをDHCPサーバとして使う場合の最小限の設定例>Linux環境設定/dnsmasqをDHCPサーバとして使う場合の最小限の設定例]]
-[[dnsmasqのネームサーバ機能で、A,AAAAレコードに関する最小限の設定とDNSラウンドロビン機能の利用方法>Linux環境設定/dnsmasqネームサーバ機能のA,AAAAの最小設定とDNSラウンドロビン機能の利用]]
* dnsmasqのネームサーバ機能 [#k79d1905]
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レコード [#r24f9791]
MXレコードはメール配送のために利用されるDNSレコードです。~
メールアドレスのドメインパート(xxx@example.tldのexample.tldの部分)と、メールサーバ(SMTPサーバ)の対応を解決します。~
dnsmasqでは以下のオプションがMXレコードに関連します。
** mx-host [#c7528752]
mx-host=MX name(,SMTPサーバ名)(,優先度)
MX name(メールアドレスのドメインパート)についてのSMTPサーバのホスト名を設定します。~
優先度はMXレコードの優先度設定で、優先度を変えて複数のSMTPサーバを指定できます。~
SMTPサーバ名を省略した場合、後述のmx-targetが設定されていればその値を、なければdnsmasqの動作しているホスト名を返します
** mx-host設定例 [#k738e57e]
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 [#p8133504]
mx-target=SMTPサーバ名
mx-hostがSMTPサーバの設定なしに設定されていた場合、それに対応するSMTPサーバを設定します。~
mx-hostが設定されていなかった場合には、dnsmasqの動作しているホストに対するMXレコードが作成され、そのSMTPサーバの値として使われます
*** mx-target設定例 [#fd1bd855]
mx-target=smtp.example.tld
MXレコードの問い合わせ結果は以下になります。~
(dnsmasq-srvがdnsmasqの動作しているホスト名です)
# 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 [#lf9bb319]
A, AAAAレコードが登録されている各ホストに対して、そのホスト自身をSMTPサーバとして指すMXレコードを返すようになります。
*** selfmx設定例 [#t99a2e84]
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 [#w56e9747]
A, AAAAレコードが登録されている各ホストに対して、mx-targetで設定された値をMXレコードとして返すようになります。~
mx-targetが設定されてなければ、dnsmasqの動作しているホストをMXレコードとして返します。
*** localmx設定例 [#oefd8ba1]
localmx
MXレコードの問い合わせ結果は以下になります。~
(dnsmasq-srvがdnsmasqの動作しているホスト名です)
# 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レコード [#n9aa12ff]
PTRレコードは、IPアドレスの逆引き、つまりIPアドレスからホスト名を名前解決するためのDNSレコードです。~
dnsmasqでは以下のオプションがPTRレコードに関連します。
** ptr-record [#bbb2ef94]
ptr-record=in-addr.arpaドメインのホスト名,対応するホスト名
in-addr.arpaは逆引きの名前空間のドメインです。~
逆引きするIPアドレスに対応したin-addr.arpa名を設定します。
*** ptr-record設定例 [#vce4045f]
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レコード [#z2d88e1d]
SRVレコードは、ドメイン上のサービスの場所を解決するDNSレコードです。~
ActiveDirectoryや、SIPなどのサービスで利用されます。~
後述のNAPTRレコードと組み合わせて利用することも多いです。~
dnsmasqでは以下のオプションがSRVレコードに関連します。
** srv-host [#d20d9306]
srv-host=<_service>.<_prot>.[<domain>],[<target>[,<port>[,<priority>[,<weight>]]]]
*** srv-host設定例 [#g8d5a533]
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レコード [#w3b50377]
TXTレコードはホストやドメインに対応する任意のテキストデータを提供するDNSレコードです。
~メールのドメイン詐称を防ぐためのSPF(Sender Policy Framework)などで利用されています。~
dnsmasqでは以下のオプションがTXTレコードに関連します。
** txt-record [#rd345bad]
txt-record=ホスト・ドメイン名(,テキストデータ)
*** txt-record設定例 [#b3757fc5]
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レコード [#f00e428f]
CNAMEレコードは、ホスト名に別名を付けるためのDNSレコードです。~
dnsmasqでは以下のオプションがTXTレコードに関連します。
** cname [#m27c91e2]
cname=別名,別名を割り当てるホスト名
「別名を割り当てるホスト名」はdnsmasqのAレコードとして存在している必要があります。
*** cname設定例 [#tc70c4dc]
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レコード [#de7bea6a]
NAPTRレコードは、指定したドメイン名に様々な情報を定義するためのDNSレコードです。~
MXレコードを汎用化したものといえます。~
dnsmasqでは以下のオプションがNAPTRレコードに関連します。
** naptr-record [#h3d71f09]
naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>]
*** naptr-record設定例 [#h79401b0]
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サーバとして必要なレコードはサポートしていませんが、~
MXやSRV,NAPTRなどのイントラ内のサービス展開に有用なDNSレコードのサポートは充実しているようです。
以上、dnsmasqのネームサーバ機能で、MX, PTR, SRV, TXT, CNAME, NAPTRといったDNSレコードを設定する方法についてでした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)