第4回 主要なサーバアプリの設定例


株式会社ラック
IPv4アドレス枯渇対応タスクフォース
許 先明

2011/12/19
IPv4アドレス在庫の枯渇やWorld IPv6 Dayの実施に伴い、「そういえば昔IPv6について読んだけれど、いまはどうなっているんだろう?」と感じている人も多いのではないでしょうか。最新状況を踏まえたIPv6の「基礎」を改めて紹介します。(編集部)

拍子抜け? 主要なアプリはすでに対応

 前回は、サーバOSそのものをIPv6に対応させる設定について説明しました。続いて今回は、BIND9、ntpd、postfix、Dovecot、Apache2を例に取り、主要なサーバアプリケーションをIPv6対応とする手順について取り上げます。

 サーバアプリケーションをIPv6対応にするには、それぞれのサーバアプリケーションでIPv6に対応するための設定を行う必要があります。ただし現実には、サーバアプリケーションの多くはすでにIPv6に対応しており、設定も非常に簡単になっています。そのため拍子抜けするかもしれませんが、本稿を参考にいろいろ試してみてください。

 なお繰り返しになりますが、本稿で扱う各種設定は、あくまでもサーバをIPv6に対応させるためだけのものであって、セキュリティ設定などに関しては取り扱いません。また実際にサービスを行う場合、ネットワーク関連の設定以外にもさまざまな設定が必要になりますが、そのあたりの設定に関しては、IPv4環境でのサーバ構築手順と同様です。本稿では、この部分は取り上げません。

 また前回同様、本稿で利用しているIPv4/IPv6アドレスは文書化用に割り当てられているものを利用し、図1に示したネットワークを前提にサーバをIPv6化することにします。

図1 設定例のネットワーク図

2つの作業でBIND 9をIPv6対応に

 DNSはインターネットにおいて最も重要なデータベースです。DNSがホスト名とアドレスの対応付けを正しく解決してくれないと、URLを用いたWebアクセスができなくなるなど、非常に不便になってしまいます。

 そのDNSサービスを提供するサーバアプリケーションのうち、最も広範に利用されているのがBINDでしょう。

 BINDをIPv6に対応させるには、

  • IPv6でのクエリを受け付け、返答する
  • IPv6に関する問い合わせ(正引き、逆引き)に答えることができる

ようにするため、2つの作業が必要になります。

 まず、BINDでIPv6でのクエリを受け付け、返答できるように設定を変更します。そのためには、listen-on-v6の設定をnamed.confに記載し、必要なゾーンの定義を記載します。

・named.confの例

options {
  listen-on-v6{		# IPv6でのクエリの取り扱いを決める
    any;		# どこからのIPv6クエリでも受け取る
  }
};

zone "localhost" {
  type master;
  file "local.zone";
};

zone "example.jp" {
  type master;
  file "example.jp.zone";
};

zone "0.0.127.in-addr.arpa" { # 127.0.0.0/24のゾーン設定
  type master;
  file "192.0.2.zone";
};

