銀河の歴史がまた1ページ(日記)

Last Update (2003/05/08 07:31:28)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索] [統合検索]

ページ内目次


■ 宇宙歴 2003.04.25 (Fri)

http://www.ceres.dti.ne.jp/~george/jdiaryA30416.html#20030425

fetchmail と mda part2

今日も変なメール到着により、yk.rimのPOPサーバからメールが吸い出せなくなってしまった。 今回は、発信元のドメイン名ispchannel.comがDNSで引けないというメールが引金。 fetchmail -v で様子を見てみると、以下のような動き。

  1. fetchmailがyk.rimのPOP3から問題のメールを取る。
  2. fetchmailはMDAであるオレマシンのsendmailにSMTPでおしゃべり開始
  3. ispchannel.comの名前引きが行われる失敗する。
  4. 名前引きに失敗し続けて3分が経過する。(うちの環境だと、gethostbynameの失敗には1分ほどかかる)
  5. オレマシンのsendmailは、とりあえずDNSで名前が引けないドメインからのメールも受信するような設定を行っているため、問題のメールを受信する。
  6. fetchmailは受信の終った問題のメールをPOPサーバから削除しようとDELEコマンドをPOPサーバに送信する。
  7. yk.rimのPOPサーバは時間切れで、既にTCPコネクションを切断している。
  8. よって、fetchmailはエラーを検出する
  9. yk.rimのPOPサーバに溜っている69通のメールは取れない。
  10. 悲しい

ウチのマシンではDNSキャッシュ用に自前でnamedを動かしているんだけど、DNS引きに失敗した名前って覚えててくれないのかな。 namedには名前引き失敗情報も覚えておくネガティブキャッシュ機能がついているはずなんだけど。 名前引き1回失敗につき、gethostbynameで1分食われる + 設定によってはfetchmailもsendmailも名前引きを行う + IPv4, IPv6, MXをそれぞれ名前引きして全部失敗する = ものすごいタイムロスが発生している。

named(8), named.conf(5), /usr/share/doc/bind/html/index.html からオプションを調べてみたけど、ネガティブキャッシュを有効にするオプションらしきものは発見できず。 以下のオプションがそれっぽいけど、指定してもgethostbynameの2回目の失敗が高速化されるわけではないし。 謎だ。 (成功する名前引きについては自前namedがキャッシュしてくれているんだけど...。) (..)?

//   /etc/namedb/named.conf options 内部の一部
//   ネガティブキャッシュに関連しそうなオプション
//   これを書いても2回目の名前引き失敗が高速化されるわけではない
	has-old-clients no;
	rfc2308-type1 yes;
	max-ncache-ttl 3600;

結局、ウチでは以前からprocmailを使用していたので、fetchmailの設定でMDAにprocmailを設定することにした。 興風館.山鳥の間.fetchmail の設定と使い方を参考に、~/.fetchmailrcに以下の記述を追加。 FreeBSD用にパスが変えてある&procmailをMDAに指定してある他は上のページの内容と一緒。

#  ~/.fetchmailrc の一部
#  george は私のユーザー名
#----------------------------------------------------------------------
#  default setting
#
defaults
	protocol pop3
	fetchall no mimedecode
	# mda "/usr/libexec/mail.local -d george" # (default)
	# mda "/usr/local/lib/mh/slocal -user george" # MH's MDA
	mda "/usr/local/bin/procmail" # procmail

とりあえずこれでメール受信できるようになった。
あとはDNSのネガティブキャッシュを有効にする方法が判明したらまた日記に書く予定。

追記。 RFC2308 DNS問い合わせのネガティブキャッシュ(DNS NCACHE)の日本語訳。 SOAレコードの無いネガティブ応答はキャッシュすべきではない....悪いネガティブキャッシュをDNSの間に広めることでsendmailのキューをいっぱいにしたり、特定のサイトへアクセスできなくする攻撃もありうる...。 なるほど、ネガティブキャッシュは、今の動作でもOKな気がして来た(笑)。


日記ファイルリスト


Copyright(c) 1996,97,98,99,2000,01 George(小濱 純). All rights reserved.
私の作成したページは全部リンクフリーです。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索] [統合検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>