おおさとです。 > 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 ; 大里和朗@江戸川区西葛西