Same MAC - diffrent IP depending on the contex (class)?

Robert Socha socha at socha.it
Thu Aug 13 12:54:12 UTC 2020


Hi,

I was unable to find solution for my problem, so I implemented it in 
source code.
I added "match if" directive to host definition which allows me to do 
something like this:

option client-architecture code 93 = unsigned integer 16;

class "is-netboot" {
         match if exists client-architecture and (not (option 
user-class="iPXE"));
}


host O000C29EF4070 {
    hardware ethernet 00:0C:29:EF:40:70;
    fixed-address 20.20.20.20;
    option routers 10.10.10.10;
    option subnet-mask 255.255.255.255;
}

host N000C29EF4070 {
    match if "is-netboot";
    hardware ethernet 00:0C:29:EF:40:70;
    fixed-address 100.64.4.2;
    option routers 100.64.4.1;
    option subnet-mask 255.255.255.252;
}

I also added support for globbing for include directive:

include "/etc/dhcp/host/*.conf"
include "/etc/dhcp/host/*/*.conf"

to recursively include files from folder and subfolders.

Best regards


W dniu 07.08.2020 o 23:02, Robert Socha pisze:
> Hi,
> 
> I wonder if it's possible to achieve this in ISC DHCP:
> 
> - I have static hosts only (only known clients - no dynamic assignments)
> - I need to assign different addresses to host depending on if it's boot 
> client (PXE or UEFI), or if it's OS (linux,windows,etc) DHCP client 
> discover
>     ( I need that because we use RFC3021 or /32 route-able IP 
> assignments to customer services and this addresses are not supported by 
> UEFI firmware).
> 
> So something like this (in pseudo config) or as idea:
> 
> 
> # arch-type  -> option 93
> if(if exists arch-type) {
>      # Private/netboot subnet
>      host N000c290e741d {
>              hardware ethernet 00:0c:29:0e:74:1d;
>              fixed-address 100.120.120.2;
>              option routers 100.120.120.1;
>              option subnet-mask 255.255.255.252;
>      }
> } else {
>      # This for "public" network - discovers from "not boot agent"
>      host O000c290e741d  {
>              hardware ethernet 00:0c:29:0e:74:1d;
>              fixed-address 10.255.255.11;
>              option routers 10.255.255.10;
>              if option vendor-class-identifier="MSFT 5.0" {
>                      option subnet-mask 255.255.255.255;
>              } else {
>                      option subnet-mask 255.255.255.254;
>              }
>      }
> }
> 
> I looking for solution with static assignments (not dynamic pool's) for 
> netboot network (we some logic behind this assigned IP's)
> 
> Best regards


-- 
Robert Socha


More information about the dhcp-users mailing list