ダイナミックDNSとは
DNSとは
DNS(Domain Name Service)とは、IPアドレスとドメイン名を紐づけするサービスのことです。これによって、ユーザーはサーバーにアクセスするときに、無機質な数字の羅列である「IPアドレス」を入力する代わりに、意味を持った文字列である「ドメイン名」を入力することでサーバーにアクセスできるようになります。
ダイナミックDNSとは
このように、現在のインターネットでは欠かすことのできないDNSですが、自宅サーバーなどでプロバイダーからの動的なIPアドレスを使用している場合、ちょっと困った事情が発生します。専用回線とは違い、動的IPアドレスは不定期に変化するので、サーバーのIPアドレスが変化したときに、ドメイン名と紐づけられているIPアドレスも更新することが必要になります。そこで登場するのがダイナミックDNSです。
ダイナミックDNSでは、自宅サーバー側から定期的にIPアドレスをDNS側に通知して、IPアドレスが変化したときにはドメイン名とIPアドレスを紐づけをし直すことによってこの問題を解決します。これにより、自宅サーバー側のIPアドレスが変化しても、同じドメイン名でアクセスすることができるようになります。
Duck DNS
Duck DNSは現在注目を集めているダイナミックDNSサーバーの一つで、無料で利用することができます。
ドメインの取得
まず、Duck DNSのサイトにアクセスして任意の方法でサインインします。
https://www.duckdns.org/
サインインしたら登録したいサブドメインを入力して、「add domain」ボタンをクリックしてドメインを取得します。入力したサブドメインが"mydomain"の場合、取得できるドメイン名は"mydomain.duckdns.org"となります。取得できるドメインは5つまでです。
IP通知
IP通知プログラムのインストール
先に書いたとおり、ダイナミックDNSでは自宅サーバー側からDDNS側に定期的にIPアドレスを通知する必要があります。
Arch Linuxでは、AURにDuck DNSのIP通知に特化したパッケージ"duckdns"が存在します。ここでは、IPv6にも対応している"duckdns-ipv6"パッケージをインストールします。
$ yay -S duckdns-ipv6
設定ファイルの編集
つぎに、設定ファイルを編集します。duckdnsパッケージのデフォルト設定ファイルは、/etc/duckdns.d/default にあるので、これを編集します。
DOMAINS="mydomain"
TOKEN="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
ここでmydomainには先程取得したサブドメイン名を、TOKENには自身のDuck DNSのTOKENを記入してください。
IP通知プログラムの起動
設定が終わったら、IP通知プログラムを起動します。
$ sudo systemctl enable duckdns.timer
$ sudo systemctl start duckdns.timer
これで、10分毎にDuck DNSサーバーへ自宅サーバーのIPアドレスが通知され、自宅サーバーのIPアドレスが変化しても、常に取得したドメイン名でアクセスできるようになります。
まとめ
ダイナミックDNSは、動的にIPアドレスが変化する環境でも、常に同じドメイン名でアクセスできるようにするとても便利なものです。プロバイダからの動的IPアドレスを使って自宅サーバーを立てている場合にはぜひとも活用したいツールと言えるでしょう。
それでは、よいLinuxサーバーライフを。