Еще вопрос:
Создал услугу "Реальный IP", как научить DHCP, выдавать реальный IP при активации услуги, или выдавать серый IP, по завершению услуг?
нужно использовать модуль ядра make_config, который будет формировать конфиг для dhcp в зависимости от подключенной услуги. Кстати, пока услуги им не обрабатываются, но я смогу сделать, если найдется человек, который таки реализует что ты хочешь (не хочется тратить силы бесполезно) в шаблоне для dhcpd
Действительно, нет необходимости, что дописывать. Дабы не тратить силы и время, есть другой вариант, а именно:
1) Создаем услугу "Реальный IP" с продлением, которая будет снимать N денег.
2) Назначаем клиенту
статический реальный IP. Но статика, это не динамика((
Вот тут вопрос, где указать в NoDeny+, какой IP выдавать клиенту по DHCP, реальный или серый? Я пробовал создавать гуппу HomeLine-RealIP, в группе прописал сети реальных IP. Из новой группы, создавал клиента, но как получал серые IP так и получаю((( Может конфиг DHCP надо править:
log-facility local7;
option domain-name-servers 1.1.1.1, 8.8.8.8;
#option domain-name "xxx.net";
#silver ip
shared-network 123 {
interface igb0;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.2 10.0.0.254;
option routers 10.0.0.1;
## option broadcast-address 10.0.0.255;
default-lease-time 2400;
max-lease-time 1800;
on commit {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set SwitchMac = "";
set SwitchPort ="";
if exists agent.circuit-id
{
set SwitchMac = binary-to-ascii(16, 8, ":", option agent.remote-id);
set SwitchPort = binary-to-ascii(10, 8, ":", suffix(option agent.circuit-id, 1));
}
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "commit",
ClientIP, ClientMac, SwitchMac, SwitchPort);
}
on expiry {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "expiry", ClientIP);
}
on release {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "release", ClientIP);
}
}
#real IP xxx.xx.xx.240/28
subnet xxx.xx.xx.240 netmask 255.255.255.240 {
range xxx.xx.xx.243 xxx.xx.xx.254;
option routers 217.66.99.241;
### option broadcast-address 10.0.0.255;
default-lease-time 2400;
max-lease-time 1800;
on commit {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set SwitchMac = "";
set SwitchPort ="";
if exists agent.circuit-id
{
set SwitchMac = binary-to-ascii(16, 8, ":", option agent.remote-id);
set SwitchPort = binary-to-ascii(10, 8, ":", suffix(option agent.circuit-id, 1));
}
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "commit",
ClientIP, ClientMac, SwitchMac, SwitchPort);
}
on expiry {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "expiry", ClientIP);
}
on release {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "release", ClientIP);
}
}
}