Настраиваем DNS и DHCP с хранением информации в LDAP::Журнал СА 2.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 5101
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 6343
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 7599
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7922
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6979
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Настраиваем DNS и DHCP с хранением информации в LDAP

Архив номеров / 2007 / Выпуск №2 (51) / Настраиваем DNS и DHCP с хранением информации в LDAP

Рубрика: Администрирование /  Продукты и решения

Василий Озеров

Настраиваем DNS и DHCP с хранением информации в LDAP

Система DNS очень важна для работы Интернета в целом, поэтому стоит посвятить достаточное количество времени на изучение принципов работы системы и на настройку сервера имен. Сегодня я расскажу о настройке bind для хранения информации о зонах в базе данных LDAP.

Очень часто в локальных сетях, будь то большие сети крупных организаций или же небольшие «домашние» сети, устанавливается и настраивается локальный DNS-сервер. Ставят его для удобства работы или для кэширования запросов к DNS-серверам провайдера. Для UNIX-систем стандартом среди DNS-серверов является bind. По умолчанию bind хранит все записи о зонах в простых текстовых файлах, с которыми не всегда удобно работать. Например, если у вас есть несколько DNS-серверов на разных машинах, то править файлы зон через шелл не очень удобно, так как придется выполнить большое число однообразных действий, начиная от ввода логина, заканчивая перезагрузкой DNS-сервера. Если у вас в сети настроен LDAP-сервер, то разумнее всего хранить прямые и обратные зоны DNS-сервера в LDAP. Разумнее, потому что тогда получается централизованное хранилище данных, с которым легко можно работать из различных ОС, да и программ для работы с LDAP-сервером очень много, как для UNIX, так и для Windows. Еще один довод для хранения информации в LDAP – динамическое обновление зон. DHCP может не посылать запросы DNS-серверу на обновление зоны, тем самым нагружая DNS-сервер, а может сам обновить запись на LDAP-сервере. Надеюсь, вы задумались о LDAP как о хранилище данных DNS-сервера. Теперь приступим к практической реализации. Сразу хочу описать сеть, для которой мы будем настраивать DNS-сервер:

  • Адрес сети: 192.168.1.0/24.
  • Домен: teachers.
  • IP-адрес DNS-сервера: 192.168.1.254 (hostname: dns).
  • IP-адрес LDAP-сервера: 192.168.1.250 (hostname: spider).

Итак, приступаем к настройке:

  • Система: FreeBSD-6.1-p6 (и на LDAP- и на DNS-сервере).
  • Корень LDAP-сервера: dc=l1523,dc=ru.

Если у вас не настроен LDAP-сервер, то можете почитать о его настройке на сайте: http://www.fr33man.ru/index.php?newsid=5б.

Настройка LDAP

Сначала необходимо подключить две схемы к нашему серверу: dnsZone.schema и dhcp.schema. Схема dnsZone поставляется по умолчанию с сервером slapd, а вот схема dhcp появляется после установки DHCP-сервера. Забирайте dhcp.schema отсюда: http://fr33man.ru/files/dhcp.schema.

Редактируем slapd.conf, добавляем:

include     /usr/local/etc/openldap/schema/dnszone.schema

include     /usr/local/etc/openldap/schema/dhcp.schema

После этого перезапускаем slapd:

spider@/root/> /usr/local/etc/rc.d/slapd.sh restart

Stopping slapd.

Starting slapd.

Все, теперь можно добавить необходимые записи в LDAP. Я предоставляю ldif-файл с комментариями:

Dns.ldif

# Добавляем контейнер, где будут храниться все зоны нашего DNS-севера

dn: ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: organizationalUnit

ou: dns

description: domain zones

# Добавляем прямую зону teachers

dn: zoneName=teachers,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: teachers

relativeDomainName: teachers

# SOA-запись для зоны teachers

dn: relativeDomainName=@,zoneName=teachers,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: teachers

relativeDomainName: @

nSRecord: ns.teachers.

sOARecord: ns.teachers. root.ns.teachers. 1 8H 2H 1W 1D

# Добавляем запись вида:

# ns       IN     A      192.168.1.254

dn: relativeDomainName=ns,zoneName=teachers,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: teachers

