Ubuntu Server 22.04 LTSでGoogle DomainsのダイナミックDNSを自動更新

2022年5月22日日曜日

Linux Rasberry Pi

t f B! P L
008_Ubuntu Server 22.04 LTSでGoogle DomainsのダイナミックDNSを自動更新

概要

インターネットVPN環境を継続して使っていくためには、固定IPアドレスか、ダイナミックDNSの利用が不可欠です。
私の環境が、固定IPアドレスが使えないNuro光のため、既に利用中だったGoogle DomainsのダイナミックDNSサービスを使って、インターネットVPNアクセス用のURLを用意した備忘録です。

前提

環境構築

  1. Google DomainsでダイナミックDNSの初期設定をし、IPアドレス通知用のユーザ名とパスワードを発行。
  2. ダイナミックDNSクライアントであるddclientをインストール。
  3. ddclientにGoogle Domainsで発行したIPアドレス通知用のユーザ名とパスワードを入力し、定期的にIPアドレスを通知するよう設定。

Google DomainsでダイナミックDNSの初期設定をする

Google Domainsに操作ガイドもあります。
Google Domainsヘルプ > 設定の管理 > ダイナミック DNS の詳細

  1. Google Domainsにアクセスする。
  2. マイドメインを選択する。
  3. Google Domainsで管理している独自ドメインを選択する。
  4. 左のメニューから「DNS」を選択し、「ダイナミックDNSの管理」をクリックする。
  5. 「新しいレコードを作成」をクリックし、好きなホスト名を入力し、保存をクリックする。
  6. ダイナミックDNSのレコードを作成すると、「ご利用のドメインではダイナミックDNSが設定されています」と表示されるようになるので、アコーディオンメニューを展開します。
  7. 「認証情報を表示」をクリックする。
  8. 「表示」をクリックすると、ユーザ名とパスワードが表示されるので記録します。
    ここで生成されたユーザ名とパスワード、入力したホスト名はddclientで使用します。

ddclientのインストールと設定

  1. ダイナミックDNSクライアントであるddclientをインストールする。
username@ubuntu:~$ sudo apt install ddclient -y
  1. ダイナミックDNSサービス名の選択で、domains.googleを選択する。
  2. Google DomainのダイナミックDNSレコードの認証情報のユーザ名を入力します。
  3. Google DomainのダイナミックDNSレコードの認証情報のパスワードを入力します。
  4. 通知するIPアドレスとしてどこの情報を取得するかを選択します。
    NAT環境なら「Web-based IP discovery service」を選択します。
  5. Google DomainのダイナミックDNSレコードのホスト名をFQDNで入力します。
  6. 特に再起動の必要なサービスはないので、そのままOKをクリックします。
  7. ウィザードで設定したパラメータが設定ファイルに入っていることを確認します。
username@ubuntu:~$ sudo cat /etc/ddclient.conf # Configuration file for ddclient generated by debconf # # /etc/ddclient.conf protocol=googledomains \ use=web, web=https://domains.google.com/checkip \ login=xxxxxxxxxxxxxxxx \ password='xxxxxxxxxxxxxxxx' \ test.kabukigoya.com
  1. ddclientの動作パラメータを確認し、必要に応じて編集します。
username@ubuntu:~$ sudo cat /etc/default/ddclient [sudo] password for username: # Configuration for ddclient scripts # generated from debconf on Sun May 22 10:53:27 JST 2022 # # /etc/default/ddclient # Set to "true" if ddclient should be run every time DHCP client ('dhclient' # from package isc-dhcp-client) updates the systems IP address. run_dhclient="false" # Set to "true" if ddclient should be run every time a new ppp connection is # established. This might be useful, if you are using dial-on-demand. run_ipup="false" # Set the time interval between the updates of the dynamic DNS name in seconds. # This option only takes effect if the ddclient runs in daemon mode. daemon_interval="5m"
  1. 手動でddclientを実行し、動作を確認します。
username@ubuntu:~$ sudo ddclient -daemon=0 -verbose

異常時の情報をもっていないので、正確な正常性確認手順は不明ですが、ErrorがなくHTTP/1.0 200 OKとなっていれば、大丈夫そう・・・?

CONNECT: domains.google.com CONNECTED: using SSL SENDING: GET /checkip HTTP/1.0 SENDING: Host: domains.google.com SENDING: User-Agent: ddclient/3.9.1 SENDING: Connection: close SENDING: SENDING: RECEIVE: HTTP/1.0 200 OK ~ ~ ~
  1. ddclientサービスを再起動します。
username@ubuntu:~$ sudo systemctl restart ddclient [sudo] password for username: username@ubuntu:~$ username@ubuntu:~$ sudo systemctl status ddclient ● ddclient.service - Update dynamic domain name service entries Loaded: loaded (/lib/systemd/system/ddclient.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-05-22 16:55:38 JST; 10min ago Docs: man:ddclient(8) Process: 10685 ExecStart=/usr/sbin/ddclient -daemon $daemon_interval -syslog -pid /run/ddclient.pid (code=exited, status=0/SUCCESS) Main PID: 10687 (ddclient - slee) Tasks: 1 (limit: 9238) Memory: 17.5M CPU: 598ms CGroup: /system.slice/ddclient.service mq10687 "ddclient - sleeping for 300 seconds" May 22 16:55:37 ubuntu systemd[1]: Starting Update dynamic domain name service entries... May 22 16:55:38 ubuntu systemd[1]: Started Update dynamic domain name service entries. username@ubuntu:~$
  1. FQDNで正引き出来る事を確認する。
username@ubuntu:~$ ping test.kabukigoya.com

QooQ