[Kea-users] 1.6.1 HA mode, getting ALLOC_ENGINE_V4_ALLOC_FAIL

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[Kea-users] 1.6.1 HA mode, getting ALLOC_ENGINE_V4_ALLOC_FAIL

Andreas Hasenack
Hi,

Hopefully I just have a typo somewhere. I'm testing HA mode with
isc-kea 1.6.1, but my client cannot get an IP. The server shows:

2020-02-12 15:09:24.496 WARN  [kea-dhcp4.alloc-engine/8222]
ALLOC_ENGINE_V4_ALLOC_FAIL [hwtype=1 00:16:3e:ce:8b:ae], cid=[no
info], tid=0x83958925: failed to allocate an IPv4 address after 0
attempt(s)

My test setup consists of two VMs in the same network
(192.168.99.0/24), acting as the dhcp servers, and one single lxd
container as the client, also on the same network. This was working
before I brought HA into the picture (with just one server obviously).

This is "kea1" (192.168.99.10/24):
{
"Dhcp4": {
    "interfaces-config": {
        "interfaces": ["ens3" ]
    },

    "control-socket": {
        "socket-type": "unix",
        "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
    },

    "lease-database": {
        "type": "memfile",
        "lfc-interval": 3600
    },

    "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.168.99.1, 192.168.122.1"
        },

        {
            "name": "domain-search",
            "data": "keatest,localdomain,lowtech,lxd"
        },
        {
            "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"

        }
    ],

    "hooks-libraries": [
        {
            "library":
"/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so",
            "parameters": { }
        },
        {
            "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
            "parameters": {
                "high-availability": [{
                    "this-server-name": "kea1",
                    "mode": "load-balancing",
                    "heartbeat-delay": 10000,
                    "max-ack-delay": 5000,
                    "max-unacked-clients": 5,
                    "peers": [{
                        "name": "kea1",
                        "url": "http://192.168.99.10:8000/",
                        "role": "primary",
                        "auto-failover": true
                    },
                    {
                        "name": "kea2",
                        "url": "http://192.168.99.9:8000/",
                        "role": "secondary",
                        "auto-failover": true
                    }]
                }]
            }
        }
    ],

    "subnet4": [
        {
            "subnet": "192.168.99.0/24",
            "pools": [
                {
                    "pool": "192.168.99.100 - 192.168.99.149",
                    "client-class": "HA_server1"
                },
                {
                    "pool": "192.168.99.150 - 192.168.99.199",
                    "client-class": "HA_server2"
                }
            ],
            "option-data": [
                {
                    "name": "routers",
                    "data": "192.168.99.1"
                }
            ]
        }
    ],

    "loggers": [
    {
        "name": "kea-dhcp4",
        "output_options": [
            {
                "output": "/var/log/kea/kea-dhcp4.log"
            }
        ],
        "severity": "INFO",

        "debuglevel": 0
    }
  ]
}
}


