Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  ProFTP+PgSQL
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco
www.lissyara.su —> статьи —> FreeBSD —> программы —> DDNS+DHCP

DDNS+DHCP

Автор: bonh.


    Статья по установке и настройки DNS+DHCP (на сомом деле это называется так DminamicDNS+DHC).
Начнем с того что я опишу свою сеть:

  • Первый интерфейс смотрящий во внутрь – rl0 {10.10.10.1};
  • Второй интерфейс смотрящий наружу – rl1 {10.10.1.184};
  • DNS-сервера провайдера – {10.0.0.10; 10.0.0.1; 10.10.1.100;};
  • Доменное имя    -    bonh.ds.tomsk.gov.ru;
        И так первым делом нам нужно установить ДНС точнее не установить а настроить и «разрешить» так как данный демон включён по умолчанию  во FreeBSD называется он named а сама программа демона называется bind в моём случае это bind 9 (да кстати забыл сказать FreeBSD версии 5.5) перед тем как начать работу с DNS несколько общих определений из handbook’a  которые нам пригодятся:
  • Прямой запрос к DNS (forward DNS) - Преобразование имён хостов в адреса IP
  • Ориджин (origin) - Обозначает домен, покрываемый конкретным файлом зоны
  • named, bind, сервер имён - Общеупотребительные названия для обозначения пакета BIND, обеспечивающего работу сервера имён во FreeBSD.
  • Резолвер - Системный процесс, посредством которого машина обращается к серверу имён для получения информации о зоне
  • Обратный DNS (reverse DNS) - Операция, обратная прямому запросу к DNS; преобразование адресов IP в имена хостов
  • Корневая зона - Начало иерархии зон Интернет. Все зоны находятся под корневой зоной, подобно тому, как все файлы располагаются ниже корневого каталога.
  • Зона - Отдельный домен, поддомен или часть DNS, управляемая одним сервером.
       Ну и до кучи описание зон идущих по умолчанию в /etc/namedb/named.conf (тоже взятые из handbook’a) :
  • . - является корневой зоной
  • org. - домен верхнего уровня (TLD) в корневой зоне.
  • example.org. - является зоной в домене верхнего уровня (TLD) org..
  • - 1.168.192.in-addr.arpa является зоной, в которую включены все IP-адреса,   формирующие пространство адресов 192.168.1.*.
       Ну что думаю можно приступать. Файлы с которыми мы будем работать:  /etc/namedb/named.conf (главный файл демона named), /etc/namedb/bonh.ds.tomsk.gov.ru (файл в котором будет описана прямая зона моей, соответствие имя – IP-адрес ), /etc/namedb/10.10.10.rev (файв котором будет описан обратная зона моей сети, соответствие IP-адрес –имя хоста), /etc/namedb/localhost.rev (обратная зона локаль хоста), что бы до конца раскрыть тему в каталоге /etc/namedb также присутствует файл named.root который содержит адреса главных DNS (адреса не меняются годами) к которым наш DNS обращается что бы узнать какой либо адрес ,  но этот файл мы трогать не буди.
    Всё план действий известен можно начинать. Топаем в /etc/namedb и говорим:
    # sh make-localhost
    

       В результате чего в каталоге /etc/namedb/master должны появиться файлы localhost.rev для локальной адресной зоны и localhost-v6.rev для для конфигурации IPv6. Делаем:
    #mv –f /etc/namedb/master/*  /etc/namedb
    

       Всё можно приступать к главному действию!!! Редактировать файл /etc/namedb/named.conf. В показанном примере я оставил только нужное убрав всё лишнее:
    options {
            
    directory "/etc/namedb";
        
    pid-file "/var/run/named/pid";
        
    dump-file "/var/dump/named_dump.db";
        
    statistics-file "/var/stats/named.stats"//указывается стандартное
                    //месторасположение служебных файлов/директорий
        
        
    version         "Вроде бы Windows WP home edition, а вообще х.з. :)";
                
    //что демон будет отвечать на запрос о версии
            
    forwarders {
                        
    10.0.0.10;
                
    10.0.0.1;
                
    10.10.1.100;
    }; 
    //В данном разделе указываются авторитетные DNS-сервера на которые
    // наш сервер будет отправлять свои запросы. Я тут указал DNS’ы провайдера,
    // если вам провайдер не дал оных адресов, значит этого раздела не должно быть.

            
    query-source address port 53// нужен в случае наличия Firewall’а
    //Для того что бы DNS ходил по определённому порту по умолчанию это порт 53


    zone "." {
        
    type hint;
        
    file "named.root";
    }; 
    //Прописан файл в котором указаны адреса главных DNS. Взято из default’a

    zone "0.0.127.IN-ADDR.ARPA" {
        
    type master;
        
    file "localhost.rev";
    }; 
    //файл содержащий описания обратной зоны локаль хоста. Взят из default’a
      //немного подкорректирована последняя строчка 

    zone "bonh.ds.tomsk.gov.ru" {
        
    type master;
        
    file "bonh.ds.tomsk.gov.ru";
    }; 
    // Добрались до вкусненького, файл в котором будет описана моя прямая зона

    zone "10.10.10.in-addr.arpa" {
        
    type master;
        
    file "10.10.10.rev";
    }; 
    // А тут моя обратная зона.

    И так ещё раз пробежимся:
    forwarders
    Это должен быть разделенный точкой с запятой (не забудьте поставить
    последнюю точку с запятой) список серверов dns. Если ваш сервер dns не
    знает ответа, он будет запрашивать эти серверы dns.

    query-source address
    При помощи этой опции вы можете заставить сервер DNS использовать
    определенный порт, это очень полезно при использовании файрволла.

    zone "."
    Это зона для доменов верхнего уровня, файл 'named.root' содержит все
    корневые серверы (адреса не меняются годами, так что вы можете не
    редактировать этот фыйл).

    zone "bonh.ds.tomsk.gov.ru"
    Это определяет файл, в котором сервер DNS может найти информацию о
    домене 'bonh.ds.tomsk.gov.ru'

    zone "10.10.10.in-addr.arpa"
       Эта зона используется для обратных поисков (lookup) DNS. Как вы могли обратить внимание, адрес ip яаляется обратным и в нем пропущен последний номер. Это решение для проблемы 'яйца и курицы'. Откуда сервер DNS знает на каком сервере он может найти информацию, которую он ищет? Он разрешает адрес ip и опрашивает ответственный за это сервер, но как он опрашивает сервер? путем разрешения имени хоста. Вы видите, это небольшая проблема. Вот почему выбран этот метод. Я не стану углубляться в подробности, поскольку для установки сервера DNS в этом нет необходимости.
       Двигаемся дальше создаём файлы зон (прямой и обратный) нашего домена:
    Прямой:
    /etc/namedb > ee bonh.ds.tomsk.gov.ru
    

    $TTL 86400
     
    bonh.ds.tomsk.gov.ru. IN  SOA ns.bonh.ds.tomsk.gov.ru. admin.bonh.ds.tomsk.gov.ru. (
                    2006240801      ; Serial (YYYYDDMM plus 2 digit serial)
                    86400           ; refresh (1 day)
                    7200            ; retry (2 hours)
                    8640000         ; expire (100 days)
                    86400)          ; minimum (1 day)
    
                    IN      NS         ns.bonh.ds.tomsk.gov.ru.
                    IN      MX      10 mx.bonh.ds.tomsk.gov.ru.
    
    Localhost	 IN	 A	  127.0.0.1
    ns              IN      A       10.10.10.1
    mx              IN      A       10.10.10.1
    

       Заметьте, что все имена хостов, оканчивающиеся на ''.'', задают полное имя, тогда как все имена без символа ''.'' на конце считаются заданными относительно origin. Например, ns преобразуется в ns.bonh.ds.tomsk.gov.ru. В нашем воображаемом файле ориджином является bonh.ds.tomsk.gov.ru. (написано в самом начале).
       Записи в DNS: SOA - начало зоны ответственности, NS - авторитативный сервер имен, A - адрес хоста, MX – почта, PTR - указатель на доменное имя (используется в обратных зонах DNS). И так что же там все-таки написано:
    bonh.ds.tomsk.gov.ru. IN  SOA ns.bonh.ds.tomsk.gov.ru. admin.bonh.ds.tomsk.gov.ru. (
     2006082401      ; Serial (YYYYDDMM plus 2 digit serial)
      86400           ; refresh (1 day)
      7200            ; retry (2 hours)
      8640000         ; expire (100 days)
      86400)    
    

     
    bonh.ds.tomsk.gov.ru – доменное имя зоны
    ns.bonh.ds.tomsk.gov.ru. – авторитетный сервер имён в данной зоне
    admin.bonh.ds.tomsk.gov.ru. - человек, отвечающий за эту зону, адрес электронной почты с символом ''@'' замененным на точку. (<admin@bonh.ds.tomsk.gov.ru > становится admin.bonh.ds.tomsk.gov.ru)
    2006082401 -  последовательный номер файла. При каждом изменении файла зоны это число должно увеличиваться. В настоящее время для нумерации многие администраторы предпочитают формат ггггммддвв. 2006082401 будет означать, что файл последний раз изменялся 24.08.2006, а последнее число 01 означает, что это была первая модификация файла за день. Последовательный номер важен, так как он служит для того, чтобы вторичные серверы узнавали об обновлении зоны.
    IN      NS         ns.bonh.ds.tomsk.gov.ru.
    Это NS-запись. Такие записи должны иметься для всех серверов имён, которые будут отвечать за зону.
    IN      MX      10  mx.bonh.ds.tomsk.gov.ru.Это майл сервер в данной зоне число 10 означает его приоритет (например когда не один майл сервер, 10 наивысший приоритет затем идёт 20 и т.д.)
    
    Localhost	 IN	 A	  127.0.0.1
    ns              IN      A       10.10.10.1
    mx              IN      A       10.10.10.1
    

    тут уже сопоставляется имя хоста IP-адресу, замете я тут только прописал свой сервер и всё, остальное пропишет DHCP и будет вносить коррективы при каждом изменении, неправда ли удобно.
    Всё переходим к файлу отвечающему за обратную зону:
    /etc/namedb > ee 10.10.10.rev[/b]
    

    $TTL 86400
    
    @       IN      SOA     ns bonh.ds.tomsk.gov.ru. admin. bonh.ds.tomsk.gov.ru. (
                            2001220200      ; Serial (date, 2 digits version)
                            86400           ; refresh (1 day)
                            7200            ; retry (2 hours)
                            8640000         ; expire (100 days)
                            86400)          ; minimum (1 day)
            IN      NS      ns. bonh.ds.tomsk.gov.ru.
    
    1     IN      PTR     bonh.ds.tomsk.gov.ru.
    

       Тут практически то же самое только как Вы уже могли заметить вместо записи A (как это было в прямой зоне) стоит запись PTRи выходит что адресу 10.10.10.1 будет соответствовать хост bonh.ds.tomsk.gov.ru. Всё сервер имён настроен «разрешаем» его:
    #echo `named_enable=”YES”` >> /etc/rc.conf
    

    #echo `named_flage=”-u bind -g bind”` >> /etc/rc.conf
    

    Разрешаем работу  DNS в firewall’е добавляя следующие строки:
    ${fwcmd} add pass udp from any to any 53
    ${fwcmd} add pass udp from any 53 to any 
    

    И запускаем:
    #/usr/sbin/named –u bind
    

       Затем проверяем как он работает:
    #ping www.ru
    

       Если всё нормально двигаемся дальше, если что – то не так читаем handbook.
       Следующий этап устанавливаем DHCP одновременно прикручивая его к DNS. Почему то так сложилось, что во FreeBSD DHCP-сервер используется от компании ISC и называется он isc-dhcp3-server. Начнём установку DHCP с… правильно обновления портов, после обновления портов топаем /usr/ports/net/isc-dhcp3-server и говорим:
    #make install clean
    

       После чего появляется синенькое окошко, ничего там не трогаем пусть устанавливается. Когда всё установится идём в /usr/local/etc/ и делаем примерно следующие:
    cp ./dhcpd.conf.sample ./dhcpd.conf
    

    и рихтуем его под себя, хотя нет подождите у нас же не просто DNS и DHCP у нас с Вами DDNS&DHCP, а значит нам нужен секретный ключ, для общения этих двух серверов, а где еговзять?.. Ну… можно самому придумать, хотя все его генерируют, вот и мы с Вами не будим отделятся от стада (не тот это случай) и просто сгенерируем его, следующи образом:
    # dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
    

    Посмотрим что он нам нагенерил:
    # cat Kdhcp_updater.+157+46827.key
    

        DHCP_UPDATER. IN KEY 0 2 157 key==
    

    Ага что-то есть, ну а вот теперь то можно со спокойной совестью рихтовать конфиг, у меня получилось следующие:
    # dhcpd.conf
    //Глобальные параметры
    option domain-name "bonh.ds.tomsk.gov.ru"// доменное имя
    option domain-name-servers  ns.bonh.ds.tomsk.gov.ru// ДНС
    default-lease-time 720000//Поумолчанию на сколько
            // выдаётся IP (я поставил // по больше&#61514;)
    max-lease-time 720000//Максимально на сколько выдаётся IP, после чего мы 
            // его сами забираем
    min-lease-time 720000;    //Минимально на сколько выдаётся IP
    authoritative;            //Говорим что мы самые авторитетные &#61514;
    ddns-update-style ad-hoc// Тут мы говорим что мы ещё и DNS таблицу будем 
    // обновлять 

    key DHCP_UPDATER {
            
    algorithm hmac-md5;
            
    secret "key==";
    }; 
    //Тута мы вписываем вместо key== наш ключь.

    zone bonh.ds.tomsk.gov.ru.{
        
    primary 127.0.0.1;
        
    key DHCP_UPDATER;
    //Зоны которые мы будем обновлять всё оставляем так же как и у меня, меняем
        // лишь название зоны

    zone 10.10.10.in-addr.arpa.{
        
    primary 127.0.0.1;
        
    key DHCP_UPDATER;
    //Соответствует предыдущему
        
    log-facility local7// логии &#61514;

    // А вот и локальные параметры т.е. наша с вами, точнее моя, зона

    subnet 10.10.10.0 netmask 255.255.255.0 //сеть и её маска
          
    range  10.10.10.2 10.10.10.250//Диапазон адресов
          
    option routers 10.10.10.1;   //роутер
        
    option subnet-mask 255.255.255.0// Маска сети
        
    option netbios-name-servers 10.10.10.1//
        
    option netbios-dd-server 10.10.10.1//
        
    option netbios-node-type 8// Эти 3 параметра нужны при наличии самбы
        
    option broadcast-address 10.10.10.255// широковещательный адрес
        
    option ntp-servers 10.0.0.10//сервер точного времени
    }

    Всё, осталось только внести коррективы в /etc/namedb/named.conf, я его продублирую но уже со внесёнными в него изменениями и про комментирую их.
    options {
            
    directory "/etc/namedb";
        
    pid-file "/var/run/named/pid";
        
    dump-file "/var/dump/named_dump.db";
        
    statistics-file "/var/stats/named.stats";
        
    version         "Вроде бы Windows WP home edition, а вообще х.з. :)";
            
    forwarders {
                        
    10.0.0.10;
                
    10.0.0.1;
                
    10.10.1.100;
    }; 
    //При включении этого раздела сервер будет автоматически опрашивать
    // серверы имён которые здесь указаны, используя преимущества его кэша.
    // наличия нужной информации. Если соответствующий сервер имён провайдера
    //работает быстро и имеет хороший канал связи, то в результате такой настройки
    //вы можете получить хороший результат.

            
    query-source address port 53// нужен в случае наличия Firewall’а

    key DHCP_UPDATER {
            
    algorithm hmac-md5;
            
    secret "key==";
    }; 
    // Тот самый key 


    zone "." {
        
    type hint;
        
    file "named.root";
    };

    zone "0.0.127.IN-ADDR.ARPA" {
        
    type master;
        
    file "localhost.rev";
    };


    zone "bonh.ds.tomsk.gov.ru" {
        
    type master;
        
    file "bonh.ds.tomsk.gov.ru";
        
    allow-update key DHCP_UPDATER; };
        
    notify no;
    };
    zone "10.10.10.in-addr.arpa" {
        
    type master;
        
    file "10.10.10.rev";
        
    allow-update key DHCP_UPDATER; }; 
    };
    logging {
            
    channel update_debug {
                
    file "/var/log/named-update.log";
                
    severity  debug 3;
                print-
    category yes;
                print-
    severity yes;
                print-
    time     yes;
            };
            
    channel security_info    {
                
    file "/var/log/named-auth.log";
                
    severity  info;
                print-
    category yes;
                print-
    severity yes;
                print-
    time     yes;
            };
          
    category update update_debug; };
          
    category security security_info; };
          };
    # Эти строки вставляются для протоколирования работы сервера.
    #Взято из man dhcpd.conf
    # Предварительно необходимо создать файлы, которые указаны в оции  file ":"

    include "/etc/namedb/rndc.key";

    Теперяче дописываем в /etc/rc.conf следующие строки:
    dhcpd_enable=”YES”
    dhcpd_conf=”/usr/local/etc/dhcpd.conf”
    dhcpd_ifaces=”rl0” # на каком интерфейсе крутится DHCP
    

    Перезапускаем DNS:
    killall -1 named
    

    и запускаем DHCP:
    /usr/local/etc/rc.d/isc-dhcd -start
    

    Если всё нормально маздайки получат нужные параметры, а в директории /etc/namedb в ближайшем будущем появятся два новых файла bonh.ds.tomsk.gov.ru.jnl и 10.10.10.rev.jnl, а сами файлы bonh.ds.tomsk.gov.ru и 10.10.10.rev будут изменены.
    Вот и всё.
    Литература:
    http://opennet.ru
    http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/network-dns.html
    http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/network-dhcp.html
    http://forum.lissyara.su/viewtopic.php?t=753
    http://www.lissyara.su/?id=1138
    И прочие изыскания :)))



    размещено: 2006-08-24,
    последнее обновление: 2006-08-25,
    автор: bonh

    оценить статью:




  • Хостинг HOST-FOOD


    2010-03-09, terminus
    DNS zones

    Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
    2010-03-09, aspera
    Squid+AD (group access)

    Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
    2010-03-02, BlackCat
    Шлюз: Часть 4

    Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
    2010-03-01, BlackCat
    Шлюз: Часть 3

    Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 46 чел.
    За последние 30 мин было: 302 человек
    За сегодня было
    23151 показов,
    2992 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.2356 секунд
    Из них PHP: 31%; SQL: 69%; Число SQL-запросов: 81 шт.
    Исходный размер: 180737; Сжатая: 30563