dhcp (протокол динамической конфигурации узла) может понадобится как дома так и на предприятии, чаще конечно на предприятии, ибо ходить по всем компьютерам и настраивать сетевое подключение вручную не очень увеселительное мероприятие. Именно для раздачи сетевых настроек я и поднял dhcp-сервер. А теперь о том, как сделать dhcp-сервер на FreeBSD.

1
2
cd /usr/ports/net/isc-dhcp3-server
make install clean

В появившемся окне я оставил галочки напротив dhcp_paranoia, dhcp_jail, хотя и без них тоже всё прекрасно работать должно.

1
rehash

пример конфигурация находится в /usr/local/etc/dhcpd.conf.sample, но файлик должен называться dhcpd.conf, поэтому:

1
2
cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf
ee /usr/local/etc/dhcpd.conf

Содержимое файла /usr/local/etc/dhcpd.conf с небольшими пояснениями:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#доменый суффикс, который будет присвоен клиентам
#для примера домен homelan.org
option domain-name "homelan.org";
#список серверов DNS, которые должен использовать клиент,
#можно указать несколько, разделив их запятыми.
option domain-name-servers 217.24.112.2;
#Маска сети, выдаваемая клиентам.
option subnet-mask 255.255.255.0;
#На какое время выдавать клиентам настройки (в секундах) 259200сек=3дня
default-lease-time 259200;
# На какое максимальное время выдавать клиентам настройки (в секундах)
max-lease-time 259200;
#Параметр определяет, будет ли DHCP сервер
#пытаться обновить DNS при выдаче
#конфигурационной информации.
ddns-update-style none;
# включаем IP-Forwarding
option ip-forwarding on;

#диапазон IP-адресов, который будет выдаваться клиентам.
# и IP адрес шлюза (ниже адреса для примера, у вас могут быть другие)
#Если интернет у вас в сети раздаётся NAT'ом,
# то для раздачи интернета всем, шлюзом указывайте IP сервера nat
subnet 10.36.1.0 netmask 255.255.255.0 {
range 10.36.1.11 10.36.1.250;
option routers 10.36.1.10;
}

#Ниже строки для резервации IP-адреса,
#например, если вам нужно, чтобы у одного ПК был постоянный адрес,
#то стоки ниже вам пригодятся
host pc01 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 10.36.1.11;
}
#здесь:
# pc01 - имя хоста
# 00:11:22:33:44:55 - MAC адрес ПК, для которого делаем резервацию.
# 10.36.1.11 - IP адрес, который будет получать ПК
# конец конфигурационного файла

MAC адрес можно узнать:

  • под m$ wind0w$ выполнив в командной строке ipconfig -all
  • под freebsd и многими unix’подобными, выполнив в консольке ifconfig

Теперь побеспокоимся об автозапуске демона dhcp, для этого в файл /etc/rc.conf , добавим строки:

1
2
dhcpd_enable="YES"
dhcpd_ifaces="rl1"

Здесь rl1 – сетевой интерфейс, вашего сервера, через который будут выдаваться адреса.
Теперь можно стартовать сервер DHCP:

1
2
cp /usr/local/etc/rc.d/isc-dhcpd /usr/local/etc/rc.d/isc-dhcpd.sh
/usr/local/etc/rc.d/isc-dhcpd.sh start

Всё, теперь клиентам указываем автоматически получать адреса и проверяем результат. По примеру выше, они должны получить адрес из 10.36.1.* подсети.
P.S.: не забудьте на фаерволе (если таковой имеется) открыть порт №68 и 67

10 Комментариев к “dhcp-сервер на FreeBSD”

  1. Единственное чего не хватает:
    option ms-classless-static-routes code 249 = string;
    option rfc3442-classless-static-routes code 121 = string;
    А то админы задолбали прописывать в каждую подсетку ручками на каждом хосте статические роуты во внутренние подсетки.
    Ну плюс можно было пояснить – option domain-name «homelan.org» используется для того чтоб пингуя host1.homelan.org по короткому имени host1
    компы получающие параметры из дхцп могли его пропинговать – при прописанном данном опшене к host1 автоматически добавляется .homelan.org при резолве короткого имени в полное и получении его ипа.Также в дхцп можно прописывать другие плюшки типа NTP, BOOTTP, логсерверов и пр – не циклитесь только на получении ипов.
    Ну а в целом кратенько и со вкусом:)

  2. Да уж, судя по комментариям тут на блоге, никому не повредит умение ярче выражаться, поддерживать интересную беседу, быть остроумным в конце концов… :)

  3. Премного благодарен за занимательную точку зрения. Я с ней не совсем согласен, но она имеет право на существование.

  4. Алан, спасибо, пытаемся писать общедоступно.

  5. Вообще, когда читаешь такое, посещает мысль, а ведь это ж так просто, ну почему я это не смог придумать Респект :)

  6. Однажлы в студеную зимнию пору. Бродил Я по сети. Наткнулся на пост. Понравилось очень! Респект выражаю! И даже в закладки себе добавляю!

  7. Вот поэтому и иногда не хочется двигаться вперёд!

  8. [...] клиентов можно избавиться, настроив один раз dhcp-сервер и указав клиентам, автоматически получать настройки [...]

  9. Anubis, покажи свой /usr/local/etc/dhcpd.conf и /etc/rc.conf, думаю читающим этот ресурс проще будет соорентироваться и подсказать.
    И попробуй исправить это:
    «Когда прописываю
    subnet внешний ип netmask 255.255.255.224 {
    interface rl0;

    Следующим образом:
    subnet ВНУТРЕННИЙ ИП netmask 255.255.255.224
    т.е. измени ИП и убери interface rl0

  10. У меня проблема, стоит FreeBSD 8.0 Release и isc-dhcp31-server и если не прописывать ему один из интерфейсов в конфиге то он ругается примерно так: No subnet declaration for rl0 (IP).
    You must write a subnet declaration for this subnet. You cannot prevent the DHCP server from listening on this subnet because your
    operating system does not support this capability.
    WARNING: failed to start dhcpd.
    Когда прописываю
    subnet внешний ип netmask 255.255.255.224 {
    interface rl0;
    }

    он начинает выдавать адреса с интерфеса который смотрит в нет а не в локалку.
    в rc.conf dhcp_ifaces=»rl1″ который смотрит внутрь.
    в чем может быть косяк?

Оставить комментарий

Вы вошли как nickdeflor. Выйти.

Вы можете использовать следующие теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2009-2012 Media UniX

Rambler's Top100 Suffusion theme by Sayontan Sinha