BIND 10 #2488: Create DHCP Test Plan

BIND 10 Development do-not-reply at isc.org
Fri Dec 7 14:35:22 UTC 2012


#2488: Create DHCP Test Plan
-------------------------------------+-------------------------------------
            Reporter:  stephen       |                        Owner:
                Type:  task          |  stephen
            Priority:  medium        |                       Status:
           Component:                |  accepted
  documentation                      |                    Milestone:
            Keywords:                |  Sprint-DHCP-20121213
           Sensitive:  0             |                   Resolution:
         Sub-Project:  DHCP          |                 CVSS Scoring:
Estimated Difficulty:  0             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by stephen):

 Responding to the review by Jeff...

 > What about DHCP client - is that yet supported in Kea?
 Not yet - the current focus has been on the server.

 > Is DHCP v4 Relay the only way that DHCP v4 clients are supported? If Kea
 supports direct-connect of v4 clients, we'll need to test that as well
 The plan for the current phase of development is to have V4 clients
 supported by relay and V6 clients supported through direct access.  The
 next phase will have both V6 and V6 clients supported by both means of
 access.

 > How about server failover and/or load balancing; is that supported yet?
 No.  However, using a MySQL database does suggest that it might be
 possible to do a "poor man's failover" using the database multi-master
 capabilities.  This is not part of the deliverables, but at some point in
 the future I would like to experiment with that.

 > Can Kea use different ports than default (67/68)?
 In standalone mode yes, as the post number can be set with the "-p"
 switch.

 > Any need to test BOOTP?
 No - BOOTP is explicitly not supported.

 > Can you crash or hang Kea (either v4 or v6) by starting/stopping
 repeatedly? Or very quickly?
 > Can you send Start or Stop commands more than once in a row without
 something weird happening (like multiple threads/processes spinning off)?
 Kea is started through the general BIND 10 process control mechanism, so
 if there is a problem in this area, it is most likely to be a general BIND
 10 problem rather than a Kea-specific one.  However, we can add a test to
 start/stop Kea a number of times in succession.

 > Might be good to see how performance tracks with logging
 level...obviously we would expect more logging => less performance
 Again, that is a general BIND 10 issue.  However, I take your point - if
 some messages are logged at the wrong severity, it could impact
 performance.  A meaningful measure might be to run with default logging
 and compare it with a run with logging disabled.

 > Config: I'd like to see a full list of all config options, and I'll see
 if I can come up with interesting ways to combine them that might cause
 problems
 As soon as we have a full list, I'll let you know.

 > The DHCPv4 and DHCPv6 Features sections seem to only address IP address
 allocation. Should we not also test other network config params that are
 typically doled out by a DHCP server (e.g. net mask, gw, etc.)…perhaps
 this is what is addressed in the "Options (both V4 and V6)" section of
 your plan?
 Yes - the item "Responding with appropriate options (and values) in
 response to a client requests".


 > Some areas for "adequate" performance to test would be: connections per
 second (max sustainable); connections per second (max burst rate over a
 given period, to simulate network outage and subsequent flood of
 reconnects from clients); client request response time; max client
 capacity
 I'll expand the performance test section.

 > I would also like to see a "longevity" test where we have many clients
 with different settings/options set, continuously releasing/renewing
 leases to make sure after a certain period of time (days?) the server is
 still working properly. For this test, we might want to record metrics on
 the server like CPU utilization, memory consumption, etc over time to make
 sure we're not increasing without bound.
 Will add this.

 > Lease pool "leak" test for various scenarios (single pool; multiple
 pools)…pool starts full; empty it (and what happens when you then try to
 go one beyond empty?); fill it back up again; empty it; etc. many many
 times to make sure nothing is leaking.
 Good idea - will add.

 > Might make sense to throw in some static IPs that pools must "work
 around"
 When fixed leases are implemented, we can add this.

 > Thinking toward the future, we will want to do some interop testing with
 various flavors of clients (Windows, Linux, OSX/IOS; device-related
 clients, wireless cards, etc.); and server-server interop tests with BIND9
 vs BIND10, other-than-ISC servers vs. BIND 10, etc. (I don't know if this
 makes sense or not…do DHCP servers "talk"?)
 It does make sense to test different clients against the server.

 > Also toward the future: we might consider testing in different network
 topology situations (e.g. serving requests to local networks; thru VPN
 tunnels)
 Agreed.  We may need relays, so until we implement a relay in Kea, we
 could use the DHCP4 relays for the tests.

 > What kind of boundary and negative tests can we think of? This might
 particularly be useful for testing config params.
 Let's look at this when we get the list of configuration parameters ready.

 > Vulnerability testing? Packet of death/fuzz tests? mmap has some DHCP-
 specific plugins, and scapy might be a great tool to use for pit-of-death
 scenarios.
 Agreed.

 Thanks for the review.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2488#comment:3>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list