- PR -

sendmailの設定について

投稿者投稿内容
Rydia
ベテラン
会議室デビュー日: 2003/09/26
投稿数: 60
投稿日時: 2004-12-11 10:48
いつもお世話になっております。
今回はsendmailについて教えて下さい。

■環境
OS:RedHatLinux ES V3
sendmail:sendmail-8.12.11-4
 ※RHNは最新のものを適用しています。

上記の環境でリレーサーバを2台構築し、双方とも
・sendmail.mc
・access.db
・mailertable.db
・local-host-name

について全く同じ記述にしているのですが、一方のサーバは正常に
リレー(status=sent)するのですが、もう一方のサーバはリレーせずに
キューに溜めてしまい(status=queued)リレーしてくれません。
なぜ同じ設定ファイルを利用しているにも関わらず動きが異なるのでしょうか。
ちなみにリレー先のサーバは双方のサーバからともリレーを許可する設定に
なっています。なぜこのようなことが起こるのでしょうか?

上記の動作の違いについて気になる点が1つあるのですが正常に動作しない方の
サーバでは「VIF」を利用し、1つのI/Fに2つのIPアドレスを付与しています。
sendmail自身は0.0.0.0 25でlistenしているため特に問題ないと思っている
のですがこの辺りが関係しているのでしょうか?
宜しくお願いします。

※先日間違ってWindows Insiderに上記内容の書き込みを行ってしまいました。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-12-11 11:55
引用:

Rydiaさんの書き込み (2004-12-11 10:48) より:

について全く同じ記述にしているのですが、一方のサーバは正常に


まず,意味は理解していて「同じ」なのでしょうか?
考えるのが面倒だから「同じでいいや」でしょうか?
そこで間違えているなら,これ以上書くのは無意味なので.
引用:

上記の動作の違いについて気になる点が1つあるのですが正常に動作しない方の
サーバでは「VIF」を利用し、1つのI/Fに2つのIPアドレスを付与しています。
sendmail自身は0.0.0.0 25でlistenしているため特に問題ないと思っている
のですがこの辺りが関係しているのでしょうか?


relay 先の smarthost で accept させている ip address と,
送り出す際の ip address が違っているとか.
だから先方の relay server で accept する条件がかみ合わないので
relay してくれない,というか「不正接続」と看做されている可能性は?
listen はこの際全く関係ありませんよね?
それは「relay を引き受ける際に必要」なのであって,
「送ることができない」ことと関係ありますか?
それと同様に,local-host-name も受信の仕組みとして必要な仕組みでは?
である以上,前スレのはゆる様の指摘は的を射ていると思います.
参照先の話の流れをちゃんと読むとご理解いただけるはずです.

前スレではゆる様が指摘されていますが,
maillog や mailq を参照するのが早道です.
が,maillog は参照されていますか?
それすら参照していないとすると,
そもそも network 的に疎通しているか否か,確認していますか?
Rydia
ベテラン
会議室デビュー日: 2003/09/26
投稿数: 60
投稿日時: 2004-12-11 13:35
引用:

kazさんの書き込み (2004-12-11 11:55) より:
引用:

Rydiaさんの書き込み (2004-12-11 10:48) より:

について全く同じ記述にしているのですが、一方のサーバは正常に


まず,意味は理解していて「同じ」なのでしょうか?
考えるのが面倒だから「同じでいいや」でしょうか?
そこで間違えているなら,これ以上書くのは無意味なので.


説明不足で申し訳ありません。
2台のメールサーバを同じ設定にしている理由はプライマリメールサーバと
セカンダリメールサーバだからです。
今回の発生している事象はプライマリメールサーバがダウンしている状態で
セカンダリメールサーバにメールは届くのですが転送先サーバにリレー
できないという状態です。

引用:

kazさんの書き込み (2004-12-11 11:55) より:

引用:

上記の動作の違いについて気になる点が1つあるのですが正常に動作しない方の
サーバでは「VIF」を利用し、1つのI/Fに2つのIPアドレスを付与しています。
sendmail自身は0.0.0.0 25でlistenしているため特に問題ないと思っている
のですがこの辺りが関係しているのでしょうか?