relativeDomainName: ns

dNSClass: IN

aRecord: 192.168.1.254

# Добавляем запись вида:

# spider   IN     A      192.168.1.250

dn: relativeDomainName=spider,zoneName=teachers,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: teachers

relativeDomainName: spider

dNSClass: IN

aRecord: 192.168.1.250

# Добавляем новую обратную зону 1.168.192.in-addr.arpa

dn: zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: 1.168.192.in-addr.arpa

relativeDomainName: 1.168.192.in-addr.arpa

# SOA-запись для зоны 1.168.192.in-addr.arpa

dn: relativeDomainName=@,zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

relativeDomainName: @

nSRecord: ns.teachers.

sOARecord: ns.teachers. root.ns.teachers. 1 8H 2H 1W 1D

zoneName: 1.168.192.in-addr.arpa

# Добавляем запись вида:

# 254      PTR    ns.teachers.

dn: relativeDomainName=254,zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: 1.168.192.in-addr.arpa

relativeDomainName: 254

pTRRecord: ns.teachers.

# Добавляем запись вида:

# 250      PTR    spider.teachers.

dn: relativeDomainName=250,zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru

objectClass: top

objectClass: dNSZone

zoneName: 1.168.192.in-addr.arpa

relativeDomainName: 250

pTRRecord: spider.teachers.

Может показаться, что добавлять записи в файлы зон намного удобнее, чем в LDAP-сервер, но кто вас заставляет составлять ldif-файлы и добавлять их через shell? Можете использовать программы для работы с LDAP-сервером, например ldapadmin: http://ldapadmin.sourceforge.net. Я давно пользуюсь этой программой и ни разу не испытывал неудобств.

Вернемся к добавлению записей в LDAP. Составленный нами ldif-файл нужно добавить в директории LDAP:

spider@/root/> ldapadd -x -D "cn=root,dc=l1523,dc=ru" -W -f dns.ldif

Enter password:

Первоначальная настройка LDAP-сервера закончена.

Настройка DNS-сервера

Первым делом необходимо установить bind. По умолчанию bind уже установлен во FreeBSD, но он не поддерживает работу с LDAP-сервером, поэтому необходимо установить другую версию bind, которая поддерживает работу с LDAP (bind9-sdb-ldap):

dns@/root> cd /usr/ports/dns/bind9-sdb-ldap/

dns@/usr/ports/dns/bind9-sdb-ldap> make install clean

Проверим, что установился нужный нам bind.

dns@/> pkg_info | grep bind

bind9-sdb-ldap-9.3.2 The well known Bind9, patched for use of an LDAP based back

dns@/> /usr/local/sbin/named -v

BIND 9.3.2

Bind-sdb-ldap установился. Теперь создадим конфигурационный файл named.conf и подготовим сервис к запуску:

Named.conf

# Описание списков доступа к bind

acl lan { 192.168.1.0/24; };

acl transfers { 127.0.0.1; };

# Конфигурация rndc-ключа. Сгенерировать ключ можно командой

# rndc-confgen, вывод которой нужно вставить в named.conf

