LINUX.ORG.RU

Интерфейс на котором запущен isc-dhcp-server

 , ,


0

1

Здравствуйте.

Подскажите, по настройке сабжа. Данный сервер не запускается, если предварительно не настроить интерфейс на котором он запущен. А можно как то его настроить так, что бы он сам этот интерфейс настраивал?


Ответ на: комментарий от matcha

Прописал в /etc/network/interfaces так:

allow-hotplug enp1s0
#iface enp1s0 inet dhcp

Получил:

окт 18 09:37:12 debian-dhcp systemd[1]: Starting LSB: DHCP server...
окт 18 09:37:12 debian-dhcp isc-dhcp-server[458]: Launching IPv4 server only.
окт 18 09:37:12 debian-dhcp dhcpd[464]: Internet Systems Consortium DHCP Server 4.4.1
окт 18 09:37:12 debian-dhcp dhcpd[464]: Copyright 2004-2018 Internet Systems Consortium.
окт 18 09:37:12 debian-dhcp dhcpd[464]: All rights reserved.
окт 18 09:37:12 debian-dhcp dhcpd[464]: For info, please visit https://www.isc.org/software/dhcp/
окт 18 09:37:12 debian-dhcp dhcpd[470]: Internet Systems Consortium DHCP Server 4.4.1
окт 18 09:37:12 debian-dhcp dhcpd[470]: Copyright 2004-2018 Internet Systems Consortium.
окт 18 09:37:12 debian-dhcp dhcpd[470]: All rights reserved.
окт 18 09:37:12 debian-dhcp dhcpd[470]: For info, please visit https://www.isc.org/software/dhcp/
окт 18 09:37:12 debian-dhcp dhcpd[470]: Wrote 0 deleted host decls to leases file.
окт 18 09:37:12 debian-dhcp dhcpd[470]: Wrote 0 new dynamic host decls to leases file.
окт 18 09:37:12 debian-dhcp dhcpd[470]: Wrote 4 leases to leases file.
окт 18 09:37:12 debian-dhcp dhcpd[470]: 
окт 18 09:37:12 debian-dhcp dhcpd[470]: No subnet declaration for enp1s0 (no IPv4 addresses).
окт 18 09:37:12 debian-dhcp dhcpd[470]: ** Ignoring requests on enp1s0.  If this is not what
окт 18 09:37:12 debian-dhcp dhcpd[470]:    you want, please write a subnet declaration
окт 18 09:37:12 debian-dhcp dhcpd[470]:    in your dhcpd.conf file for the network segment
окт 18 09:37:12 debian-dhcp dhcpd[470]:    to which interface enp1s0 is attached. **
окт 18 09:37:12 debian-dhcp dhcpd[470]: 
окт 18 09:37:12 debian-dhcp dhcpd[470]: 
окт 18 09:37:12 debian-dhcp dhcpd[470]: Not configured to listen on any interfaces!
окт 18 09:37:12 debian-dhcp dhcpd[470]: 
окт 18 09:37:12 debian-dhcp dhcpd[470]: If you think you have received this message due to a bug rather
окт 18 09:37:12 debian-dhcp dhcpd[470]: than a configuration issue please read the section on submitting
окт 18 09:37:12 debian-dhcp dhcpd[470]: bugs on either our web page at www.isc.org or in the README file
окт 18 09:37:12 debian-dhcp dhcpd[470]: before submitting a bug.  These pages explain the proper
окт 18 09:37:12 debian-dhcp dhcpd[470]: process and the information we find helpful for debugging.
окт 18 09:37:12 debian-dhcp dhcpd[470]: 
окт 18 09:37:12 debian-dhcp dhcpd[470]: exiting.
окт 18 09:37:14 debian-dhcp isc-dhcp-server[458]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ...
окт 18 09:37:14 debian-dhcp isc-dhcp-server[475]:  failed!
окт 18 09:37:14 debian-dhcp isc-dhcp-server[476]:  failed!
окт 18 09:37:14 debian-dhcp systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
окт 18 09:37:14 debian-dhcp systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
окт 18 09:37:14 debian-dhcp systemd[1]: Failed to start LSB: DHCP server.
torm7
() автор топика
Ответ на: комментарий от torm7

