ISC KEA help | docsis.org

You are here

ISC KEA help

9 posts / 0 new
Last post
stickery
ISC KEA help

Hello,

Is there someone here using ISC kea as their dhcp, I find that this dhcp supports mysql as backend and I think this is a good dhcp to use for provisioning cable modem but I can;t see any sample configuration that run in docsis cable modem, so if someone already use it can you please share your configuration? or bring us to the right path for creating configuration for docsis CM. Thanks in advance if you can help us.

stickery
help

BUMP really need to know how can i make this dhcp work with cable modem, TIA

mbernardi
I compiled Kea 0.9.2 on one

I compiled Kea 0.9.2 on one of our lab servers a month or so ago looking to accomplish the same goal. From what I found, you'll need to use Kea beta1.0.0 because it added better client classification support. Once you compile 1.0.0 check out the guide. Chapter 12 is what you would be interested in.

ftp://ftp.isc.org/isc/kea/1.0.0-beta/doc/kea-guide.html#classify

mbernardi
Check out chapter 12 of Kea's

Check out chapter 12 of Kea's beta 1.0.0 admin guide.

ftp://ftp.isc.org/isc/kea/1.0.0-beta/doc/kea-guide.html#classify

stickery
Hello

Do you have experience configuring kea?

I have a little idea but I don't know how can i filter clients in this dhcp? do you have an idea?

mbernardi
I do not have any experience

I do not have any experience other than reading the release notes/configuration documents. I'm very interested in it specifically for the database lease storage and host reservations via the database.

I've only gotten as far as getting Kea compiled on my lab server. It's on my list of things to test, I just don't have the free time at work right now.

Roberto Schmitz
KEA

Installed on a test server and I'm using the principle to "memfile" setting, and then configure it in MySQL. I'm getting the welcome requests from the CMTS and delivering the address but the CM does not receive.
configuration file:

# This is a basic configuration for the Kea DHCPv4 and DHCPv6 servers.
# 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": "mysql",
# "host": "localhost",
# "user": "root",
# "password": "xxxxx",
# "name": "kea"
# },
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/dhcp4.leases"
},
"match-client-id": true,
# 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,

# 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.250.0.0/24",
"pools": [ { "pool": "10.250.0.2 - 10.250.0.255" } ] ,

"relay": {
"ip-address": "10.250.0.1"
},
"next-server": "172.18.1.54",
"option-data":
[
{
"name": "boot-file-name",
"data": "10M"
},
{
"name": "time-offset",
"data": "-10800"
},
{
"name": "time-servers",
"data": "172.18.1.54"
},
{
"name": "domain-name-servers",
"data": "xxx.xxx.xxx.xxx"
},
{
"name": "routers",
"data": "100.250.0.1"
},
{
"name": "tftp-server-name",
"data": "172.18.1.54"
},
{
"name": "log-servers",
"data": "172.18.1.54"
},
]
},

]
},

# DHCPv6 configuration starts here.
"Dhcp6":
{
# Add names of interfaces to listen on.
"interfaces-config": {
"interfaces": [ "ens192" ]
},

# Use Memfile lease database backend to store leases in a CSV file.
"lease-database": {
"type": "mysql",
"host": "localhost",
"user": "root",
"password": "xxxxxx",
"name": "kea"
},

# 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
},

# Addresses will be assigned with preferred and valid lifetimes
# being 3000 and 4000, respectively. Client is told to start
# renewing after 1000 seconds. If the server does not respond
# after 2000 seconds since the lease was granted, client is supposed
# to start REBIND procedure (emergency renewal that allows switching
# to a different server).
"preferred-lifetime": 3000,
"valid-lifetime": 4000,
"renew-timer": 1000,
"rebind-timer": 2000,

# The following list defines subnets. Uncomment to enable them.
"subnet6": [
# { "subnet": "2001:db8:1::/64",
# "pools": [ { "pool": "2001:db8:1::/80" } ] },
# { "subnet": "2001:db8:2::/64",
# "pools": [ { "pool": "2001:db8:2::/80" } ] },
# { "subnet": "2001:db8:3::/64",
# "pools": [ { "pool": "2001:db8:3::/80" } ] },
# { "subnet": "2001:db8:4::/64",
# "pools": [ { "pool": "2001:db8:4::/80" } ] }
]
},

