<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1734811837;
        mso-list-type:hybrid;
        mso-list-template-ids:1307209778 363108872 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.3in;
        mso-level-number-position:left;
        margin-left:.3in;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>First and foremost, I’m not trying to suggest
that the DHCP server isn’t operating as designed.  I believe that it
is.  I apologize if you felt like I was trashing the server software. 
I thinks it’s an awesome piece of software that is extremely flexible,
and it is that flexibility that I have come to depend on and need help
with.  Second, the implementation I have isn’t broken.  It may
not be configured according to the design requirements and constraints which
produced the DHCP server software in the first place, but it is configured to
work in a network outside the typical L3 conventions from back in the day. <o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>In that, what I need to find is a solution for a
particular problem where I don’t have control over certain elements. 
<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>1.  I cannot make the relay agent in this
scenario add GIADDR information that is pertinent to the network/VLAN
involved.  It is a layer 2 switch, not a layer 3 switch/router.  It
cannot support IP’s on each VLAN.  It can’t route.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>2.  The end-point in this case is the same
end-point making multiple requests on multiple different VLAN interfaces. 
These requests are serviced out of different IP networks.  <o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>3.  I cannot set different UID’s on the
end-point.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>4.  The network I describe is a large,
service-provider type network where there exists a layer2 access network
comprising thousands of customers.  It is imperative, in these types of
networks, to distribute as much functionality as possible in order to:<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>     - reduce load on any
individual network component. Ie, if I had a power outage scenario, a single
router with 10,000+ endpoints all DHCP’ing simultaneously could cause the
router to struggle causing slow processing of requests where it could take
30min or more to fully restore connectivity or even potentially reload.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>     - provide user traceability. 
By *<b><span style='font-weight:bold'>only</span></b>* relaying at the router
where I have 10000+ devices connecting, my option 82 information would reflect
just that.  By pushing the option 82 setting ability further afield, I get
more accurate user information regarding the chassis, port, and vlan that DHCP
request came from in the event I need to back track and determine what a
malicious customer might be up to for law enforcement purposes.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>So, I have a configuration where I’ve “twisted
the knobs” to get software that was designed with one set of requirements
in mind to work in an entirely different way.  It works and works
well.  What I’m hoping to accomplish now, is to find a way to make
things work even better.  <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>The server correctly identifies the client’s “soft”
interfaces based on the agent.circuit-id and assigns the appropriate IP
addresses for each pool/network/VLAN.  It also allows the same client to renew
all of the IP interfaces at the lease half-life, and allows all of the leases
to be “active” concurrently.  My one device with 5 VLAN
interfaces eventually succeeds in renewing all 5 addresses, and the server then
shows all 5 leases as active.  So, at some level it does allow for my type
of network.  It doesn’t seem to care whether a particular client
with the same UID & same HW address has different IP addresses in many
different networks.  This lead to the thought of trying to make the initiation
process work by having the server rewrite the UID to include a concatenation of
the option 82 Circuit ID and the HW address.  <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>If it’s not possible, I can accept that and will take it up with
the developers of these devices to try and work out an amenable solution. 
However, if the server can do this, or if anyone has another suggestion on how
to tweak a knob to accomplish the differentiation, I would very much appreciate
the help.  <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>Thanks,<br>
<br>
Curt<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>I have all of my network (DHCP relay points) and
DHCP statements<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>configured to hand out IP's to a single
device.  The problem I am<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>finding is that during the initiation phase (DHCP
Discover, Offer,<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>Request, ACK), each of the leases negates the
previous one.  The<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>IP's being handed out are the correct IP's for the
VLAN in question,<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>it's just the server seems to think that the new
"discover"<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>supplants the existing lease info.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>It is behaving correctly I believe.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>For my configuration, the "host" is a
network device that is VLAN<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>aware and uses the same MAC address for each of
VLAN interface that<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>request an IP.   The relay agent is not
a router.  It is another<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>switch that has some L3 ability.  When it
relays, it sets the GIADDR<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>to the one and only 1 IP address it uses for
management.  It also<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>sets option 82 information for Remote-ID, and
Circuit-ID.  The<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>circuit ID contains physical interface
information, as well as VLAN<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>information which is unique to the host. 
Additionally, the UID of<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>the client is the same, regardless of which VLAN
it makes a request<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>>on.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>OK, here is what I think is happening :<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Firstly, your switch is NOT setup correctly. "...
switch that has<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>some L3 ability.  When it relays, it sets the
GIADDR to the one and<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>only 1 IP address it uses for management ..."
does not describe a<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>proper multi-network relay agent which would set the
GI-Addr<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>correctly to an address appropriate to each physical
network to which<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>it is connected. This means that you have to
workaround the issue by<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>incorrectly using a shared network statement when you
do not in fact<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>have a shared network - each VLAN is a DIFFERENT
network.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Then we have this bit - "... the UID of the
client is the same,<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>regardless of which VLAN it makes a request on."
This means that the<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>client is THE SAME CLIENT whichever network it is on -
both the MAC<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>address and Client ID are the same, therefore it is
the same client<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>(not a number of different clients).<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>My only guess as to why it might be freeing the other
leases is this :<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Client comes along and matches class "B" but
not class "A".<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Client previously had a lease in a pool permitted for
Class A, but<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>this time it does NOT match Class A.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Server identifies that client does not match Class A,
whilst it IS<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>currently connected to that physical network, and
deletes the active<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>lease as the client is not entitled to it.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Perhaps someone more intimate with the code could
confirm if this is the case.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>What I suggest you need to do is fix your broken relay
agent - it<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>needs to correctly set GI-Addr to an address valid for
a subnet on<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>each VLAN. Then remove the incorrect shared-network
statements.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>If you can fix these two problems then i think you'll
find that the<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>setup will work correctly.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>--<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Simon Hobson<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Visit http://www.magpiesnestpublishing.co.uk/ for
books by acclaimed<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>author Gladys Hobson. Novels - poetry - short stories
- ideal as<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.1in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>Christmas stocking fillers. Some available as e-books.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.05in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p> </o:p></span></font></p>

</div>

</body>

</html>