Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    RFC 2136 Dynamic DNS updates история прикручивания

    Scheduled Pinned Locked Moved Russian
    1 Posts 1 Posters 3.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wiz111
      last edited by

      Есть куча удаленных офисов с пфами и динамическими адресами, давно хотел прикрутить динамический днс на свою зону, чтоб всегда удаленные пфы были под рукой.

      собственно надо чтоб условно test.ddns.example.ru указывал на ip pfsens-а зона example.ru(ddns.example.ru) у меня

      Сделал отдельную зону(унес на тестовый сервер домен 3-го уровня) для динамич адресов ( мне так просто удобней)

      Порядок действий:
      Настройка DNS сервера (BIND 9.7.0 FreeBSD 8.0-RELEASE-p2 ):

      named.conf

      
      options {
               directory       "/etc/namedb/writable";                       
      // это нужно чтобы бинд мог писать в рабочую директорию (можно просто унести файл зоны туда куда он может писать при обновлении пишет файл журнала jnl)
      // выставил соотв права для пользователя bind (иначе будет ругаться потом в логах  General: ddns.example.ru.jnl: create: permission denied )
      
      ...................................
      }
      
      include "../dns.keys.conf";
      
      zone "ddns.example.ru" {
      type master;
      file "ddns.example.ru";
      update-policy {
              grant test.key name test.ddns.example.ru A;
                  };
      
      };
      
      

      теперь по порядку:
      в начале генерим ключ командой

      
      dnssec-keygen -a HMAC-MD5 -b 128 -n HOST test.ddns.example.ru.
      
      

      получаем на выходе 2 файла примерно такого вида:
      Ktest.ddns.example.ru.+157+23443.key
      Ktest.ddns.example.ru.+157+23443.private
      из них нам нужен только ключ последовательность примерно выглядит так:
      cuwRQCab5DhEPHKk0jnuwQ==
      есть в обоих файлах
      далее
      заносим его в файл
      dns.keys.conf

      
      key test.key {
      algorithm hmac-md5;
      secret "cuwRQCab5DhEPHKk0jnuwQ==";
      };
      
      

      Теперь зона  :o. в самом файле зоны главное правильно указать SOA запись(у меня ещё A и NS указывют на него же), т.к. pfsense сам узнает SOA для зоны которую выбирает из поля Hostname (Services->Dynamic DNS->RFC 2136 Dynamic DNS updates) и затем туда отправляет обновленя , ну и DNS сервер на pfsense должен быть указан иначе ничего не получится.

      update-policy {
              grant test.key name test.ddns.example.ru A;
                  };

      это в общем-то значит разрешить с ключом test.key обновлять A запись test.ddns.example.ru

      Настройка pfsense у меня под рукой был 1.2.2 не эмбедед (согласно написанного выше)
      Services->Dynamic DNS->RFC 2136 Dynamic DNS updates
      ставим галочку enable
      Hostname : test.ddns.example.ru
      тут именно имя т.к. он потом судя по всему узнает SOA для ddns.example.ru и кидает туда обновления
      TTL: по вкусу
      Key name: test.key
      Key type : host
      Key: cuwRQCab5DhEPHKk0jnuwQ==
      жмем save
      смотрим логи бинда:
      должны увидеть что-то похожее:

      
      21-Apr-2010 22:29:56.497 update: client 11.22.33.44#36231: updating zone 'ddns.example.ru/IN': deleting rrset at 'test.ddns.example.ru' A
      21-Apr-2010 22:29:56.497 update: client 11.22.33.44#36231: updating zone 'ddns.example.ru/IN': adding an RR at 'test.ddns.example.ru' A
      
      

      11.22.33.44 ip адрес wan интерфейса pfsens-а

      проверяем nslookup-ом, можно сделать rndc freeze ddns.example.ru и посмотреть на файл зоны там будут новые записи, потом главное не забыть сделать rndc thaw ddns.example.ru (пока во фризе обновления не принимаются  о чем можно прочитать в логе)

      Надеюсь кому-нибудь пригодится.
      З.Ы. поправляйте/дополняйте, если где ошибся не серчайте  :D

      З.Ы.Ы. на pfsense 1.2.3 появилось заветное поле server где можно просто вписать имя сервера куда отсылать обновления :)

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.