Продолжая серию статей по настройке сервера на Ubuntu, переходим к настройке DNS сервера. На данный момент у меня установлен Ubuntu сервер и настроен DHCP для автоматической раздачи IP адресов.
Что такое DNS рассказывать не буду, целью написания статьи не служит разжевывание самой сути DNS, а только установка и настройка. В двух словах, DNS — это система доменных имен, служит для получения IP адреса по имени компьютера. В связи с историческим расширением сети, стало неудобно пользоваться только IP адресами. Да и не упомнишь его с первого раза. Для этих целей и была придумана DNS.
И так, начнем! Для начала поднимем права до root
su -
Установим Bind (Это собственно и есть сам DNS сервер)
aptitude install bind9
Теперь нам следует сгенерировать ключ для обновления DNS записей
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER
Выводим сгенерированный ключ на экран
cat Kdhcp_updater.*.private|grep Key
Должно показать что то вроде
Key: 4GD8OIb8pZk4vAueACAfUQ==
Перепишите и сохраните этот ключ, в последующей настройке нам он еще понадобится.
Настраиваем Bind9
Открываем конфигурационный файл
nano /etc/bind/named.conf.options
добавляем в уже имеющийся код, следующее
forwarders {
8.8.8.8;
};listen-on {
127.0.0.1;
192.168.10.1;
};
Что это значит:
forvarders - вышестоящий DNS сервер, используется для переадресации запроса в случае если URL не найден в вашей базе (8.8.8.8 DNS google)
listen-on - адреса которые будут обслуживаться нашим DNS сервером (локалхост и сетевая карта смотрящая в локальную сеть)
В общем файл named.conf.options должен выглядеть вот так:
options {
directory «/var/cache/bind»;// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0′s placeholder.// forwarders {
// 0.0.0.0;
// };auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };forwarders {
8.8.8.8;
};listen-on {
127.0.0.1;
192.168.10.1;
};};
Редактируем файл name.conf.local
nano /etc/bind/named.conf.local
Добавляем туда следующий код:
key DHCP_UPDATER {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret "4GD8OIb8pZk4vAueACAfUQ==";
};
zone "example.net" IN { type master; file "/var/lib/bind/forward.db"; allow-update { key DHCP_UPDATER; }; }; zone "10.168.192.in-addr.arpa" IN { type master; file "/var/lib/bind/reverse.db"; allow-update { key DHCP_UPDATER; }; };
Что это значит:
key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
zone «example.net» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
zone «10.168.192.in-addr.arpa» — создание зоны обратного просмотра
Теперь создадим сами файлы в которых будут храниться данные зоны example.net
Создадим файл настроек зоны прямого просмотра forward.db
nano /var/lib/bind/forward.db
добавим в него следующий код:
$TTL 86400 ; 1 day
example.net. IN SOA srv.example.net. admin.example.net. (
20110103 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)IN NS srv.example.net.
IN A 192.168.10.1
localhost IN A 127.0.0.1
srv01 IN A 192.168.10.1
Рассмотрим подробнее… Зона example.net, в которой есть DNS сервер SRV с IP адресом 192.168.10.1.
Остальные записи будут создаваться DHCP сервером в автоматическом режиме.
Теперь нам нужно создать файл зоны обратного просмотра reverse.db
nano /var/lib/bind/reverse.db
Пишем туда следующее:
$TTL 86400 ; 1 day
example.net. IN SOA srv01.example.net. admin.example.net. (
20110103 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)IN NS srv01.example.net.
IN A 192.168.10.1
localhost IN A 127.0.0.1
srv01 IN A 192.168.10.1
Надеюсь все понятно…
Сохраняем, закрываем, перезапускаем Bind
/etc/init.d/bind9 restart
теперь нам нужно указать суфиксы локальной DNS в файле /etc/resolv.conf
nano /etc/resolv.conf
добавляем в начало файла:
domain example.net
search example.net
nameserver 127.0.0.1
Сохраняем, закрываем, перезапускаем сеть:
/etc/init.d/networking restart
Проверяем определился ли наш сервер
nslookup srv
в ответ увидим что то вроде этого
root@srv:~# nslookup srv
Server: 127.0.0.1
Address: 127.0.0.1#53Name: srv.example.net
Address: 192.168.10.1
отлично! Работает
Теперь займемся настройкой динамического обновления зон DHCP сервером
В первую очередь внесем изменения в конфигурационный фал DHCP
nano /etc/dhcp/dhcpd.conf
и поменяем option domain-name с example.org на example.net (подразумевается что настройка DHCP производилась по моей статье)
также в файл вносим следующее
ddns-update-style interim;
update-static-leases on;
key DHCP_UPDATER {
algorithm hmac-md5;
secret «4GD8OIb8pZk4vAueACAfUQ==»;
}zone example.net. {
primary 127.0.0.1;
key DHCP_UPDATER;
}zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
в поле secret вам нужно внести свой ключ, полученный ранее.
в общем увас должно получиться такое
ddns-update-style interim;
update-static-leases on;
key DHCP_UPDATER {
algorithm hmac-md5;
secret «4GD8OIb8pZk4vAueACAfUQ==»;
}zone example.net. {
primary 127.0.0.1;
key DHCP_UPDATER;
}zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name-servers 192.168.10.1;
option domain-name «example.net»;
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 604800;
max-lease-time 604800;
}
Больше нам ничего не нужно менять.
Перезапускаем DNS сервер
/etc/init.d/bind9 restart
Перезапускаем DHCP сервер
/etc/init.d/isc-dhcp-server restart
Проверяем что у нас получилось
Включаем клиентский ПК, в нашем случае это машина с winXP на борту, которая находится в локальной сети с сервером.
выполняем запрос
nslookup test1
(test1 — имя машины)
в ответ должны увидеть следующее
здесь мы видим что машина получила IP адрес от DHCP сервера и имя от DNS сервера. Значит все нормально работает.
А так же вы можете посмотреть другие статьи из этой серии:
1. Установка Ubuntu Server, первоначальная настройка
2. Установка и настройка DHCP сервера на Ubuntu Server
3. Установка и настройка DNS сервера на Ubuntu Server
4. Установка и настройка прокси сервера SQUID
5. Настройка контент-фильтра Dansguardian для работы с SQUID
6. Установка и настройка почтового сервера
7. Установка и настройка FTP сервера
8. Установка и настройка WEB сервера
9. Настройка управления сервером через вэб интерфейс (WEBMIN)