UW IMAP見えてきました

まずはpatchを探すということで,取り組み始めたら,RPMのパッケージの修正記録に,

* Tue Apr 27 2010 Rex Dieter <rdieter@fedoraproject.org> - 2007e-11
 - SSL connection through IPv6 fails (#485860)
 - fix SSLDIR, set SSLKEYS

というのがあるのを見つけました.

やっぱりそうなんです.SSL接続するときにはIPv6が使えないのです.IMAPアクセスするのに,SSL接続しないなんてことは,普通は考えられないのですが.

ということで,一条の光明が見えました.昼飯担当なので,午後,昼寝を返上して取り組みたいと思います^^;

IMAPサーバーの方針

ということで,IMAPサーバーのIPv6化について,一応方針が固まりました.まずは,UW IMAPのIPv6対応パッチがないか探してみます.これは,期待薄ですが.それでなければ,IPv6に対応しているとうたわれているCourier IMAPに乗り換えます.

Courier IMAPは,UNIX/Linuxのレガシーなmboxではなく,Maildirという各ユーザーのホームディレクトリー内にあるサブディレクトリーにメールを保存する方式だそうで,これを導入するためには,届いたメールをsendmailから受け取るローカルMDAと,CUIのメールクライアントソフトもMaildir対応のものに更新しなければなりません.

特に,ローカルMDAの切り替えは,sendmail.cfの書き換えを要しますので,失敗したり,切り替え作業時に届いたメールを永久に紛失してしまうことがあり得ますので,慎重に行わなければなりません.

現在プロバイダーの切り替えが完了してしなくて,これから,重要な連絡メールが届く予定もあり,実施すべきではありません.

ということで,逆に時間的に余裕があるので,じっくり取り組みたいと思います.

昨夜寝ない(ウソ^^; )で確認したこと (UW IMAP + IPv6)

今使っているIMAPサーバー(IMAP daemon)は,UW IMAPという,それなりに有名なものです.Slackwareに普通に付いてきます.これのIPv6対応がなかなかうまくいきません.同サイトにある,このページを参考にあれこれやってみましたが,解決せずです.

inetdは,Slackwareに付属するinetdをSlackware-currentのソースからbuildしたものにupgradeして使っています.このページにもだめと書いてありますが,inetd.confに2行で,tcp(4), tcp6を記述してもだめです.1行で,tcp46としてもだめです.

inetdがタコなのかも知れないので,rsyncで試しました.rsyncでは,やはり記述は1行にして,

rsync   stream  tcp6   nowait  root   /usr/bin/rsync rsyncd --daemon

とすると,IPv4, IPv6どちらの接続も受け付けます.tcpのままだと,IPv4オンリーです.ということで,inetdは完璧ということが解りました

imapdもSlackware-currentのソースからbuildしたものと差し替えましたが,tcpでも,tcp4でも,tcp6でもtcp46でもNGです.

現在の心証としては,UW IMAPサーバーはIPv6対応していないのではないかということで,これは大変困った問題です.

追記

Wikipediaでは,UW IMAPのIPv6サポートは”?”となってます.誰もIPv6で使おうとしていないのか^^;

というか,そもそもたいした仕事をしてない^^;

LANのIPv6化

まだ,新しいプロバイダーへの対応が完了していません.

わが家のLANの変遷に関係したことなんです.もともと最初に光ファイバーをひいてから,何回目かのプロバイダーまでは,ONUに自前のLinuxサーバー・ゲートウェーをつないで家庭内LANを構築していました.そのONUがONU+プロバイダーお仕着せのルーターになりましたが,それまでのLinuxによるLAN管理方法を継承した方が楽なので,お仕着せルーターはブリッジ的に使ってきました.

201603-01

これは,私にとってはLANの管理は楽なのですが,もし私に何かあった場合,家族が自前ルーター・サーバーを管理することは不可能なので,Nuroにしてから,お仕着せルーターにクライアントを直接つなぐ普通の形態にしました.

201603-02-Nuro

自前のサーバーは,プロバイダーや,独自ドメイン宛てに来たメールを受け取り,imapによって自宅内のクライアントや外部からアクセスしたクライアントにサービスします.

つまり,LAN内でも,外出先からでも同じFQDNの同じアカウントにシームレスにアクセスできるのです.これは捨てがたい機能です.

家 の中でしか使わないPCは,サーバーのプライベートLANアドレスを手動で与えれば良いのですが,iPadなどモバイル機器は,同じ設定で,自宅内ではプ ライベートLANアドレスで,外からはルーターのグローバルアドレスでアクセス可能にする必要があります.そのために,LAN内で動いている自前のDNS サーバーの参照が必要となります.

ありがたいことに,Nuroのルーターには,DNSを手動で追加する機能があり,この実装が簡単にできました.

ところが,今回の新しいプロバイダー提供のルーター・ゲートウェイには,DNSを手動で追加する機能がありません.

201603-03-Nuro-beyond

そうすると,iPadからje1sgh.mydns.jpにつなごうとすると,自宅内でも外でもルーターのグローバルIPアドレスが返され,自宅内では自前サーバーにアクセスできません.

解決策はないか.あるんです.LAN内でサーバーにアクセスする場合,完全にIPv6化してしまうことです.

で,いろいろ試していますが,かんじんなimapサーバーがIPv6対応していません^^;

imapサーバーのIPv6化が当面の課題となりました.

IPv6復活しました

何とか復活しました.

一つには,私がIPv6の事を良く解っていないこともありました.

Linuxサーバー(vanilla)で,グローバルアドレスが起動から5分くらいすると無くなってしまうのです.

起動時にテンポラリーな形で設定されているグローバルアドレスを,起動して少ししてからifconfigで削除して,もう一度同じアドレスを追加すればそれで安定します.

また,デフォルトルートも自動では設定されません.このあたりについては,下記ページの情報が参考になりました

Peterさん,ありがとう.

それにしても,So-netのAterm BL900HWの設定は解りにくいです.かなり試行錯誤に時間を費やしました.どうせ,Linuxを使っているんでしょうから,もっとip6tablesのコマンドとの結びつきが解りやすいような型式にして欲しいです.

その点,NuroのF660Tは解りやすかったです.

たぶん^^;
Linuxではなんの設定も要らないとあちこちのサイトに書いてありますが,少なくともVanilla Linuxでは,起動時にルーターからもらったプリフィックスとMACアドレスから生成したグローバーアドレスは,起動後5分くらいで消えてしまい,ローカルリンクアドレスだけ残ります.
Avahi-daemonのログだけ残っているので,同デーモンが悪さしているのかと思いましたが,そのデーモンは,ただ状態を監視してログに残しているだけでした.
というか,この件は,Peterさんのドキュメント以外,どこにも書いてありませんでした.