[Kea-users] KEA 1.1.0 vs. isc-dhcp-server 4.3.3

Ralf Hildebrandt Ralf.Hildebrandt at charite.de
Thu Dec 8 09:41:45 UTC 2016


> If you can share your config and the packet capture that would be
> helpful.

Attached is the config

> What client software are you using?

Mac OS X 11
Ubuntu Linux xenial
dhclient (run manually)

All worked with ISC-DHCPD on the first try, none worked with KEA

> You might try running ISC_DHCP's dhclient in the foreground/debug mode
> (add -d to the command line). This dumps a fair amount of information
> to the console.  If you like, you can give it the attached script,
> hollow_client.sh, as the client script.  This script is essentially a
> NOP that just echos the environment variables that dhclient exports
> when it invokes the script. The script doesn't altering any of the OS
> configuration the way the live script does.
> 
> 
>     dhclient -d -v -4 -1 -cf <your config file>  -sf <path>/hollow_client.sh

Will do that.

-- 
Ralf Hildebrandt                   Charite Universitätsmedizin Berlin
ralf.hildebrandt at charite.de        Campus Benjamin Franklin
http://www.charite.de              Hindenburgdamm 30, 12203 Berlin
Geschäftsbereich IT, Abt. Netzwerk fon: +49-30-450.570.155
-------------- next part --------------
# This is a basic configuration for the Kea DHCPv4 sever.
# Subnet declarations are commented out and no interfaces are listed.
# Therefore, the servers will not listen or respond to any queries.
# The basic configuration must be extended to specify interfaces on
# which the servers should listen. Also, subnets and options must be
# declared.
{

# DHCPv4 configuration starts here.
	"Dhcp4": {
# Add names of interfaces to listen on.
		"interfaces-config": {
			"interfaces": [ "ens192" ],
			"dhcp-socket-type": "udp"
		},

# Use Memfile lease database backend to store leases in a CSV file.
		"lease-database": {
			"type": "memfile",
			"persist": true,
			"name": "/var/kea/dhcp4.leases"
		},

# Setup reclamation of the expired leases and leases affinity.
# Expired leases will be reclaimed every 10 seconds. Every 25
# seconds reclaimed leases, which have expired more than 3600
# seconds ago, will be removed. The limits for leases reclamation
# are 100 leases or 250 ms for a single cycle. A warning message
# will be logged if there are still expired leases in the
# database after 5 consecutive reclamation cycles.
		"expired-leases-processing": {
			"reclaim-timer-wait-time": 10,
			"flush-reclaimed-timer-wait-time": 25,
			"hold-reclaimed-time": 3600,
			"max-reclaim-leases": 100,
			"max-reclaim-time": 250,
			"unwarned-reclaim-cycles": 5
		},

# Global (inherited by all subnets) lease lifetime is mandatory parameter.
		"valid-lifetime": 4000,

		"option-data": [
			{
				"name": "domain-name-servers",
				"code": 6,
				"space": "dhcp4",
				"csv-format": true,
				"data": "141.42.206.150, 193.175.73.150"
			},
			{
				"name": "domain-name",
				"code": 15,
				"space": "dhcp4",
				"csv-format": true,
				"data": "charite.de"
			},
			{
				"name": "time-servers",
				"code": 4,
				"space": "dhcp4",
				"csv-format": true,
				"data": "193.175.73.51"
			}
		],

# Below an example of the simple subnet declaration. Uncomment to
# enable it. This is a list, denoted with [ ], of structure, denoted
# with { }. Each structure describes a single subnet and may have
# several parameters. One of those parameters is "pools" that is
# also a list of structures.
		"subnet4": [
			{
				"subnet": "10.31.16.0/22",
				"pools": [ { "pool": "10.31.16.65 - 10.31.19.254" } ],
				"option-data": [ {
					"name": "routers",
					"code": 3,
					"space": "dhcp4",
					"csv-format": true,
					"data": "10.31.16.1"
				} ]
			},
			{
				"subnet": "10.31.32.0/20",
				"pools": [ { "pool": "10.31.32.20 - 10.31.47.254" } ],
				"option-data": [ {
					"name": "routers",
					"code": 3,
					"space": "dhcp4",
					"csv-format": true,
					"data": "10.31.32.1"
				} ]
			},
			{
				"subnet": "10.31.64.0/20",
				"pools": [ { "pool": "10.31.64.20 - 10.31.79.254" } ], 
				"option-data": [ {
					"name": "routers",
					"code": 3,
					"space": "dhcp4",
					"csv-format": true,
					"data": "10.31.64.1"
				} ]
			},
			{
				"subnet": "10.31.96.0/20",
				"pools": [ { "pool": "10.31.96.20 - 10.31.111.254" } ], 
				"option-data": [ {
					"name": "routers",
					"code": 3,
					"space": "dhcp4",
					"csv-format": true,
					"data": "10.31.96.1"
				} ]
			},
			{
				"subnet": "10.31.192.0/28",
				"pools": [ { "pool": "10.31.192.5 - 10.31.192.14" } ], 
				"option-data": [ {
					"name": "routers",
					"code": 3,
					"space": "dhcp4",
					"csv-format": true,
					"data": "10.31.192.1"
				} ]
			}
		]
	},

# Logging configuration starts here. It tells Kea servers to store
# all log messages (on severity INFO or more) in a file.
# debuglevel variable is used on DEBUG level only.

	"Logging": {
		"loggers": [
			{
				"name": "kea-dhcp4",
				"output_options": [ {
					"output": "/var/log/kea-dhcp4.log"
				} ],
				"severity": "INFO",
				"debuglevel": 0
			},
			{
				"name": "kea-dhcp4.bad-packets",
				"output_options": [ {
					"output": "/var/log/kea-dhcp4.debug.log"
				} ],
				"severity": "DEBUG",
				"debuglevel": 99
			}
		]
	}
}


More information about the Kea-users mailing list