# DHCP DDNS configuration starts here.
"DhcpDdns":
{
"ip-address": "127.0.0.1",
"port": 53001,
"tsig-keys": [],
"forward-ddns" : {},
"reverse-ddns" : {}
},

# 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": "/usr/local/var/log/kea-dhcp4.log",
"maxver": 8,
"maxsize": 204800,
"flush": true
}
],
"severity": "DEBUG",
"debuglevel": 99
},
{
"name": "kea-dhcp6",
"output_options": [
{
"output": "/usr/local/var/log/kea-dhcp6.log"
}
],
"severity": "INFO",
"debuglevel": 0
},
{
"name": "kea-dhcp-ddns",
"output_options": [
{
"output": "/usr/local/var/log/kea-ddns.log"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}

}

Log file:

2016-04-08 11:04:02.524 DEBUG [kea-dhcp4.packets/17386] DHCP4_BUFFER_WAIT waiting for next DHCPv4 packet with timeout 1000 ms
2016-04-08 11:04:03.513 DEBUG [kea-dhcp4.packets/17386] DHCP4_BUFFER_RECEIVED received buffer from 10.250.0.1:68 to 172.18.1.54:67 over interface ens192
2016-04-08 11:04:03.513 DEBUG [kea-dhcp4.options/17386] DHCP4_BUFFER_UNPACK parsing buffer received from 10.250.0.1 to 172.18.1.54 over interface ens192
2016-04-08 11:04:03.513 DEBUG [kea-dhcp4.dhcp4/17386] DHCP4_CLASS_ASSIGNED [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: client packet has been assigned to the following class(es): VENDOR_CLASS_docsis2.0:053501010102010203010104010105010106010107010f0801100901000a01010b01180c01010d0200700e0200100f0101100400000004
2016-04-08 11:04:03.514 DEBUG [kea-dhcp4.packets/17386] DHCP4_PACKET_RECEIVED [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: DHCPDISCOVER (type 1) received from 10.250.0.1 to 172.18.1.54 on interface ens192
2016-04-08 11:04:03.514 DEBUG [kea-dhcp4.packets/17386] DHCP4_QUERY_DATA [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374, packet details: local_address=172.18.1.54:67, remote_adress=10.250.0.1:68, msg_type=DHCPDISCOVER (1), transid=0x5c76374,
options:
type=043, len=122:,
options:
type=002, len=003: 45:43:4d
type=003, len=008: 45:43:4d:3a:45:4d:54:41
type=004, len=024: 31:39:32:36:36:34:39:32:30:35:30:30:30:37:39:36:30:36:30:32:30:30:34:35
type=005, len=003: 31:2e:30
type=006, len=030: 53:42:56:35:31:32:31:2d:53:49:50:2d:31:2e:30:2e:37:2d:53:43:4d:2d:30:35:2d:53:48:50:43:20
type=007, len=003: 38:2e:35
type=008, len=006: 30:30:32:30:34:30
type=009, len=007: 53:42:56:35:31:32:31
type=010, len=020: 4d:6f:74:6f:72:6f:6c:61:20:43:6f:72:70:6f:72:61:74:69:6f:6e
type=053, len=001: 1 (uint8)
type=055, len=008: 66(uint8) 67(uint8) 1(uint8) 3(uint8) 2(uint8) 4(uint8) 7(uint8) 122(uint8)
type=057, len=002: 600 (uint16)
type=060, len=120: "docsis2.0:053501010102010203010104010105010106010107010f0801100901000a01010b01180c01010d0200700e0200100f0101100400000004" (string)
type=061, len=007: 01:00:23:ed:ad:95:08
type=082, len=008:,
options:
type=002, len=006: 00:23:ed:ad:95:08
2016-04-08 11:04:03.514 DEBUG [kea-dhcp4.packets/17386] DHCP4_SUBNET_SELECTED [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: the subnet with ID 1 was selected for client assignments
2016-04-08 11:04:03.514 DEBUG [kea-dhcp4.packets/17386] DHCP4_SUBNET_DATA [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: the selected subnet details: 10.250.0.0/24
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ONE_SUBNET_ID_HWADDR_DUID get one host with IPv4 reservation for subnet id 1, HWADDR hwtype=1 00:23:ed:ad:95:08, DUID 01:00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_HWADDR_DUID get all hosts with reservations for HWADDR hwtype=1 00:23:ed:ad:95:08 and DUID 01:00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: hwaddr=00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier hwaddr=00:23:ed:ad:95:08, found 0 host(s)
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: duid=01:00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier duid=01:00:23:ed:ad:95:08, found 0 host(s)
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ONE_SUBNET_ID_HWADDR_DUID_NULL host not found using subnet id 1, HW address hwtype=1 00:23:ed:ad:95:08 and DUID 01:00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.dhcpsrv/17386] DHCPSRV_MEMFILE_GET_SUBID_CLIENTID obtaining IPv4 lease for subnet ID 1 and client ID 01:00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.dhcpsrv/17386] DHCPSRV_MEMFILE_GET_SUBID_HWADDR obtaining IPv4 lease for subnet ID 1 and hardware address hwtype=1 00:23:ed:ad:95:08
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.alloc-engine/17386] ALLOC_ENGINE_V4_OFFER_NEW_LEASE allocation engine will try to offer new lease to the client [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4 get one host with reservation for subnet id 1 and IPv4 address 10.250.0.2
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_ADDRESS4 get all hosts with reservations for IPv4 address 10.250.0.2
2016-04-08 11:04:03.515 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ALL_ADDRESS4_COUNT using address 10.250.0.2, found 0 host(s)
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.hosts/17386] HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_NULL host not found using subnet id 1 and address 10.250.0.2
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.dhcpsrv/17386] DHCPSRV_MEMFILE_GET_ADDR4 obtaining IPv4 lease for address 10.250.0.2
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.dhcpsrv/17386] DHCPSRV_MEMFILE_GET_ADDR4 obtaining IPv4 lease for address 10.250.0.2
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.leases/17386] DHCP4_LEASE_ADVERT [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: lease 10.250.0.2 will be advertised
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.options/17386] DHCP4_PACKET_PACK [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: preparing on-wire format of the packet to be sent
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.packets/17386] DHCP4_PACKET_SEND [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: trying to send packet DHCPOFFER (type 2) from 172.18.1.54:67 to 10.250.0.1:67 on interface ens192
2016-04-08 11:04:03.516 DEBUG [kea-dhcp4.packets/17386] DHCP4_RESPONSE_DATA [hwtype=1 00:23:ed:ad:95:08], cid=[01:00:23:ed:ad:95:08], tid=0x5c76374: responding with packet DHCPOFFER (type 2), packet details: local_address=172.18.1.54:67, remote_adress=10.250.0.1:67, msg_type=DHCPOFFER (2), transid=0x5c76374,
options:
type=001, len=004: 4294967040 (uint32)
type=002, len=004: -10800 (int32)
type=003, len=004: 100.250.0.1
type=004, len=004: 172.18.1.54
type=006, len=004: xxxxxxxxx
type=007, len=004: 172.18.1.54
type=051, len=004: 4000 (uint32)
type=053, len=001: 2 (uint8)
type=054, len=004: 172.18.1.54
type=061, len=007: 01:00:23:ed:ad:95:08
type=066, len=011: "172.18.1.54" (string)
type=067, len=003: "10M" (string)
type=082, len=008:,
options:
type=002, len=006: 00:23:ed:ad:95:08
2016-04-08 11:04:03.517 DEBUG [kea-dhcp4.packets/17386] DHCP4_BUFFER_WAIT waiting for next DHCPv4 packet with timeout 1000 ms

As the log file after the DHCPOFFER, I have not received any return of CMTS or CM error.
Someone who can help?

PS.: With MySql is normally connected. Problems that do not know what infrmações put in the database. How do I fill the tables!

cr00x (not verified)
ISC Kea Server - sample configuration

Hey,
if you already have can be operated properly ISC Kea Server?
I am seeking a sample configuration on which I can be inspired.

David Walden (not verified)
Has anyone been able to

Has anyone been able to resolve this. I am running 1.1 and am still not able to get the offer to the CM. I performed a wireshark capture and the packets are getting to the CMTS bu then appear to be dropped on the floor. Any ideas would be appreciated.

Log in or register to post comments