[PHP-users 10068] Re: PHPからのDB リモートアクセス

HAYAKAWA Hitoshi php-users@php.gr.jp
Thu, 12 Sep 2002 19:50:35 +0900


早川仁です。

At Thu, 12 Sep 2002 17:14:53 +0900,
Amemiya wrote:

> 自分で調査した結果
> tcpdumpで、DBサーバへのアクセスを見てたんですが
> マシンA(コネクトできないマシン)からのアクセスと
> マシンC(コネクトできる)からのアクセスでは
> tcpdumpの結果が違う事が分かりました。
> 
> 正常なアクセス時のtcpdump結果
> 16:28:54.571735 マシンC.1091 > マシンB.5432: S 69142048:1469142048(0) win 5840  (DF)
> 16:28:54.571887 マシンB.5432 > マシンC.1091: S 1815104372:1815104372(0) ack 1469142049 win 32120  (DF)
> 16:28:54.572256 マシンC.1091 > brabo.5432: . ack 1 win 5840  (DF)
> 16:28:54.572749 マシンC.1091 > マシンB.5432: P 1:297(296) ack 1 win 5840  (DF)
> 16:28:54.572855 マシンB.5432 > マシンC.1091: . ack 297 win 31856  (DF)
> 16:28:54.575824 マシンB.5432 > マシンC.1091: P 1:6(5) ack 297 win 31856  (DF)
> 16:28:54.576124 マシンC.1091 > マシンC.5432: . ack 6 win 5840  (DF)
> 16:28:54.616139 マシンB.5432 > マシンC.1091: P 6:16(10) ack 297 win 31856  (DF)
> 
> 
> アクセスが出来ないマシンからのtcpdump結果
> 
> 16:26:28.400118 マシンA.49334 > マシンB.5432: S 2276320395:2276320395(0) win 32768  (DF)
> 16:26:28.400281 マシンB.5432 > マシンA.49334: S 1644241049:1644241049(0) ack 2276320396 win 32120  (DF)
> 16:26:28.401925 マシンA.49334 > brabo.5432: F 1:1(0) ack 1 win 32768 (DF)
> 16:26:28.402085 マシンB.5432 > マシンA.49334: . ack 2 win 32120 (DF)
> 16:26:28.402471 マシンB.5432 > マシンA.49334: F 1:1(0) ack 2 win 32120 (DF)
> 16:26:28.402855 マシンA.49334 > brabo.5432: . ack 2 win 32768 (DF)


> 16:26:28.401925 マシンA.49334 > brabo.5432: F 1:1(0) ack 1 win 32768 (DF)
この行を見る限り、TCP/IP レベルでは A->B へのコネクトが終了し、その後 B
から接続を切ってます。

つまり、(スレッドを追っていないのでもう話が出たかも知れませんが)、TCP/IP
のパケットフィルタリングや PHP のレベルじゃなくて、PostgreSQL の話じゃな
いかと(設定ミス等)。

ホストA から psql -h Bのアドレス -U ユーザ名 -l を実行した場合、エラー
にならずに正常にテーブル一覧を表示できますか?

・できなければ、PostgreSQL (の設定)が悪い
・できれば、PHP が悪い(接続時のアカウントが違うとか)

-- 
早川仁(はやかわひとし)
cz@hykw.jp