zone "2.0.192.in-addr.arpa" { # 192.0.2.0/24のゾーン設定
  type master;
  file "192.0.2.zone";
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { # ::/64のゾーン設定
  type master;
  file "::.64.zone";
};

zone "0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.int" { # 2001:0db8::/64のゾーン設定
  type master;
  file "2001:0db8:0000:0000::.zone";
};

 もし、IPv6でクエリを受け取るアドレスを制限したい場合、

listen-on-v6 { 2001:db8::80:1; ::1; };

などと設定します。このように設定すると、BINDが動作しているホストの2001:db8::80:1か::1に対して来たクエリにのみ返答をするようになります。

 次に、IPv6アドレスなどの情報を登録したゾーンファイルを作成します。

 正引きのゾーンファイルの例を以下に示します。

・example.jp.zoneの内容

$TTL	3600
@	IN	SOA	ns.example.jp. root.ns.example.jp.  (
		1	; Serial
		3600	; Refresh(1h)
		900	; Retry  (900s)
		864000	; Expire (10d)
		3600 )	; Minimum(1h)

		IN	NS	ns.example.jp.
		IN	MX	10	mail.example.jp.

localhost	IN	A	127.0.0.1
		IN	AAAA	::1

ns		IN	A	192.0.2.3
		IN	AAAA	2001:db8::53:1
mail		IN	A	192.0.2.4
		IN	AAAA	2001:db8::25:1
pop		IN	A	192.0.2.4
		IN	AAAA	2001:db8::110:1
imap		IN	A	192.0.2.4
		IN	AAAA	2001:db8::143:1
www		IN	A	192.0.2.2
		IN	AAAA	2001:db8::80:1

 ゾーンファイルの書き方は、IPv4のときと変わりません。ただし、IPv6アドレスを示すリソースレコードはAAAAとなるので、IPv6アドレスを記載する場合には「IN AAAA」などと記載してください。

 次は逆引きです。逆引きのゾーンファイルの書き方も、IPv4の場合と基本は変わりません。

・2001:0db8:0000:0000::.zoneの内容

$TTL	3600
@	IN	SOA	ns.example.jp. root.ns.example.jp.  (
		1	; Serial
		3600	; Refresh(1h)
		900	; Retry  (900s)
		864000	; Expire (10d)
		3600 )	; Minimum(1h)

		IN	NS	ns.example.jp.

1.0.0.0.5.2.0.0.0.0.0.0.0.0.0.0	 IN PTR	mail.example.jp	# ::25:1
1.0.0.0.3.5.0.0.0.0.0.0.0.0.0.0	 IN PTR	ns.example.jp	# ::53:1
1.0.0.0.0.8.0.0.0.0.0.0.0.0.0.0	 IN PTR	www.example.jp	# ::80:1
1.0.0.0.0.1.1.0.0.0.0.0.0.0.0.0	 IN PTR	imap.example.jp	# ::110:1
1.0.0.0.3.4.1.0.0.0.0.0.0.0.0.0	 IN PTR	imap.example.jp	# ::143:1

 IPv6における逆引きの登録は、表記が見にくいため注意が必要です。登録し終わったら、namedに読み込ませてください。

 正引き、逆引きの確認には、digコマンドを利用しましょう。正引きの確認にはdig [hostname] AAAAが、逆引きの確認にはdig -x [IPv6 Address]が利用できます。

システム時刻を設定するntpdのIPv6対応

 少なくともサーバシステムにおいては、関連するサーバ間で時刻が同期していることが望ましい状態です。そのために利用されるのがNTP(Network Time Protocol)であり、このNTPを利用してシステムの時刻を設定するのがntpdです。

 ntpdはすでにIPv6に対応しているため、設定ファイル(/etc/ntp.conf)のserver欄にIPv6アドレスを記載すれば、IPv6でntpを利用できるようになります。

・ntp.confの例

server 2001:2f8:29:100::fff3		# NICT
server 2001:2f8:29:100::fff4		# NICT

 あとはntpdを再起動し、IPv6で同期していることを確認してください。

[Web:/]$ /usr/local/ntp/bin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp-a2.nict.go. .NICT.           1 u  201 1024  377   11.038    1.581   1.708
*ntp-a3.nict.go. .NICT.           1 u  127 1024  377   10.809    3.709   2.122

 これでNTP ServerはIPv6に対応しました。

 ただし注意点が1つあります。ntpqの実装上、ntpqで表示されるremoteの行の桁数は決まっています。IPv4ではこの桁数内でIPアドレスを正しく表示できるのですが、IPv6アドレスの場合にはすべてを表示することができず、末尾が切れてしまうので、注意してください。

第4回 「主要なサーバアプリの設定例」
拍子抜け? 主要なアプリはすでに対応
2つの作業でBIND 9をIPv6対応に
システム時刻を設定するntpdのIPv6対応
  非常に容易なpostfixのIPv6対応
メール配送エージェント、dovecotのIPv6対応
古くからIPv6に対応しているApache 2
試して手軽さを実感!
「Master of IP Network総合インデックス」

TechTargetジャパン

Master of IP Network フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH