おおさとです。
> From: "h.kobayashi" <s_andrews@xxxxxxxxx>
> Subject: [vine-users:052322] Re: qmail でメール送信が遅い
> Date: Mon, 22 Jul 2002 15:01:17 +0900
> Message-ID: 20020722141608.DF77.S_ANDREWS@xxxxxxxxx
> > サーバーから LAN 内の PC の逆引きが出来てない感じもします
> > が、LAN 内部の DNS はどうなっているんでしょう。
> >
> これは、
> クライアントPCのIP:クライアントPCのホスト名
> という事でしょうか??
> そういった設定はしておりません。
昨今のメールサーバは一般的に SMTP を投げてきた先を逆引きします。
この場合、メールサーバがクライアントのプラーベートアドレスを解
決できないとインターネット側に問い合わせを投げてしまいます。
そのときどうなるかは相手次第で、最悪 blackhole.isi.edu まで行っ
てしまうので、タイムアウトは上流のコンディションに左右されます。
ですから、一見無事に動いているように見えたメールサーバがある日
突然タイムアウトで受けつけなくなるという事態が起こりえます。
# 昨日まで動いていたんですけど、今朝から急にタイムアウトで送信
# できないんです。と SOS が来る。
もちろん、正しくはプライベートアドレスはプラーベートで解決する
ことです。しかし正しくなくてもたまたま動いてしまうことが問題な
んですね。 内部に DNS を立てるのが面倒ならば、サーバに hosts を
持たせてもいいわけで、逆引きができさえすればいいので機械的に生
成した名前でもいいです。
一例ですが、安直な解決として、機械的 hosts 自動生成スクリプト
なんてのを作って重宝しています。
#! /bin/bash
NETWORK=${1}
HostName=${2}
Digit1=${NETWORK%%.*}
Digit2=${NETWORK#*.}
Digit2=${Digit2%%.*}
Digit3=${NETWORK#*.*.}
Digit3=${Digit3%%.*}
Digit4=0
HEXARRAY="0 1 2 3 4 5 6 7 8 9 A B C D E F"
Digit=0
for HexArray1 in ${HEXARRAY}; do
for HexArray2 in ${HEXARRAY}; do
if [ "${Digit}" = "${Digit1}" ]; then
HostName=${HostName}${HexArray1}${HexArray2}
fi
Digit=$((Digit + 1))
done
done
Digit=0
for HexArray1 in ${HEXARRAY}; do
for HexArray2 in ${HEXARRAY}; do
if [ "${Digit}" = "${Digit2}" ]; then
HostName=${HostName}${HexArray1}${HexArray2}
fi
Digit=$((Digit + 1))
done
done
Digit=0
for HexArray1 in ${HEXARRAY}; do
for HexArray2 in ${HEXARRAY}; do
if [ "${Digit}" = "${Digit3}" ]; then
HostName=${HostName}${HexArray1}${HexArray2}
fi
Digit=$((Digit + 1))
done
done
for HexArray1 in ${HEXARRAY}; do
for HexArray2 in ${HEXARRAY}; do
if [ ${Digit4} -gt 0 ] && [ ${Digit4} -lt 255 ]; then
if [ ! "${Digit1}.${Digit2}.${Digit3}.${Digit4}" = "${IPADDR_INT}" ]; then
echo ${Digit1}.${Digit2}.${Digit3}.${Digit4} ${HostName}${HexArray1}${HexArray2}
fi
fi
Digit4=$((Digit4 + 1))
done
done
$ このスクリプト ネットワークアドレス 適当な文字列
として実行すると、クラスC の hosts を自動生成してくれる仕掛です。
254 行も手で書くと疲れるので、ただのサボリ技ですが :-)。
--
; kazz@xxxxxxxxxxxxxx
; oosato@xxxxxxxxxxxxx
; 大里和朗@江戸川区西葛西