![]() |
Сервер DHCP
Есть проблемки с работой DHCP.
У меня Федора 4. При установке dhcpd не поставился. Ставлю его с диска федоры: rpm -ihv dhcp-3.0.2-12.rpm он опять ругается что нет цифровой подписи, но все ставит. Файл /etc/dhcpd.conf почему-то не создал. Ладно создаю его сам: subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.50 192.168.2.150 } Запускаю # /etc/rc.d/init.d/dhcpd start Запускается dhcpd [сбой] И ничего он не запускается. Что делать? |
что пишет в логах ?
|
запусти dhcpd из консоли и посмотри на что он ругается
|
3kLiN
А где его логи? В папке /var искал поиском "dhcp*" - нет логов. BuGfiX --------------------------------------------------------------- [root@localhost sbin]# /usr/sbin/dhcpd Internet Systems Consortium DHCP Server V3.0.2 Copyright 2004 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ /etc/dhcpd.conf line 3: semicolon expected. } ^ /etc/dhcpd.conf line 3: unexpected end of file } ^ Configuration file errors encountered -- exiting If you did not get this software from ftp.isc.org, please get the latest from ftp.isc.org and install that before requesting help. If you did get this software from ftp.isc.org and have not yet read the README, please read it before requesting help. If you intend to request help from the dhcp-server@isc.org mailing list, please read the section on the README about submitting bug reports and requests for help. Please do not under any circumstances send requests for help directly to the authors of this software - please send them to the appropriate mailing list as described in the README file. exiting. -------------------------------------------------------------------------- Похоже проблемы в 3-ей строке, но там только "}" стоит. Файл точно такой же, как описывал в начале. |
Так, я разобрался в 3-ей строчке - забыл ; поставить.
Теперь запускаю: --------------------------------------------------------------------------------------------- [root@localhost sbin]# /usr/sbin/dhcpd Internet Systems Consortium DHCP Server V3.0.2 Copyright 2004 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ ** You must add a global ddns-update-style statement to /etc/dhcpd.conf. To get the same behaviour as in 3.0b2pl11 and previous versions, add a line that says "ddns-update-style ad-hoc;" Please read the dhcpd.conf manual page for more information. ** If you did not get this software from ftp.isc.org, please get the latest from ftp.isc.org and install that before requesting help. If you did get this software from ftp.isc.org and have not yet read the README, please read it before requesting help. If you intend to request help from the dhcp-server@isc.org mailing list, please read the section on the README about submitting bug reports and requests for help. Please do not under any circumstances send requests for help directly to the authors of this software - please send them to the appropriate mailing list as described in the README file. exiting. ------------------------------------------------------------------------------ Что это? "ddns-update-style ad-hoc;" В MANе про него ничего нет. У меня пока нет DNS-сервера. |
если использовать dynamic dns не нужно, то можно прописать:
Код:
ddns-update-style none; |
Спасибо, теперь начал запускаться:
[root@localhost init.d]# /usr/sbin/dhcpd Internet Systems Consortium DHCP Server V3.0.2 Copyright 2004 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Wrote 0 leases to leases file. Listening on LPF/eth0/00:50:22:8f:a0:49/192.168.2/24 Sending on LPF/eth0/00:50:22:8f:a0:49/192.168.2/24 Sending on Socket/fallback/fallback-net Но когда пытаюсь запустить скрипт - ругается и в логах ничего нет: [root@localhost init.d]# /etc/rc.d/init.d/dhcpd start Запускается dhcpd: [ СБОЙ ] В чем может быть проблема? |
а в скрипте как вызывается? возможно там конфиг неправильно указан или путь... посмотри вобщем
|
Я нашел, куда DHCPD пишет логи.
Вот запускаю /etc/rc.d/init.d/dhcpd start И вот что он пишет: Jan 20 11:51:07 localhost dhcpd: Can't open lease database /var/lib/dhcp/dhcpd.leases: Permission denied -- Jan 20 11:51:07 localhost dhcpd: check for failed database rewrite attempt! Jan 20 11:51:07 localhost dhcpd: Please read the dhcpd.leases manual page if you Jan 20 11:51:07 localhost dhcpd: don't know what to do about this. Jan 20 11:51:07 localhost dhcpd: --Вырезано-- Jan 20 11:51:07 localhost dhcpd: Jan 20 11:51:07 localhost dhcpd: exiting. Что делать? Файл /var/lib/dhcp/dhcpd.leases существует. Если просто запустить /usr/sbin/dhcpd то прога работает нормально и туда пишет свою информацию о выданных адресах. Доступ к файлу dhcpd.leases -rw-r--r-- |
Admiral83
раз ругается на отсутствие прав, значит их ему не хватает :О) может из скрипта он запускается не по root -ом? хотя странно, dhcpd всегда под ним стартовал.. |
Поставил на файл права -rw-rw-rw- все равно пишет в логах то же самое.
Вот файл /etc/rc.d/init.d/dhcpd: Цитата:
Что тут может быть неправильного? |
а может нет прав на чтение/запись в папку /var/lib/dhcp ?
|
нет, все есть drwxr-xr-x
Просто не понять: сам по себе файл /usr/sbin/dhcpd запускается, и работает - раздает айпишники, редактирует файл /var/lib/dhcp/dhcpd.leases, а скрипт почему-то не запускается. Что может быть? |
Admiral83 мне вот интересно еще что такое ${DHCPDARGS} ? попробуй распечатать чтоли его, а вообще стучи в ась, мне самому интересно стало :)
|
Цитата:
+ действительно было бы интересно посмотреть на значение переменной $DHCPDARGS. вполне возможно, что именно из-за использованя некоторых ключей запуска dhcpd из скрипта init.d и происходят ошибки. |
#!/bin/bash ????
|
В файле #!/bin/sh, причем sh - это ссылка на /bin/bash.
Причем замечено (спасибо 3kLiN), что если сделать скрипт dhcpd не исполняемым а текстовым chmod -x /etc/rc.d/init.d/dhcpd , а затем sh /etc/init.d/dhcpd start то все нормально запускается. Так же как исполняемый файл он работает, т.к. если в него поместь строчку echo "TEST", то он выводит его. Где могут быть грабли? |
вообще, тут организовалось такое предложение: поставить официальный федоровский dhcpd ( берём здесь ). только что себе на fc3 поставил dhcpd и всё нормально работает. =)
|
Поставил новую - те же самые грабли.
Кто подскажет, почему такая фигня? :o : Цитата:
Цитата:
|
Попробовал удалить dhcpd.leases, при следующем запуске /etc/rc.d/init.d/dhcpd start файл заново создался и теперь вот что получается:
[quote] [root@localhost init.d]# /etc/init.d/dhcpd start Запускается dhcpd: [ СБОЙ ] [root@localhost etc]# sh /etc/init.d/dhcpd start Запускается dhcpd: [ ОК ] [root@localhost etc]# sh /etc/init.d/dhcpd stop Останавливается dhcpd: [ ОК ] [/qoute] А вот логи: Цитата:
|
Каков прогресс в решении проблемы?
|
Цитата:
|
Здраствуйте. Подскажите решение проблемы. Не могу запустить 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 существует с нужными правами. Проверенно. |
Вот рабочий конфиг для загрузки (правда для установки по 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 сервера случился следующим образом. Версия на английском языке Пишу Очень сокращенный перевод
Сейчас у меня в системе простой 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 { Люди советуют использовать match if, может кто подскажет как это реализовать на уровне dhcp? match if { option host-name "administra";} не прокатывает. |
Время: 14:22. |
Время: 14:22.
© OSzone.net 2001-