#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS