enhydraの日記: IDENTいらない
昨日全サービスサイトを抱えるcoreスイッチのフィルタリング上の問題で、メール配送に時間がかかる場合があることを見つけた。今時は少ないはずだが、メールを受信する際に送信元に対してidentでチェックを行うMTAが存在する。仮にサービスサイトからそのMTAにメールを送信する際、約30秒のウェイトが掛かってしまう現象だった。
これはcoreスイッチがidentのtcp/113ポートをフィルタリングしているためで、受信側MTAがidentチェックのためにSYNを投げるがSYN ACKが返ってこないためタイムアウトまで待たされることになってしまう。
スパッと「サービスしてません」と答えてくれるならば受信側MTAも諦めてメールの受理フェーズに移るのだが、無応答で待たされるから性質が悪い。近々にフィルタの仕方を変えましょう。
# 夕方変えました。
こんな背景から、パケットフィルタリングを行うネットワークに外部にメールを送信するホストが存在する場合はそのホストに対するidentの要求をフィルタリングしないのが定説らしい。
とりあえず元々これを設定してほったらかしで辞めて行ったエンジニアへの当てつけで、その会社に変更内容と理由を教えてあげる。日記に良く出てくるネットワーク監視サービス業者はその会社なのだ。
んでも今時ident投げるなよってのもまた人情。identを使わないようにする時Sendmailの場合は /etc/sendmail.cf の
#O Timeout.ident=
を
O Timeout.ident=0
に修正して再起動。
Qmailの場合は tcpserverの起動オプションに-Rを付加して再起動する。/etc/init.d/qmail あたりを書き換えると吉。
なんともネットワーク機器の専門家じゃなくて、ネットワークサービスの専門家に一通り見てもらいたくなった一日でした。