key "rndc-key" {

      algorithm hmac-md5;

      secret "V0spN5Z3OWgkGG2Bt0SdKQ==";

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

# Опции демона named

options {

directory "/etc/namedb";

pid-file "/var/run/named/pid";

dump-file "/var/dump/named_dump.db";

statistics-file "/var/stats/named.stats";

# IP-адреса, на которых named будет слушать запросы

listen-on { 127.0.0.1; 192.168.1.254; }

# Если named не найдет адрес, запрашиваемый клиентом,

# в локальных базах или кэше, то запрос перенаправится

# DNS-серверам провайдера

forward only;

# DNS-сервера провайдеров

forwarders { 192.168.49.100; 172.16.0.3; };

# Разрешение запросов

allow-query { lan; trusted; };

allow-recursion { trusted; lan; };

};

# Описание зоны teachers

zone "teachers." {

# Наш сервер является первичным для этой зоны

type master;

# Где располагается зона.

# Формат записи: database «ldap протокол:

# //IP_адрес_LDAP_сервер/_путь_к_нужной_зоне_ ttl»

# Указанный ttl будет использован по умолчанию, если не будет указан другой ttl

database "ldap ldap://192.168.1.250/zoneName=teachers,ou=dns,dc=l1523,dc=ru 178600";

# Права доступа

allow-query { lan; trusted; };

allow-transfer { transfers;};

};

# Описание обратной зоны: 1.168.192.in-addr.arpa

zone "1.168.192.IN-ADDR.ARPA." {

# Наш сервер primary

type master;

# Где хранится зона

database "ldap ldap://192.168.1.250/zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru 178600";

# Права доступа

allow-query { lan; trusted; };

allow-transfer { transfers; };

};

Все, конфигурационный файл составлен, подготавливаем named к запуску. Разрешаем запуск named:

dns@/root/> echo named_enable=\"YES\" >> /etc/rc.conf

Меняем путь к программе DNS-сервера. Это нужно для того, чтобы не запустился стандартный bind, который не умеет работать с LDAP. Стандартный bind лежит в /usr/sbin/named:

dns@/root/> echo named_program=\"/usr/local/sbin/named\" >> /etc/rc.conf

Теперь выставляем необходимые права на /var/named:

dns@/root/> chown bind:bind /var/named/etc/namedb/master/var/named/etc/namedb/dynamic

dns@/root/> chown –R bind:bind /var/named/var/

Теперь можно запускать DNS-сервер:

dns@/root/> /etc/rc.d/named start

Stating named.

dns@/root/> ps ax | grep named

275  ??  Ss     0:01,64 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/r

464  ??  Is     0:31,00 /usr/local/sbin/named -u bind -t /var/named

Bind запустился. Давайте проверим его на работоспособность. Проверяем работу утилитой rndc:

dns@/root> rndc status

number of zones: 2

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/1000

tcp clients: 0/100

server is up and running

dns@/root> dig @127.0.0.1 teachers. axfr

; <<>> DiG 9.3.2 <<>> @127.0.0.1 teachers. axfr

; (1 server found)

;; global options:  printcmd

teachers.            178600  IN   SOA   ns.teachers. root.ns.teachers. 1 28800 7200 604800 86400

teachers.            178600  IN   NS    ns.teachers.

spider.teachers.     178600  IN   A     192.168.1.250

ns.teachers.         178600  IN   A     192.168.1.254

;; Query time: 26 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Jan 11 22:27:24 2007

;; XFR size: 17 records (messages 1)

dns@/root> dig @127.0.0.1 1.168.192.in-addr.arpa axfr

; <<>> DiG 9.3.2 <<>> @127.0.0.1 1.168.192.in-addr.arpa axfr

; (1 server found)

;; global options:  printcmd

1.168.192.in-addr.arpa.     178600 IN  SOA  ns.teachers. root.ns.teachers. 1 28800 7200 604800 86400

1.168.192.in-addr.arpa.     178600 IN  NS   ns.teachers.

250.1.168.192.in-addr.arpa. 178600 IN  PTR  spider.teachers.

254.1.168.192.in-addr.arpa. 178600 IN  PTR  ns.teachers.

;; Query time: 7 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Jan 11 22:28:28 2007

;; XFR size: 12 records (messages 1)

Как видите, все работает. Единственное замечание: я запрашивал полный трансфер зоны с DNS-сервера, в моем конфигурационном файле выставлены права доступа, которые разрешают трансфер зон только IP-адресу 127.0.0.1, поэтому не пытайтесь скачать зону с другого компьютера. Все, теперь можно переходить к настройке DHCP-сервера.

Настройка DHCP-сервера

Сначала необходимо установить DHCP-сервер:

spider@/root> cd /usr/ports/net/isc-dhcp3-server/

spider@/usr/ports/net/isc-dhcp3-server> make install clean

Сервер установлен. Теперь переходим к его настройке:

/root/dhcpd.conf

# Время, на которое выдается IP

default-lease-time 14400;

# Время, через которое клиент обязан вернуть IP

max-lease-time 28800;

log-facility local7;

authoritative;

# Не проводить обновление зон

ddns-update-style none;

# Описание сети 192.168.1.0/24

subnet 192.168.1.0 netmask 255.255.255.0 {

    range 192.168.1.10 192.168.1.200;

    ignore client-updates;

    option domain-name "teachers";

    option domain-name-servers 192.168.1.254;

    option routers 192.168.1.254;

    option default-ip-ttl 64;

    option default-tcp-ttl 64;

}

Вот такой конфигурационный файл получился. Теперь его необходимо перевести в ldif-формат и добавить в LDAP. В поставку isc-dhcp-server входит perl-скрипт dhcpd-conf-to-ldap.pl. Давайте откроем его и отредактируем параметры в самом начале:

# Этот параметр можно не менять, будет использован  результат, который вернет функция hostdomain()

my $domain = hostdomain();

# Корень сервера ldap

my $basedn = "dc=l1523,dc=ru";

 # В этой строке скрипт заменяет все «.», указанные в $basedn на «,dc=»

 $basedn =~ s/\./,dc=/g;

# Параметр можно не изменять, будет использован результат вызова функции hostname(),

# где будут храниться настройки DHCP

my $server = hostname();

my $dhcpcn = 'dhcp';  # CN of DHCP config tree

my $dhcpdn = "cn=$dhcpcn, $basedn";  # DHCP config tree DN

my $second = '';  # secondary server DN / hostname

my $i_conf = '';  # dhcp.conf file to read or stdin

my $o_ldif = '';  # output ldif file name or stdout

my @use    = ();  # extended flags (failover)

Все, теперь можно запускать:

spider@/root/> dhcpd-conf-to-ldap.pl < /root/dhcpd.conf

Creating LDAP Configuration with the following options:

        Base DN: dc=l1523,dc=ru

        DHCP DN: cn=dhcp, dc=l1523,dc=ru

        Server DN: cn=spider, dc=l1523,dc=ru

 

dn: cn=spider, dc=l1523,dc=ru

cn: spider

objectClass: top

objectClass: dhcpServer

dhcpServiceDN: cn=dhcp, dc=l1523,dc=ru

 

dn: cn=dhcp, dc=l1523,dc=ru

cn: dhcp

objectClass: top

objectClass: dhcpService

dhcpPrimaryDN: cn=spider, dc=l1523,dc=ru

dhcpStatements: default-lease-time 14400

dhcpStatements: max-lease-time 28800

dhcpStatements: log-facility local7

dhcpStatements: authoritative

dhcpStatements: ddns-update-style none

 

dn: cn=192.168.1.0, cn=dhcp, dc=l1523,dc=ru

cn: 192.168.1.0

objectClass: top

objectClass: dhcpSubnet

objectClass: dhcpOptions

dhcpNetMask: 24

dhcpRange: 192.168.1.10 192.168.1.200

dhcpStatements: ignore client-updates

dhcpOption: domain-name "teachers"

dhcpOption: domain-name-servers 192.168.1.254

dhcpOption: routers 192.168.1.254

dhcpOption: default-ip-ttl 64

dhcpOption: default-tcp-ttl 64

 

Done.

Скопируем вывод скрипта в файл dhcp.ldif и добавим его командой:

spider@/root/> ldapadd –x –D "cn=root,dc=l1523,dc=ru" –W –f dhcp.ldif

Теперь составим конфигурационный файл DHCP-сервера, в котором укажем параметры подключения к LDAP-серверу.

/usr/local/etc/dhcpd.conf

# IP-адрес или hostname LDAP-сервера

ldap-server "spider.teachers";

# Порт, который слушает LDAP

ldap-port 389;

# Учетная запись, под которой будет происходить подключение к LDAP-серверу.

ldap-username "cn=root,dc=l1523,dc=ru";

# Пароль учетной записи

ldap-password "123456";

# Корень LDAP-сервера

ldap-base-dn "dc=l1523,dc=ru";

ldap-method dynamic;

Теперь запускаем DHCP-сервер:

spider@/root/> echo dhcpd_enable=\"YES\" >> /etc/rc.conf

spider@/root/> /usr/local/etc/rc.d/isc-dhcpd.sh start

Starting dhcpd.

Internet Systems Consortium DHCP Server V3.0.5rc2

Copyright 2004-2006 Internet Systems Consortium.

All rights reserved.

For info, please visit http://www.isc.org/sw/dhcp/

TLS session successfully started to spider.teachers

Wrote 17 leases to leases file.

Listening on BPF/xl0/00:0a:5e:42:b8:01/192.168.1/24

Sending on   BPF/xl0/00:0a:5e:42:b8:01/192.168.1/24

Sending on   Socket/fallback/fallback-net

Отлично! Сервер запустился. Осталось настроить динамическое обновление DNS-зон. К сожалению, пакет bind-sdb-ldap не умеет сам обновлять записи в LDAP, так же как и DHCP. Поэтому придется использовать скрипт, написанный Travis Groth. Подробнее об этом можете почитать на странице: http://www.venaas.no/ldap/bind-sdb. Давайте скачаем и настроим скрипт:

spider@/root/> mkdir dhcp

spider@/root/> cd dhcp

spider@/root/dhcp/> fetch http://www.venaas.no/ldap/bind-sdb/dhcp2ldapd-1.1.gz

dhcp2ldapd-1.1.gz                       100% of 2185  B 1279  Bps

spider@/root/dhcp/> gunzip dhcp2ldapd-1.1.gz

spider@/root/dhcp/> ll

total 10

drwxr-xr-x  2 root  wheel   512B 11 янв 23:18 .

drwxr-xr-x  8 root  wheel   1,5K 11 янв 23:18 ..

-rw-r--r--  1 root  wheel   5,3K  3 май  2005 dhcp2ldapd-1.1

Теперь отредактируем скрипт. В самом начале:

Dhcp2ldapd-1.1

#!/usr/bin/perl

# Файл, где хранится информация о выданных адресах DHCP-сервером

$LEASES = "/var/db/dhcpd/dhcpd.leases";

# Домен

$DOMAIN = "teachers";

# Обратная зона

$REVERSE = "1.168.192.in-addr.arpa";

# Где в LDAP хранятся зоны прямого и обратного преобразования

$FORWARD_BASE = "zoneName=teachers,ou=dns,dc=l1523,dc=ru";

$REVERSE_BASE = "zoneName=1.168.192.in-addr.arpa, ?

    ou=dns,dc=l1523,dc=ru";

# Пользователь для подключения к LDAP-серверу

$USER = 'cn=root,dc=l1523,dc=ru';

# Пароль пользователя

$PASSWORD = "9vpIj9";

# Хост, на котором работает LDAP-сервер

$LDAP_HOST = 'localhost'

# Время проверки файла в секундах

$UPDATE_TIME = 30;

# Автопроверка

$AUTO_VERIFY = 0;

Еще необходимо подправить две строчки в скрипте, потому что у меня сеть с маской 24, а скрипт добавляет записи для маски 16. Поэтому правим строку 172 и 174, меняем там $fourth.$third на $fourth. Все, после этого можно запускать наш скрипт, но сначала составим скрипт запуска:

#!/bin/sh

case "$1" in

start)

    if [ -f /var/run/dhcpd2ldap.pid ]

    then

        echo "Скрипт dhcpd2ldap уже запущен!"

    else

        daemon -f -p /var/run/dhcpd2ldap.pid /root/dhcp2ldapd-1.1

        echo "Скрипт dhcpd2ldap запущен!"

    fi

    ;;

