ネットワーク基礎4 択難易度 応用

状況

アプリサーバーから DB サーバー 10.0.3.15 に接続できない。アプリサーバーで nc -vz 10.0.3.15 5432 は timed out。DB サーバーの ss -lnt では 0.0.0.0:5432 が LISTEN で、DB サーバー上の psql -h 10.0.3.15 は成功する。

最も疑わしい候補は?

  1. ADB サーバーの OS のファイアウォール(ufw など)が 5432 番を許可しているか
  2. BPostgreSQL の listen_addresses の設定
  3. Cpg_hba.conf の接続元の許可
  4. DDB サーバーの名前の DNS レコード

正答

  1. B
  2. A
  3. D
  4. C

解説

0.0.0.0:5432 で待ち受けていて、DB サーバー自身からは接続できるので、PostgreSQL は動いており、待ち受けのアドレス(B)も問題ない。nc は IP で指定しているので DNS(D)も関係がない。pg_hba.conf(C)で拒否された場合は、TCP の接続はできたうえで PostgreSQL が「no pg_hba.conf entry」のようなエラーを返すので、nc -vz は成功するはず。TCP の接続そのものが時間切れになっているのは、途中でパケットが黙って捨てられている印で、DB サーバーの OS のファイアウォールが 5432 番を許可していないことが最も疑わしい(A)。OS で許可済みなら、次はクラウドのセキュリティグループなど途中のファイアウォールを見る。

参考: man.openbsd.org

troubleshootingtimeoutfirewallpostgresql

この問題を含む ネットワーク基礎 のテストを制限時間つきで解く

ネットワーク基礎クイズへ