Установка DHCP-сервера
DHCP-сервер под UNIX
Существует несколько различных DHCP-серверов под Unix и коммерческих, и
бесплатных. Наиболее популярным считается Paul Vixie/ISC DHCPd.
Последнюю версию 2.0 (для большинства пользователей) или
бета-версию 3.0 вы можете взять по адресу
ftp://ftp.isc.org/isc/dhcp/
Некоторые дистрибутивы предоставляют готовый пакет dhcpd, так что вы можете
пропустить этот раздел, если он у вас есть.
Скачайте и разархивируйте его. После этого перейдите в каталог с
исходными текстами и наберите: ./configure
После того, как закончится настройка на вашу систему, наберите:
make и make install.
Настройка DHCP-сервера
После окончания инсталяции наберите ifconfig -a.
Вы увидите примерно следующее:
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2875542 errors:0 dropped:0 overruns:0
TX packets:218647 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x210 |
Если в сообщении не будет слова MULITICAST, вы должны пересобрать ядро
с поддержкой мультикастинга. На большинстве систем это уже включено.
Следующим шагом нужно установить маршрутизацию на 255.255.255.255. Цитата из DHCPd README:
"Чтобы dhcpd работал с разборчивыми DHCP-клиентами (напр. Windows 95), он должен
иметь возможность посылать пакеты по IP-адресу 255.255.255.255. К сожалению,
Linux использует 255.255.255.255 в качестве адреса рассылки по всей локальной
сети (у нас это 192.5.5.223). Это приводит к ошибкам в протоколе DHCP, на которые
многие DHCP-клиенты не обращают внимания, хотя некоторые (например все DHCP-клиеты
Microsoft) все же обращают. Клиенты, имеющие эту проблему, не видят сообщения
сервера DHCPOFFER."
Наберите: route add -host 255.255.255.255 dev eth0
Если появится сообщение "255.255.255.255: Unknown host", вам
нужно добавить следующую запись в файл /etc/hosts file:
Затем попробовать:
route add -host all-ones dev eth0 |
или
route add 255.255.255.0 dev eth0 |
где eth0 - это, конечно же, имя вашей сетевой платы.
Опции DHCPd
Теперь вам надо настроить DHCPd. Чтобы это сделать, вам нужно создать
или отредактировать файл /etc/dhcpd.conf. Существует также графический интерфейс
kcmdhcpd для dhcpd под KDE ( http://www.kde.org/ ), который
аналогичен конфигуратору DHCP под Windows NT. Когда выйдет KDE 2.0,
оно должно идти вместе с kcmdhcpd, или вы можете качать его непосредственно
с:
ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/
Если вы хотите настроить его вручную, следуйте нижеуказанным инструкциям.
В большинстве случаев вам нужно назначать случайные IP адреса. Это может быть сделано при помощи следующих установок:
# Пример /etc/dhcpd.conf
# (добавьте свои комментарии здесь)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
} |
В результате этого DHCP-сервер выдает клиентам IP-адреса из диапазона
192.168.1.10-192.168.1.100 или 192.168.1.150-192.168.1.200. Если клиент
не запрашивает временных рамок, сервер выдает адрес на 600 секунд.
В противном случае, максимально возможное время будет установлено в 7200 секунд.
Сервер будет также "советовать" клиенту использовать 255.255.255.0 в качестве
маски подсети, 192.168.1.255 для широкого вещания (broadcast), 192.168.1.254
в качестве маршрутизатора/шлюза и 192.168.1.1 и 192.168.1.2 для DNS-сервера.
Если вы хотите указать WINS-сервер для клиентов с Windows, вам нужно добавить опцию:
option netbios-name-servers 192.168.1.1; |
Вы можете также указать IP-адрес, основываясь на адресе сетевой карты:
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
} |
При этом сетевой карте с адресом 08:00:2b:4c:59:23 будет назначаться
IP-адрес 192.168.1.222.
Вы можете также смешивать и сочетать настройки. Например, вы можете выдать
определенным клиентам (например серверам) "статический" IP-адрес, а
другим динамический адрес (например пользователям с портативными компьютерами).
Кроме того существует множество других настроек, таких как адрес NIS-сервера,
сервера точного времени и т.д. Если вам нужны такие настройки, прочитайте
руководство по dhcpd.conf.
Запуск сервера
Перед запуском сервера вам нужно сделать только одну вещь.
В большинстве случаев при инсталляции не создается файл dhcpd.leases.
Он нужен DHCPd для хранения информации о текущих выделенных адресах и
представляет из себя обычный текстовый файл, который можно посмотреть во
время работы DHCPd. Чтобы создать его наберите:
touch /var/state/dhcp/dhcpd.leases |
Создастся пустой файл (нулевого размера). Некоторые старые (<2.0)
версии dhcpd хранят этот файл в /etc/dhcpd.leases. Вам не нужно
изменять файл dhcpd.leases - это делает сам dhcpd. Если при его
создании появилась ошибка, что он уже существует, просто игнорируйте ее
и переходите к следующему шагу.
Теперь вы можете запустить DHCP-сервер. Просто наберите (или вставьте в скрипт загрузки)
При это dhcpd запустится на устройство eth0. Если вы хотите запустить его на другой
сетевой плате, просто укажите
Чтобы проверить, что все работает нормально, вы должны включить режим отладки:
После загрузки одного из ваших клиентов, на консоль выведутся различные
отладочные сообщения. Если все работает нормально, то на этом вы можете
закончить :-). Выйдите из dhcpd и запустите его без аргументов -d -f.
Если вы хотите запускать dhcpd во время загрузки сервера, добавьте dhcpd
например в скрипт
Другие интересные документы
В апрельском Linux Magazine есть хорошая статья, которая называется
Network
Nirvana: How to make Network Configuration as easy as DHCP,
которая описывает установку DHCP.