/etc/default/isc-dhcp-server <— в этот файл нужно прописать интерфейс на котором сервер подниматься должен.

/etc/dhcp/dhcpd.conf <— это сам конфиг сервера.

По ссылке всё есть.

matcha
()
Ответ на: комментарий от matcha

/etc/default/isc-dhcp-server

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
DHCPDv4_PID=/var/run/dhcpd.pid

INTERFACESv4="enp1s0"
INTERFACESv6=""

/etc/dhcp/dhcpd.conf

option domain-name "lan";
option domain-name-servers 172.16.0.2;

default-lease-time 600;
max-lease-time 7200;

subnet 172.16.0.0 netmask 255.255.255.0 {
  range 172.16.0.3 172.16.0.254;
  option domain-name-servers 172.16.0.2;
  option domain-name "lan";
  option routers 172.16.0.1;
  option broadcast-address 172.16.0.255;
  default-lease-time 604800;
  max-lease-time 604800;
}

host hypervisor {
  hardware ethernet fe:54:00:c4:a1:0b;
  fixed-address 172.16.0.1;
}
torm7
() автор топика

Может я описал вопрос не совсем понятно.

Я хочу что бы isc-dhcp-server сам настроил интерфейс на котором поднимается.

torm7
() автор топика
Ответ на: комментарий от torm7

Возможно какой-то другой сервис, например NetworkManager, уже оккупировал интерфейс. Если это так, нужно остановить этот сервис и освободить интерфейс.

matcha
()
Ответ на: комментарий от torm7

Да, я опустил эту информацию как незначительную…

Значит это, что теперь работает как тебе изначально хотелось?

matcha
()
Ответ на: комментарий от matcha

Нет, с вариантом iface enp1s0 inet staic изначально проблем не было. Я хочу что бы заработал вариант iface enp1s0 inet dhcp

Сейчас получается что для работы dhcp сервера, ему нужно ручками настроить интерфейс на котором он будет работать. А я хочу что бы он сам его настроил…

torm7
() автор топика
Последнее исправление: torm7 (всего исправлений: 1)
Ответ на: комментарий от torm7

iface enp1s0 inet dhcp

dhcp

Но это значит, что интерфейс получает адрес с дхцп сервера. Т.е. твой дхцп сервер должен получать адрес с другого дхцп сервера?

matcha
()
Ответ на: комментарий от einhander

Я не уверен, поэтому и завел тему на форуме…

Просто с моей точки зрения было бы логично настраивать конфигурацию сети в одном месте:/etc/dhcp/dhcpd.conf и в соответствии с этим файлом конфигурировать настраивать интерфейс в /etc/network/interfaces.

А сейчас получается надо помнить про оба этих места, да и при связке с BIND9 надо ручками править зону.

Хотелось бы про это забыть…

torm7
() автор топика
Ответ на: комментарий от torm7

Настрой dnsmasq и забудь.

Хочешь, чтобы не только dhcp/dns с одного файла, а ещё и сам интерфейс: смотри в сторону систем управления конфигурациями.

t184256 ★★★★★
()

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

FireFighter ★★★
()
Ответ на: комментарий от FireFighter

Печалька…

Т.е. надо помнить о настройке в /etc/network/interfaces, /etc/dhcp/dhcpd.conf и в файлах зон ДНС сервера.

Неужели все так и занимаются таким секасом при настройке сети?

torm7
() автор топика
Ответ на: комментарий от torm7

Да. Ты не поверишь, но при настройке сети люди занимаются настройкой сети. К слову, это куда логичнее того, что ты предлагаешь ­­— сейчас адрес всегда настраивается в одном месте, вне зависимости от наличия DHCP-сервера, как-то не очень логично при поднятии dhcp-сервера брать и переносить настройки в другое место.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от torm7

