Обновление IP-адреса Bind9

Обновление IP-адреса Bind9

У меня есть 2 DNS-сервера (BIND9) (первичный, вторичный) и 1 домен. У меня есть веб-сервер с динамическим IP. Поэтому если мой IP изменился, я не смогу зайти на свой сайт через домен, потому что в DNS-серверах изменился IP-адрес доменной зоны.

Мой вопрос: Как мне обновить свою зону с моего сервера с моим публичным IP-адресом каждые x раз? Может ли кто-нибудь дать мне скрипт обновления через Linux (Debian 9)?

Спасибо

решение1

Вы можете использовать RFC 2136 «DNS UPDATE», либо написав скрипт для nsupdateинструмента, либо используя совместимый сторонний клиент:

Общий секретный ключ (TSIG)

  1. Сгенерируйте секретный ключ для аутентификации обновлений:

    $ tsig-keygen -r /dev/urandom | tee tsig-key.private
    key "tsig-key" {
        algorithm hmac-sha256;
        secret "7P6HbRZRJCmtauo/lV0jwN9wkMgBTUikhf9JuaTvYT4=";
    };
    

    Этот ключ известен только серверу и клиенту, и никому другому.

  2. Скопируйте напечатанный текст в свой named.conf. (У вас может быть несколько ключей для разных хостов, каждый с уникальным именем в key "…"поле.)

  3. Включите динамические обновления в конфигурации зоны:

    zone … {
        update-policy {
            /* grant <key_name> <policy> <record_types> */
            grant "tsig-key" name myserver.example.com ANY;
        };
    };
    

    Можно использовать различные политики; например, zonesubпозволяет обновлятьвесьзона, и subdomain dyn.example.comимеет очевидное значение.

  4. Выполнить обновления:

    $ nsupdate -k tsig-key.private
    > zone example.com
    > del myserver.example.com
    > add myserver.example.com 3600 A 100.64.1.1
    > send
    

Существуют различные клиенты, поддерживающие автоматическое обновление.

Открытый/закрытый ключ (SIG(0))

  1. Сгенерируйте пару ключей:

    $ dnssec-keygen -r /dev/urandom -T KEY -n USER myclient.example.com
    $ ls K*
    Kmyclient.example.com.+005+07399.key
    Kmyclient.example.com.+005+07399.private
    
  2. Файл *.keyсодержит открытый ключ — добавьте его в свою DNS-зону.

    Файл *.privateсодержит закрытый ключ — скопируйте его на клиентский компьютер. (На самом деле, скопируйтеоба(Файлы на клиентский компьютер.)

  3. Настраивается update-policy { }точно так же, как и TSIG.

  4. Выполняйте обновления таким же образом, используя nsupdate -k <filename>.private.

(Примечание: в то время как имена ключей TSIG являются произвольными, ключи SIG(0) хранятся в DNS и поэтому всегда именуются как имена хостов/поддоменов. Имя ключане(Однако оно должно соответствовать имени хоста, которое вы обновляете.)

Керберос (GSS-TSIG)

Это немного выходит за рамки нашего рассмотрения, но BIND9 также поддерживает это (в основном для использования с Active Directory).

Связанный контент