Comments (6)
Hi, Mark.
I'm afraid you might have overlooked something with this issue: all of the
cases your patch (thanks for sending one!) addresses are those where the client
has already received a "lease" from the server: the client's communication is
unicast from that point forth.
What this means is that the client will only ask the DHCP server it knows about
for help when it wants to renew or otherwise manage its lease, and if the
server doesn't know about the client any more, it can't be sure it's providing
correct information.
The correct behaviour would seem to be NAKing the request to force the client
to return to the DISCOVER state so it can find a DHCP server that does have the
capacity to provide current information, since the alternative would cause the
client to retain stale configuration data that might result in things like IP
clashes or broken routing.
Original comment by red.hamsterx
on 24 Jan 2011 at 2:40
from staticdhcpd.
That indeed is what I also observed. In the end, I commented out those NAKs.
Original comment by [email protected]
on 25 Jan 2011 at 11:55
from staticdhcpd.
Can either of you provide me with an example flow of why you would want a
client to retain its lease after a DHCP server has forgotten about it?
Original comment by red.hamsterx
on 25 Jan 2011 at 11:59
- Changed state: Accepted
from staticdhcpd.
In 1.5.4 src/dhcp.py line 455, the case is for renew and rebinding. Why would
we NACK a lease that we do not know about. Isn't this broadcast?
Original comment by [email protected]
on 28 Jan 2011 at 11:24
from staticdhcpd.
Okay, I see the case that was overlooked now.
RENEWs should be NAKed because the lease is no longer valid after you've
removed the entry (those are unicast), meaning that allowing the server to
pretend the lease is still good could be detrimental to the network, but
REBINDs should be ignored, since those are a broadcast plea for any server to
pick up the lease.
This should be addressed in r306 in the dev-branch. (With luck, I'll find time
to test all the revisions on Sunday and push out an update, though I doubt I'll
be able to redo logging and the web UI this weekend -- maybe one or the other)
Original comment by red.hamsterx
on 29 Jan 2011 at 8:34
- Changed state: Started
from staticdhcpd.
Much longer soak period than I'd expected (months, not days), but it looks like
it's working properly.
Original comment by red.hamsterx
on 22 Jun 2011 at 11:30
- Changed state: Fixed
from staticdhcpd.
Related Issues (20)
- DHCPv4 server support for Rapid Commit HOT 6
- Redis extention or nosql db layer
- PXE? HOT 6
- Support for relay agents requiring Option 82 HOT 2
- Publishing project to PIP? HOT 3
- support for Database INSERT for unknownMAC HOT 3
- IPv6 support? HOT 2
- How can I handleUnknownMAC? I want my server should allocate IP to the client even if mac address of client is not in INI or database. HOT 5
- Doesn't support python 3 (and doesn't document that) HOT 1
- Can staticdhcpd make a lease table from watching DHCP traffic? HOT 2
- adding extentions HOT 2
- AttributeError: 'NoneType' object has no attribute 'split' HOT 7
- TypeError: setsockopt() argument 3 must be string or read-only buffer, not None HOT 20
- staticDHCPd version 2.0.0-rc1 doesn't start HOT 3
- Cannot load mysql.sql on MariaDB 10.3.17 HOT 3
- Error in the rfc3925_125_decode function HOT 1
- dev null dup2 Bad file descriptor HOT 1
- Need to Port to Python3 HOT 22
- Documentation HOT 2
- DHCPRENEW support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from staticdhcpd.