Показать полную графическую версию : Сервер DHCP
andreykst
27-07-2006, 14:15
Каков прогресс в решении проблемы?
Каков прогресс в решении проблемы?
Он отказался от федоры и перелез на слаку =)
Здраствуйте. Подскажите решение проблемы. Не могу запустить DHCP сервер.
Он мне нужен для сетевой загрузки бездискового сетевого клиента по протоколу
TFTP. (BOOTP)
Содержание вывода старта DHCP сервера
root@andrew:~# dhcpd3 start
Internet Systems Consortium DHCP Server V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
No subnet declaration for start (0.0.0.0).
** Ignoring requests on start. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface start is attached. **
Not configured to listen on any interfaces!
Если я перевожу правильно, то у меня не прописана подсеть (subnet) и не указанно,
на каком интерфейсе слушать. По порядку :
Вот содержание файла /etc/dhcp3/dhcpd.conf
Коментарии убраны. Да вроде и так все понятно. Файл создавался копированием и исправлением
ddns-update-style none;
authoritative;
server-name "dhcp.home.net";
option domain-name "home.net";
option domain-name-servers ns.home.net;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.45.0 netmask 255.255.255.0 {
range 192.168.45.210 192.168.45.240;
}
host termcli1 {
hardware ethernet 00:D0:B7:BA:3F:4A;
# fixed-address 239.252.197.9;
filename "/tftpboot/kernel";
}
Файл dhcp.leases существует с нужными правами. Проверенно.
Zergling
13-08-2007, 09:53
Вот рабочий конфиг для загрузки (правда для установки по RIS, загрузка через PXE карточки - но принцип одинаковый)
на серваке 2 карточки: 192.168.2.1 192.168.1.1
#пропускаем внешнюю сеть
authoritative;
subnet 192.168.2.0 netmask 255.255.255.240 {
}
#внутренняя сеть
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.200;
option subnet-mask 255.255.255.0;
option domain-name "чего-то там";
option domain-name-servers 194.190.185.1;
option time-offset -18000; # Eastern Standard Time
option netbios-name-servers 192.168.1.200;
range dynamic-bootp 192.168.1.20 192.168.1.220;
default-lease-time 2160;
max-lease-time 4320;
}
#здесь группа которая получает Ip не от нашего сервака
group {
next-server 192.168.1.5;
host dia1 { hardware ethernet 0:07:e9:77:34:0c; }
host dia2 { hardware ethernet 0:07:e9:77:33:7b; }
host dia3 { hardware ethernet 0:07:e9:77:32:57; }
host dia4 { hardware ethernet 0:07:e9:77:33:f4; }
}
ddns-update-style ad-hoc;
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
option PXE.mtftp-tmout 60;
filename "startrom.com";
}
Скопипастил. Вечерком опробую. Пасиба :)
Получилось! Запуск DHCP сервера случился следующим образом. Версия на английском языке (http://tldp.org/HOWTO/DHCP/x369.html) Пишу Очень сокращенный перевод
Сейчас у меня в системе простой dhcp.conf Главная проблема решена, и сервер слушает только 30 подсетку.
#ifconfig -a. Смотрим какие сетевые интерфейсы есть.
Проверяем наличие MULTICAST. В большинстве случаев он есть
#route add -host 255.255.255.255 dev eth0 Как я понял, для того чтобы Windows клиенты могли подцеплятся к серверу и получать от него IP'шник
Прописываем простой dhcpd.conf файл
#gedit /etc/dhcpd3/dhcpd.conf С этим проблем нет.
#touch /var/state/dhcp/dhcpd.leases
Самое главное!
Если вы хотите чтоб сервер работал на другой сетевой карте то: (А чтоб не принимал запросы с eth0, просто не прописываем параметры подсети в конфиг файл)
/usr/sbin/dhcpd eth1
Проверяем
/usr/sbin/dhcpd -d -f
Включаем клиента. Если все в порядке,и появляются строки протокола работы,то загружаем сервер без ключей. Если требуется, прописываем запуск сервера в старт скрипт /etc/rc.d/rc.local
От себя, еще одна тонкость - запускать надо полностью прописав путь
#/usr/sbin/dhcpd3
Если просто написать
#dhcpd3 start
то ничего не получится.
P.S. Изучая литературу, наткнулся на фразу о том: конфигурацию для интерфейсов по которым не идет раздача адресов, прописывать надо! Просто не определять диапазон. Теоретически не надо будет проделывать все операции описанные выше. Как это будет при совмещении, я не знаю. Экспериментов на ставил.
Интересует проверка средствами dhcp соответствия имени ПК получающего адрес и hostname прописанного в конфиге dhcpd.
Сейчас сделано так, кусок
group {
option dhcp-server-identifier 192.168.2.101;
option domain-name-servers 192.168.2.101 , 91.192.20.3;
option routers 192.168.2.101;
host administra {
hardware ethernet 00:14:0b:0d:2e:2a;
option host-name "administra";
ddns-hostname "administra";
fixed-address 192.168.2.230;
}
Т.е. проверка проходит только по маку, но нужно еще привязаться к hostname.
Люди советуют использовать match if, может кто подскажет как это реализовать на уровне dhcp?
match if { option host-name "administra";} не прокатывает.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.