⚠️ このエントリーは1年以上前に作成されたものです。情報の賞味期限切れにご注意ください。
自宅で使用している固定回線がフレッツ光+v6プラスなので、手持ちのRT2600acではなく、HGWでDHCPを行っていた。
NTTから貸与されているHGWがRS-500KIなんだけど、コイツはDHCPv4で配布するDNSサーバーのIPアドレスを指定できない。

各端末で毎回
1.1.1.1, 1.0.0.1
を指定するのもダルいので、重い腰を上げてDHCPv4をAdGuard Homeに移行した。
まずはRT2600acでAdGuard Homeを動かす。
SDカードに諸々を置くので、SDカードのマウントポイントを探る。
SynologyRouter> df -h
Filesystem Size Used Available Use% Mounted on
/dev/hda5 1.1G 910.6M 146.2M 86% /
/tmp 233.1M 740.0K 232.4M 0% /tmp
/run 233.1M 2.3M 230.8M 1% /run
/dev/shm 233.1M 0 233.1M 0% /dev/shm
/dev/bus/usb 229.9M 0 229.9M 0% /proc/bus/usb
/dev/sda6 1.9G 316.8M 1.5G 17% /volume1
/dev/sdq1 29.2G 199.4M 28.9G 1% /volumeUSB3/usbshare3-1
/dev/sdr1 458.3G 1.0G 457.2G 0% /volumeUSB1/usbshare
Bashマウントポイントが分かったら適当にディレクトリを掘る。
SynologyRouter> mkdir /volumeUSB3/usbshare3-1/@system
BashGitHubのリリースページから、linux_armv7なtarボールを落とす。
解凍もする。
SynologyRouter> cd /volumeUSB3/usbshare3-1/@system
SynologyRouter> wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.3/AdGuardHome_linux_armv7.tar.gz
SynologyRouter> tar xf AdGuardHome_linux_armv7.tar.gz
SynologyRouter> rm AdGuardHome_linux_armv7.tar.gz
Bashデータ用ディレクトリを用意する。
ここにはconfigとかDBとかが入る。
SynologyRouter> mkdir AdGuardHome/data
Bashサポートスクリプトを用意する。
とりあえず起動と停止用。
SynologyRouter> touch AdGuardHome/start.sh
SynologyRouter> touch AdGuardHome/stop.sh
SynologyRouter> chmod +x AdGuardHome/*.sh
BashAdGuardHome/start.sh
#!/bin/sh
nohup ./AdGuardHome -w . -c data/config.ini --pidfile /run/adguardhome.pid > /dev/null 2> /dev/null &
BashAdGuardHome/stop.sh
#!/bin/sh
kill `cat /run/adguardhome.pid`
Bashデーモンを用意する。
フォーラムによると、/usr/local/etc/rc.d/
配下に置けばいいらしいので、そのようにする。
SynologyRouter> touch /usr/local/etc/rc.d/adguardhome.sh
SynologyRouter> chmod +x /usr/local/etc/rc.d/adguardhome.sh
SynologyRouter> vi /usr/local/etc/rc.d/adguardhome.sh
Bash/usr/local/etc/rc.d/adguardhome.sh
#!/bin/sh
cd /volumeUSB3/usbshare3-1/@system/AdGuardHome
case "$1" in
start) ./start.sh ;;
stop) ./stop.sh ;;
status) echo not support ;;
esac
Bash一旦AdGuard Homeを起動して、管理者アカウントの設定をしたら終了させる。
SynologyRouter> /usr/local/etc/rc.d/adguardhome.sh start
# http://RT2600acのIPアドレス:3000 にアクセスして初期設定を行う
SynologyRouter> /usr/local/etc/rc.d/adguardhome.sh stop
Bashconfig.iniを編集して、DHCPv6からRAに変える。
SynologyRouter> vi AdGuardHome/data/config.ini
BashAdGuardHome/data/config.ini
...
dhcp:
enabled: true
interface_name: br0
dhcpv4:
gateway_ip: 172.16.35.254
subnet_mask: 255.255.252.0
range_start: 172.16.32.1
range_end: 172.16.32.239
lease_duration: 86400
icmp_timeout_msec: 1000
options: []
dhcpv6:
range_start: 2001::1 #無視されるので適当な値で良い
lease_duration: 86400
ra_slaac_only: true #RAを使うように変更
ra_allow_slaac: false
...
YAMLRS-500KIのDHCPを切ってから、再度AdGuard Homeを起動する。
SynologyRouter> /usr/local/etc/rc.d/adguardhome.sh start
BashこれでDHCPv4がAdGuard Homeになって、通知されるDNSサーバーもAdGuard Homeになる。
※ IPv6側はRAのままなので、IPv4のDNSよりもIPv6のDNSが優先されているとAdGuard Homeを迂回してしまう
