Skip to content

By Тодор in Linux, Mikrotik

Все по-често започнах да се сблъсквам с динамични ИП адреси, което понякога прави някои мероприятия като 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

Comment Feed

One Response

  1. В новите версии на bind алгоритъма от примера вече не работи. Заместваме го с друг:
    dnssec-keygen -a ED25519 -n HOST -T KEY dyn.kamenitza.org



Some HTML is OK

or, reply to this post via trackback.