概要
インターネットVPN環境を継続して使っていくためには、固定IPアドレスか、ダイナミックDNSの利用が不可欠です。
私の環境が、固定IPアドレスが使えないNuro光のため、既に利用中だったGoogle DomainsのダイナミックDNSサービスを使って、インターネットVPNアクセス用のURLを用意した備忘録です。
前提
- Google Domainsで独自ドメインを管理している。
- Ubuntuを24時間365日稼働させる。
- 常時インターネットに接続されている。
- UbuntuのIPアドレスは、WiFiルータからDHCPで同じものが配布されるように設定済み。
- 以下の続きなので、Ubuntu Server 22.04 LTSです。
環境構築
- Google DomainsでダイナミックDNSの初期設定をし、IPアドレス通知用のユーザ名とパスワードを発行。
- ダイナミックDNSクライアントであるddclientをインストール。
- ddclientにGoogle Domainsで発行したIPアドレス通知用のユーザ名とパスワードを入力し、定期的にIPアドレスを通知するよう設定。
Google DomainsでダイナミックDNSの初期設定をする
Google Domainsに操作ガイドもあります。
Google Domainsヘルプ > 設定の管理 > ダイナミック DNS の詳細
- Google Domainsにアクセスする。
- マイドメインを選択する。
- Google Domainsで管理している独自ドメインを選択する。
- 左のメニューから「DNS」を選択し、「ダイナミックDNSの管理」をクリックする。
- 「新しいレコードを作成」をクリックし、好きなホスト名を入力し、保存をクリックする。
- ダイナミックDNSのレコードを作成すると、「ご利用のドメインではダイナミックDNSが設定されています」と表示されるようになるので、アコーディオンメニューを展開します。
- 「認証情報を表示」をクリックする。
- 「表示」をクリックすると、ユーザ名とパスワードが表示されるので記録します。
ここで生成されたユーザ名とパスワード、入力したホスト名はddclientで使用します。
ddclientのインストールと設定
- ダイナミックDNSクライアントであるddclientをインストールする。
username@ubuntu:~$ sudo apt install ddclient -y
- ダイナミックDNSサービス名の選択で、domains.googleを選択する。
- Google DomainのダイナミックDNSレコードの認証情報のユーザ名を入力します。
- Google DomainのダイナミックDNSレコードの認証情報のパスワードを入力します。
- 通知するIPアドレスとしてどこの情報を取得するかを選択します。
NAT環境なら「Web-based IP discovery service」を選択します。 - Google DomainのダイナミックDNSレコードのホスト名をFQDNで入力します。
- 特に再起動の必要なサービスはないので、そのままOKをクリックします。
- ウィザードで設定したパラメータが設定ファイルに入っていることを確認します。
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
- 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"
- 手動で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
~
~
~
- 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:~$
- FQDNで正引き出来る事を確認する。
username@ubuntu:~$ ping test.kabukigoya.com
0 件のコメント:
コメントを投稿