0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Domains へ EdgeRouterX からの DDNS 登録

Last updated at Posted at 2020-07-05

注記

Squarespace が Google Domains からすべてのドメイン登録と関連する顧客アカウントを買収 され、2024 年 7 月 10 日をもって、すべてのドメインが Squarespace に移管されました。
また、Squarespaceはダイナミ⁠ックDNSをサポ⁠ートしていません。
よって、この記事の方法は利用できなくなりました。

はじめに

Google Domains でドメインを取得したので、自宅の Global IP を DDNS で登録をしてみた
使用した機器は自宅ラボルータにしている EdgeRouterX (略称 ER-X) を使用した
実際にやってみると簡単だった。やり方メモを記載しておいてます

設定・確認手順

内容は簡単で、設定で 2ステップ, 確認で 1ステップ

  1. Google Domains で 合成レコード「ダイナミックDNS」を追加
  2. EdgeRouterX で ddns 設定
  3. 登録確認

1. Google Domains で 合成レコード「ダイナミックDNS」を追加

Google Domains へログインする
https://domains.google.com/registrar

DNS 設定画面へ移動して、下記画面のように設定する(参考サイトそのまま)

  1. DNS メニューを開く
  2. 合成レコードまでスクロール
  3. ダイナミックDNS を選択
  4. DDNS で割り当てるサブドメインを入力
  5. 追加をクリック
GoogleDomains_DDNS.png

合成レコード追加が完了したら、認証情報を下記画面のように取得する

  1. 「ダイナミック DNS」の「>」クリックして詳細情報を開く
  2. 今回の登録ドメインを確認
  3. 認証情報を表示」をクリック
  4. 表示される「ユーザー名」「パスワード」をメモしておく(ER-X設定に必要)
GoogleDomains_DDNS2.png

以上で、Google Domains の登録完了

2. EdgeRouterX (ER-X) で ddns 設定

Google Domains で生成されたパラメータ(ユーザー名&パスワード)を元に、下記設定を ER-X に設定する
Google Domains は dyndns2 プロトコルを使用するので、protocol dyndns2 を指定する

ER-X_DDNS設定例(Global向けIF_eth0の場合)
set service dns dynamic interface eth0 service custom-googledomains host-name [登録する Aレコード名]
set service dns dynamic interface eth0 service custom-googledomains [Google Domains で表示される「ユーザー名」]
set service dns dynamic interface eth0 service custom-googledomains password [Google Domains で表示される「パスワード」]
set service dns dynamic interface eth0 service custom-googledomains protocol dyndns2
set service dns dynamic interface eth0 service custom-googledomains server domains.google.com
set service dns dynamic interface eth0 web dyndns

以上で、EdgeRouterX での設定完了

3. 登録確認

EdgeRouterX での確認

DDNS 登録状況は、show dns dynamic status コマンドで表示可能

ER-X_DDNS_Status表示例
$ show dns dynamic status 
interface    : eth0
ip address   : [登録する Public IP が表示される]
host-name    : [登録する Aレコード名]
last update  : [最後に Update した時刻表示]
update-status: good

update-statusgood であれば登録 OK

Google Domains での確認

登録時同様に、ダイナミック DNS を開いて登録したサブドメインを見る
GoogleDomains_DDNS3.png

登録完了していれば、対象の登録したサブドメインのデータに Public IP が表示されてれば OK

名前解決での確認

実際に名前解決もdignslookupで確認可能

nslookupコマンド例(xxx.xxx.xxxに実際の名前をいれる.最初のServer/Addressは環境による)
% nslookup xxx.xxx.xxx
Server:		***.**.**.*
Address:	***.**.**.*#53

Non-authoritative answer:
Name:	xxx.xxx.xxx
Address: x.x.x.x
digコマンド例(xxx.xxx.xxxに実際の名前をいれる)
% dig A xxx.xxx.xxx +noall +answer

; <<>> DiG 9.10.6 <<>> A xxx.xxx.xxx +noall +answer
;; global options: +cmd
xxx.xxx.xxx.	69	IN	A	x.x.x.x

名前で、IPが引ければOK

以上で、登録確認完了

参考

Google Domains ヘルプ ダイナミック DNS
https://support.google.com/domains/answer/6147083?hl=ja

追記. VM で Google Domains への登録

クラウド上に踏み台サーバを置いているので、DDNS 設定をしたのでその内容を記載する

対象サーバへ ddclient をインストールする

install_ddclient(centos7)
yum install ddclient

/etc/ddclient.confを編集する

  • use=web~
    • interface へ直接 Public IP を振られない場合は、外部サイトのweb表示結果を使うため use=web~ をコメントアウト解除する
  • protocol
    • googledomains を指定
  • login
    • サーバ用に登録した DDNS で認証情報を表示で出力されるユーザー名を指定 (1.と同じ)
  • password
    • サーバ用に登録した DDNS で認証情報を表示で出力されるパスワードを指定 (1.と同じ)
  • my.domain.tld, otherhost.domain.tld
    • my.domain.tld は google domains で購入したドメイン (例 xxx.dev)
    • otherhost.domain.tld は DDNS でホスト用に設定した名前 (例 bastion.vm.xxx.dev)
/etc/ddclient.conf
- # use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
+ use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
+ protocol=googledomains,
+ login=my-auto-generated-username,
+ password=my-auto-generated-password
+ my.domain.tld, otherhost.domain.tld

ddclient を起動

systemctl start ddclient
systemctl enable ddclient
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?