stop)

    if [ -f /var/run/dhcpd2ldap.pid ]

    then

        kill -TERM `cat /var/run/dhcpd2ldap.pid`

        rm -f /var/run/dhcpd2ldap.pid

        echo "Скрипт dhcpd2ldap остановлен!"

    else

        echo "Скрипт dhcpd2ldap не запущен!"

    fi

    ;;

*)

    echo "Использование: ${0##*/}: { start | stop }" >&2

    exit 64

    ;;

esac

Такой скрипт кладем в /usr/local/etc/rc.d/ и выставляем нормальные права:

spider@/usr/local/etc/rc.d/> chmod 0755 dhcpd2ldap.sh

spider@/usr/local/etc/rc.d/> chown root:wheel dhcpd2ldap.sh

spider@/usr/local/etc/rc.d/> ll dhcpd2ldap.sh

-rwxr-xr-x  1 root  wheel   586B 19 янв 12:19 dhcpd2ldap.sh

Теперь пробуем запустить:

spider@/usr/local/etc/rc.d/> ps ax | grep dhcp

  483  ??  Is     0:01,56 /usr/local/sbin/dhcpd -cf /usr/local/etc/dhcpd.conf -

54964  p0  R+     0:00,00 grep dhcp

spider@/usr/local/etc/rc.d/> ./dhcpd2ldap.sh start

