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

glenn.satchell at uniq.com.au glenn.satchell at uniq.com.au
Fri Aug 14 02:09:03 UTC 2020


Hi Robert,

That's one way to do it.

The other way would be to create a class and two pools for each host. In 
the pools have a single IP address in the range. The class would select 
based on PXE and ethernet. This would be ok for a few clients, but if 
you have hundreds it might not scale well.

regards,
-glenn

On 2020-08-13 22:54, Robert Socha wrote:
> 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


More information about the dhcp-users mailing list