- PR -

送受信が突然できなくなる?!(qmail)

投稿者投稿内容
つる
ベテラン
会議室デビュー日: 2004/06/02
投稿数: 81
投稿日時: 2005-05-03 10:27
お世話になります。

相手のTCP25につないだら、220と帰ってきました
>220 ***
アスタリスクはなんか文字化けしてるのかな?よく分かりませんでした。
でも、多分正常だろうと思っています。

あと、キューの1件づつの送信なんですが、調べているのですがイマイチわからない。
単純に、info mess remoteの中のデータを違うフォルダに移動して
ひとつづつ元の箱に入れて、kill -s ALRM [qmail-send pid]のようにしては
駄目なんですか?キューの削除は見つけたのですが、ちょっとづつ再送信・・ってのは。

>馬鹿丸出しの気もするのですが、本当に分からないのです(T_T)
>もうちょっと頑張って調べては見ますが・・・
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2005-05-03 18:00
引用:

つるさんの書き込み (2005-05-03 10:27) より:
相手のTCP25につないだら、220と帰ってきました
>220 ***
アスタリスクはなんか文字化けしてるのかな?よく分かりませんでした。
でも、多分正常だろうと思っています。



それは多分相手がCisco PIX Firewallあたりを使っているのかな。
fixup protocol smtp が有効になっていればそんな隠蔽された返事をします。

かつてPIXはバグIDでいうとCSCds90792なんてのがありましたが
放置しているとはちょっと思えないですしねぇ。
この辺は、PostfixのFAQに書いてあります。
まあ、PIXがらみの話は、Exchangeやノーツの情報にも出てきますけどね。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-05-03 19:37
qmailについてはほとんど知りませんが。

引用:

つるさんの書き込み (2005-05-03 09:41) より:
相手側が短時間の間で同一ドメインからの問い合わせが来ると、メールを受信しないと
(SPAMとみなしたりする)とありましたので、その可能性はあるかな?と。
再送信するときも同じタイミングで一斉にリクエストするので、何度やっても結果はいっしょ。


そういうのはありますね。SPAM/DoS対策として、短時間に同じIPアドレスから
複数のSMTP接続を試みると設定値を超えたところで接続を拒否するとか、
それまでにすでに確立されていたSMTP接続も切ってしまう、とか。
そんな状況のようにみえます。
相手側のSMTPサーバの設定が、sendmailとかpostfixから接続した場合には
ふつうは問題にならないような数になっているのだけれど、まとめ送りを
しないqmailではアッサリ超えてしまう数になってるとか、わりとよく
あるのではないでしょーか。

[ メッセージ編集済み 編集者: ぽんす 編集日時 2005-05-03 19:37 ]
つる
ベテラン
会議室デビュー日: 2004/06/02
投稿数: 81
投稿日時: 2005-05-03 21:00
こんばんわ。anights様、ぽんす様ありがとうございます。非常に勉強になります。
色々考えたのですが、qmailの設定を以下のように変更してみようと考えました。

1、qmail-remoteを20件でなく100件程処理できるようにする。
  (100件もqmail-remoteができる場合は、そうないだろうという推測)
2、qmailのqueueの生存期間を7日から2日程に変更する。
  (何かが問題で送信できない訳なので、送信者に早くエラーを通知するのとqmail-remoteを増やさない為)
3、qmailのリモートとの要求待ち時間を20分から10分程に変更する。

これで、SPAMとみなして受け付けてくれないサーバーの対応もできるのかな?と。
2日で返すので、送信者も気づきやすい。ユーザーから問い合わせがあれば説明できる。
10分応答がなければ、もうないだろう・・ってことで、qmail-remoteの大量発生を早く終息させる。

GW中にこんなことにならなくてもなぁ・・って。
ちなみに1件ずつ送るのはあきらめました。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-05-03 22:39
引用:

つるさんの書き込み (2005-05-03 21:00) より:
1、qmail-remoteを20件でなく100件程処理できるようにする。
  (100件もqmail-remoteができる場合は、そうないだろうという推測)


ん? 20ですでに蹴られているのだから、10とか5とかに減らしてみる、
という話になるのであ?
・・・qmailを知らない私が勘違いしてるのかな?

引用:

3、qmailのリモートとの要求待ち時間を20分から10分程に変更する。


「要求待ち時間」というのが何のことを指しているのかわかりませんが、
何にしても10分とか20分というのはタイムアウト値としてはえらく長い
ですね。10分なんて時間にしてしまって問題ないんでしょうか?
つる
ベテラン
会議室デビュー日: 2004/06/02
投稿数: 81
投稿日時: 2005-05-04 00:34
こんばんわ。

引用:

ぽんすさんの書き込み (2005-05-03 22:39) より:
引用:

つるさんの書き込み (2005-05-03 21:00) より:
1、qmail-remoteを20件でなく100件程処理できるようにする。
  (100件もqmail-remoteができる場合は、そうないだろうという推測)


