Jump to content
Калькуляторы

DHCP Option 82 проблема Не выдаётся IP из нужного пула

Доброй ночи!

 

Столкнулся тут с косяком с ISC DHCPD 3.0 при использовании option-82. Пока не могу понять как правильно его настроить. В двух словах:

 

Сеть имеет такой вид:

[Абонент]---[DES-3526]---[DES-3100-24TG]---[DGS-3612G]---[L3 сеть]---[ЦСФ]---[2 дублирующих DHCP сервера]

На DES-3526 включен DHCP snooping, он же выступает DHCP relay и шлёт запросы на сервера в ЦСФ. Все абоны запиханы в один vlan с IP 10.xxx.0.0/20, порты изолированы друг от друга - пускается трафик только на uplink.

IP адреса свичей в управляющем vlan из подсети 10.xxx.31.0/24

 

Конфиги dhcpd идентичны. Привожу конфиг слэйва:

 # /etc/dhcp/dhcp.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 86400;
log-facility local7;
local-address xx.xx.xx.xz;
option domain-name "isp.ru";

if exists agent.circuit-id
{
  log(info, concat(
    "Leased IP address: ", binary-to-ascii(10, 8, ".", leased-address),
    "; Switch: ", substring(option agent.remote-id, 2, 32),
    "; VLAN ID: ", binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)),
    "; Port: ", binary-to-ascii(10, 8, "/", substring(option agent.circuit-id, 4, 2))));
}

# Failover
failover peer "DHCP-Master" {
  secondary;
  address xx.xx.xx.xx;
  port 313;
  peer address xx.xx.xx.xy;
  peer port 313;
  max-response-delay 30;
  max-unacked-updates 10;
}

shared-network prov {
  subnet xx.xx.xx.00 netmask 255.255.255.224 { }

  # Networks including
  include "/etc/dhcp/XXX-0/XX3-0";
  include "/etc/dhcp/XXX-0/XX4-0";
}

Конфиг одной подсети:

# Network XX3-0

subnet 10.XX3.31.0 netmask 255.255.255.0 {
  range 10.XX3.31.254;
  deny unknown-clients;
}

subnet 10.XX3.0.0 netmask 255.255.240.0 {
  authoritative;
  option routers 10.XX3.0.1;
  option subnet-mask 255.255.240.0;
  option domain-name-servers 10.XX3.0.1, xx.xx.xx.xz;

  # Including access switches definitions
  include "/etc/dhcp/XX3-0/XX3-0-1";
  include "/etc/dhcp/XX3-0/XX3-0-2";
  ...
  include "/etc/dhcp/XX3-0/XX3-0-20";

Конфиг для одного из коммутаторов:

# IP address range 10.XX3.1.145-10.XX3.1.168

class "acc-XX3-0-7-port-1" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1"); }
class "acc-XX3-0-7-port-2" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "2"); }
class "acc-XX3-0-7-port-3" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "3"); }
...
class "acc-XX3-0-7-port-24" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "24"); }

pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.145; allow members of "acc-XX3-0-7-port-1"; }
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.146; allow members of "acc-XX3-0-7-port-2"; }
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.147; allow members of "acc-XX3-0-7-port-3"; }
...
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.168; allow members of "acc-XX3-0-7-port-24"; }

 

Свичи прекрасно релеят запросы на сервера, но выдаётся не то, что прописано в пулах:

Jul 10 17:46:40 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:40 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:46:44 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:44 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:46:52 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:52 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:47:07 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:47:07 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:47:43 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1

Выдаётся IP 10.XX3.31.254. Эту сеть обязательно нужно задавать и выделять в ней пул хотя бы на 1 IP, иначе dhcpd ругается на неопределённую сеть, когда приходит пакет от 3526, или на отсутствие свободных адресов в этой сети, если не определять пул.

 

Прошу подсказать, как сделать так, чтобы isc dhcpd не обращал внимание на подсеть свичей, и выдавал только заданные адреса из абонентских пулов.

 

Заранее спасибо :)

Share this post


Link to post
Share on other sites

Jul 10 17:47:43 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1[/code] Выдаётся IP 10.XX3.31.254. Эту сеть обязательно нужно задавать и выделять в ней пул хотя бы на 1 IP, иначе dhcpd ругается на неопределённую сеть, когда приходит пакет от 3526, или на отсутствие свободных адресов в этой сети, если не определять пул.

У нас работает примерно так, на свичах релей и снупинг. дхцп сервер за Л3 свичем.

Сеть описывать надо, но без пулов, к примеру:

class "vlan145" {
match if binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2))="145";
}
shared-network 3526 {
(сеть со свичами)
subnet 192.168.12.0 netmask 255.255.252.0 { not authoritative; }

#vlan 145
subnet 10.1.6.0 netmask 255.255.255.224 {
  not authoritative;
  option domain-name-servers ns1, ns2;
  option domain-name "vlan145.pool.domain.ru";
  option routers 10.1.6.1;
  option broadcast-address 10.1.6.31;
  option ms-classless-static-routes 16, 10,1, 10,1,6,1;
  option rfc3442-classless-static-routes 16, 10,1 10,1,6,1;
}
# pool vlan145
pool {
    range 10.1.6.2 10.1.6.30;
    allow members of "vlan145";
}
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.