<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks to everyone who replied (and we asked the question on the dhcp-users mailing list too).  It seemed like most people preferred ‘A’ so that is the approach we are pursuing. <div class=""><br class=""></div><div class="">Regards,</div><div class=""><br class=""></div><div class="">Vicky</div><div class=""><div><blockquote type="cite" class=""><div class="">On Sep 5, 2017, at 5:49 AM, James Sumners <<a href="mailto:JamesSumners@clayton.edu" class="">JamesSumners@clayton.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
<style class="">
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}

h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}

h1 {
        color: #000000;
        font-size: 28pt;
}

h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}

h3 {
        font-size: 18px;
}

h4 {
        font-size: 16px;
}

h5 {
        font-size: 14px;
}

h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}

hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
    display: inherit;
}

p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}

a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}

#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}

button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}

code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}

code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}

pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}

pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}

#ws { background-color: #f8f8f8; }


.bloop_markdown table {
border-collapse: collapse;  
font-family: Helvetica, arial, freesans, clean, sans-serif;  
color: rgb(51, 51, 51);  
font-size: 15px; line-height: 25px;
padding: 0; }

.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
     
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }

.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }

.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }

.bloop_markdown blockquote{
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

code, pre, #ws, #message {
    word-break: normal;
    word-wrap: normal;
}

hr {
    display: inherit;
}

.bloop_markdown :first-child {
    -webkit-margin-before: 0;
}

code, pre, #ws, #message {
    font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}


