четверг, 20 августа 2009 г.

Настройка BIND + DHCPD

2. Настройка первичного(master) DNS сервере и создание прямой и обратной зоны.
Пред.
Глава 3. Настройка DNS сервера След.

________________________________________
2. Настройка первичного(master) DNS сервере и создание прямой и обратной зоны.
Допустим у Вас есть доменное имя mynet.lan Вам хочется сделать свой сервер первичным сервером для этого домена и использовать у себя в сети доменные имена www.mynet.lan, kolya.mynet.lan и т.д. Для этого сначала попрвим файл /etc/named.conf
/////////////////////////////////////////////////////////
key mykey {
algorithm hmac-md5;
secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad";

};
controls {
inet 127.0.0.1 allow { any; } keys { "mykey"; };

// эту строка добавлена здесь для целей которые описанны в главе про DHCP
inet 192.168.1.4 allow { any; } keys { "mykey"; };

// здесь вместо 222.222.222.222 проставте ip DNS сервера вашего провайдера
forwarders { 127.0.0.1; 222.222.222.222; };
forward first;
};
options {
pid-file "/var/run/named/named.pid";
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};

//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};

// Прямая и обратные зоны для домена mynet.lan

zone "mynet.lan" {
type master;
file "mynet.zone";
allow-update { key mykey; };
};

zone "1.168.192.in-addr.arpa" {
type master;
file "mynet.reversed";
allow-update { key mykey; };
};
/////////////////////////////////////////////////////////
Как мы видим в конце файла добавилены две записи "zone". Теперь нам необходимо создать еще 2 файла содержащих прямую и обратную зону.
Создаем файл обратной зоны /var/named/mynet.reversed.
$ORIGIN .
$TTL 86400 ; 1 day
1.168.192.in-addr.arpa IN SOA ns.mynet.lan. ns.mynet.lan. (
2001042703 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.mynet.lan.
$ORIGIN 1.168.192.in-addr.arpa.
$TTL 3600 ; 1 hour
1 PTR router.mynet.lan.
4 PTR ns.mynet.lan.


теперь создаем файл прямой зоны /var/named/mynet.zone
$ORIGIN .
$TTL 86400 ; 1 day
mynet.lan IN SOA ns.mynet.lan. ns.mynet.lan. (
2001042705 ; serial
86400 ; refresh (1 day)
21600 ; retry (6 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
3600 ; minimum (1 hour)
)
NS ns.mynet.lan.
$ORIGIN mynet.lan.
localhost A 127.0.0.1
ns A 192.168.1.4
router A 192.168.1.1
www A 192.168.1.1


По аналогии в конец файла прямой и обратной зон вы можете дописывать все что угодно. Обратите внимание на то что изменения вступают в силу только после изменения поля "serial". Обычно после внесения любых изменений в эти файлы serial увеличивают на 1.




3. Передача(forward) зоны
Иногда необходимо отдать какуюто часть домена для обслуживания другому DNS серверу. Это называется форвардинг зоны. Для этого можно просто добавить примерно такую запись в файл /etc/named.conf
zone "subnet.mynet.lan"{
type forward first;
forwarders {10.10.10.10;};
};
В этом примере subnet.mynet.lan - поддомен который вы передаете DNS серверу с IP 10.10.10.10. С этого момента обращения за доменными именами *.subnet.mynet.lan будут проходить не к вашеиу DNS серверу а к серверу 10.10.10.10
4. Настройка вторичного(secondary) DNS сервера
Иногда необходимо "просекондарить зону" - тоесть настроить свой DNS таким образом чтобы он был вторичным DNS сервером для какой либо зоны. По правилам необходимо чтобы у каждого первичного DNS сервера (master) было как минимум 2 вторичных (slave). Также это может быть необходимо если вам по какимто причинам нужно сделать свой сервер "авторитетным" для какой либо произвольной зоны. Просекондерить свой DNS можно двумя способами:
• С помощью web сервиса на http://secondary.net.ua/
• Настроить свой сервер самостоятельно добавив в файл /etc/named.conf примерно такую запись:
zone "subnet2.mynet.lan" {
type slave;
file "subnet2.mynet.lan.slave";
masters { 10.10.10.10; };
};
В этом примере мы "секондарим" зону subnet2.mynet.lan первичным DNS сервером которой является сервер с IP 10.10.10.10 . после перезапуска DNS сервера должен создаться файл /var/named/subnet2.mynet.lan.slave в котором будет зона которую мы секондарим.
Глава 4. Настройка DHCP сервера
1. Простейший DHCP сервер
2. Настройка динамического DHCP сервера, связанного с DNS
DHCP (Dynamic Host Configuration Protocol), динамический протокол настройки хостов - это протокол, который дает возможность компьютерам в сети получать свои сетевые настройки у сервера. В “сетевые настройки” входит IP-адрес, маска подсети, адрес DNS сервера, шлюз по умолчанию (default gateway). Также DHCP может взаимодействовать с DNS сервером и динамически менять в нем имена хостов. В GNU/Linux протокол DHCP поддерживается демоном dhcpd
1. Простейший DHCP сервер
Установим DHCP сервер:
# urpmi dhcpd
Запуск DHCP сервера:
# /etc/init.d/dhcpd start
Останов DHCP сервера:
# /etc/init.d/dhcpd stop
После установки необходимо создать конфигурационный файл /etc/dhcpd.conf. Можно просто скопировать файл примера:
cp /etc/dhcpd.conf.sample /etc/dhcpd.conf
Далее мы будем вносить изменения в этот конфигурационный файл /etc/dhcpd.conf.
Рассмотрим самый простейший вариант использования DHCP сервера: пусть мы хотим, чтобы все хосты в сети 192.168.1.0/24 получали IP в диапазоне 192.168.1.128-250. Также нам нужно, чтобы машины в сети использовали по умолчанию шлюз 192.168.1.1 и DNS сервер 192.168.1.4. Кроме того нам нужно чтобы клиентская машина знала что она работает в домене mynet.lan.
Настройки такого сервера выглядят следующим образом:
ddns-update-style none;
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.4;
option domain-name "mynet.lan";

range 192.168.1.128 192.168.1.250;
}
В нашем примере первая, обратившаяся за настройками, машина получит адрес 192.168.1.250, следующая 192.168.1.249 ну и так далее.
В случае, если нам нужно, чтобы некоторые компьютеры в сети получали вместо случайных адресов только жестко закрепленный за ними адрес (в соответствии с аппаратным MAC-адресом сетевой карты), тогда можно использовать такую конфигурацию:
ddns-update-style none;
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.4;

range 192.168.1.128 192.168.1.250;

host smith # Вася Сидоров :-)
{
hardware ethernet 00:0c:29:8b:02:e7;
fixed-address 192.168.1.5;
}

host neo # Коля Петров
{
hardware ethernet 00:22:22:22:22:22;
fixed-address 192.168.1.6;
}
}
В этом примере IP-адреса раздаются с привязкой к MAC-адресу сетевой карты. Сетевая карта с MAC 00:0c:29:8b:02:e7 всегда будет получать адрес 192.168.1.5, а сетевая карта с MAC 00:22:22:22:22:22 соответственно адрес 192.168.1.6, а остальные компьютеры в сети будут получать адреса случайным образом в диапазоне с 192.168.1.128 по 192.168.1.250. Если мы хотим чтобы IP-адреса получали только компьютеры, привязанные к MAC, тогда в данном примере нужно закомментировать строку range 192.168.1.128 192.168.1.250;.
2. Настройка динамического DHCP сервера, связанного с DNS
Работает это следующим образом: машина в сети получает случайный IP-адрес и, при получении этого IP, DHCP сервер перенастраивает DNS сервер таким образом, чтобы у компьютеров в сети независимо от того, какой у них в данный момент IP, всегда было одно и тоже доменное имя.
Файлы /etc/named.conf, /var/named/mynet.reversed, /var/named/mynet.zone должны выглядеть точно так, как было описано здесь: Глава 3. Настройка DNS сервера.
Теперь приведем как должен выглядеть файл /etc/dhcpd.conf:
### begin of /etc/dhcpd.conf #################################################
ddns-update-style ad-hoc;

subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.4;

range 192.168.1.5 192.168.1.250;

ddns-updates on;
ddns-domainname "mynet.lan";
ddns-rev-domainname "in-addr.arpa";

option domain-name "mynet.lan";

# Этот "secret" нужно пересоздать с помощью команды dnssec-keygen
# он должен быть ОДИНАКОВЫМ в этом файле, а также в
# /etc/named.conf /etc/rndc.conf /etc/rnd.key
key mykey {
algorithm hmac-md5;
secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad";
};

zone mynet.lan. {
primary 192.168.1.4;
key mykey;
}

zone 1.168.192.in-addr.arpa. {
primary 192.168.1.4;
key mykey;
}

host smith # Агент Смит
{
hardware ethernet 00:0c:29:8b:02:e7;
# option host-name "vasya";
ddns-hostname "smith";
}

host neo # Коля Петров
{
hardware ethernet 00:22:22:22:22:22;
# option host-name "kolya";
ddns-hostname "neo";
}
}
### end of /etc/dhcpd.conf #################################################
В этом примере машина с МАС-адресом 00:0c:29:8b:02:e7 получит имя smith.mynet.lan, а машина с МАС-адресом 00:22:22:22:22:22 получит имя neo.mynet.lan. Имена остальных машин будут формироваться на основе запроса DHCP клиента. В случае с M$ Window$ это будет “имя компьютера”.
Для того, чтобы DHCP сервер мог управлять DNS сервером, необходимо также отредактировать следующие файлы: /etc/rndc.conf
###### begin of /etc/rndc.conf ##################
key mykey {
algorithm hmac-md5;
secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad";
};

options {
default-key mykey;
default-server 127.0.0.1;
default-port 953;
};
###### End of /etc/rndc.conf #####################
и /etc/rndc.key
key mykey {
algorithm hmac-md5;
secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad";
};
После выполнения всех этих настроек перезапускаем DNS сервер и DHCP сервер и работаем.

2 комментария:

  1. передача зоны это НЕ форвардинг, а трансферинг!

    ОтветитьУдалить
  2. mynet.lan IN SOA ns.mynet.lan. ns.mynet.lan. (
    2001042705 ; serial (что?)
    86400 ; refresh (1 day)
    ...
    А где вы серийник достали.
    Он подойдет к любому bind?

    ОтветитьУдалить