relay 先の smarthost で accept させている ip address と,
送り出す際の ip address が違っているとか.
だから先方の relay server で accept する条件がかみ合わないので
relay してくれない,というか「不正接続」と看做されている可能性は?
listen はこの際全く関係ありませんよね?
それは「relay を引き受ける際に必要」なのであって,
「送ることができない」ことと関係ありますか?
それと同様に,local-host-name も受信の仕組みとして必要な仕組みでは?
である以上,前スレのはゆる様の指摘は的を射ていると思います.
参照先の話の流れをちゃんと読むとご理解いただけるはずです.

前スレではゆる様が指摘されていますが,
maillog や mailq を参照するのが早道です.
が,maillog は参照されていますか?
それすら参照していないとすると,
そもそも network 的に疎通しているか否か,確認していますか?




転送先のリレーの設定としてはプライマリ・セカンダリメールサーバが
存在するセグメントからのSMTPは許可しているため問題ないと思います。
「listen」についてはkaz様がおっしゃる通り今回の場合は特に
関係ありません。すみません。
「local-host-name」についても転送先のメールサーバのFQDN名を記載
しているのですが・・・もう一度参照元URLを読んでみます。
maillogについては問題となっているサーバが手元にある時はきちんと
確認しましたが、現状手元にそのサーバがない状態です。
疎通確認もしておりますのでネットワーク的には問題ありません。
またセカンダリメールサーバ→転送先サーバへ“telnet 転送先サーバ
IPアドレス 25”を実行してもきちんと接続できます。

