DDNSサービスのデータをddclientで更新する(Ver3.10にも対応)

自宅サーバー設置に欠かせないDynamic DNSサービス。IPv4アドレスは変更が多いため、どうしてもこのサービスを利用することが必要ですが、これをIPv6アドレスにも対応させようとするのがここの目的です。

2023/03/24 追記

エラーが解消し、更新が可能になりました。設定は変更されております。

現在、ddclient version 3.10.0 にアップして後、dyndnsサービス のようです。 IPv6 の更新に支障をきたしており、更新ができません。ipv6=yes が無視される現象が発生しております。

1.ddclient-git と perl-net-inet6glue のインストール

perl-test-taint → perl-data-validate-ip → ddclient-git → perl-net-inet6glue の順でインストールします。

(1)専用ディレクトリの作成とパッケージのダウンロード

$ mkdir aur
$ cd aur
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perl-test-taint.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perようです。l-data-validate-ip.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/ddclient-git.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perl-net-inet6glue.tar.gz

(2)解凍

$ tar -xvf perl-test-taint.tar.gz以下の記事は、

( 以下省略しますが、同様にダウンロードしたパッケージをすべて解凍します。)

(3)解凍したディレクトリへの移動とインストール

$ cd perl-test-taint
$ makepkg -sri

 途中何回か、インストールするか?の質問に対してはすようです。べて  y を入力

(以下省略しますが、同様にディレクトリへ移動してインストールします。)

2022/02/01 追記—————————-

$ sudo pacman -S ddclient
# これだけですべてのパッケージがインストールされるようになりました。

$ sudo cp /etc/ddclient/ddclient.conf.pacsave /etc/ddclient/ddclient.conf

( ddclinet.gitを削除したとき、もとの設定ファイルがpacsaveという拡張子で残されているので、ddclient.confという設定ファイルを上書きします。)

この設定で、今までの設定した環境がそのまま活かせます。

 2.ddclientの設定または

(1) get-ipスクリプトと実行検眼の付与

$ sudo nano /usr/local/sbin/get-ip # get-ip スクリプトの作成

中身は、ネットワークインターフェースから グローバル IPv6 を取得するものです。

#!/bin/bash
/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

$ sudo chmod +x /usr/local/sbin/get-ip # 実行権限の付与

(2)ddclient.confをDynDNS用に修正

$ sudo nano /etc/ddclient/ddclient.conf

修正は、IPv6 を取得できれば IPv4 まで登録できることによるものです(ものすごく意訳です)。

######################################################################
daemon=300				# check every 300 seconds
syslog=yes				# log update msgs to syslog
pid=/var/run/ddclient.pid		# record PID in file.
ssl=yes					# use ssl-support.  Works with
                                        # ssl-library
					# new IP is added as argument.
use=cmd,cmd='/usr/local/sbin/get-ip'
server=members.dyndns.org,		\
protocol=dyndns2			\
login=xxxxx
password=xxxxx
# your-dynamic-host.dyndns
xxx.homeip.net

3.systemdによる起動

従来は、cronによる定期実行を設定しておりましたが、systemd によるデーモン起動に変更しました。

(1)設定フィアルの修正

ネットワークが確立しないうちに、ddclient が起動しないよう、ユニットファイルの修正が必要です。

(2)起動と有効化

$ sudo systemctl start ddclient

$ sudo systemctl enable ddclient

実行結果では、WARNING やらFAILEDが出ていますが、動作に問題ないようです。

コメント

タイトルとURLをコピーしました