The diff between that and kea2's config is:
$ diff -u /etc/kea/kea-dhcp4.conf kea2
--- /etc/kea/kea-dhcp4.conf    2020-02-12 13:42:05.385806455 -0300
+++ kea2    2020-02-12 15:12:32.405941588 -0300
@@ -65,7 +65,7 @@
             "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
             "parameters": {
                 "high-availability": [{
-                    "this-server-name": "kea1",
+                    "this-server-name": "kea2",
                     "mode": "load-balancing",
                     "heartbeat-delay": 10000,
                     "max-ack-delay": 5000,

startup, dhcp request, shutdown logs at:
kea1: https://paste.ubuntu.com/p/qRrr8p9c4M/
kea2: https://paste.ubuntu.com/p/3Zh2dfMzRN/
_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users
Reply | Threaded
Open this post in threaded view
|

Re: [Kea-users] 1.6.1 HA mode, getting ALLOC_ENGINE_V4_ALLOC_FAIL

Andreas Hasenack
Got it, -d showed what was wrong. I had the wrong name for the
automatic HA_<server> class.


On Wed, Feb 12, 2020 at 3:23 PM Andreas Hasenack <[hidden email]> wrote:

>
> Hi,
>
> Hopefully I just have a typo somewhere. I'm testing HA mode with
> isc-kea 1.6.1, but my client cannot get an IP. The server shows:
>
> 2020-02-12 15:09:24.496 WARN  [kea-dhcp4.alloc-engine/8222]
> ALLOC_ENGINE_V4_ALLOC_FAIL [hwtype=1 00:16:3e:ce:8b:ae], cid=[no
> info], tid=0x83958925: failed to allocate an IPv4 address after 0
> attempt(s)
>
> My test setup consists of two VMs in the same network
> (192.168.99.0/24), acting as the dhcp servers, and one single lxd
> container as the client, also on the same network. This was working
> before I brought HA into the picture (with just one server obviously).
>
> This is "kea1" (192.168.99.10/24):
> {
> "Dhcp4": {
>     "interfaces-config": {
>         "interfaces": ["ens3" ]
>     },
>
>     "control-socket": {
>         "socket-type": "unix",
>         "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
>     },
>
>     "lease-database": {
>         "type": "memfile",
>         "lfc-interval": 3600
>     },
>
>     "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.168.99.1, 192.168.122.1"
>         },
>
>         {
>             "name": "domain-search",
>             "data": "keatest,localdomain,lowtech,lxd"
>         },
>         {
>             "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"
>
>         }
>     ],
>
>     "hooks-libraries": [
>         {
>             "library":
> "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so",
>             "parameters": { }
>         },
>         {
>             "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
>             "parameters": {
>                 "high-availability": [{
>                     "this-server-name": "kea1",
>                     "mode": "load-balancing",
>                     "heartbeat-delay": 10000,
>                     "max-ack-delay": 5000,
>                     "max-unacked-clients": 5,
>                     "peers": [{
>                         "name": "kea1",
>                         "url": "http://192.168.99.10:8000/",
>                         "role": "primary",
>                         "auto-failover": true
>                     },
>                     {
>                         "name": "kea2",
>                         "url": "http://192.168.99.9:8000/",
>                         "role": "secondary",
>                         "auto-failover": true
>                     }]
>                 }]
>             }
>         }
>     ],
>
>     "subnet4": [
>         {
>             "subnet": "192.168.99.0/24",
>             "pools": [
>                 {
>                     "pool": "192.168.99.100 - 192.168.99.149",
>                     "client-class": "HA_server1"
>                 },
>                 {
>                     "pool": "192.168.99.150 - 192.168.99.199",
>                     "client-class": "HA_server2"
>                 }
>             ],
>             "option-data": [
>                 {
>                     "name": "routers",
>                     "data": "192.168.99.1"
>                 }
>             ]
>         }
>     ],
>
>     "loggers": [
>     {
>         "name": "kea-dhcp4",
>         "output_options": [
>             {
>                 "output": "/var/log/kea/kea-dhcp4.log"
>             }
>         ],
>         "severity": "INFO",
>
>         "debuglevel": 0
>     }
>   ]
> }
> }
>
>
> The diff between that and kea2's config is:
> $ diff -u /etc/kea/kea-dhcp4.conf kea2
> --- /etc/kea/kea-dhcp4.conf    2020-02-12 13:42:05.385806455 -0300
> +++ kea2    2020-02-12 15:12:32.405941588 -0300
> @@ -65,7 +65,7 @@
>              "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
>              "parameters": {
>                  "high-availability": [{
> -                    "this-server-name": "kea1",
> +                    "this-server-name": "kea2",
>                      "mode": "load-balancing",
>                      "heartbeat-delay": 10000,
>                      "max-ack-delay": 5000,
>
> startup, dhcp request, shutdown logs at:
> kea1: https://paste.ubuntu.com/p/qRrr8p9c4M/
> kea2: https://paste.ubuntu.com/p/3Zh2dfMzRN/
_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users
Reply | Threaded
Open this post in threaded view
|

Re: [Kea-users] 1.6.1 HA mode, getting ALLOC_ENGINE_V4_ALLOC_FAIL

Thomas Markwalder
In reply to this post by Andreas Hasenack
The client-class values must match your peer names, kea1 and kea2:

>      "subnet4": [
>          {
>              "subnet": "192.168.99.0/24",
>              "pools": [
>                  {
>                      "pool": "192.168.99.100 - 192.168.99.149",
>                      "client-class": "HA_server1"                    <------------- should be "kea1"
>                  },
>                  {
>                      "pool": "192.168.99.150 - 192.168.99.199",
>                      "client-class": "HA_server2"                    <------------- should be "kea2"
>                  }
>              ],
>              "option-data": [
>                  {
>                      "name": "routers",
>                      "data": "192.168.99.1"
>                  }
>              ]
>          }
>      ],
>

Cheers,

Thomas Markwalder
ISC Software Engineeering
_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users