検索
連載

Web、DNS、メール、FTPサーバのIPv6化Linuxで作るIPv6ネットワーク環境(2)(2/3 ページ)

OSがIPv6に対応しても、各種のサービスがIPv4のままではあまり意味がない。各種のインターネットサーバをIPv6化しよう。

Share
Tweet
LINE
Hatena

DNSサーバの構築(BIND 9)

 DNSについては、極力既存の環境を生かすという観点から、すでに構築されているサーバでIPv6アドレスを解決させる方法を紹介します。

 DNSサーバでIPv6アドレスを扱うに当たって、新しい種類のレコードが増えているという点以外は何ら変わりません。BIND 9で構築されたDNSサーバをIPv6ホストの名前解決に使うのであれば、特に不自由はありません。

 筆者はBIND 9.2.1を用いてDNSサーバを構築していますが、ゾーンファイルにIPv6アドレスを解決するためのレコードを追加し、namedを再起動するだけで作業は完了します。

■ゾーンファイルの編集と動作確認

 IPv6では、FQDNからIPアドレスを解決するためにA6レコードもしくはAAAAレコードを用います。通常のAレコードによってFQDNからIPv4アドレスが導き出されるのに対し、A6もしくはAAAAレコードはFQDNからIPv6アドレスが導き出されます。

 このレコードをゾーンファイルに追加するわけですが、通常使用しているゾーンファイルに以下のような項目を追加します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 これで、AAAAレコードの解決が実施されるようになります()。

注:ゾーンファイル変更後は、シリアル番号を増やすことを忘れずに。


 アドレス解決の例を以下に示します。なお、使用しているBIND 9は、特にIPv6を意識したコンパイルを実施しているわけではありません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

コラム ダイナミックアップデート(Dynamic Update)

 BIND 8から、DNSのレコードをクライアントから更新できる仕組み(Dynamic Update:動的更新)が用意されています。

  • アドレス表記が長いIPv6の管理を省力化できる可能性がある
  • ユーザーが自由にレコードを登録できる

という点において、ダイナミックアップデートは優れていますが、セキュリティや管理上の問題も発生しやすいことから、本稿では取り上げません。


Webサーバの構築(Apache 2.0)

 筆者が今回使用したRed Hat Linux 7.3はもともとIPv6に対応しており、Apache 2.0もIPv6に対応しています。これより、すでにApache 2.0をインストールしている場合は、USAGIカーネルをインストールするだけでWebもIPv6対応となります。新規にApache 2.0をインストールする場合も、基本的にはconfigureからmake installまで、特に手順を変更することはありません。

 これだけでは面白くないので、KAME Project(http://www.kame.net/)のように、IPv4でアクセスした場合とIPv6でアクセスした場合で表示されるページが異なるサイトにしてみましょう。そのために実施することは、httpd.confにVirtualHostの指定を加えることです。

■IPv4とIPv6で表示が異なるページに

 VirtualHostの指定例を以下に示します。61.197.226.210および2001:2c0:418::1の2つのアドレスを割り当て、それぞれのアドレスについてServerName、ServerAdmin、DocumentRoot、ErrorLog、TransferLogを指定しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 httpd.confを編集したらApache 2.0を再起動して、telnetクライアントでそれぞれのアドレスに対してHTTPアクセスを実施してみましょう。なお、例では/home/apache/v4および/home/apache/v6配下に、以下のようにしてindex.htmlを作成してあります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

■Apache 1.3系は?

 Apache 1.3はIPv6に対応していないため、IPv6対応パッチを適用する必要があります。http://orange.kame.net/dev/cvsweb.cgi/kame/FAQ?rev=1.76でIPv6対応パッチの所在を調べることができます。しかし、最新のパッチでもApache 1.3.22向けであり、Apacheのバージョンが若干古めです。

 IPv6対応のWebサーバを構築するのであれば、Apache 2.0ベースにすることをお勧めします。

SMTPサーバの構築(Postfix)

 Postfixは2002年12月現在で1.1.12がリリースされていますが、残念ながらこのバージョンに適合するパッチは見つけられませんでした()。1.1.11-20021115に対するパッチはDean Strik's Postfix Page(http://www.ipnet6.org/postfix.html)で公開されているので、そちらを用いることにします。

注:原稿執筆時点では存在しませんでしたが、2002年12月6日現在ではpostfix-1.1.12-20021124に対応するパッチが取得できます。


■PostfixとIPv6パッチのインストール

 Postfix本体は、Postfix Download Siteの一覧(http://www.postfix.org/ftp-sites.html)から、Postfix-1.1.11-20021115のアーカイブをダウンロードします。

 IPv6パッチは、Dean Strik's Postfix Page(http://www.ipnet6.org/postfix.html)からPatch for TLS and IPv6 support, 1.1.11-20021101(tls+ipv6-1.8-pf-1.1.11-20021115.patch)をダウンロードします。

 Postfixとパッチをダウンロードしたら、以下の手順でPostfixのアーカイブを展開してパッチを適用します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 パッチを当てたら、Postfixのmakeおよびインストールを実施します。インストール前に、Postfixの動作に必要なユーザーおよびグループを作成しておきます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 最後のmake installの時点でいろいろと質問されますが、すべてデフォルト値で問題ありません(すべて[Enter]キーで答える)。

■/etc/postfix/main.cfの設定と動作チェック

 Postfixの設定は、/etc/postfix/main.cfに格納されます。/etc/postfix配下にサンプルファイルがあるので、自分の用途に合ったサンプルを選んで適宜編集してください。

 すでに使用実績がある設定ファイルを持っているのであれば、それを利用します。追加設定はほとんど不要ですが、mynetworksなどの指定においてIPv6アドレスを指定するには、例えば以下のように記述します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記の例のように、IPv6アドレスは前後を「[]」で囲い、ネットワークの指定が必要な場合はアドレスマスクのビット長を「/」の後に記述します。

 ここまで完了したら、Postfixを起動させてみましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Postfixのチェックは、telnetでSMTPポートに対するコネクションを開設することで実施可能です。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 これで、ちゃんとメールが届けば問題ありません。

■Postfix-1.1.12の場合

 2002年11月24日にPostfix-1.1.12がリリースされましたが、実はこれに対応するIPv6パッチが存在します。高山啓介氏が作成された非公式パッチ()ですが、このパッチはKAMEを対象にしていることもあり、USAGI環境ではそのままコンパイルして動作するというわけにはいきませんでした。

 そこで、1.1.11-20021115に対するパッチと高山氏のパッチを比較して、取りあえずUSAGI環境で動くパッチを作成しました。興味がある方は試してみてください。

http://www.todo.gr.jp/~wakatono/ipv6/postfix-1.1.12+ipv6-usagi.patch.gz

から取得可能です。

注:KAME Projectから配布されているPostfix IPv6対応パッチpostfix-20010228pl04-v6-20010913a.diff.gzを基に作ったとのことです。

http://www.uinet.or.jp/~taka/network/postfix.html

で配布されています。


SMTPサーバの構築(qmail)

 qmailのインストールについては、実用qmailサーバ運用・管理術があるので割愛します。ここではIPv6対応のパッチを中心に解説します。

 qmailはtcpserverとともに使われることが多いので、qmailのパッチおよびtcpserverのパッチを準備します。

よりそれぞれ入手可能です。

 一応紹介しておくと、ucspi-tcp-0.88およびqmail-1.03のオリジナルアーカイブは、

でダウンロードできます。

 それぞれのパッチは特にエラーもなく適用可能であり、パッチ施行→コンパイル→インストールも問題なく行えます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 コンパイルおよびインストールの手順は、実用qmailサーバ運用・管理術 第1回で紹介されている方法で問題ありません。

 以上の作業が完了した時点で、tcpserverで使用するデータベースファイル(cdb)もIPv6アドレスからのアクセスを制御できるようになります。例えば、特定のIPv6ネットワークからのアクセスについて、以下のような形でcdbの基になるファイルに記述できます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 最初の「2001:2c0:418::」がIPv6のネットワークアドレス表記ですが、「:allow」以降は従来と変わりません。

 恒例の動作確認用telnetの結果を以下に示します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここまでできれば、後はqmailの基本的な設定を済ませ、Postfixと同様に配送試験を実施すればOKです。

POP3/IMAP4サーバの構築(courier-imap)

 SMTPサーバとして紹介したPostfixおよびqmailは、Maildir形式のメールスプールをサポートしています。Maildir形式をサポートしているPOP/IMAPサーバとしてはcourier-imapがあります。courier-imapはIPv6にも対応しており、2002年12月現在の最新版はcourier-imap-1.6.1です。

http://www.courier-mta.org/

 インストールや設定の方法は、実用qmailサーバ運用・管理術 第2回と同じです。コンパイルから設定まで、IPv4と手順がまったく変わらないため、詳細は割愛します。筆者の場合、/usr/local/courier-imap/libexec/authlib/配下にauthdaemond.ldapが存在したために認証を受け付けてもらえなかったという経験があります。このように拡張モジュールが存在した場合の対処方法も同記事に記載されています。

FTPサーバの構築(ProFTPD)

 USAGIのユーザーランドを構築/インストールした時点で、IPv6対応のinetdとFTPサーバがインストールされます。しかし、ここではFTPサーバの定番ともいえるProFTPDを使ってみましょう。ただし、ProFTPDがIPv6対応を実施するのは1.3からであり、現在リリースされている1.2.xではIPv6に対応していません。従って、IPv6環境でProFTPDを使う場合はパッチが必要になります。

 2002年12月現在、ProFTPDの最新版は1.2.7rc3ですが、IPv6対応パッチがリリースされている範囲の最新版は1.2.5です。そこで、今回はProFTPD 1.2.5を使います。

■ProFTPDのソースコードおよびパッチの入手

 ProFTPDのオリジナル・アーカイブは、ProFTPDの本家サイトおよびミラーサイトからも入手が可能です。ただし、今回利用する1.2.5は最新版ではないため、

ftp://ftp.middle-earth.it/proftpd/historic/v1.2/proftpd-1.2.5.tar.bz2

のようにhistoricディレクトリ配下に移動しています。探すときには気を付けてください。

 IPv6パッチは、proftpd-1.2.5-ipv6.diff.gzという名前で公開されています。例えば、以下のところから入手可能です。

http://kebo.vlsm.org/debian-ipv6/patch/proftpd/1.2.5/

■パッチの適用とコンパイル/インストール

 入手したソースにパッチを適用します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここで問題が1つ発生します。Make.rules.inというファイルに対してパッチを適用する際にrejectされてしまいます。rejectされた内容をチェックしてMake.rules.inを修正するか、以下のものに差し替える必要があります。

 この後は、普通にconfigure+make+make installを実施すれば問題ありません。

 インストールできたら、動作確認してみましょう。FTPサーバのIPv6アドレスに対してFTP接続してみます。FTPクライアントもIPv6に対応している必要がありますが、USAGIのコマンドインストール時にインストールされています。動作の様子を以下に示します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る