Самоучитель Гончарова
ALT Linux в офисе
WWW.TEKCT.RU | Содержание книги | Предыдущий раздел | Следующий раздел

8.6. DHCP и DNS

Из всех сетевых служб DHCP (Dynamic Host Configuration Protocol), наверное, самая простая, тем более, что в некоторых случаях без нее можно обойтись. Если сеть невелика, и у каждого компьютера задан IP-адрес, DHCP не нужна. Более того, без DHCP сеть работает намного надежнее. Я думаю, что если в сети до 100 компьютеров, можно обойтись фиксированными адресами. С другой стороны, если надо быстро подключить к сети рабочую станцию или ноутбук, а списка задействованных адресов под рукой нет, то лучше, чтобы DHCP, все-таки, работала — присваивала адрес новому компьютеру автоматически.

Конечно, получать автоматически адреса шлюза и DNS тоже удобнее.

Если мы используем для адресации только четвертый октет IP-адреса (маска 255.255.255.0), то можем подключить до 254 устройств (не все из них должны быть компьютерами). Тогда адреса могут выбираться из диапазона 192.168.1.1-192.168.1.254. Как известно, «192.168» — стандартный диапазон, используемый для локальных сетей. Третий октет (например, «1») указывает на принадлежность компьютера к данной подсети. Понятно, что для системного администратора не так уж и сложно вести учет такого количества компьютеров.

Но если организация большая, приходится задействовать два октета адреса (маска 255.255.0.0). Количество компьютеров в одной подсети может исчисляться тысячами, и без DHCP не обойтись.

С другой стороны, DHCP можно организовать и «аппаратно». Сейчас продается много устройств (со стоимостью от 2000 рублей) со встроенным DHCP-сервером. Обычно это маршрутизаторы. Настраиваются они достаточно просто, а преимущество их в том, что они надежнее компьютеров: в них нет движущихся частей, а потребляют они намного меньше энергии. Они могут работать непрерывно годами.

Но, поскольку мы рассматриваем конкретный сервер, выясним, что нам предлагает Linux.

С точки зрения теории о DHCP надо знать следующее:

1. IP-адрес выдается станции на время, оно называется «временем лизинга» (lease time). По прошествии этого времени станция должна взаимодействовать с сервером, чтобы продлить использование IP-адреса на следующий период.

2. Задается диапазон адресов, из которого сервер может назначать адреса. Адреса вне этого диапазона можно использовать как статические.

3. В Linux Server при назначении какого-либо статического адреса компьютеру, нужно указывать и МАС-адрес сетевого интерфейса.

Для настройки DHCP надо использовать все тот же web-интерфейс. Служба называется dhcpd. В первую очередь надо включить службу и установить галочку, чтобы служба запускалась при старте системы.

Кроме того, надо создать конфиг-файл /etc/dhcp/dhcpd.conf.

Вот его пример.

# File /etc/dhcpd.conf

ddns-update-style none;

one-lease-per-client on;

option domain-name-servers 192.168.1.2, 192.168.1.4;

subnet 192.168.1.0 netmask 255.255.255.0 { # new.subnet

option subnet-mask 255.255.255.0;

range dynamic-bootp 192.168.1.100 192.168.1.254;

option domain-name "ofis.local";

option broadcast-address 192.168.1.255;

option routers 192.168.1.1;

default-lease-time 43200;

max-lease-time 50000;

host vasya {

hardware ethernet 00:11:22:33:44:55;

fixed-address 192.168.1.15;

}

}

Мы задали режим выдачи одного адреса на клиента, указали два адреса серверов DNS, определили диапазон адресов локальной сети (subnet) 192.168.1.1-192.168.1.254, маску сети 255.255.255.0, выделили для DHCP диапазон 192.168.1.100-192.168.1.254, задали имя домена ofis.local, широковещательный адрес 192.168.1.255 (стандартный), адрес шлюза (маршрутизатора) 192.168.1.1, время лизинга 12 часов (43200 секунд), указали, что в сети есть компьютер с сетевым именем vasya и фиксированным адресом 192.168.1.15.

Если мы хотим указать, что только этот сервер может выдавать IP-адреса, в файл надо добавить строку:

authoritative;

После перезагрузки сервера мы увидим эти данные и в web-интерфейсе (рис. 8.7) (мы могли бы сразу задать большинство этих параметров в нем, и конфиг-файл был бы создан автоматически). Правда, web-интерфейс позволяет задать не все параметры.

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

Рис. 8.7. Настройка DHCP сервера

