Кнопки


Яндекс цитирования


Главная » Документы » DHCP+DNS

DHCP+DNS


Привет !!! Что-то у меня появилась потребность легкую статейку написать - не писал давно и сайтом почти не занимался, работа с 8 до 10 :((( Какое уж тут хобби :(

Вообчем дело так, потребовалось мне настроить DHCP на линухе, что ? скажите Вы ? да это как 2 пальца об асфальт и будете слегка не правы, все на свосем так просто. Нужна связка DHCP и DNS. Опять же просто - сколько статей в сети на русском ?? немеряно, но они (по большей части) подходят только для сетей с одними компами и почти одинаковыми конфигурациями на них.

У меня же:

  1. WinXP - штук 100
  2. Win98 - штук 10
  3. Win2000 - штук 20
  4. Серверов печати HP - 6 штук
  5. Встроенных северов печати от Kyecera - 4 штуки
  6. И еще парочку геморойных машин - это так мы называем большие (формата A0) лазерные плоттеры, на которые кто-то случайно не купил софта и мы перебиваемся кто чем может.
  7. Линухи (сервера и моя локалка) в кол-ве 10 штук

Так вот, как оказалось весь этот заопрат не так просто хочет обчаться с DHCP, вернее не так - ip то он получает, но вот региться в ДНС нормально не хочет, долго я бился с этим заопарком и моим DHCP+DNS, но все-таки нашел решение (наверное уже сотню раз описанное).

# dhcpd.conf
# # Sample configuration file for ISC dhcpd
# # Название моего домена
option domain-name "samgtp";
# Ип адрес моего dns сервера (BIND9)
option domain-name-servers 192.168.1.7;
# Считаю что этот стиль обновлений лучше чем ad-hoc (Win), так как проще
ddns-update-style interim;
# Разрешить эти обновления
allow client-updates;
# Дополнительное указание домена для dns сервера
ddns-domainname "samgtp";
ddns-updates on;
use-host-decl-names on;
# Обновлять статические записи (лучше поставить)
update-static-leases on;
default-lease-time 86400;
max-lease-time 172800;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
# Это запись о авторизации на DNS сервере
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
# Ключ обновления
key DHCP_UPDATER {
    algorithm HMAC-MD5.SIG-ALG.REG.INT;
   secret 2kSHlNsdjfEv3RodfgklbD9g==;
}
# Описание моей зоны и ссылка по ip на мой ДНС сервер (он находиться на этой же машине)
zone samgtp. { primary 127.0.0.1; key DHCP_UPDATER; }
# Тоже самое. но для обратной зоны, часто с этим бывает проблемы
zone 1.168.192.IN-ADDR.ARPA. { primary 127.0.0.1; key DHCP_UPDATER; }
# Описание диапазона адресов
# range - это какие ипы выдавать, первые 40 у меня резевные (сервера,принетра, админы,...)
# ddns-hostname - это если клиент требующий ип не передает имя хоста, то оно (имя) генериться на основе ip адреса, что очень удобно
# broadcast-address - адрес броадкаста
# domain-name-servers - список (через запятую) всех ДНС серверов в сети
# domain-name - имя домена (те то, что идет после имени хоста - хост.domain), при этом hostname=хост.domain
# routers - дефолт-гейт всей сети
# netbios-name-servers - список WINS серверов, у меня Samba контроллер домена
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.40 192.168.1.250;
    ddns-hostname = pick (option fqdn.hostname, option host-name,concat ("dhcp-",binary-to-ascii (10, 8, "-", leased-address)));
    option broadcast-address 192.168.1.255;
    option domain-name-servers 192.168.1.7;
    option domain-name "samgtp";
    option routers 192.168.1.1;
    option netbios-name-servers 192.168.1.2;
}
# Ниже идет описание всех моих железок, который должны получать статический ip
# hardware ethernet - это mac адрес железки
# fixed-address - это ip адрес, который она получит
# ddns-hostname - это хостнаме имя хоста (те с доменом вместе)
host sapr-prn { hardware ethernet 00:01:E6:93:F7:D7; fixed-address 192.168.1.31; ddns-hostname = "sapr-prn"; }
host prn-405 { hardware ethernet 00:01:e6:46:ba:2c; fixed-address 192.168.1.32; ddns-hostname = "prn-405"; }
host gip-prn { hardware ethernet 00:01:e6:46:61:db; fixed-address 192.168.1.33; ddns-hostname = "gip-prn"; }

Это все, что касается DHCP, в ДНС добавить что-то вроде этого:

# Как видете, ключ совпадает с ключем от DHCP
key DHCP_UPDATER {     algorithm HMAC-MD5.SIG-ALG.REG.INT;     secret 2kSHlNsdjfEv3RodfgklbD9g==; };
zone "samgtp"{
	type master;
	file "pri/samgtp";
	allow-update { key DHCP_UPDATER; };
	notify no;
};
zone "1.168.192.in-addr.arpa" IN {
	type master;
	file "pri/192.168.1";
	allow-update { key DHCP_UPDATER; };
	notify no;
};

Да, чуть не забыл, ключи делают проще простого:

cd /etc/dhcp   dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

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

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

Те на Win машинах пинга на принтер идет нормально, линуха же его видит только по ip (маздай юзает еще и wins разрешение имен) и тому подобные глюки.

С Уважением, Алексей.