dadv: (Default)
[personal profile] dadv
В ISC-DHCPD с версии 4.2 появилась есть возможность делать такое:

shared-network HotSpot {
 subnet 10.45.50.0 netmask 255.255.255.0 {
    option routers 10.45.50.1;
 } 
 class "AP1-vlan1096" {
    match if binary-to-ascii(16, 8, ":", hardware) = "1:0:27:22:52:8a:85"
         and binary-to-ascii(16, 8, ".", option agent.circuit-id) = "0.4.4.48.0.5";
 }
 pool {
    allow members of "AP1-vlan1096";
    range 10.45.50.11;
 }
 pool {
    deny members of "AP1-vlan1096";
    range x.x.x.x x.x.x.y;
 }
}

То есть, если AP1 (определяемая по её MAC 0:27:22:52:8a:85) запросила адрес в vlan 1096 (0x448) на шестом порту каталиста (который и вставил в запрос option 82 с этими данными), то выдаётся статический адрес 10.45.50.11. А если из другого, то на общих основаниях, из отдельного пула.

Тут же кучка заботливо разложенных граблей: функция binary-to-ascii() отрезает ведущие нули в каждом октете (буквы делает нижнего регистра); внутренная реализация классов в версии 4.2 имеет вычислительную сложность O(n*n) от количества описанных классов, так что масштабируется это решение не очень.

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios