- PR -

[Sendmail8.12.11]DNSが引けない環境下で静的配送を行いたい

1
投稿者投稿内容
ぴたち
会議室デビュー日: 2004/03/15
投稿数: 4
投稿日時: 2004-03-15 13:40
ぴたちと申します。

現在、Sendmail8.12.11(Solaris9<-Linuxではありません・・すみません)にて、以下の様な設定を行いたいと試行錯誤しております。

◆DNSが参照出来ない環境で、自ドメイン以外のメールをスタティックにリレーする。

◆こんなメールサーバ
IP Address:192.168.0.1
FQDN(MXも同じ):test.example.com <- 自ドメイン
それ以外の example.com 等は他のドメインとして認識したい

現状、/etc/resolv.conf が存在しない状態で、/etc/mail/sendmail.cf には以下の様な設定を2点施しております。

-------------------------------------------------------------------------------
# "Smart" relay host (may be null)
DSsmtp:[192.168.0.20]

# who gets all local email traffic
# ($R has precedence for unqualified names if FEATURE(stickyhost) is used)
DHsmtp:[192.168.0.20]
-------------------------------------------------------------------------------

1点目は SMART HOSTの設定であり、自ドメインに登録されているユーザ以外は 192.168.0.20に転送する設定を施しております(つもりです)。

2点目は Mail HUBの設定であり、同じく 192.168.0.20 へメールをリレーする設定を施しております(上に同じ)。

しかし、静的配送設定を行っているのにもかかわらず、ご丁寧に送信相手先のMXを参照し、存在しないことを確認すると自分のキューにためこんでメールを 192.168.0.20 へ送信してくれない現象に遭遇しています。

◆下記補足◆

上記設定を施した上で、自ドメインへのメールと自ドメイン以外(@example.com)へのメールを送信したときの動作ログを添付します。

自ドメイン(test.example.com)へのメール
-------------------------------------------------------------------------------
# mailx -v pitachi@test.example.com
Subject: Test Mail
Test Mail
.
EOT
# @test.example.com... Connecting to [127.0.0.1] via relay...
220 test.example.com ESMTP Sendmail 8.12.11/8.12.11; Mon, 15 Nov 2004 13:12:01 +0900 (JST)
>>> EHLO test.example.com
250-test.example.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<pitachi@test.example.com> SIZE=81
250 2.1.0 <pitachi@test.example.com>... Sender ok
>>> RCPT To:<pitachi@test.example.com>
>>> DATA
250 2.1.5 <pitachi@test.example.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 iAF4C1kL017138 Message accepted for delivery
pitachi@test.example.com... Sent (iAF4C1kL017138 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 test.example.com closing connection

#
-------------------------------------------------------------------------------

自ドメイン以外(@example.com)へのメール
-------------------------------------------------------------------------------
# mailx -v pitachi@example.com
Subject: Test Mail
This is Test Mail
.
EOT
# example.com: Name server timeout
pitachi@example.com... Transient parse error -- message queued for future delivery
pitachi@example.com... queued
-------------------------------------------------------------------------------

結果上記の様に # example.com: Name server timeout というエラーを出力し、メールを送信せずにキューに溜まるという現象が発生しております。

再度質問事項をまとめると、DNSへの検索が出来ない環境下で、自ドメイン以外のメールをDNS参照を行わず強制的に上位 SMTP サーバへ転送する設定をご教授下さい。

以上、お助け下さい宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-03-15 16:01
こんにちわ.

仕事の合間の一服中です...
DNS をひきたくないなら,service.switch をご利用になられては如何かと.sendmail.cf を直接編集されているようですからこれだけ書けば判るかな?

O ServiceSwitchFile=/etc/mail/serviceswitch
で,/etc/mail に service.switch を touch して,内容は以下のように.
hosts files
※hosts と files の間は確か tab かと...

sendmail.mc お使いの場合は
confSERVICE_SWITCH_FILE ServiceSwitchFile
かな.
或いは FEATURE(nodns) を使うとか...

smarthost と mailhub って,同じなら smarthost だけじゃダメでしたっけ?
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-03-15 16:35
こんにちは〜。

ちょっと古いのですが、こんなページがあります。
いかがでしょうか?
(時間がないのでよそに振る。苦笑)
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node211.html
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-03-15 16:54
ちょっと気になったのでまた見ちゃいました.

m4 使うなら
dnl # accept mail from DNS unresolvable domain
FEATURE(`accept_unresolvable_domains')dnl
これも重要でしたね.忘れてました.
ぴたち
会議室デビュー日: 2004/03/15
投稿数: 4
投稿日時: 2004-03-16 10:21

kazさん、はゆるさん

返答ありがとうございます。
大変参考になっています。

kazさんに教えて頂きました、ServiceSwitchConf,nodnsを試して見ましたがSolaris固有の問題で撃沈でした・
まず、ServiceSwitchを設定(m4で設定しています)しましたが、現象は同じでDNSを参照してしました。

くそう、と思いsendmail.cfを眺めていると

/etc/mail/sendmail.cf内
# service switch file (name hardwired on Solaris, Ultrix, OSF/1, others)
O ServiceSwitchFile=/etc/mail/service.switch

#サービススイッチファイルはhardwired on Solaris!!
Solarisの馬鹿・・

んじゃ、/etc/nsswitch.confを hosts: files dns から hosts: files へ変更すれば良いではないのか?となるのですが(設定を変更すると確かに問題無く送信される様になりました・・)、ここが嫌なところで、内部DNSは存在し、閉じたネットワーク内に存在するサーバの名前はそれが管理しています(外部の名前は引けません)。
そのサーバに外部DNSを引きにいってしまうのでアウト。

次に FEAUTURE(`nodns')dnlを試してみると。
同じくその様な設定は出来ないとの回答がm4から帰ってきました。

# make sendmail.cf
rm -f sendmail.cf
m4 ../m4/cf.m4 sendmail.mc > sendmail.cf || ( rm -f sendmail.cf && exit 1 )
FEATURE(nodns) is no-op.
Use ServiceSwitchFile (/etc/mail/service.switch) if your OS does not provide its own instead.
chmod 444 sendmail.cf

くぅ、全ホストをfileに書くなんて・・書くなんて・・
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-03-16 12:00
こんにちわ.

引用:

kazさんに教えて頂きました、ServiceSwitchConf,nodnsを試して見ましたがSolaris固有の問題で撃沈でした・
まず、ServiceSwitchを設定(m4で設定しています)しましたが、現象は同じでDNSを参照してしました。


そうでした,ゴメンナサイ.

引用:

んじゃ、/etc/nsswitch.confを hosts: files dns から hosts: files へ変更すれば良いではないのか?となるのですが(設定を変更すると確かに問題無く送信される様になりました・・)、ここが嫌なところで、内部DNSは存在し、閉じたネットワーク内に存在するサーバの名前はそれが管理しています(外部の名前は引けません)。
そのサーバに外部DNSを引きにいってしまうのでアウト。


cf の README にも書いてありますが,
define(`SMART_HOST', `smtp:[192.168.0.20]')
LOCAL_NET_CONFIG
R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3
こうすると「local の DNS 検索で参照できるのもだけ直接配送,それ以外は smarthost へ」となるようです.この辺からなんとかならないでしょうか?

引用:

次に FEAUTURE(`nodns')dnlを試してみると。
同じくその様な設定は出来ないとの回答がm4から帰ってきました。

# make sendmail.cf
rm -f sendmail.cf
m4 ../m4/cf.m4 sendmail.mc > sendmail.cf || ( rm -f sendmail.cf && exit 1 )
FEATURE(nodns) is no-op.
Use ServiceSwitchFile (/etc/mail/service.switch) if your OS does not provide its own instead.
chmod 444 sendmail.cf


sendmail-cf の README にはちゃんと載ってるんですけどね〜.

引用:

くぅ、全ホストをfileに書くなんて・・書くなんて・・


でも,FEATURE(`promiscuous_relay') ってわけにもいかないですよね(と誘惑してみたりして...)

FEATURE(`accept_unresolvable_domains') ではダメでした?
ぴたち
会議室デビュー日: 2004/03/15
投稿数: 4
投稿日時: 2004-03-16 13:53
kazさん

返答ありがとうございます。

引用:

cf の README にも書いてありますが,
define(`SMART_HOST', `smtp:[192.168.0.20]')
LOCAL_NET_CONFIG
R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3
こうすると「local の DNS 検索で参照できるのもだけ直接配送,それ以外は smarthost へ」となるようです.この辺からなんとかならないでしょうか?



なんとかなるどころかもう、ビンゴです!
この設定を施した後、DNSを無視してメールを送付してくれるようになりました。

◆動作ログ◆ ありえないドメインに送付
------------------------------------------------------------------------
# mailx -v test@fjsalkdjflkasjkfljakljskdfjlaskdjfas.com
Subject: Test Mail
Test Mail
.
EOT
Subject: test@fjsalkdjflkasjkfljakljskdfjlaskdjfas.com... Connecting to [127.0.0.1] via relay...
220 test.example.com ESMTP Sendmail 8.12.11/8.12.11; Thu, 18 Nov 2004 13:27:54 +0900 (JST)
>>> EHLO test.example.com
250-test.example.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<pitachi@test.example.com> SIZE=99
250 2.1.0 <pitachi@test.example.com>... Sender ok
>>> RCPT To:<test@fjsalkdjflkasjkfljakljskdfjlaskdjfas.com>
>>> DATA
250 2.1.5 <test@fjsalkdjflkasjkfljakljskdfjlaskdjfas.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 iAI4RstV018508 Message accepted for delivery
test@fjsalkdjflkasjkfljakljskdfjlaskdjfas.com... Sent (iAI4RstV018508 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 test.example.com closing connection

------------------------------------------------------------------------

本当に助かりました!感謝感謝ですm(_ _)mペコペコ
ありがとうございました。

◆以下補足◆最終のsendmail.mc
------------------------------------------------------------------------
divert(-1)
divert(0)dnl
VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')
OSTYPE(solaris2)dnl
DOMAIN(generic)dnl
FEATURE(`no_default_msa')dnl
FEATURE(`nodns')dnl

define(`confCW_FILE',`-o /etc/mail/local-host-names')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access')dnl
dnl #define(`MAIL_HUB',`smtp:[192.168.0.20]')dnl
dnl #define(`confSERVICE_SWITCH_FILE')dnl
define(`SMART_HOST',`smtp:[192.168.0.20]')dnl
LOCAL_NET_CONFIG
R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3
dnl #FEATURE(`accept_unresolvable_domains')dnl
EXPOSE_USER(`root,postmaster')dnl

DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
------------------------------------------------------------------------
FEATURE(`accept_unresolvable_domains')dnl に関しては、受信に関する設定らしく、このサーバ自身が外部からのメールを受け付けることは無いため、あえて省いています。



[ メッセージ編集済み 編集者: ぴたち 編集日時 2004-03-16 13:59 ]
1

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