Скрипт dhcpd2ldap запущен!

spider@/usr/local/etc/rc.d/> ps ax | grep dhcp

  483  ??  Is     0:01,56 /usr/local/sbin/dhcpd -cf /usr/local/etc/dhcpd.conf -

54967  ??  Ss     0:00,40 /usr/bin/perl /root/dhcp2ldapd-1.1 (perl5.8.8)

54969  p0  R+     0:00,00 grep dhcp

Как видите, скрипт запустился успешно. Переходим к тестированию нашей связки.

Тестирование

Давайте для начала посмотрим pid DNS-сервера, для того чтобы далее можно было проконтролировать, что named не перезапускался:

shield@/root> ps ax | grep named

  264  ??  Ss     0:00,50 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/r

  448  ??  Ss     1:17,13 /usr/local/sbin/named -u bind -t /var/named

22315  p0  R+     0:00,00 grep named

Pid named – 448. Теперь проверим, резолвится ли адрес машины, которую мы вскоре добавим в нашу сеть. Имя машины – fr33man:

shield@/root> host fr33man

Host fr33man not found: 3(NXDOMAIN)

shield@/root> ldapsearch -LLL -x -b 'dc=l1523,dc=ru' -H ldap://spider/ 'relativeDomainName=fr33man'

Адрес не резолвится, в LDAP также нет записей об этом адресе. Теперь подключим машину к сети и настроим на получение IP-адреса от DHCP-сервера. После этого проверим, резолвится ли адрес:

