What DHCP server do you use in provisioning your modem with SQL database back-end? beside in docsis_server (https://github.com/bschirrmeister/docsis_server), im currently searching for DHCP with SQL back-end and I see the ISC kea but I cant see any example using this DHCP, anyone with suggestions?
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!