Коммутатор имеет настройку:
Vlan 1:
ip address 192.168.1.2
Vlan 2:
ip helper address 192.168.1.1
ip address 192.168.100.2 255.255.255.0
ip address 192.168.101.2 255.255.255.0 secondary
Vlan 3:
ip address 192.168.102.2 255.255.255.0
Маршрутизация настроена. Статично заданные адреса друг друга видят (в том числе из разных VLAN)
Транк до DHCP сервера по VLAN 3
isc-dhcp-server
Интерфейс: 192.168.102.1
Так вот, без всяких правил получается выдавать ip адрес из подсети 192.168.100.0
Не получается по классу выдавать из сети 192.168.101.0 255.255.255.0, как только добавляю: "allow members of "List" - он пытается получить из 192.168.100.0.
Конфиг:
authoritative;
log-facility local7;
option domain-name "example.com";
option domain-search "example.com";
option domain-name-servers 192.168.102.1;
option subnet-mask 255.255.255.0;
option voip-tftp-server code 150 = { ip-address };
option op125 code 125 = string;
option op60 code 60 = string;
option op150 code 150 = ip-address;
default-lease-time 1296000;
max-lease-time 2592000;
### DNS AutoUpdate
ddns-updates off;
ddns-update-style interim;
ignore client-updates;
update-static-leases on;
class "List" {
match if substring(hardware, 1, 3) = 24:9a:d8;
}
### Из этой сети нужно выдавать по MAC
subnet 192.168.101.0 netmask 255.255.255.0 {
option broadcast-address 192.168.101.255;
option routers 192.168.101.2;
pool {
range 192.168.101.100 192.168.101.254;
allow members of "List";
}
}
### без опций, заглушка, что бы проверять class
subnet 192.168.100.0 netmask 255.255.255.0 {}
### объявление сети интерфейса DHCP сервера
subnet 192.168.102.0 netmask 255.255.255.0 {
option broadcast-address 192.168.102.255;
option routers 192.168.102.2;
pool {
range 192.168.102.100 192.169.102.254;
deny all clients;
}
}
MAC устройства: 24:9a:d8:4f:7e:47
TCP dump - приходят только DHCPDiscover, т.к. классификация не срабатывает и он ломится в 192.168.100.0
Но видно какие есть опции.
06:38:46.624319 IP (tos 0x0, ttl 255, id 1663, offset 0, flags [none], proto UDP (17), length 576)
192.168.100.2.67 > 192.168.102.1.67: [udp sum ok] BOOTP/DHCP, Request from 24:9a:d8:4f:7e:47, length 548, hops 1, xid 0x895fc951, secs 100, Flags [none] (0x0000)
Gateway-IP 192.168.100.2
Client-Ethernet-Address 24:9a:d8:4f:7e:47
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Discover
Client-ID (61), length 7: ether 24:9a:d8:4f:7e:47
Unknown (125), length 37: 0.0.13.233.32.1.6.50.52.57.97.100.56.2.12.50.52.57.97.100.56.52.102.55.101.52.55.3.8.83.73.80.45.84.51.48.80
MSZ (57), length 2: 576
Parameter-Request (55), length 19:
Subnet-Mask (1), Time-Zone (2), Default-Gateway (3), Time-Server (4)
Domain-Name-Server (6), LOG (7), Hostname (12), Domain-Name (15)
BR (28), NTP (42), TFTP (66), BF (67)
Vendor-Option (43), Unknown (252), POSIX-TZ (100), TZ-Name (101)
Unknown (120), Unknown (132), Unknown (133)
Hostname (12), length 8: "SIP-T30P"
Vendor-Class (60), length 7: "yealink"
END (255), length 0
PAD (0), length 0, occurs 212
Пробовал и hardware, и client-id, и заранее объявлял "option opt60 code 60 = string;"
Конструкция также не работает:
class "List" { match hardware;}
subclass "List" 24:9a:d8:4f:7e:47;
Как все таки понять чего ему не хватает?