[ メッセージ編集済み 編集者: Rydia 編集日時 2004-12-11 13:53 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-12-12 01:06
こんばんわ.
引用:

Rydiaさんの書き込み (2004-12-11 13:35) より:

maillogについては問題となっているサーバが手元にある時はきちんと
確認しましたが、現状手元にそのサーバがない状態です。
疎通確認もしておりますのでネットワーク的には問題ありません。
またセカンダリメールサーバ→転送先サーバへ“telnet 転送先サーバ
IPアドレス 25”を実行してもきちんと接続できます。


とすると,意味があって「同じにしている」ということですね.
同じ条件であるべきで,一方しか機能しないのであれば,
やはり log を参照するのが早道でしょう.
送る側だけでなく,受ける側も調べたほうが良いでしょう.
「なぜ送ることが出来なかったか?」と「なぜ受けなかったか?」を
比較検討しないとわからないことが多いと思います.

2ndary の SMTP server から smarthost に telnet した際,
実際に送信までやってみたのでしょうか?
そこで「ちゃんと送ることが出来た」のであれば,
sendmail.cf とその周辺に依拠する不具合があるのだと思います.
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-12-12 07:46
おはようございます。

引用:

Rydiaさんの書き込み (2004-12-11 13:35) より:
「local-host-name」についても転送先のメールサーバのFQDN名を記載
しているのですが・・・


local-host-names には、ローカルホストの別名を記述します。
Rydia さんの場合ですと、そもそも設定が不要だと思われますが…

引用:

kazさんの書き込み (2004-12-12 01:06) より:
2ndary の SMTP server から smarthost に telnet した際,
実際に送信までやってみたのでしょうか?
そこで「ちゃんと送ることが出来た」のであれば,
sendmail.cf とその周辺に依拠する不具合があるのだと思います.


同じ sendmail.mc を使用しているとのことですが、マクロを直打ちしてたら?など、疑いだしたらキリがないので、言及を避けてました (^^;
# ネットワーク構成もイマイチ見えないので… DMZ 内の話、でいいのかしら?
やはり、ログのチェックや telnet での疎通確認が先でしょうか。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-12-12 09:59
おはようございます.
引用:

はゆるさんの書き込み (2004-12-12 07:46) より:

引用:

kazさんの書き込み (2004-12-12 01:06) より:
2ndary の SMTP server から smarthost に telnet した際,
実際に送信までやってみたのでしょうか?
そこで「ちゃんと送ることが出来た」のであれば,
sendmail.cf とその周辺に依拠する不具合があるのだと思います.


同じ sendmail.mc を使用しているとのことですが、マクロを直打ちしてたら?など、疑いだしたらキリがないので、言及を避けてました (^^;
# ネットワーク構成もイマイチ見えないので… DMZ 内の話、でいいのかしら?
やはり、ログのチェックや telnet での疎通確認が先でしょうか。


network 構成は於くとして,
SMTP gateway に対して internal な SMTP server が冗長化するのが希望と看ました.
※その意義はともかく.
さらに話の内容から推察するに,SMTP gateway 側は既存で,
手前の SMTP server を構築中ではないかと.
とすると,「いままで動いていたわけではなかろう」と思います.
であれば,まず「動く構成なのか?」が重要でしょう.
設定は log や現象に基づいて「ここはどーなの?」と
突付いていけば良いと愚考いたします.

少なくとも「設定はこうだからこう動くはず,でも動かない,なぜ?」
という場合,意味がわからず(或いは誤解していて)
方法論だけ流用することが多いのではないかと.
その場合,思い込みがあるので設定値を隈なく見直すか,
現象から推測して手当てするのが早道でしょう.
その場合,log は決め手になることが多いです -> Rydia様

以上,私見です.
Rydia
ベテラン
会議室デビュー日: 2003/09/26
投稿数: 60
投稿日時: 2004-12-16 20:54
こんばんは。

表題の件について、ログが手元に届きました。以下がそのときのログで
「stat=queued」となってしまい、転送先サーバにリレーしてくれません。

------------------------------------------------------------
Dec 6 19:42:13 mta-server sendmail[2421]: iB6Afr4D002421:
from=<bbb@test.com>, size=1360, class=0, nrcpts=1,
msgid=<004001c4db80$3ae883f0$dca8c4d2@test.com>, proto=ESMTP,
daemon=MTA, relay=pajnc80.test.com [111.222.222.111]
Dec 6 19:42:13 mta-server sendmail[2421]: iB6Afr4D002421:
to=<aiueo@hoge.com>, delay=00:00:00, mailer=smtp, pri=31360,
dsn=4.4.3, stat=queued
------------------------------------------------------------

ご指摘頂いた「2ndaryのSMTP→smarthostへのtelnet」については
実際に送信までは行っていません。
またネットワーク構成についてはkaz様お察しの通り、SMTPサーバの
冗長化を目的としており、2ndarySMTPはDMZにsmarthostはTrust側
にありますが、DMZとTrustを繋ぐF/Wのポリシーの設定は問題ありません。

各種設定ファイルについては
■access
hoge.com  RELAY

■mailertable
hoge.com  smtp:[smarthostのIPアドレス]

■local-host-name
smarthostのFQDN

となっております。
何かおかしい点等あればアドバイスお願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-12-16 21:41
こんばんわ.
引用:

Rydiaさんの書き込み (2004-12-16 20:54) より:

ご指摘頂いた「2ndaryのSMTP→smarthostへのtelnet」については
実際に送信までは行っていません。


難しいことではないので,
やってみることをお奨めいたします.
何よりの手がかりですから.
引用:

またネットワーク構成についてはkaz様お察しの通り、SMTPサーバの
冗長化を目的としており、2ndarySMTPはDMZにsmarthostはTrust側
にありますが、DMZとTrustを繋ぐF/Wのポリシーの設定は問題ありません。


ここで大きな疑問.
primary/2ndary SMTP server は具体的に「なにを冗長化する」のですか?
外部から送られてきた e_mail を引き受けて内部の spoolhost へ転送する?
それとも内部から送ろうとする e_mail を引き受けて smarthost へ転送する?
それによって設定が違うのではないかと.
引用:

各種設定ファイルについては
■access
hoge.com  RELAY


ここは送り出す際には関係ありませんよね.
でも,
引用:

■mailertable
hoge.com  smtp:[smarthostのIPアドレス]


と書かれているところをみると,??と思い,前述の疑問に行き着きました.
smarthost ならそのための設定値があります.
sendmail.cf の DS に続けて書かれる内容のことです.
mailertable の内容は,hoge.com だけを
「smarthostのIPアドレス」に転送する内容と理解できます.
引用:

■local-host-name
smarthostのFQDN


ここははゆる様のご指摘に従います.
ご再考を.

でも,「同じ設定」で primary は送出できているのですよね?
改めてはゆる様のご指摘に気がつきましたが,
やはり network 上の相対位置を知る必要があるかも.
SMTP server が DMZ にあって,smarthost が trust 側になるとなると,
smarthost は「どのように Internet 一般へ送るの?」でしょう.
もしかして spoolhost のこと?
つまり primary/2ndary と書かれているものが SMTP gateway,
つまり trust 側の spoolhost にとっての smarthost で,
「できない」と書かれているのは方向が逆で
外部から受け取った e_mail を2つの SMTP gateway で引き受けて,
さらにそこから内部の spoolhost に転送する際に,
primary では転送できるのに 2ndary では転送できないということ?

と漠然と想像しまいました.

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