shield@/root> host fr33man

fr33man.teachers has address 192.168.1.199

shield@/root> host 192.168.1.199

shield@/root> host 192.168.1.199

shield@/root> ldapsearch -LLL -x -b 'dc=l1523,dc=ru' -H ldap://spider/ 'relativeDomainName=fr33man'

dn: relativeDomainName=fr33man,zoneName=teachers,ou=dns,dc=l1523,dc=ru

relativeDomainName: fr33man

objectClass: top

objectClass: dNSZone

dNSTTL: 7200

zoneName: teachers

aRecord: 192.168.1.199

shield@/root> ldapsearch -LLL -x -b 'dc=l1523,dc=ru' -H ldap://spider/ 'relativeDomainName=199'

dn: relativeDomainName=199,zoneName=1.168.192.in-addr.arpa,ou=dns,dc=l1523,dc=ru

relativeDomainName: 199

objectClass: top

objectClass: dNSZone

dNSTTL: 7200

zoneName: 1.168.192.in-addr.arpa

pTRRecord: fr33man.teachers.

Как видите, адрес резолвится, и в LDAP появились записи о нашем адресе. И под конец проверим pid named:

shield@/root> ps ax| grep named

  264  ??  Ss     0:00,50 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/r

  448  ??  Is     1:17,41 /usr/local/sbin/named -u bind -t /var/named

Pid не изменился, следовательно, DNS-сервер не перезапускался и изменения «подхватились» автоматически.

За и против

Мы получили работающую связку, удобную в управлении. Для того чтобы обновить зоны или конфигурацию DHCP, достаточно изменить записи в LDAP, а для этого можно использовать программы для работы с LDAP-сервером. Еще одним плюсом является то, что при изменении информации на LDAP-сервере изменения вступят в силу без перезагрузки зоны. Централизованное хранение данных для крупных компаний выгоднее по нескольким причинам:

  • Все данные хранятся в одной базе. Если с этой базой что-то случится, то восстанавливать придется только ее, а не бегать по всем серверам и восстанавливать по отдельности каждый сервис.
  • Управлять базой можно из любой ОС, так как стандарт работы LDAP один.

Из минусов можно отметить, что управление немного усложняется, но результат того стоит. Использовать централизованную базу лучше только в сетях со сложной структурой, а для маленьких сетей централизованное хранение данных не так выгодно.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru