梅本肇 / ume@mahoroba.org
ここまでの記事で、取り敢えずIPv6が使えるようになったと思う。ここでは、IPv6に対応したアプリケーションを見ていこう。
Listen :: 80と指定し、IPv6とIPv4共にlistenするようにしたほうが良いだろう。
Listen 0.0.0.0 80
ちなみに、URLにIPv6アドレスを直接指定するときもIPv6アドレスは「[」と「]」で囲む。考え方は同じである。ただし、この記法をサポートしていないブラウザもあるので注意願いたい。IPv6対応しているアプリケーションの多くがこの記法に準じているので、覚えておくと良いだろう。
リスト1 バーチャルホストの設定例 NameVirtualHost [3ffe:505:2:0:240:96ff:fe48:4ea8]:80 <VirtualHost [3ffe:505:2:0:240:96ff:fe48:4ea8]:80> ServerName www.example.com DocumentRoot /usr/local/www/data ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/" </VirtualHost> <VirtualHost [3ffe:505:2:0:240:96ff:fe48:4ea8]:80> ServerName hogehoge.example.com DocumentRoot /usr/local/www/hogehoge/data ScriptAlias /cgi-bin/ "/usr/local/www/hogehoge/cgi-bin/" </VirtualHost>
IPv6対応のアプリケーションの多くは、DNSを検索して、AAAAレコードが返ってきたらIPv6での接続を試みる。そして、接続できなければ、AレコードがあればIPv4での接続を試みるように作られている。このため、AAAAレコードがあるにもかかわらずIPv4のみでしか提供されていないサービスがあったとしても、うまくIPv4で接続できる。
図1 Mozilla ![]()
なお、FreeBSDでのデフォルトなどmapped addressが有効な環境だとリスト3だけを指定してもIPv4も吸い込んでしまう。この場合IPv4はmapped addressで入ってくることになるので、リスト4も必ず指定しておこう。
リスト2 DAEMON_OPTIONS(`Name=MTA-v4, Family=inet') DAEMON_OPTIONS(`Name=MTA-v6, Family=inet6')
リスト3 DAEMON_OPTIONS(`Name=MTA-v6, Family=inet6')
また、accessやmailertable等のデータベースにIPv6アドレスをそのまま記述することができる。ただし、8.12.0.Betaでは
リスト4 DAEMON_OPTIONS(`Name=MTA-v6, Family=inet6')
IPv6:IPv6アドレスと「IPv6:」を頭に付けて記述するように変更されているので、バージョンアップの際には注意が必要である。
/usr/local/libexec/qpopper '[::]:110'となる。
IMAP4サーバーとしては、バージョン2以降のCyrus IMAPD用にパッチがある*05)。
リスト5 /etc/inetd.confでのQpopperの設定 pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s pop3 stream tcp6 nowait root /usr/local/libexec/qpopper qpopper -s
listen="[::]:imap"のように指定すると良いだろう(リスト6)。
次にメーラのほうを見てみよう。
リスト6 IPv6のみでlistenする場合のcyrus.confの例 # standard standalone server implementation START { # do not delete these entries! mboxlist cmd="ctl_mboxlist -r" deliver cmd="ctl_deliver -r" # this is only necessary if using idled for IMAP IDLE # idled cmd="idled" } # UNIX sockets start with a slash and are put into /var/imap/socket SERVICES { # add or remove based on preferences imap cmd="imapd" listen="[::]:imap" prefork=0 imaps cmd="imapd -s" listen="[::]:imaps" prefork=0 pop3 cmd="pop3d" listen="[::]:pop3" prefork=0 pop3s cmd="pop3d -s" listen="[::]:pop3s" prefork=0 sieve cmd="timsieved" listen="[::]:sieve" prefork=0 # at least one LMTP is required for delivery # lmtp cmd="lmtpd" listen="lmtp" prefork=0 lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 } EVENTS { # this is required checkpoint cmd="ctl_mboxlist -c" period=30 # this is only necessary if using duplicate delivery suppression delprune cmd="ctl_deliver -E 3" period=1440 }
正確にはニュースリーダであるが、mnewsもIPv6対応メーラとして利用できる。
図2 Sylpheed ![]()
非常にメジャーであるwu-ftpdにはKAMEがIPv6化パッチを提供している*09)。
リスト7 /etc/inetd.confでのftpdの設定 ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l
| http://httpd.apache.org/dist/httpd/httpd-2_0_16-beta.tar.gz | |
| MozillaでIPv6が利用できるようになったのは4.2-RELEASEの前ぐらいからなので、4.3-RELEASEになって初めてリリースでまともに利用できるようになったとも言う。:-) | |
| http://www.gedanken.demon.co.uk/wwwoffle/ | |
| http://www.imasy.or.jp/~ume/ipv6/qpopper4.0.1-ipv6-20010504.diff.gz(4.0.2に対してもそのまま適用できる) | |
| http://www.imasy.or.jp/~ume/ipv6/cyrus-imapd-2.0.13-ipv6-20010506.diff.gz | |
| FreeBSDのports/packageでインストールすると/usr/local/etc/にある。オリジナルは/etc。 | |
| http://www.hiru.aoba.yokohama.jp/~ura/ipv6/xemacs-21.1.9-ipv6.20000303.diff.gz | |
| ftp://ftp.cpan.org/CPAN/modules/by-module/Socket6/Socket6-0.09.tar.gz | |
| ftp://ftp.kame.net/pub/kame/misc/wu-ftpd-261-v6-20001010.diff.gz | |
| ftp://ftp.kame.net/pub/kame/misc/ncftp-303-v6-20010421.diff.gz |