non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

まさかPostgreSQLを触って、IPv6の知識が増えるとは

おはようございます。最近長男は聞き分けがよくなってきて、助かってます。ちょっと我慢して、こちらのやってほしいことを先にやって、後で、自分のやりたかったことをすると言ったことが出来てきました。今出来ないけど、後から出来るということを理解できてきた様子です。@kjunichiです。

背景

abrakatabura.hatenablog.com

なる記事を書いて、Postgres.appを久しぶりに触り出した。 WWDC2016で新しいMacBook Proが残念ながら発表なかったので、相変わらず、大事に使っている MacBook ProからMac mini2014上のPostgres.appのPostgreSQLサーバーにアクセスを試みた。

当然ながら、pg_hba.conf等の設定がデフォルトではされていないので、この設定を変更して、 LAN内からのアクセスを許可した。

設定の変更はPostgres.appの公式ページに書いてあった。

しかし、以下のようなpsqlコマンドで接続を試みると

psql -h macmini.local -U kjunichi kjunichi
FATAL: no pg_hba.conf entry for host "fe80::c81c:????:XXXX:????%20", user "kjunichi", database "kjunichi", SSL off 

と、IPv6のアドレスでアクセスしていることが判明。

IPv6の192.168.0.0/24的な指定するには

IPv6ではローカルネットワークでのみ通信可能なIPアドレスとして、

fe80::で始まるアドレスが使われることが分かった。

が、192.168.0.0/24的な指定が分からず、途方に暮れ、IPv6での待受けを行わない、 「*」の代わりに「0.0.0.0」を指定するという極めて後ろ向きな対応しか無さそうで 諦めかけていたが、

マルチキャストDNS, IPv6, PostgreSQL - ブログ - ワルブリックス株式会社

を発見。こちらの記事の指定をpg_hba.confにしたところ、無事接続できました。 ありがとうございました。

学んだこと

  • Bonjour使うとIPv6なアドレスでアクセスするのかも
  • postgresql.confのlisten_addressで「*」を指定するとIPv6でも待受けする。

関連記事

10年前の記事

4年前の記事