Страница 1 из 1
isc-dhcpd
Добавлено: 2011-05-01 15:57:48
a1
Настраиваю сабж. Создаю описание подсети. В ней есть два пула, в одном описан хост h1 и запрещены unknown-clients, в другом разрешены.
Код: Выделить всё
subnet 192.168.1.0 netmask 255.255.255.0 {
option domain-name "mylan";
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
pool {
deny unknown-clients;
range 192.168.1.20 192.168.1.199;
host h1 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.25;
}
}
pool {
allow unknown-clients;
range 192.168.2.100 192.168.1.254;
}
}
В результате получаю, что хост от сервера нормально получил свой фиксированный адрес, имя домена, шлюз и т.д., чего я и хотел добиться. Но при этом в логах появляется сообщение:
Код: Выделить всё
dhcpd: Dynamic and static leases present for 192.168.1.25.
dhcpd: Remove host declaration h1 or remove 192.168.1.25
dhcpd: from the dynamic address pool for 192.168.1/24
Т.е., и об этом все пишут, нельзя, чтобы адрес 192.168.1.25 из определения хоста пересекался с range 192.168.1.20 192.168.1.199 из пула, а dhcpd теоретически может выдать адрес 192.168.1.25 другому хосту, пока h1 с MAC-адресом 00:00:00:00:00:00 отключен.
Вопросы:
1. range двух пулов покрывает адреса 192.168.1.20-192.168.1.254. Будет ли таким образом настроенный dhcpd выдавать когда-нибудь адреса из диапазона 192.168.1.1-192.168.1.19?
2. Да, в моём примере с одним хостом я могу разбить range на два, чтобы он не пересекался с хостом. Будет вот так:
Код: Выделить всё
pool {
deny unknown-clients;
range 192.168.1.20 192.168.1.24;
range 192.168.1.26 192.168.1.199;
host h1 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.25;
}
}
Но что будет, если таких хостов у меня будет пятьдесят и IP адреса у них будут идти, скажем, через один? Добавлять ещё пятьдесят range? Как правильно поступить в подобной ситуации? Возможно, нужно использовать не pool/subnet, а что-то другое?
Re: isc-dhcpd
Добавлено: 2011-05-01 16:10:01
a1
Вот ещё дополнение ко второму вопросу: я не сильно в этом разбирался, но в man'е по dhcpd видел, что в описании хоста в качестве параметра для fixed-address допустимо указыать не IP, а доменное имя. Тогда dhcpd сам разрешит его в IP и выдаст полученный адрес хосту. В этом случае вообще невозможно указать range, который не будет пересекаться с IP хоста, т.к. запись в DNS может поменяться.
Re: isc-dhcpd
Добавлено: 2011-05-02 10:01:59
sch
через резервирование можно выдавать произвольные адреса
Re: isc-dhcpd
Добавлено: 2011-05-02 12:00:32
a1
Имеется в виду infinite-is-reserved true? Но в этом случае мы не можем указывать, какой точно IP мы хотим выдать.
Re: isc-dhcpd
Добавлено: 2011-05-02 12:30:34
sch
имеется в виду вот это:
Код: Выделить всё
host h1 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.25;
}
или я не понял, о чем ты спрашивал
Re: isc-dhcpd
Добавлено: 2011-05-02 13:26:11
a1
sch писал(а):или я не понял, о чем ты спрашивал
1. range двух пулов покрывает адреса 192.168.1.20-192.168.1.254. Будет ли таким образом настроенный dhcpd выдавать когда-нибудь адреса из диапазона 192.168.1.1-192.168.1.19?
2. Как выдать фиксированный адрес внутри range, принадлежащего определённому пулу? В моём примере это тот же пул, внутри которого объявлен хост h1. Reserved leases (infinite-is-reserved) не подходят, потому что не позволяют указать адрес, который мы выдаём. Fixed-address не подходит, потому что не допускает выдачу адреса внутри ранее объявленного range.
Re: isc-dhcpd
Добавлено: 2011-05-02 22:19:53
Raven2000
Re: isc-dhcpd
Добавлено: 2011-05-03 15:02:41
a1
Raven2000 писал(а):Для бонуса
Есть большие сомнения, что вот этот пример будет работать:
Код: Выделить всё
# Указываем, что будем использовать разные подсети с названием <strong>mynet</strong>.
shared-network mynet {
### Локальные параметры подсети 192.168.1.0/24: ###
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
}
### Локальные параметры подсети 192.168.2.0/24: ###
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.200;
}
host DC23 {
hardware ethernet 6c:f0:49:e3:92:9d;
fixed-address 192.168.1.11;
}
host RM54 {
hardware ethernet 0:13:8f:24:a4:d9;
fixed-address 192.168.2.22;
}
}
Хосты попадают в range, но при этом fixed-address не пишется в dhcpd.leases, т.е. dhcpd ничего не знает про то, что адрес арендован, и может выдать lease даже если хост включён, но не отзывается на пинги, в логах будет то же самое в стиле:
Код: Выделить всё
dhcpd: Dynamic and static leases present for 192.168.1.25.
dhcpd: Remove host declaration h1 or remove 192.168.1.25
dhcpd: from the dynamic address pool for 192.168.1/24
Re: isc-dhcpd
Добавлено: 2011-05-03 19:58:01
Raven2000
когда хост обращается к дшсп серверу то сервер проверяет нет ли к его маку привязка если да то выдет адрес который ему выделили и описан в конфиге. Если нет то выдает из пула адресов и тогда пишет в dhcpd.leases что выдал тому та и на столько ему незачем писать в свою баз про привязанные IP тк в конфиге это уже описано там.
Re: isc-dhcpd
Добавлено: 2011-05-04 19:56:14
a1
Raven2000 писал(а):когда хост обращается к дшсп серверу то сервер проверяет нет ли к его маку привязка если да то выдет адрес который ему выделили и описан в конфиге.
Когда хост, hardware ethernet которого прописан в dhcpd.conf, обращается к серверу, сервер выдаёт ему fixed-address. Если range пересекается с fixed-address, сервер спокойно может выдать тот же адрес другому хосту,
здесь описано, почему так может произойти.
И теперь проверяем, будет ли работать тот пример:
Код: Выделить всё
shared-network mynet {
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
option domain-name "mylan";
option routers gw.mylan;
option subnet-mask 255.255.255.0;
option domain-name-servers ns.mylan;
}
host h1 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.20;
}
}
Смотрим в логи:
Код: Выделить всё
dhcpd: Dynamic and static leases present for 192.168.1.20.
dhcpd: Remove host declaration h1 or remove 192.168.1.20
dhcpd: from the dynamic address pool for mynet
Т.е. не работает. Более того, относительно объявления хостов внутри shared-network тоже выдаётся предупреждение:
Код: Выделить всё
dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Re: isc-dhcpd
Добавлено: 2011-05-05 10:33:32
Raven2000
Код: Выделить всё
WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Описания хостов должны быть выведены за пределы описания подсетей, то есть запись host... должна начинаться после закрывающей описание subnet (и шаред) фигуронй скобки. Покаж весь конфиг
Код: Выделить всё
cat /usr/local/etc/dhcpd.conf
option domain-name "local";
option domain-name-servers 192.168.0.254;
option subnet-mask 255.255.255.0;
default-lease-time 720000;
max-lease-time 720000;
min-lease-time 720000;
authoritative;
ddns-update-style none;
log-facility local7;
deny unknown-clients;
shared-network mynet {
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.1 192.168.1.240;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.254;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0
{
range 192.168.2.1 192.168.2.240;
option broadcast-address 192.168.2.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.2.254;
option routers 192.168.2.254;
option netbios-node-type 8;
option ntp-servers 192.168.2.253;
option netbios-name-servers 192.168.2.254;
option netbios-dd-server 192.168.2.254;
}
host p5 {
hardware ethernet 6c:f0:49:e3:92:9d;
fixed-address 192.168.1.5;
}
Ты самому интерфейсу сервера пытаешься присвоить IP по хз какому МАС?
Код: Выделить всё
host h1 {
hardware ethernet 00:00:00:00:00:00;