お名前.comでDDNSするときにハマった

oka
6 min readApr 24, 2021

お名前.com でドメインとサーバーを契約している。一方、自宅で使っているルーターには VPN 機能があり、 OpenVPN のサーバーを立てられる。ルーターの IP アドレスが変わると VPN の接続先が変わってしまうので、 vpn.example.com みたいなサブドメインを作って自宅のIPアドレスを割り当てるようにした。

お名前.com は動的にDNS の設定を変更できる (DDNS) クライアントソフトを提供しているのだが、 Windows 用しかない。Linux から cron で実行したい。と思って探したところこちらがヒットした。

ソースコードはこちら。

これを使わせて頂いて、最終的にはうまくいったものの、途中でハマった箇所があったので記録しておく。

このプログラムを実行してうまくいくと、

000 COMMAND SUCCESSFUL

という文字列が4つ出るはずだが、始め、3つ目の文字列が

004 IPADDRESS ERROR

というエラーになっていた。この原因は IPv6 アドレスを設定しようとしているためだった。プログラム内で curl で

にアクセスして自分の IP アドレスを調べているのだが、ここから返ってくるのが IPv6 だとエラーが出る。-4 オプションを入れると IPv4 アドレスが返るようになるらしいので、そのように修正してプルリクも作った。

これを解決すると、今度は

003 DBERROR

というエラーに変わった。こちらは解決が難しかったが、原因は以下だった。

https://help.onamae.com/answer/14353

ここのヘルプにあるように、お名前.com の提供するネームサーバーは3種類ある。ドメインのみ契約している場合は 01.dnsv.jp などで、レンタルサーバーやメールを契約していると ns-rs1.gmoserver.jp とか dns01.gmoserver.jp みたい。ややこしい。

レンタルサーバーを契約しているので、これまで

https://cp.onamae.ne.jp/domain/dns

から DNS レコードを編集していたのだが、どうも

https://www.onamae.com/domain/navi/dns_controll/input その1
https://www.onamae.com/domain/navi/dns_controll/input その2

からも編集できるというのに気づいた。サブドメインを後者の画面から作り、DNS サーバーを 01.dnsv.jp などに変更したらうまくいくようになった。DNS サーバーを変更した場合、レンタルサーバーの方の画面で設定していた DNS レコードを全部移行する必要がある (そうしないとウェブサイトにアクセスできなくなり、メールも受信できなくなる。メールについては、DNS を書き換えている間のものはどこかにプールされていたらしく、書き換えが終わったタイミングで届いた。)。

お名前.com は GMO がやっていて評判は良くないのだが、こういったところも分かりにくい。。

アフィコーナー

家庭用のルーターは以下を使っている。

低価格にも関わらず色々な機能があり、ブラウザで操作する画面の出来も良いためとても満足している。家に VPN を作っておくと、家のストレージサーバー (Nextcloud) にアクセスする、公衆無線 LAN を使うときの暗号化に使う、海外から日本限定のサイトにアクセスする、などの用途に使えて便利。

追記
プルリクマージしていただいていた🙌
このプルリクの内容は自分の環境で IPv6 が有効になっていたから必要だったんだけど、下記の記事にあるようにもし IPv4 over IPv6 を使っているなら VPN 接続のためのポートを通常は公開できないはずである。でも接続できているのは何故? IP 何も分からん・・・

--

--