- PR -

クライアントからの送受信に時間がかかる(qmail)

投稿者投稿内容
voyager
常連さん
会議室デビュー日: 2002/10/07
投稿数: 29
投稿日時: 2002-12-14 15:22
voyager と申します.
1台のPC(RedHat)に qmail と djbdns をインストールしています.
本PCで echo to: xxx@yyy.zzz.jp | .../qmail-inject とすると
メール送信できていますし,着信もしています.(ローカルもそうで
ないものも…)
一方 djbdns も nslookup コマンドで確認すると名前解決できています.
この状態で,Windows機メールソフトからメール送受信しようと
すると,非常に時間がかかってしまいます.30秒〜1分弱程度を
必要としますが,動作自体は行っています.
この遅延を解決したいのですが,原因がよくわかりません.
(qmail と DNS との絡みの部分に問題があると思うのですが...)
解決方法などがございましたら,ご教授くださいませ.
鶴長鎮一
ベテラン
会議室デビュー日: 2001/08/29
投稿数: 78
お住まい・勤務地: 東京都
投稿日時: 2002-12-14 15:47
鶴長です。
qmailはtcpserverを用いて使用されていますでしょうか。その場合、
tcpserverのオプションで"-H"と"-R"を指定してみて下さい。
出来ればtcpserver起動時のオプションを見せて頂けるとありがたい
です。以上ご参考下さいませ。
voyager
常連さん
会議室デビュー日: 2002/10/07
投稿数: 29
投稿日時: 2002-12-14 17:37
鶴長様,早速の回答をありがとうございました.
いつもお世話になっております.m(__)m

そういえば,-H,-R の引数をつけた方が良いと書かれたサイトを
見た記憶がございます.
以下に /etc/init.d/qmail 内 の start 部分を記載します.

---------
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
tcpserver -v -u 503 -g 502 -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

tcpserver -v 0 110 /var/qmail/bin/qmail-popup xxx.yyy.jp /bin/selectcheckpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &

echo
touch /var/lock/qmail
;;
---------
tcpserver 起動の両方ともに -H,-R をつけた方が良いのでしょうか?
初歩的な質問で申し訳ありません.
voyager
常連さん
会議室デビュー日: 2002/10/07
投稿数: 29
投稿日時: 2002-12-17 10:19
経過報告です.

> qmailはtcpserverを用いて使用されていますでしょうか。その場合、
> tcpserverのオプションで"-H"と"-R"を指定してみて下さい。

設定変更しましたが,やはり現象は変わらずです...

http://multix.jp/html0203/freebsd/qmail.html

# [ FQDN/MX は CNAME であってはならない ]
# FQDN(完全修飾ホスト名) および MXレコード(メールドメイン)は、
# DNSを参照したときに“CNAMEが返されてはいけない”。必 ず PTR、
# A レコードとも一回で引けること。そうでないと外部ホストからの
# 接続時、30秒から数 分のラグ (遅延) が生じてしまう。

という記述がありました.
CNAME は使用しておりませんので,該当しないと思うのですが,
現象的に一致しているようにも思えます.
『PTR,A レコードとも一回で引けること』という文章の“一回で
引ける”とはどういうことなんでしょう? (ココでお伺いすること
ではなく,Web管理者に訊くことかもしれませんが…)
nslookup コマンドで名前解決できていることだけではダメなんで
しょうかね?
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2002-12-17 14:14
一度、WindowsマシンのIPアドレスをメールサーバの/etc/hostsに書いてみてください。

ただ、tcpserverで-HRをつけても変わらなかったとのことなので、
あまり期待は出来ませんが。
voyager
常連さん
会議室デビュー日: 2002/10/07
投稿数: 29
投稿日時: 2002-12-17 15:51
綾瀬さん,回答をありがとうございました.
結論から申し上げますと… 現象は変わりませんでした.

1つ判明したのは,/etc/resolv.conf 内
nameserver 127.0.0.1
の行にて,自ホスト内の djbdns への問い合わせするように
しておりますが,この問い合わせ先を別の DNS (こちらは
BIND.但し自社の管轄外(検証のため設定してもらった…))に
すると,サクサク動作しました.
こうなると やはり DNS 絡みのあたりで何かしら問題が
あるようなのですが... なにせ nslookup で応答できて
いるんだし...???
ただ,諸般の事情により,やはり自ホスト内だけで完結させ
たいですね.
鶴長鎮一
ベテラン
会議室デビュー日: 2001/08/29
投稿数: 78
お住まい・勤務地: 東京都
投稿日時: 2002-12-23 05:00
鶴長です。
> BIND.但し自社の管轄外(検証のため設定してもらった…))に
> すると,サクサク動作しました.
> こうなると やはり DNS 絡みのあたりで何かしら問題が
> あるようなのですが... なにせ nslookup で応答できて
> いるんだし...???
クライアントからは引けていて、localhostからは引けていないのでしょうか?
djbdnsの場合も問い合わせを許可するネットワークを指定する必要があるかと
思います。/usr/local/etc/dnscache/root/ip(私の環境ですが)あたりに、問
い合わせを許可するネットワークアドレス名で空ファイルを作成する手順があっ
たかと思います。そこで127.0.0.1ファイルが作られていますでしょうか?

問題の本質では無くなってしまいましたが
>『PTR,A レコードとも一回で引けること』という文章の“一回で
> 引ける”とはどういうことなんでしょう?

例えば次の2つの例を見てみます
例1------------------------------------------
         MX 10 mail.example.jp
mail.example.jp  IN A 192.168.1.15
例2------------------------------------------
         MX 10 smtp.example.co.jp
smtp.example.jp  IN CNAME mail.example.jp.
mail.example.jp  IN A 192.168.1.15

これがどこかなのDNSで参照される場合、例1だとexample.jpのMXサーバーを見
つけるまで
example.jpのMX(mail.example.jp発見同時に192.168.1.15発見
の2stepですが例2だと
example.jpのMX→smtp.example.jp発見だけどmail.example.jpへのCNAMEなの!→192.168.1.15発見
と問い合わせ数増えています。それに対するサーバーの負荷の問題もありますが、
それ以上にキャッシュのされ方にも問題が出ます。例2だとキャッシュされる情
報が複数になり、MXを変更しても、意図したサーバーを見つけてくれない可能性
が出てきます。
一応 RFC2181 ではMXレコードの値をCNAMEにしてはいけないときめられちゃって
ます。(でも実際は利便性からやっているところは多々あります。)

以上ご参考下さいませ。
voyager
常連さん
会議室デビュー日: 2002/10/07
投稿数: 29
投稿日時: 2002-12-23 09:20
鶴長さん,回答をありがとうございました.

> djbdnsの場合も問い合わせを許可するネットワークを指定する必要があるかと
> 思います。/usr/local/etc/dnscache/root/ip(私の環境ですが)あたりに、問
> い合わせを許可するネットワークアドレス名で空ファイルを作成する手順があっ
> たかと思います。そこで127.0.0.1ファイルが作られていますでしょうか?

qmail 専用 DNS ですのでクライアントからは確認しておりませんが,localhost
からは引けております.また,こちらの環境ですと./etc/dnscache/root/ip に
127.0.0.1 ファイルが存在します.


> と問い合わせ数増えています。それに対するサーバーの負荷の問題もありますが、
> それ以上にキャッシュのされ方にも問題が出ます。例2だとキャッシュされる情
> 報が複数になり、MXを変更しても、意図したサーバーを見つけてくれない可能性
> が出てきます。

1回で引けるというのは,そういうことだったんですね.よく分かりました.
CNAME を使用していない上に,djbdns では /etc/tinydns/root/data にて
@111.aaa.xxx.ne.jp:10.11.12.13:a::86400
というように,MX レコードと IP アドレスを併記しますから,“1回で引けて”
いると考えて良いかと思います.
因みに,/etc/tinydns/root/data を簡単に示すと

| .xxx.ne.jp:127.0.0.1:ns1:259200
| =111.aaa.xxx.ne.jp:10.11.12.13:86400
| =222.bbb.xxx.ne.jp:11.12.13.14:86400
| @111.aaa.xxx.ne.jp:10.11.12.13:a::86400

のようにしております.

色々と試行錯誤しておりますので,また何か情報がございましたら
よろしくお願いいたします.

スキルアップ/キャリアアップ(JOB@IT)