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
Единственное чего не хватает:
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, логсерверов и пр – не циклитесь только на получении ипов.
Ну а в целом кратенько и со вкусом:)
Да уж, судя по комментариям тут на блоге, никому не повредит умение ярче выражаться, поддерживать интересную беседу, быть остроумным в конце концов…
Премного благодарен за занимательную точку зрения. Я с ней не совсем согласен, но она имеет право на существование.
Алан, спасибо, пытаемся писать общедоступно.
Вообще, когда читаешь такое, посещает мысль, а ведь это ж так просто, ну почему я это не смог придумать Респект
Однажлы в студеную зимнию пору. Бродил Я по сети. Наткнулся на пост. Понравилось очень! Респект выражаю! И даже в закладки себе добавляю!
Вот поэтому и иногда не хочется двигаться вперёд!
[...] клиентов можно избавиться, настроив один раз dhcp-сервер и указав клиентам, автоматически получать настройки [...]
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
У меня проблема, стоит 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″ который смотрит внутрь.
в чем может быть косяк?