Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

DHCP сервер на freebsd.

VPN (mpd5)>>DNS (bind 9.x)>>Kernel>> Squid (NAT)>>Postfix (Mail)>>Samba>>ftp>>DHCP

Такая вроде бы нетривиальная задача по установке и настройке DHCP сервера заняла у меня не мало времени, ну собственно далее поподробней.

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к т. н. серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок.

Это вступлении к статьи о DHCP в Википедии. Рекомендую прочитать, возможно узнаете что-либо новенькое. Ну а я приступаю к описанию установки и настройки DHCP-сервера.

Устанавливать будем из портов (надеюсь они у вас в актуальном состоянии).

Итак запускаем инсталляцию:

# cd /usr/ports/net/isc-dhcp31-server && make install clean

Черт… Снова что-то не так…

Сначала я пробовал версию 3.1 потом 4ю но все безрезультатно. Облазил массу форумов но все тщетно, пока на одном из них не наткнулся вот на такую фразу:

 Перед компиляцией порта сервера DHCP надо убедиться, встроено ли устройство bpf в ядро. Если нет — пересоберите ядро с поддержкой bpf. Собственно как пересобрать ядро я уже писал, поэтому пропущу этот момент. В общем пересобрал и снова запускаю тоже самое.

# cd /usr/ports/net/isc-dhcp31-server && make install clean

Как видим все гуд

 

 Options for isc-dhcp31-server 3.1.3

[X] DHCP_PARANOIA  add -user, -group and -chroot options

[X] DHCP_JAIL      add -chroot and -jail options

[  ] DHCP_SOCKETS   use sockets instead of /dev/bpf (jail-only)

[X] OPENSSL_BASE   use the base system OpenSSL (required by TLS)

[  ] OPENSSL_PORT   use OpenSSL from ports (required by TLS)

 

Опции оставляю по дефолту.

 

По завершению установки порт уведомляет нас о создании пользователя и группы dhcp, а также выводит на экран информацию, которая по мнению разработчиков может пригодится при настройке.

После установки есть пример файла конфигурации: /usr/local/etc/dhcpd.conf.sample. Однако мы не ищем легких путей и будем «ваять» свой 

Создадим конфигурационный файл:

# touch /usr/local/etc/dhcpd.conf

 Потом наполняем этот файл необходимыми параметрами, в зависимости от поставленных задач. В моем случае конфигурационный файл получился такой:

 

#  ***   Глобальные параметры   ***   #

# Какое доменное имя будем присваивать хостам
option domain-name «domain.com»;

# Описываем сроки аренды адреса
default-lease-time 304400;
max-lease-time 604800;

# Делаем наш сервер «авторитетным» для обслуживаемых сетей
authoritative;

# Указываем, что мы не используем динамически обновляемые ДНС
ddns-update-style none;

# Указываем, как поступать серверу с неизвестными клиентами. В моем случае им будет
# отказано в обслуживании
deny unknown-clients;

 #  ***   Описываем подсети   ***   #

# Задаем подсеть
subnet 10.16.32.0 netmask 255.255.255.0 {

# Описываем диапазон, из которого будем выдавать IP
range 10.16.32.2 10.16.32.254;

# Указываем ДНС-сервера
option domain-name-servers ns1.domain.com, ns2.domain.com;

# Указываем шлюз для сети
option routers 10.16.32.1;

# Описываем отдельные хосты
host User32-1 { hardware ethernet 00:0e:2e:a6:9f:ef; fixed-address 10.16.32.2; }
host User32-2 { hardware ethernet 00:1f:c6:d9:a3:e3; fixed-address 10.16.32.3; }
}

 # Вторая подсеть. Опции аналогичны первой

subnet 10.16.33.0 netmask 255.255.255.0 {
range 10.16.33.2 10.16.33.254;

option domain-name-servers ns1.domain.com, ns2.domain.com;
option routers 10.16.33.1;

host User33-1 { hardware ethernet 00:1f:c6:24:95:9d; fixed-address 10.16.33.2; }

}

Вот такой вот коротенький конфигурационный файл. Тем не менее — конфиг полностью рабочий.

Далее добавляем в rc.conf опции запуска dhcp-сервера. Их целый блок.

# cat /etc/rc.conf | grep dhcp
dhcpd_enable=»YES»                                   # dhcpd включен?
dhcpd_flags=»-q»                                        # исполняемые опции
dhcpd_conf=»/usr/local/etc/dhcpd.conf»      # Полный путь к конфигурационному файлу
dhcpd_ifaces=»vlan32 vlan33″                    # На каких интерфейсах «слушать» запросы
dhcpd_withumask=»022″
dhcpd_chuser_enable=»YES»                      # Запуск без привилегий?
dhcpd_withuser=»dhcpd»                            # От имени какого пользователя стартовать сервер
dhcpd_withgroup=»dhcpd»                          # От имени какой групы стартовать сервер
dhcpd_chroot_enable=»YES»                       # Запускать chroot?
dhcpd_devfs_enable=»YES»                        # Использовать devfs если доступно?
dhcpd_rootdir=»/var/db/dhcpd»                  # Директория для запуска
dhcpd_flags=»-early_chroot» 

 

Запускаем DHCP-сервер.

# sh /usr/local/etc/rc.d/isc-dhcpd start
Starting dhcpd.
Internet Systems Consortium DHCP Server V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Listening on BPF/vlan33/00:14:5e:22:11:2a/10.16.33/24
Sending on BPF/vlan33/00:14:5e:22:11:2a/10.16.33/24
Listening on BPF/vlan32/00:14:5e:22:11:2a/10.16.32/24
Sending on BPF/vlan32/00:14:5e:22:11:2a/10.16.32/24
Sending on Socket/fallback/fallback-net

Собственно на этом все. Далее наслаждаемся.

Всем удачи!!!

07.06.2011 Posted by | linux and unix | Комментарии к записи DHCP сервер на freebsd. отключены