このエントリーをはてなブックマークに追加


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レコードです。
メールアドレスのドメインパート(xxx@example.tldのexample.tldの部分)と、メールサーバ(SMTPサーバ)の対応を解決します。
dnsmasqでは以下のオプションがMXレコードに関連します。

mx-host

mx-host=MX name(,SMTPサーバ名)(,優先度)

MX name(メールアドレスのドメインパート)についてのSMTPサーバのホスト名を設定します。
優先度はMXレコードの優先度設定で、優先度を変えて複数のSMTPサーバを指定できます。
SMTPサーバ名を省略した場合、後述のmx-targetが設定されていればその値を、なければdnsmasqの動作しているホスト名を返します

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-hostが設定されていなかった場合には、dnsmasqの動作しているホストに対するMXレコードが作成され、そのSMTPサーバの値として使われます

mx-target設定例

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

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レコードとして返すようになります。
mx-targetが設定されてなければ、dnsmasqの動作しているホストをMXレコードとして返します。

localmx設定例

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レコード

PTRレコードは、IPアドレスの逆引き、つまりIPアドレスからホスト名を名前解決するためのDNSレコードです。
dnsmasqでは以下のオプションがPTRレコードに関連します。

ptr-record

ptr-record=in-addr.arpaドメインのホスト名,対応するホスト名

in-addr.arpaは逆引きの名前空間のドメインです。
逆引きするIPアドレスに対応した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レコードです。
ActiveDirectoryや、SIPなどのサービスで利用されます。
後述のNAPTRレコードと組み合わせて利用することも多いです。
dnsmasqでは以下のオプションがSRVレコードに関連します。

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)などで利用されています。
dnsmasqでは以下のオプションがTXTレコードに関連します。

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レコードです。
dnsmasqでは以下のオプションがTXTレコードに関連します。

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レコードです。
MXレコードを汎用化したものといえます。
dnsmasqでは以下のオプションがNAPTRレコードに関連します。

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サーバとして必要なレコードはサポートしていませんが、
MXやSRV,NAPTRなどのイントラ内のサービス展開に有用なDNSレコードのサポートは充実しているようです。

以上、dnsmasqのネームサーバ機能で、MX, PTR, SRV, TXT, CNAME, NAPTRといったDNSレコードを設定する方法についてでした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:29:55