FreeBSD: как установить сервер DHCP |
![]() |
Добавил(а) microsin |
В отличие от dhclient, в инсталляции по умолчанию сервер DHCP не представлен, и его надо устанавливать отдельно. На FreeBSD доступно по крайней мере два порта (порт - имеется в виду ПО), которые позволяют настроить свой собственный DHCP сервер. Первый называется WIDE (http://www.wide.ad.jp/) или Widely Integrated Distributed Environment. По названию можно судить, что этот порт оптимизирован для очень больших сетей. Второй порт от ISC, или Internet Software Consortium, его можно найти здесь - http://www.isc.org/index.pl?/sw/dhcp/. ПО dhclient для FreeBSD также пришел от ISC. Сайт ISC содержит ценную информацию по DHCP, включая FAQ и обучающие пособия. Мы рассмотрим именно установку DHCP-сервера от ISC. Процесс по шагам: 1. Перед компиляцией порта сервера DHCP надо убедиться, встроено ли устройство bpf в Ваше ядро. Если Вы используете ядро по умолчанию, сделайте поиск по файлу конфигурации ядра (если Вы не используется ядро по умолчанию, замените GENERIC на имя файла конфигурации Вашего собственного ядра): Если Вы не получили результата в ответ на команду grep, добавьте строку в файл конфигурации ядра и пересоберите ядро. Если у Вас есть устройство bpf, соберите порт сервера DHCP: Появится окно, где можно выбрать набор опций для компиляции. Лучше все оставить по умолчанию (просто выбрать Cancel). Далее пойдет процесс сборки и инсталляции (я оставил здесь только инетресные с точки зрения подсказки по настройке сообщения): **** To setup dhcpd, you may have to copy /usr/local/etc/dhcpd.conf.sample **** This port installs dhcp daemon, but don't invokes dhcpd by default. If dhcpd_enable="YES" # dhcpd enabled? **** If compiled with paranoia support (the default), the following lines dhcpd_chuser_enable="YES" # runs w/o privileges? WARNING: -early_chroot requires a jail(8) like environment to work. WARNING: dhcpd_devfs_enable and dhcpd_makedev_enable are mutually **** If compiled with jail support (the default), the following lines are dhcpd_jail_enable="YES" # runs imprisoned? WARNING: dhcpd_rootdir needs to point to a full jail(8) environment. **** WARNING: never edit the chrooted or jailed dhcpd.conf file but **** WARNING: /usr/local/etc/rc.isc-dhcpd.conf is obsolete. rc.conf like ===> Compressing manual pages for isc-dhcp3-server-3.0.5_2 This port has installed the following startup scripts which may cause If there are vulnerabilities in these programs there may be a security For more information, and contact details about the security 2. После установки появятся следующие файлы: Пример конфигурации для сервера DHCP (его надо скопировать в /usr/local/etc/dhcpd.conf и отредактировать): Доступна документация: А также: Итак, копируем файл конфигурации: 3. Приступим к редактированию файла /usr/local/etc/dhcpd.conf. Как принято в *nix, строки начинающиеся с # являются комментариями и ни на что не влияют. Настроим опции имени домена и серверов домена (). Порция информации, которую передает DHCP сервер вместе с арендой (lease) клиенту, называется опция (option). Некоторые опции являются глобальными, что означает - все клиенты сети получат эту опцию. Другие опции локальные (local), предназначены для отдельной подсети. Например, option для IP шлюза по умолчанию всегда local (для каждой подсети свой маршрутизатор). Две опции, которые приведены в этом примере, являются глобальными (DNS и имя домена могут быть общими). Имя домена для домашнего компьютера может быть произвольным. IP адреса DNS я указал Корбиновские - те, что раздаются по DHCP сервером Корбины. 4. Опция authoritative. По умолчанию выключена, я включил: Эта опция должна быть раскомментирована, чтобы позволить серверу DHCP отправлять сообщению DHCPNACK для ошибочно сконфигурированных клиентов. Например, компьютер физически переподключен в другую подсеть без освобождения lease. 5. Опция динамического обновления в DNS. По умолчанию выбрано ad-hoc. Я отключил, поставив none: Этот параметр имеет 3 возможные велечины. ad-hoc устарела и не должна использоваться. interim позволяет Вашему DHCP серверу обновлять DNS сервер значениями аренд. В этом случае Ваш сервер DNS будет знать IP адреса компьютеров Вашей сети. Чтобы это работало, Ваш DNS сервер должен поддерживать DDNS (Dynamic DNS). Если Ваш сервер не поддерживает DDNS, или Вы не хотите обновлять динамически DNS, вы должны изменить значение этой опции на none (что я и сделал - мне пока дома незачем держать сервер DNS). 6. Настраиваем параметры раздачи адресов. Тут указана опция шлюза по умолчанию и диапазон адресов для раздачи (всего 11 адресов). Тут необязательно задавать опции DNS, шлюза - это все берется из предыдущих записей (option domain-name-servers и option routers): У меня получился такой файл конфигурации: 7. В /etc/rc.conf добавляем следующие строки: 8. Теперь можно запускать демона: И проверить, как запустился: Видно, что скрипт запустил dhcpd в режиме демона (-q) и указал, где находятся файлы конфигурации и аренд адресов. Перезапуск dhcpd: Необязательные опции для настройки. default-lease-time 600; Тут можно оставить все без изменения. Некоторые DHCP клиенты запрашивают время аренды (lease time). Если клиент не запрашивает время аренды, сервер устанавливает его в default-lease-time (указана величина в секундах). Если клиент запросил время аренды, то сервер обслуживает запрос, но устанавливает время не более max-lease-time (также в секундах). # Use this to send dhcp log messages to a different log file (you also Эта опция определяет, куда пишется лог. local7 определяет локально заданный файл лога. Пока Вы не зададите файл лога, DHCP сервер будет писать события в system log (/var/log/messages). Если Ваш сервер будет обслуживать несколько подсетей, то нужно определить общий диапазон адресов для этих сетей. Сервер DHCP нуждается в информации об ID Вашей сети. Дополнительно это нужно для каждой сети или подсети, чтобы определить, какой пул (pool) адресов допустим для выдачи аренд сегменту сети. Важно определить каждый сегмент Вашей сети, даже если сегмент не содержит клиентов DHCP. Декларация содержит маску, которая соответствует ID сети, и далее идут фигурные скобки {}. Это декларация для подсети 10.254.239.0. Внутри фигурных скобок указан диапазон IP (range), доступных для аренды. Из 30 возможных (ограничено маской 255.255.255.224) для этой сети адресов выделено 11, от 10 до 20: После этой декларации подсети могут идти декларации других подсетей. Для того, чтобы задать фиксированную конфигурацию для нужных компьютеров (постоянные ip адреса), добавляем в /usr/local/etc/dhcpd.conf строки: Тут необязательно задавать опции DNS, шлюза - это все берется из предыдущих записей (option domain-name-servers и option routers). В статье использовались, кроме руководств man, следующие источники: |