[Kea-users] 1.3.0 beta not working with mysql

Rasmus Edgar regj at arch-ed.dk
Tue Oct 10 13:50:00 UTC 2017


Hi Thomas,

I am happy to contribute with what I can.

Exciting news about the HA feature coming with Kea 1.4, the last check 
mark I need before I can start planning and testing Kea deployments 
instead of ISCs already excellent and stable DHCP 4.x server.

Br,
Rasmus

Thomas Markwalder skrev den 2017-10-10 13:39:
> 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
> 
> 
> _______________________________________________
> 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