<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
        {mso-style-name:x_msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
<div class="WordSection1">
<p class="MsoNormal">Didn’t send to list.</p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Jorell F<br>
<b>Sent:</b> Wednesday, May 8, 2019 10:37:04 AM<br>
<b>To:</b> mkangelo<br>
<b>Subject:</b> RE: [Kea-users] Host reservations, bootfilename and client classes</font>
<div> </div>
</div>
<div><style>
<!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
a:link, span.x_MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.x_MsoHyperlinkFollowed
        {color:#954F72;
        text-decoration:underline}
.x_MsoChpDefault
        {}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
        {}
-->
</style>
<div lang="EN-US" link="blue" vlink="#954F72">
<div class="x_WordSection1">
<p class="x_MsoNormal">Is this the answer you are looking for:</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">    "next-server": "<serverip>",</p>
<p class="x_MsoNormal">    "option-data":</p>
<p class="x_MsoNormal">    [</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name":  "no-pxedhcp",</p>
<p class="x_MsoNormal">        "data":  "1",</p>
<p class="x_MsoNormal">        "code":  176,</p>
<p class="x_MsoNormal">        "space": "ipxe"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "tftp-server-name",</p>
<p class="x_MsoNormal">        "data": "<serverip>"</p>
<p class="x_MsoNormal">      }</p>
<p class="x_MsoNormal">    ],</p>
<p class="x_MsoNormal">    "client-classes":</p>
<p class="x_MsoNormal">    [</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "Legacy ",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/undionly.kpxe"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "UEFI-32-1",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00002'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/i386/ipxe.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "UEFI-32-2",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00006'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/i386/ipxe.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "UEFI-64-1",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/x86_64/snponly.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "UEFI-64-2",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00008'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/x86_64/snponly.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "UEFI-64-3",</p>
<p class="x_MsoNormal">        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00009'",</p>
<p class="x_MsoNormal">        "boot-file-name": "ipxe/x86_64/snponly.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "EFI_HTTP",</p>
<p class="x_MsoNormal">        "test": "option[93].hex == 0x0010",</p>
<p class="x_MsoNormal">        "option-data": [ { "name": "vendor-class-identifier", "data": "HTTPClient" } ],</p>
<p class="x_MsoNormal">        "boot-file-name": "http://<serverip>:80/ipxe/x86_64/snponly.efi"</p>
<p class="x_MsoNormal">      },</p>
<p class="x_MsoNormal">      {</p>
<p class="x_MsoNormal">        "name": "XClient_iPXE",</p>
<p class="x_MsoNormal">        "test": "substring(option[77].hex,0,4) == 'iPXE'",</p>
<p class="x_MsoNormal">        "boot-file-name": "http://<serverip>:80/ipxe/boot.php"</p>
<p class="x_MsoNormal">      }</p>
<p class="x_MsoNormal">    ],</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Clients that are PXE booting get the boot file, clients that already have the boot file get the config file.</p>
<p class="x_MsoNormal">(this config was working on kea v1.4)</p>
<p class="x_MsoNormal">I believe kea uses a last to match, if an option does not exist deeper in the config i.e. reservations, it will pull from subnet or global.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Kea-users <kea-users-bounces@lists.isc.org> on behalf of mkangelo <angel.rushkov@gmail.com><br>
<b>Sent:</b> Tuesday, April 30, 2019 7:46:13 AM<br>
<b>To:</b> kea-users@lists.isc.org<br>
<b>Subject:</b> [Kea-users] Host reservations, bootfilename and client classes</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi guys,<br>
<br>
We are evaluating KEA (premium) as a potential replacement for our current<br>
DHCP infra, and we have few concerns over the following:<br>
<br>
1. Is it possible to have a custom bootFilename (option 67) set per host<br>
reservation while it references to a single client class? (this should not<br>
be part of the subnets).<br>
<br>
2. Is it possible to prioritise bootFilename from a class (even if there is<br>
already a bootFilename set in the reservation) based on the matching client<br>
option (example 60, 77) ?<br>
<br>
To clarify:<br>
<br>
- We need clients that have option 77 to receive bootFilename from a<br>
reservation and in case it doesn't have option 77 and matches just option 60<br>
to receive bootFilename from that class.<br>
<br>
- There will be multiple classes configured, and we'd like the host<br>
reservations to be stored in a SQL database<br>
<br>
<br>
I'd appreciate some feedback.<br>
<br>
<br>
Example JSON config (classes and reservation - used for testing):<br>
<br>
<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://kea-users.7364.n8.nabble.com/">http://kea-users.7364.n8.nabble.com/</a><br>
_______________________________________________<br>
Kea-users mailing list<br>
Kea-users@lists.isc.org<br>
<a href="https://lists.isc.org/mailman/listinfo/kea-users">https://lists.isc.org/mailman/listinfo/kea-users</a><br>
</div>
</span></font></div>
</body>
</html>