ん? 20ですでに蹴られているのだから、10とか5とかに減らしてみる、
という話になるのであ?
・・・qmailを知らない私が勘違いしてるのかな?


えっと・・・私が解釈したのは、qmail-remoteはリモートのSMTPサーバーと
やり取りする時に必要なプロセス?であり、そいつはデフォルトで20となっている。
(concurrencyremote)
で、本来ならば多分数を減らして相手側が受け取れるようにするんでしょうけど、
例えば、qmail-remoteを5にして5/5の状態になった時に送受信ができなくなる。
それはまずいかな〜って事で反対に100にしとけば、100/100になるまではとりあえず
送受信できるかな。という理由で100にしました。

引用:

引用:

3、qmailのリモートとの要求待ち時間を20分から10分程に変更する。


「要求待ち時間」というのが何のことを指しているのかわかりませんが、
何にしても10分とか20分というのはタイムアウト値としてはえらく長い
ですね。10分なんて時間にしてしまって問題ないんでしょうか?


リモートの SMTP サーバーの応答に対するタイムアウトを「要求待ち時間」と表現しました。僕しか分からない記述ですね。もう少し冷静に考えて投稿するように心がけます。
で、その「timeoutremote」は初期値で1200秒とありました。
僕も10分でも長いかなと思ってるんですが、とりあえず初期値の半分にしておけば
いいかな?という発想です・・・

根本的に考え方が間違ってるのかな?なんか、恥ずかしくなってきました。
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2005-05-04 09:41
引用:

つるさんの書き込み (2005-05-04 00:34) より:
で、本来ならば多分数を減らして相手側が受け取れるようにするんでしょうけど、
例えば、qmail-remoteを5にして5/5の状態になった時に送受信ができなくなる。



勘違いされていないと思いますが念のため。
「送受信」ではないですよね。「送信」ですよね?
受信時に、qmail-queueへメッセージを渡すのはqmail-smtpdなのですから。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-05-04 13:51
qmail-remote(8) のマニュアルをみてみました。
timeoutremote
Number of seconds qmail-remote will wait for each
response from the remote SMTP server. Default: 1200.
と、ありますのでSMTPのコマンドを打ってから応答が返ってくるまでの
時間ですね。やたらと長い時間になっているのは大きなメールを送る際に
DATAコマンドを打ってから(354が返ってきてから?)<CRLF>.<CRLF>の
シーケンスを打って250が返ってくるまでの間にタイムアウトして
しまわないように、ということでしょうね。
とすると、この時間は送出するメールのサイズをもとに決定することに
なるんじゃないですかね。メールの大きさが100MBだろうが1GBだろうが
すべて送信する、という設定にしていることはあまりなくて、ふつうは
なんらかの制限を設けていると思いますが、その上限のサイズのメールを
投げるのに余裕を持ってじゅうぶんな時間を見積もる、とゆーことに
なるのではないでしょーか。おもに相手側MTAと回線の問題になりますので
ドンブリ勘定にしかならないでしょうけど、まるっきり見積もれない
というものでもないかと思います。

引用:

つるさんの書き込み (2005-05-04 00:34) より:
えっと・・・私が解釈したのは、qmail-remoteはリモートのSMTPサーバーと
やり取りする時に必要なプロセス?であり、そいつはデフォルトで20となっている。
(concurrencyremote)
で、本来ならば多分数を減らして相手側が受け取れるようにするんでしょうけど、
例えば、qmail-remoteを5にして5/5の状態になった時に送受信ができなくなる。
それはまずいかな〜って事で反対に100にしとけば、100/100になるまではとりあえず
送受信できるかな。という理由で100にしました。


「SMTP接続数が多すぎるので特定の相手から蹴られている」という予想が
正しいとして...

いま問題になってる相手先への送信では何度も何度も失敗してしまう、
という点を無視すれば有効な対策だとは思います。が、100にしてしまうと
ひとつのドメインの200ユーザに宛てたメールを送信しようとした場合には
相手MTAに対して同時100接続を行おうとするわけで... 新たに問題になる
相手が出てくる可能性が少なからず存在すると思います。
20接続でも蹴っていた相手というのはおそらく上限を10くらいの異常に
小さな数に設定しているのだと思います。そういう相手はさすがに珍しい
でしょうけど、30とか50とかで蹴るように設定している相手はけっこう
いるんじゃないでしょーか。100にしてしまうと...

qmail-remoteの設計思想は「同時に多数のSMTP接続が行えるようにして
おけば、そのうちの一部で滞ってえんえんタイムアウトを待ちつづける
ことになっても、全体に与える影響は少ない」というもので、タイム
アウトが長く設定されているのもそのためだろうというようにみえます。
いまの場合、「同時に多数のSMTP接続を行うとその全てが切断されて
タイムアウトを待つことになる」というのが問題であって、基本的な
考え方を変えなきゃならないようにみえますが...
「切断されてタイムアウトを待っている」というわけではないのかしら?

[ メッセージ編集済み 編集者: ぽんす 編集日時 2005-05-04 13:52 ]

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