- PR -

sendmailの二重化について

投稿者投稿内容
ビギナー
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-27 04:50
以下のようなネットワーク構成において、Internetから、内部メールサーバへメールリレーをするサーバを二重化しようと模索しています。

Internet
  |
FW------------------------------------ DMZ
| | | |
| (外部DNS) (mailrelay01) (mailrelay02)
|
--------------------------------------Intra
|
(内部メールサーバ)
※mailrelay01、02からはmailertableを使用し、内部メールサーバへstatic配送。

外部DNSのMXレコードに優先度をつけることにより、プライマリとセカンダリという形で二重化をしようと思い、外部DNSのゾーンファイルに、
IN MX 10 mailrelay01.domainname
IN MX 20 mailrelay02.domainname
と記述をし、mailrelay01とmailrelay02をsendmailで構築してみました。mailrelay01がダウンしていなければ、全てのメールがmailrelay01へ流れると想定していたのですが、実際に稼動させてみると、なぜかmailrelay02へも流れるメールがあります。
これはInternetを介した相手側のMTAがDNS参照をしないなどの相手側MTAなどに起因するものなのでしょうか。
それとも私側のsendmailに足りない設定があるからなのでしょうか。

ちなみにDNSのrefresh期間の問題もあると思い、テスト期間で2週間ほど運用してみましたが(DNSのrefresh期間は1週間)、未だmailrelay02側にもメールが流れてきています。

初歩的な質問なのかもしれませんが、何かご存知の方がいらっしゃいましたら、ご教示頂けると幸いです。皆さんの知恵をお貸しください。
よろしくお願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-27 09:06
おはようございます.

重み付けの問題では?
> IN MX 10 mailrelay01.domainname
> IN MX 20 mailrelay02.domainname
と mx 切っている場合,
> mailrelay01がダウンしていなければ、全てのメールがmailrelay01へ
というよりは,
mailrelay01 が通信できれば mailrelay01 へ,mailrelay01 が通信できなければ mailrelay02 へ,と言うほどの意味です.つまり,一時的にせよ mailrelay01 が忙しくて応えてくれなければ,mailrelay02 に送りにいってしまうと思います.

IN MX 100 mailrelay02.domainname
くらいにしておいたら如何でしょう?
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2004-02-27 09:49
こんにちは。

> IN MX 100 mailrelay02.domainname
> くらいにしておいたら如何でしょう?

MXレコードの優先順位って単純に数値の大小を比較するだけのはずなので、
10と20であろうが10と100であろうが動作的には全く同じだと思っている
のですが、どうなんでしょう?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-27 10:54
寝ぼけてました.m(_ _)m

引用:

綾瀬さんの書き込み (2004-02-27 09:49) より:
> IN MX 100 mailrelay02.domainname
> くらいにしておいたら如何でしょう?
MXレコードの優先順位って単純に数値の大小を比較するだけのはずなので、
10と20であろうが10と100であろうが動作的には全く同じだと思っている
のですが、どうなんでしょう?



仰るとおりで...
ということは,mailrelay01 の処理が追いついていなくて致し方なく mailrelay02 へ配信されているということかも...
それぞれへ配信される量は同等でしょうか?
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-02-27 11:50
こんにちは〜。

sendmail は、マシンに負荷がかかっていたり、mqueue のディレクトリ空きが少なかった
りすると、connection refused してしまうらしいです。
(sendmail.cf の設定にもよるのかな?)
そのため、mailrelay01 に繋げない → MX レコードで次にあたる mailrelay02 に繋ぎに
いっている、のではないかと…。

具体的には 「spam の処理でいっぱいいっぱいだ」 等が考えられます。
mailrelay01 のログを調べたり、ロードアベレージやディスクの空きを監視してみると
良いのではないでしょうか。
ビギナー
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-27 13:43
皆さん、いろいろとありがとうございます。

To:kazさん
>それぞれへ配信される量は同等でしょうか?
mailrelay01の方が多いです。
そのような中途半端な動作が気にかかっているところです。。。

To:はゆるさん
キューはほぼないですし、システムに負荷がそんなにかかっているとも思えません。
ログにもconnection refusedという記載や、
spamを送信しようとした形跡がたくさんあるわけでもありません。
ディスクの空き容量にも余裕があります。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-27 14:23
ビギナー様の回答から推測する限り,やはり mailrelay01 の response が「遅い」というのが原因ではないかと思われます.

mailrelay01 の方が多いのは当然で,mailrelay02 には mailrelay01 で取りこぼした分,つまり mailrelay01 が忙しくて応えてくれなかった場合に配信されるのだと思います.或いは,mailrelay01 の MTA で逆引きしてます?その timeout 待ちで session いっぱいになってしまって,仕方なく mailrelay02 に送っているとか...
ビギナー
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-27 19:04
私自身もそのセッションなどが確立しないという理由は考えてはいたのですが、
ここに質問をさせて頂いたのは、この現象、
違うハード構成、かつ、MTAもやや違う構成でも起こったのです。
例えば、もう1つのケースは、
MTAが、qmailとsendmailというパターンで、
ハードスペックも上記の2つのsendmailのケースとは全く違った構成でした。

そのため、何らかの設定で回避できるのではないかと推測した次第です。

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