.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style>

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="bloop_markdown"><p class="">Of the proposed, I prefer option “B”.</p></div><div class="bloop_original_html">
<div id="bloop_sign_1504615729166629120" class="bloop_sign"></div>
<br class=""><p class="airmail_on">On August 31, 2017 at 9:32:52 AM, Marcin Siodelski (<a href="mailto:marcin@isc.org" class="">marcin@isc.org</a>) wrote:</p>
<blockquote type="cite" class="clean_bq"><span class="">
<div class="">
<div class=""></div>
<div class="">Hello Kea Users, <br class="">
<br class="">
We are currently working on implementation of a "shared networks" <br class="">
mechanism in Kea, to provide ability for grouping multiple subnets <br class="">
belonging to the same link. <br class="">
<br class="">
This is useful to extend address pools for clients on the same physical <br class="">
link, i.e. clients located on this link may get addresses from different <br class="">
subnets. In such case, the DHCP server would allocate addresses from <br class="">
another subnet (and its pools) if there are no more addresses available <br class="">
in the first subnet. <br class="">
<br class="">
It is also useful in cable networks, when a cable modem and a router are <br class="">
on the same physical link but they should get addresses from different <br class="">
subnets. Client classification is used in such case. <br class="">
<br class="">
The ISC engineering team has been working on a design for this feature. <br class="">
One of the contentious points is how to organize shared networks <br class="">
configuration within the Kea config file. <br class="">
<br class="">
We have discussed three different options. Let's call them A, B, C, <br class="">
which are briefly discussed below. The ISC engineering team is leaning <br class="">
towards A, but we'd also like to get some input from our Users what they <br class="">
think might be more convenient. <br class="">
<br class="">
Proposal A <br class="">
<br class="">
Sample configuration link: <br class="">
<a href="http://kea.isc.org/wiki/SharedSubnetsDesign#ConfigurationFormat" class="">http://kea.isc.org/wiki/SharedSubnetsDesign#ConfigurationFormat</a> <br class="">
<br class="">
In this case, the shared-networks list contains a full specification of <br class="">
each subnet that belongs to shared networks. It is still possible to <br class="">
define subnets outside of the shared-networks scope. Such subnets will <br class="">
not be associated with any shared network. <br class="">
<br class="">
Pros: <br class="">
- Make use of hierarchical nature of JSON - subnets enclosed within <br class="">
shared-networks structure belong to shared-networks. Other subnets do <br class="">
not. No need to refer to subnets from another structure by name or id etc. <br class="">
- Avoid configuration error whereby a single subnet may belong to <br class="">
different shared networks. <br class="">
- Avoid configuration error caused by manual matching of subnets with <br class="">
networks. <br class="">
- Is compatible with autogenerated subnet identifiers. <br class="">
- JSON viewing tools can be used to visualize which subnets belong to <br class="">
shared network by simply looking at the JSON hierarchy. <br class="">
- Is similar to other configuration structures we use (except option <br class="">
definitions). <br class="">
- Is similar to how it is organized in ISC DHCP. <br class="">
<br class="">
Cons: <br class="">
- Moving subnets between shared networks requires copy pasting large <br class="">
portions of configuration (entire subnet specification has to be <br class="">
copied), possibly between distant locations in the configuration file. <br class="">
- Makes it hard to see how many subnets are specified within a shared <br class="">
network without JSON processing tools that can hide portions of the <br class="">
configuration. <br class="">
<br class="">
<br class="">
Proposal B <br class="">
Sample configuration link: <br class="">
<a href="http://kea.isc.org/wiki/SharedSubnetsDesign#Alternative1" class="">http://kea.isc.org/wiki/SharedSubnetsDesign#Alternative1</a> <br class="">
<br class="">
This is the first of the proposals in which all subnets are defined at <br class="">
the same configuration level (regardless if they belong to shared <br class="">
networks or not). The shared-networks structure is separate and for each <br class="">
network it refers to subnet ids that belong to the shared network. <br class="">
<br class="">
Pros: <br class="">
- shared-networks structure is much smaller because it only contains <br class="">
subnet identifiers, rather than full subnet definitions. It may also <br class="">
contain DHCP options etc. <br class="">
- It makes it easier to move subnets between shared networks (or remove <br class="">
them entirely) because it is just a matter of copy pasting subnet ids, <br class="">
rather than full network specifications. <br class="">
<br class="">
Cons: <br class="">
- User error prone: subnet ids specified within shared-networks must <br class="">
exist. It is easy to specify id of non-existing subnet or id of a wrong <br class="">
subnet. <br class="">
- User error prone: it is possible to specify the same id in two <br class="">
different networks which is not allowed <br class="">
- If there are many subnets, specifying a subnet and associating it with <br class="">
a shared network means update to the config file in two different <br class="">
(possibly distant) locations. <br class="">
- Removal of a subnet belonging to a shared network requires config <br class="">
update in two different locations. <br class="">
- Is incompatible with autogenerated subnet identifiers because these <br class="">
identifiers may vary between server configurations, e.g. when any subnet <br class="">
is removed. <br class="">
- Generic JSON tools can't do matching between subnets and shared <br class="">
networks because they can't interpret subnet ids as a reference. <br class="">
<br class="">
<br class="">
Proposal C <br class="">
Sample configuration link: <br class="">
<a href="http://kea.isc.org/wiki/SharedSubnetsDesign#Alternative2" class="">http://kea.isc.org/wiki/SharedSubnetsDesign#Alternative2</a> <br class="">
<br class="">
Pros: <br class="">
- Has the same pros as proposal B <br class="">
- It avoids the use of subnet ids, but uses shared network names (subnet <br class="">
ids autogeneration problem is solved) <br class="">
- Resolves a problem with proposal B, whereby it was possible to assign <br class="">
a single subnet to multiple networks. <br class="">
- Removal of a subnet is easier than in B, because it is enough to <br class="">
delete subnet declaration. <br class="">
<br class="">
Cons: <br class="">
- Comparing to B, it makes it harder to know how many subnets belong to <br class="">
shared network, because we'd need to search for all subnets that have a <br class="">
parameter "network" set to a given name. <br class="">
- Some other unresolved cons from proposal B. <br class="">
<br class="">
<br class="">
We're planning to close the discussion around Monday/Tuesday next week. <br class="">
We'd appreciate any input before that time. <br class="">
<br class="">
Kind Regards, <br class="">
<br class="">
Marcin Siodelski <br class="">
ISC Engineering Team <br class="">
_______________________________________________ <br class="">
Kea-users mailing list <br class="">
<a href="mailto:Kea-users@lists.isc.org" class="">Kea-users@lists.isc.org</a> <br class="">
<a href="https://lists.isc.org/mailman/listinfo/kea-users" class="">https://lists.isc.org/mailman/listinfo/kea-users</a> <br class="">
</div>
</div>
</span></blockquote>
</div>
<div class="bloop_markdown"><div class=""><br class="webkit-block-placeholder"></div>
</div>
</div>

_______________________________________________<br class="">Kea-users mailing list<br class=""><a href="mailto:Kea-users@lists.isc.org" class="">Kea-users@lists.isc.org</a><br class="">https://lists.isc.org/mailman/listinfo/kea-users<br class=""></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Victoria Risk</div><div class="">Internet Systems Consortium</div><div class=""><a href="mailto:vicky@isc.org" class="">vicky@isc.org</a></div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">

</div>
<br class=""><style class="">body{font-family:Helvetica,Arial;font-size:13px}</style></div></body></html>