rev="post-919" 1 Comment
Все по-често започнах да се сблъсквам с динамични ИП адреси, което понякога прави някои мероприятия като GRE/VPN тунели, предизвикателство,
Ще опиша основно конфигурацията на сървърната част (bind). Клиентските скриптове са въпрос на фантазия, но по-късно ще добавя няколко.
– Дистрибуция CentOS и вградения bind9
– Зоната, в която ще се добавят динамичните записи е dyn.kamenitza.org
Генериране на ключа за актуализацията:
dnssec-keygen -a hmac-md5 -b 128 -n HOST dyn.kamenitza.org.
Ще създаде 2 файла, от които взимаме ключа и го добавяме в named.conf следното:
key "my-key" {
algorithm hmac-md5;
secret "4SHxlLTukl587eafb4wxvg==";
};
В named.conf ще добавим и зоната:
zone "dyn.kamenitza.org" IN {
type master;
file "dyn.kamenitza.org";
allow-update { key my-key; };
};
Това е съдържанието на файла със зоната:
$ORIGIN .
$TTL 86400 ; 1 day
dyn.kamenitza.org IN SOA ns1.kamenitza.org. admin.kamenitza.org. (
2018051200 ; serial
7200 ; refresh (2 hours)
900 ; retry (15 minutes)
1209600 ; expire (2 weeks)
3600 ; minimum (1 hour)
)
NS ns1.kamenitza.org.
NS ns2.kamenitza.org.
Файла със зоната, както и директорията, в която се намира трябва да са с достатъчни права, за да може bind/named потребителя да пише.
Проба може да направим със следния скрипт:
nsupdate -y 'my-key:4SHxlLTukl587eafb4wxvg==' -d
>update add test.dyn.kamenitza.org 300 A 1.2.3.4
>send
На екрана би трябвало да излезе детайлна информация за това, какво се случва. Ако няма грешки, това ще създаде А запис test.dyn.kamenitza.org, с живот 5 минути, сочещ към 1.2.3.4.
Скриптче за Микротик:
:local ownip [ /ip address get [/ip address find interface=WAN ] address ]
:local ownip [:pick $ownip 0 [:find $ownip "/"]]
/tool dns-update name=mikrotik zone=dyn.kamenitza.org address=$ownip key-name=dyn-key key="4SHxlLTukl587eafb4wxvg==" dns-server=1.1.1.1
:log info ("Dynamic DNS updated to $ownip") ttl=300
В новите версии на bind алгоритъма от примера вече не работи. Заместваме го с друг:
dnssec-keygen -a ED25519 -n HOST -T KEY dyn.kamenitza.org