/etc/network/interfaces и /etc/dhcp/dhcpd.conf к настройкам днс сервера имеют очень опосредованное отношение.

Dhcp сервер не настраивает сетевой интерфейс, это не его забота. Ему нужен чтобы он был уже настроен.

einhander ★★★★★
()
Ответ на: комментарий от gremlin_the_red

@gremlin_the_red

…К слову, это куда логичнее того, что ты предлагаешь…

Я ничего не предлагаю. Я спрашиваю как прописать настройки сети, из пула DHCP сервера, который должен подниматься на этом интерфейсе. Ведь он для этого и существует, что бы не ручками это делать. И хочется это получить без того, что бы прибивать настройки гвоздями в interfaces, dhcpd.conf и файлах зон

@einhander

…настройкам днс сервера имеют очень опосредованное отношение. Dhcp сервер не настраивает сетевой интерфейс, это не его забота.

Не такое уж опосредствованное, если нужно обращаться к узлу с регулярно изменяемым адресом… Тут либо либо прибивать IP к MAC’ам, либо заставить DHCP обновлять файлы зон самостоятельно. Да и почему это не его забота? Он настраивает все обращающиеся к нему интерфейсы в сети, но только не свой. Как то это не правильно наверно…

torm7
() автор топика
Ответ на: комментарий от torm7

Он настраивает все обращающиеся к нему интерфейсы в сети, но только не свой.

Он не занимается настройкой интерфейсов, он предоставляет информацию клиентам, которые и занимаются настройкой. Клиенты сами ищут сервер и по его информации настраивают свои интересы, сервер не знает и не может знать именования интерфейсов в различных ОС. Ему безразлично как на железном уровне проложена сеть (проводная или безпроводная и тд). Если по простому, то он открывает соответствующий порт на нужном адресе и ждёт подключений.

einhander ★★★★★
()
Ответ на: комментарий от torm7

Так тебе и не нужно каждый раз ручками интерфейс поднимать. Ты один раз прописываешь статичесткие настройки интерфейса и всё, интерфейс поднимается, дхцп сервер стартует на этом интерфейсе.

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

matcha
()
Ответ на: комментарий от einhander

@einhander Ну ok, в твоей терминологии. Как заставить DHCP сервер предоставить информацию клиенту запущеному на интерфейсе enp1s0 и запустить этот сервер на этом же интерфейсе?

@matcha

Ты один раз прописываешь статичесткие настройки интерфейса и всё, интерфейс поднимается, дхцп сервер стартует на этом интерфейсе.

Вот от такого «логичного» поведения я и хочу избавиться. И не прописывать статические настройки. Ведь от этого DHCP сервер и должен избавлять…

torm7
() автор топика
Ответ на: комментарий от torm7

Это невозможно по RFC. Даже если ты поднимешь dhcp-сервер на ненастроенном интерфейсе, то каким образом интерфейс должен достучаться до сервера?

FireFighter ★★★
()
Последнее исправление: FireFighter (всего исправлений: 1)
Ответ на: комментарий от torm7

Как заставить DHCP сервер предоставить информацию клиенту запущеному на интерфейсе enp1s0 и запустить этот сервер на этом же интерфейсе?

Никак, оно так не работает.

И не прописывать статические настройки. Ведь от этого DHCP сервер и должен избавлять…

Пиши скрипт который парсит файл настройки сервера поднимает интерфейс на этих настройках и стартует dhcp сервер.

einhander ★★★★★
()
Ответ на: комментарий от torm7

И не прописывать статические настройки.

Но ты же, полюбому, прописываешь в настройках сервера, в какой подсети он работает. Или дхцп сервер сам должен догадываться на каком интерфейсе и в какой подсети стартовать?

Тогда тебе нужно запиливать фичу:

iface enp1s0 inet dhcpD

и в данном случае настройкой интерфейса будет заниматься сам дхцп сервер.

matcha
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.