dadv: (Default)
Choose your future ([personal profile] dadv) wrote2012-08-15 09:40 pm
Entry tags:

ISC-DHCPD advanced practices

В 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) от количества описанных классов, так что масштабируется это решение не очень.


Post a comment in response:

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting

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