Доступ в Интернет с рабочей станции будет зависеть от того, как построен шлюз. Возможно, в реальной сети для обеспечения доступа в Интернет в файле /etc/dhcp/dhcpd.conf в параметр domain-name-servers надо будет добавить адреса DNS, полученные от провайдера.

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

Для ALT Linux предусмотрены два основных DNS сервера: bind и dnsmasq. Первый — сложный и универсальный, второй годится для ограниченного круга задач. Но dnsmasq просто настраивается, поэтому для локальной сети выберем его.

Интересно, что в состав дистрибутива ALT Linux Office Server не входит ни одна из этих программ. Поэтому нам придется получить пакет на сайте Sisyphus. Я скачал такой: dnsmasq-2.38-alt1.i586.rpm.

Устанавливается он безо всяких проблем.

Дополнительно надо установить компоненты на рабочей станции (которые есть в дистрибутиве): nmap и bind-utils. Последний пакет включает несколько полезных программ для тестирования сети, в частности, nslookup.

Идея dnsmasq проста как все гениальное. Во многих случаях от локального DNS требуется немного функций. Во-первых, организация прямой зоны (конвертация символьного адреса или имени в числовой IP-адрес). Во-вторых, перенаправление запросов на внешние DNS, если это необходимо (так работает выход в Интернет или другую локальную сеть). И, наконец, как бесплатное приложение, функции DHCP (хотя это, как я уже упоминал, можно получить самыми разными способами). Так вот, гениальность dnsmasq заключается в том, что эта служба берет необходимую информацию из конфиг-файлов уровня станции. То есть, адреса внешних DNS она берет из файла /etc/resolv.conf, а имена и адреса хостов локальной сети — из файла /etc/hosts. Когда служба dnsmasq запускается, она подменяет эти файлы своими, когда останавливается, возвращает все на свои места, что позволяет сохранить прежнюю функциональность. Вообще, /etc/hosts — это самая простая реализация прямой DNS зоны, которую только можно вообразить. Поскольку заполнить эти файлы информацией может даже школьник, по сложности задача настройки DNS переходит из разряда сисадминской в разряд пользовательской.

Правда, необходимо еще правильно написать конфиг-файл самой dnsmasq (/etc/dnsmasq.conf), и тут нужны знания.

В файле /etc/resolv.conf в тривиальном случае указываются адреса DNS, полученные от Интернет-провайдера, например:

nameserver 212.48.000.00

nameserver 212.48.100.00

В файле /etc/host перечисляются хосты локальной сети, например:

127.0.0.1 server1.ofis.local server1 localhost.localdomain localhost

192.168.1.2 server1 server.ofis.local

192.168.1.15 vasya vasya.ofis.local

192.168.1.16 petya petya.ofis.local

И т.д.

Исходный файл /etc/dnsmasq.conf очень напоминает краткое руководство, и прочитав его, можно выяснить назначение многих параметров. Сложнее понять, какие именно параметры нужны. Для настройки надо раскомментировать и отредактировать нужные строки. Ниже приведен листинг файла с настройками для нашего примера.

domain-needed

bogus-priv

filterwin2k

localise-queries

expand-hosts

domain=ofis.local

dhcp-range=192.168.1.100,192.168.1.254,255.255.255.0,12h

dhcp-host=server1,192.168.1.2,infinite

dhcp-leasefile=/var/lib/misc/dnsmasq.leases

Опция domain-needed запрещает пересылать запросы на внешние DNS, если в имени нет точки или указания домена. Опция localise-queries позволяет возвращать запрос на тот же интерфейс, с которого он пришел.

Опции expand-hosts и domain используются совместно.

Параметр dhcp-range задает диапазон адресов для DHCP и время лизинга.

С помощью параметра dhcp-host мы задали неограниченное время лизинга для сервера.

Параметр dhcp-leasefile определяет файл, в который записываются хосты DHCP.

«Слушать» запросы можно только по определенному IP-адресу:

listen-address=127.0.0.1, 192.168.1.2

Можно вести лог:

log-queries

Есть и другие полезные параметры. Почитать документацию по dnsmasq можно здесь: http://thekelleys.org.uk/dnsmasq/docs/setup.html

Для проверки DNS надо набрать символьный адрес в браузере, например: https://server1:8080/.

Самое интересное, что все это работает :)

WWW.TEKCT.RU | Содержание книги | Предыдущий раздел | Следующий раздел

© Алексей Гончаров, 2010

Рейтинг@Mail.ru Rambler's Top100