[Kea-users] 1.3.0 beta not working with mysql

Thomas Markwalder tmark at isc.org
Tue Oct 10 11:39:03 UTC 2017


Hi Bill:

Well, good news all around!  This will go in the "life's little
mysteries bucket". Thanks for your persistence and for the feedback on
the what's now working for you.   Kea 1.4 is slated to have changes
geared towards HA, so stay tuned for that!  Rasmus, thanks for sharing
your work.  Having an active, cooperative user community is vital
towards making Kea a success and we appreciate your contributions.

Regards,

Thomas Markwalder
ISC Software Engineering

On 10/10/17 6:32 AM, Bill Pye wrote:
> Hi Rasmus & Thomas
>
> I think we can put this problem down to user error although I really don't know what's caused it. I have a centos7 dedicated to just building software, I used that to build kea and although it built with apparently no errors and I couldn't see anything in the log file it would never run against a clean install of percona or mariadb no matter which version I used.
>
> Eventually I came to the conclusion that there was a problem with my build environment so I installed mock and built kea again in that environment- it built fine and after install it worked against all the versions of percona & mariadb that I had installed.
>
> I've done a few limited tests against Mariadb 10.2.29, 5.5.56 and my Percona Cluster - all without problems and creating correct records in the lease table.
>
> I also use Proxysql for HA against my percona cluster and the only problem with kea is trying to use the proxsql instance but that's only a minor inconvenience for now.
>
> I'd like to thank everyone that's helped me with spec files, srpms and your advice and details of kea config and installs. :)
>
> Regards
>
>
> Bill
>
>
> ----- Original Message -----
>> From: "Rasmus Edgar" <regj at arch-ed.dk>
>> To: "bill pye" <bill.pye at phoenix-systems.co.uk>
>> Cc: "kea-users" <kea-users at lists.isc.org>
>> Sent: Monday, 9 October, 2017 20:54:47
>> Subject: Re: [Kea-users] 1.3.0 beta not working with mysql
>> Hi,
>>
>> I just tested kea-1.3.0-beta kea-dhcp4 with my supplied srpm on CentOS
>> 7.4 running mariadb 5.5.56 on the same host and using it as lease
>> storage for dhcp4.
>>
>> It works.
>>
>> [root at rpmbuild-1 ~]# tail /var/log/kea-dhcp4.log
>> 2017-10-09 20:19:00.802 INFO  [kea-dhcp4.dhcp4/3870] DHCP4_STARTED Kea
>> DHCPv4 server version 1.3.0-beta started
>> 2017-10-09 20:19:27.429 INFO  [kea-dhcp4.dhcp4/3870] DHCP4_SHUTDOWN
>> server shutdown
>> 2017-10-09 20:33:20.052 INFO  [kea-dhcp4.dhcp4/1834] DHCP4_STARTED Kea
>> DHCPv4 server version 1.3.0-beta started
>> 2017-10-09 20:33:21.483 INFO  [kea-dhcp4.leases/1834] DHCP4_LEASE_ADVERT
>> [hwtype=1 08:00:27:f6:62:cb],
>> cid=[ff:27:f6:62:cb:00:01:00:01:21:6e:7a:ad:08:00:27:f6:62:cb],
>> tid=0xb90df951: lease 192.0.2.3 will be advertised
>> 2017-10-09 20:33:21.490 INFO  [kea-dhcp4.leases/1834] DHCP4_LEASE_ALLOC
>> [hwtype=1 08:00:27:f6:62:cb],
>> cid=[ff:27:f6:62:cb:00:01:00:01:21:6e:7a:ad:08:00:27:f6:62:cb],
>> tid=0xb90df951: lease 192.0.2.3 has been allocated
>> 2017-10-09 20:33:59.078 INFO  [kea-dhcp4.leases/1834] DHCP4_LEASE_ADVERT
>> [hwtype=1 08:00:27:f6:62:cb],
>> cid=[ff:27:f6:62:cb:00:01:00:01:1e:59:e5:3c:08:00:27:f6:62:cb],
>> tid=0xc09f4c43: lease 192.0.2.4 will be advertised
>> 2017-10-09 20:33:59.080 INFO  [kea-dhcp4.leases/1834] DHCP4_LEASE_ALLOC
>> [hwtype=1 08:00:27:f6:62:cb],
>> cid=[ff:27:f6:62:cb:00:01:00:01:1e:59:e5:3c:08:00:27:f6:62:cb],
>> tid=0xc09f4c43: lease 192.0.2.4 has been allocated
>> 2017-10-09 20:43:20.372 INFO  [kea-dhcp4.dhcp4/1834] DHCP4_SHUTDOWN
>> server shutdown
>>
>> MariaDB [kea_leases]> select * from lease4;
>> +------------+--------+---------------------+----------------+---------------------+-----------+----------+----------+----------+-------+
>> | address    | hwaddr | client_id           | valid_lifetime | expire
>>           | subnet_id | fqdn_fwd | fqdn_rev | hostname | state |
>> +------------+--------+---------------------+----------------+---------------------+-----------+----------+----------+----------+-------+
>> | 3221225987 | 'öbË   | ÿ'öbË  !n 'öbË       |           3600 |
>> 2017-10-09 21:33:21 |         1 |        0 |        0 |          |     0
>> |
>> | 3221225988 | 'öbË   | ÿ'öbË  Yå 'öbË       |           3600 |
>> 2017-10-09 21:33:59 |         1 |        0 |        0 |          |     0
>> |
>> +------------+--------+---------------------+----------------+---------------------+-----------+----------+----------+----------+-------+
>> 2 rows in set (0.00 sec)
>>
>> When creating the database tables I followed the guide here:
>> http://kea.isc.org/docs/kea-guide.html#idp52513808
>>
>> The kea.conf (which is the standard one adjusted and no comments) is
>> pasted below:
>> {
>>
>> "Dhcp4": {
>>     "interfaces-config": {
>>         "interfaces": [ "enp0s8" ]
>>
>>     },
>>
>>     "control-socket": {
>>         "socket-type": "unix",
>>         "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
>>     },
>>
>>     "lease-database": {
>>         "type": "mysql",
>>         "user": "kea_user",
>>         "password": "gaffel",
>>         "name": "kea_leases"
>>     },
>>
>>
>>     "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
>>     },
>>
>>     "renew-timer": 900,
>>     "rebind-timer": 1800,
>>     "valid-lifetime": 3600,
>>
>>
>>     "option-data": [
>>         {
>>             "name": "domain-name-servers",
>>             "data": "192.0.2.1, 192.0.2.2"
>>         },
>>
>>         {
>>             "code": 15,
>>             "data": "example.org"
>>         },
>>
>>         {
>>             "name": "domain-search",
>>             "data": "mydomain.example.com, example.com"
>>         },
>>
>>
>>         {
>>             "name": "boot-file-name",
>>             "data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
>>         },
>>
>>         {
>>             "name": "default-ip-ttl",
>>             "data": "0xf0"
>>         }
>>
>>     ],
>>
>>
>>     "client-classes": [
>>         {
>>             "name": "voip",
>>
>>             "test": "substring(option[60].hex,0,6) == 'Aastra'",
>>
>>             "next-server": "192.0.2.254",
>>             "server-hostname": "hal9000",
>>             "boot-file-name": "/dev/null"
>>
>>         }
>>     ],
>>
>>
>>     "subnet4": [
>>         {
>>             "subnet": "192.0.2.0/24",
>>
>>             "pools": [ { "pool": "192.0.2.3 - 192.0.2.200" } ],
>>
>>             "option-data": [
>>                 {
>>                     "name": "routers",
>>                     "data": "192.0.2.1"
>>                 }
>>             ],
>>
>>             "reservations": [
>>
>>                 {
>>                     "hw-address": "1a:1b:1c:1d:1e:1f",
>>                     "ip-address": "192.0.2.201"
>>                 },
>>
>>                 {
>>                     "client-id": "01:11:22:33:44:55:66",
>>                     "ip-address": "192.0.2.202",
>>                     "hostname": "special-snowflake"
>>                 },
>>
>>                 {
>>                     "duid": "01:02:03:04:05",
>>                     "ip-address": "192.0.2.203",
>>                     "option-data": [ {
>>                         "name": "domain-name-servers",
>>                         "data": "10.1.1.202, 10.1.1.203"
>>                     } ]
>>                 },
>>
>>                 {
>>                     "client-id": "01:12:23:34:45:56:67",
>>                     "ip-address": "192.0.2.204",
>>                     "option-data": [
>>                         {
>>                             "name": "vivso-suboptions",
>>                             "data": "4491"
>>                         },
>>                         {
>>                             "name": "tftp-servers",
>>                             "space": "vendor-4491",
>>                             "data": "10.1.1.202, 10.1.1.203"
>>                         }
>>                     ]
>>                 },
>>                 {
>>                     "client-id": "01:0a:0b:0c:0d:0e:0f",
>>                     "ip-address": "192.0.2.205",
>>                     "next-server": "192.0.2.1",
>>                     "server-hostname": "hal9000",
>>                     "boot-file-name": "/dev/null"
>>                 },
>>                 {
>>                     "flex-id": "'s0mEVaLue'",
>>                     "ip-address": "192.0.2.206"
>>                 }
>>             ]
>>         }
>>     ]
>>
>> },
>>
>> "Dhcp6": {
>>     "interfaces-config": {
>>         "interfaces": [ ]
>>     },
>>
>>     "control-socket": {
>>         "socket-type": "unix",
>>         "socket-name": "/tmp/kea-dhcp6-ctrl.sock"
>>     },
>>
>>     "lease-database": {
>>         "type": "memfile"
>>     },
>>
>>
>>     "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
>>     },
>>
>>     "renew-timer": 1000,
>>     "rebind-timer": 2000,
>>     "preferred-lifetime": 3000,
>>     "valid-lifetime": 4000,
>>
>>     "option-data": [
>>         {
>>             "name": "dns-servers",
>>             "data": "2001:db8:2::45, 2001:db8:2::100"
>>         },
>>
>>         {
>>             "code": 12,
>>             "data": "2001:db8::1"
>>         },
>>
>>
>>         {
>>             "name": "new-posix-timezone",
>>             "data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
>>         },
>>
>>         {
>>             "name": "preference",
>>             "data": "0xf0"
>>         },
>>
>>         {
>>             "name": "bootfile-param",
>>             "data": "root=/dev/sda2, quiet, splash"
>>         }
>>     ],
>>
>>     "subnet6": [
>>         {
>>             "subnet": "2001:db8:1::/64",
>>
>>             "pools": [ { "pool": "2001:db8:1::/80" } ],
>>
>>             "pd-pools": [
>>                 {
>>                     "prefix": "2001:db8:8::",
>>                     "prefix-len": 56,
>>                     "delegated-len": 64
>>
>>                 }
>>             ],
>>             "option-data": [
>>                 {
>>                     "name": "dns-servers",
>>                     "data": "2001:db8:2::dead:beef,
>> 2001:db8:2::cafe:babe"
>>                 }
>>             ],
>>
>>             "reservations": [
>>                 {
>>                     "duid": "01:02:03:04:05:0A:0B:0C:0D:0E",
>>                     "ip-addresses": [ "2001:db8:1::100" ]
>>                 },
>>
>>                 {
>>                     "hw-address": "00:01:02:03:04:05",
>>                     "ip-addresses": [ "2001:db8:1::101" ],
>>                     "option-data": [
>>                         {
>>                             "name": "dns-servers",
>>                             "data": "3000:1::234"
>>                         },
>>                         {
>>                             "name": "nis-servers",
>>                             "data": "3000:1::234"
>>                         }],
>>
>>                     "client-classes": [ "special_snowflake", "office" ]
>>                 },
>>
>>                 {
>>                     "duid": "01:02:03:04:05:06:07:08:09:0A",
>>                     "ip-addresses": [ "2001:db8:1:cafe::1" ],
>>                     "prefixes": [ "2001:db8:2:abcd::/64" ],
>>                     "hostname": "foo.example.com",
>>                     "option-data": [
>>                         {
>>                             "name": "vendor-opts",
>>                             "data": "4491"
>>                         },
>>                         {
>>                             "name": "tftp-servers",
>>                             "space": "vendor-4491",
>>                             "data": "3000:1::234"
>>                         }
>>                     ]
>>                 },
>>
>>
>>                 {
>>                     "flex-id": "'somevalue'",
>>                     "ip-addresses": [ "2001:db8:1:cafe::2" ]
>>                 }
>>             ]
>>         }
>>     ]
>>
>>
>>
>>
>> },
>>
>> "DhcpDdns":
>> {
>>   "ip-address": "127.0.0.1",
>>   "port": 53001,
>>   "tsig-keys": [],
>>   "forward-ddns" : {},
>>   "reverse-ddns" : {}
>> },
>>
>> "Control-agent": {
>>     "http-host": "127.0.0.1",
>>     "http-port": 8080,
>>
>>     "control-sockets": {
>>         "dhcp4": {
>>             "socket-type": "unix",
>>             "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
>>         },
>>         "dhcp6": {
>>             "socket-type": "unix",
>>             "socket-name": "/tmp/kea-dhcp6-ctrl.sock"
>>         }
>>     },
>>
>>     "hooks-libraries": [
>>     ]
>> },
>>
>> "Logging":
>> {
>>   "loggers": [
>>     {
>>         "name": "kea-dhcp4",
>>         "output_options": [
>>             {
>>                 "output": "/var/log/kea-dhcp4.log"
>>
>>
>>
>>             }
>>         ],
>>         "severity": "INFO",
>>
>>         "debuglevel": 0
>>     },
>>     {
>>         "name": "kea-dhcp6",
>>         "output_options": [
>>             {
>>                 "output": "/var/log/kea-dhcp6.log"
>>             }
>>         ],
>>         "severity": "INFO",
>>         "debuglevel": 0
>>     },
>>     {
>>         "name": "kea-dhcp-ddns",
>>         "output_options": [
>>             {
>>                 "output": "/var/log/kea-ddns.log"
>>             }
>>         ],
>>         "severity": "INFO",
>>         "debuglevel": 0
>>     },
>>     {
>>         "name": "kea-ctrl-agent",
>>         "output_options": [
>>             {
>>                 "output": "/var/log/kea-ctrl-agent.log"
>>             }
>>         ],
>>         "severity": "INFO",
>>         "debuglevel": 0
>>     }
>>   ]
>> }
>> }
>>
>> Br,
>> Rasmus
>>
>> Bill Pye skrev den 2017-10-09 18:19:
>>> Hi Thomas
>>>
>>> I initially built them myself from a Spec file that Rasmus provided
>>> and the downloaded source code, he later provided an srpm so I rebuilt
>>> it with that. The original list message (and links) is this:
>>>
>>> Hi Bill,
>>>
>>> You're welcome. Glad to help.
>>>
>>> Here's the srpms for 1.2.0 and 1.3.0-beta for those who are interested:
>>>
>>> 1.2.0:
>>> https://arch-ed.dk/srpms/kea-1.2.0/kea-1.2.0-1.el7.centos.src.rpm
>>>
>>> 1.3.0-beta:
>>> https://arch-ed.dk/srpms/kea-1.3.0-beta/kea-1.3.0-0.1.beta.el7.centos.src.rpm
>>>
>>> Br,
>>>
>>> Rasmus
>>>
>>> Where would you like me to send my rpm files, to the list?
>>>
>>>
>>> Regards
>>>
>>>
>>>
>>> Bill
>>> ----- Original Message -----
>>>> From: "Thomas Markwalder" <tmark at isc.org>
>>>> To: "bill pye" <bill.pye at phoenix-systems.co.uk>
>>>> Cc: "kea-users" <kea-users at lists.isc.org>
>>>> Sent: Monday, 9 October, 2017 17:40:38
>>>> Subject: Re: [Kea-users] 1.3.0 beta not working with mysql
>>>> Hi Bill:
>>>>
>>>> I did not use RPMs, I installed from source.  Please send us your
>>>> RPMs.
>>>> Where did you get these RPMs?
>>>>
>>>> Thanks,
>>>>
>>>> Thomas
>>>>   
>>>>
>>>> On 10/9/17 11:18 AM, Bill Pye wrote:
>>>>> Hi Thomas
>>>>>
>>>>> I've built a VM Centos& server, fully updated and just the MariaDB &
>>>>> epel
>>>>> repositories and fully updated. Unfortunately no luck, the same
>>>>> problem occurs.
>>>>> Is this, by any chance, a possible problem with my build of kea?
>>>>> Would you like
>>>>> me to send you my RPMs or perhaps you could send me yours?
>>>>>
>>>>>
>>>>> Regards
>>>>>
>>>>>
>>>>> Bill
>>>>>
>>>>> ----- Original Message -----
>>>>>> From: "Thomas Markwalder" <tmark at isc.org>
>>>>>> To: "kea-users" <kea-users at lists.isc.org>
>>>>>> Sent: Monday, 9 October, 2017 14:29:37
>>>>>> Subject: Re: [Kea-users] 1.3.0 beta not working with mysql
>>>>>> Hi Bill:
>>>>>>
>>>>>> Just following up with you.  I was able to build out a Centos 7 VM
>>>>>> with
>>>>>> MariaDB.  Kea builds fine, the unit tests all pass (which include
>>>>>> pretty
>>>>>> exhaustive testing of our supported backends).   kea-dhcp4 comes and
>>>>>> happily hands out leases with lifetimes of 604800 with no apparent
>>>>>> issues.   This was using the 1.3-beta code as is.   I even verified
>>>>>> that
>>>>>> setting the wait_timeout to 30 * 86400 seems to work fine using the
>>>>>> mysql command line client.
>>>>>>
>>>>>> I can't say why you saw what you did before.  Doesn't make much
>>>>>> sense.
>>>>>> If you see it again let us know and we'll dig further.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Thomas Markwalder
>>>>>> ISC Software Engineering
>>> _______________________________________________
>>> Kea-users mailing list
>>> Kea-users at lists.isc.org
>>> https://lists.isc.org/mailman/listinfo/kea-users
> _______________________________________________
> Kea-users mailing list
> Kea-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users




More information about the Kea-users mailing list