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


dnsmasqのネームサーバ機能で、A,AAAAレコードに関する最小限の設定とDNSラウンドロビン機能の利用方法

本資料はdnsmasqのネームサーバ機能の最小限の設定方法とDNSラウンドロビン機能の利用方法の手順を記しています。


関連記事

dnsmasqのネームサーバ機能

dnsmasqの基本機能の一つは、/etc/hostsファイルの記述内容をDNSレコードとして、
問い合わせに応じるネームサーバです。
特別な記述方法はなく、通常の/etc/hostsがそのままAレコード(ホスト名に対応するIPv4アドレス)になります。

また、/etc/hostsにIPv6アドレスを記述すると、
それはAAAAレコード(ホスト名に対応するIPv6アドレス)になります。

/etc/hostsに以下のように記述しておくと、

192.168.20.1    ubuntu
2001:5c0:871b:0:20a:85ff:fe01:8628      ubuntu

以下のようなDNSレコードがdnsmasqにより生成されます。

% host -a ubuntu 192.168.10.1
Trying "ubuntu"
Using domain server:
Name: 192.168.10.1
Address: 192.168.10.1#53
Aliases:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27069
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ubuntu.                       IN      ANY

;; ANSWER SECTION:
ubuntu.                0       IN      A       192.168.20.1
ubuntu.                0       IN      AAAA    2001:5c0:871b:0:20a:85ff:fe01:8628

Received 69 bytes from 192.168.10.1#53 in 82 ms
%

この記事では、dnsmasqのネームサーバ機能で利用できるDNSレコードのうち、
もっとも一般的なAレコードとAAAAレコード、それに関連する最小限の設定と、
DNSラウンドロビン機能を利用する手順を説明します。
対象とするdnsmasqのバージョンは、Ubuntu12.04上のバージョン2.59です。

DNSレコード

DNSレコードは実験的なものも含めると、いろいろな種類がありますが、
一般的によく知られているのは、A, AAAA, PTR, NS, MX, CNAME, TXT, SRVといったところだと思います。
dnsmasqでは、A, AAAA, PTR, MX, CNAME, TXT, SRV, NAPTRのレコードを利用することができます。

A, AAAAレコード

もっとも一般的な、ホスト名に対応するIPアドレスを返すレコードです。
いわゆる名前解決のためのレコードです。
上述の通り、/etc/hostsの記述がそのままレコードの設定になります。

以下の設定オプションがA, AAAAレコードの生成に関連します。

domain

ドメイン名を指定します。
下記のexpand-hostsとの組み合わせで、
ホスト名とドメイン名を組み合わせたFQDNに対応します。

expand-hosts

ドメイン名を付けたFQDNでの問い合わせにも応じます。

% host ubuntu.example.tld 192.168.10.1
Using domain server:
Name: 192.168.10.1
Address: 192.168.10.1#53
Aliases:
ubuntu.example.tld has address 192.168.20.1
%

addn-hosts

/etc/hostsファイルの他に、任意のファイルをホスト情報ファイルにすることができます。
ファイルの書式は/etc/hostsと同様です。
/etc/hostsには書きたくないが、dnsmasqのネームサーバに与えたいホスト情報を記述することができます。

以上の設定オプションを用いた記述例は以下のようになります。
(/etc/more_hostsは任意のホスト情報ファイルの名前です。)

expand-hosts
domain=example.tld
addn-hosts=/etc/more_hosts

DNSラウンドロビン

DNSラウンドロビンは、あるホスト名のA, AAAAレコードの問い合わせに対して、
複数のIPアドレスを順番に返していくというネームサーバの機能です。
簡単な負荷分散などに利用します。 dnsmasqは、A,AAAAレコードのラウンドロビン機能のサポートしています。
利用方法は/etc/hostsに同じホスト名で別のアドレスの行を複数設定するだけです。

/etc/hostsファイル

192.168.20.1    ubuntu
192.168.20.2    ubuntu
192.168.20.3    ubuntu
192.168.20.4    ubuntu

/etc/hostsとしては正しくない上記の記述を避けたければ、
addn-hosts機能を使って、別ファイルに記述すればいいでしょう。

/etc/hostsファイル

192.168.20.1    ubuntu
2001:5c0:871b:0:20a:85ff:fe01:8628    ubuntu

/etc/more_hostsファイル

192.168.20.2    ubuntu
192.168.20.3    ubuntu
192.168.20.4    ubuntu
2001:5c0:871b:0:20d:bff:fe26:6c9a     ubuntu

複数行を設定したレコードへの問い合わせ結果は以下になります。

% host ubuntu.example.tld 192.168.10.1
Using domain server:
Name: 192.168.10.1
Address: 192.168.10.1#53
Aliases:

ubuntu.example.tld has address 192.168.20.2
ubuntu.example.tld has address 192.168.20.4
ubuntu.example.tld has address 192.168.20.3
ubuntu.example.tld has address 192.168.20.1
ubuntu.example.tld has IPv6 address 2001:5c0:871b:0:20a:85ff:fe01:8628
ubuntu.example.tld has IPv6 address 2001:5c0:871b:0:20d:bff:fe26:6c9a
%

このホストubutuに対してpingを実行すると、
以下のように複数のアドレスが順番にdnsmasqのネームサーバから返されているのが判ります。

% ping -c 1 ubuntu
PING ubuntu (192.168.20.1) 56(84) bytes of data.
64 bytes from ubuntu (192.168.20.1): icmp_req=1 ttl=64 time=2.24 ms

--- ubuntu ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.242/2.242/2.242/0.000 ms
% ping -c 1 ubuntu
PING ubuntu (192.168.20.2) 56(84) bytes of data.
64 bytes from ubuntu (192.168.20.2): icmp_req=1 ttl=64 time=10.3 ms

--- ubuntu ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.345/10.345/10.345/0.000 ms
% ping -c 1 ubuntu
PING ubuntu (192.168.20.4) 56(84) bytes of data.
64 bytes from ubuntu (192.168.20.4): icmp_req=1 ttl=64 time=5.48 ms

--- newmars ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 5.483/5.483/5.483/0.000 ms
%

以上、dnsmasqのネームサーバ機能で、
A, AAAAレコードに関する最小限の設定と、
DNSラウンドロビン機能の利用方法についてでした。



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