[Kea-users] Assigning unique /64 to each CPE for IA_NA

Xuo Guoto xuoguoto at protonmail.com
Tue Nov 29 09:27:53 UTC 2022


Thanks for your reply, Darren. 

I went through the configuration and made a similar configuration to give it a try. My objective was to get a IA_NA address, with each client getting a single address, bu from different /64 pool, but it fails with NoAddrsAvail(2) "Sorry, no address could be allocated."

DHCP requests come to the server via a relay, and the server is listening on localhost. I can see from the logs that subnet is getting correctly retrieved.

dhcpv6 config is:

{
  "Dhcp6": {
    "interfaces-config": {
      "interfaces": [
        "lo/::1"
      ]
    },
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/tmp/kea6-ctrl-socket"
    },
    "lease-database": {
      "type": "memfile",
      "lfc-interval": 3600
    },
    "valid-lifetime": 300,
    "option-data": [
      {
        "name": "dns-servers",
        "data": "2001:db8:2::45, 2001:db8:2::100"
      }
    ],
    "subnet6": [
      {
        "id": 1,
        "subnet": "2404:640:4003:2640::/56",
        "pd-pools": [
          {
            "prefix": "2404:640:5878:2640::",
            "prefix-len": 56,
            "delegated-len": 64
          }
        ],
        "option-data": [
          {
            "name": "dns-servers",
            "data": "2404:640:4003:2640::dead:beef, 2404:640:4003:2640::cafe:babe"
          }
        ]
      }
    ],
    "loggers": [
      {
        "name": "kea-dhcp6",
        "output_options": [
          {
            "output": "/var/log/kea-dhcp6.log"
          }
        ],
        "severity": "DEBUG",
        "debuglevel": 1
      }
    ]
  }
}


The full logs are as follows:

2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_BUFFER_RECEIVED received buffer from fd40:761b:1:1::2:546 to ::1:0 over interface lo
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.options/1612065.139994049166976] DHCP6_BUFFER_UNPACK parsing buffer received from fd40:761b:1:1::2 to ::1 over interface lo
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_PACKET_RECEIVED duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: SOLICIT (type 1) received from fd40:761b:1:1::2 to ::1 on interface lo
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_QUERY_DATA duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20, packet details: localAddr=[::1]:0 remoteAddr=[fd40:761b:1:1::2]:546
msgtype=1(SOLICIT), transid=0x69ea20
type=00001, len=00014: 00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f
type=00003(IA_NA), len=00040: iaid=202768387, t1=3600, t2=5400,
options:
  type=00005(IAADDR), len=00024: address=2404:640:4003:2640::2, preferred-lft=7200, valid-lft=10800
type=00006, len=00008: 23(uint16) 24(uint16) 39(uint16) 31(uint16)
type=00008, len=00002: 0 (uint16)
2 relay(s):
relay[0]: msg-type=12(RELAY_FORWARD), hop-count=1,
link-address=fd40:761b:1:1::2, peer-address=fd40:761b:1:1::1, 0 option(s)
relay[1]: msg-type=12(RELAY_FORWARD), hop-count=0,
link-address=2404:640:4003:2640::, peer-address=fe80::42:cff:fe16:3, 2 option(s)
type=00018, len=00004: 00:00:00:04
type=00079, len=00008: 00:01:02:42:0c:16:00:03

2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.dhcpsrv/1612065.139994049166976] DHCPSRV_CFGMGR_SUBNET6 retrieved subnet 2404:640:4003:2640::/56 for address hint 2404:640:4003:2640::
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_SUBNET_SELECTED duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: the subnet with ID 1 was selected for client assignments
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_SUBNET_DATA duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: the selected subnet details: 2404:640:4003:2640::/56
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER get one host with IPv6 reservation for subnet id 1, identified by hwaddr=02420C160003
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: hwaddr=02420C160003
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier hwaddr=02420C160003, found 0 host(s)
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found using subnet id 1 and identifier hwaddr=02420C160003
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER get one host with IPv6 reservation for subnet id 1, identified by duid=0001000129B18278E66FD966E67F
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: duid=0001000129B18278E66FD966E67F
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier duid=0001000129B18278E66FD966E67F, found 0 host(s)
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.hosts/1612065.139994049166976] HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found using subnet id 1 and identifier duid=0001000129B18278E66FD966E67F
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.dhcp6/1612065.139994049166976] DHCP6_CLASS_ASSIGNED duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: client packet has been assigned to the following class(es): UNKNOWN
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.leases/1612065.139994049166976] DHCP6_PROCESS_IA_NA_REQUEST duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: server is processing IA_NA option with iaid=202768387 and hint=2404:640:4003:2640::2
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.dhcpsrv/1612065.139994049166976] DHCPSRV_MEMFILE_GET_IAID_DUID obtaining IPv6 leases for IAID 202768387 and DUID 00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f and lease type IA_NA
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.alloc-engine/1612065.139994049166976] ALLOC_ENGINE_V6_ALLOC_UNRESERVED no static reservations available - trying to dynamically allocate leases for client duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20
2022-11-29 14:30:11.228 WARN  [kea-dhcp6.alloc-engine/1612065.139994049166976] ALLOC_ENGINE_V6_ALLOC_FAIL_SUBNET duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: failed to allocate an IPv6 lease in the subnet with id 1
2022-11-29 14:30:11.228 WARN  [kea-dhcp6.alloc-engine/1612065.139994049166976] ALLOC_ENGINE_V6_ALLOC_FAIL_NO_POOLS duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: no pools were available for the lease allocation
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.leases/1612065.139994049166976] DHCP6_LEASE_ADVERT_FAIL duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: failed to advertise an address lease for iaid=202768387
2022-11-29 14:30:11.228 DEBUG [kea-dhcp6.options/1612065.139994049166976] DHCP6_ADD_STATUS_CODE_FOR_IA duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: adding Status Code to IA with iaid=202768387: NoAddrsAvail(2) "Sorry, no address could be allocated."
2022-11-29 14:30:11.229 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_PACKET_SEND duid=[00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f], tid=0x69ea20: trying to send packet ADVERTISE (type 2) from [::1]:547 to [fd40:761b:1:1::2]:547 on interface lo
2022-11-29 14:30:11.229 DEBUG [kea-dhcp6.packets/1612065.139994049166976] DHCP6_RESPONSE_DATA responding with packet type 2 data is localAddr=[::1]:547 remoteAddr=[fd40:761b:1:1::2]:547
msgtype=2(ADVERTISE), transid=0x69ea20
type=00001, len=00014: 00:01:00:01:29:b1:82:78:e6:6f:d9:66:e6:7f
type=00002, len=00014: 00:01:00:01:2a:f2:70:1e:5e:b2:d7:b4:94:54
type=00003(IA_NA), len=00055: iaid=202768387, t1=0, t2=0,
options:
  type=00013, len=00039: NoAddrsAvail(2) "Sorry, no address could be allocated."
type=00023, len=00032: 2404:640:4003:2640::dead:beef 2404:640:4003:2640::cafe:babe
2 relay(s):
relay[0]: msg-type=13(RELAY_REPLY), hop-count=1,
link-address=fd40:761b:1:1::2, peer-address=fd40:761b:1:1::1, 0 option(s)
relay[1]: msg-type=13(RELAY_REPLY), hop-count=0,
link-address=2404:640:4003:2640::, peer-address=fe80::42:cff:fe16:3, 1 option(s)
type=00018, len=00004: 00:00:00:04



------- Original Message -------
On Monday, November 28th, 2022 at 6:13 PM, Darren Ankney <darren.ankney at gmail.com> wrote:


> The simplest answer is found in the documentation:
> https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp6-srv.html#subnet-and-prefix-delegation-pools
> though your exact implementation may require slightly different
> configurations (example: multiple prefix pools). Example from the
> documentation shown below with my comments relating it to the
> recommendations you quoted.
> 
> "Dhcp6": {
> "subnet6": [
> {
> // this would be the subnet that the CPE will get on the WAN side
> "subnet": "2001:d8b:1::/64",
> "pd-pools": [
> {
> // this is the subnet you are going to delegate
> smaller portions of to the LAN side of the CPE
> "prefix": "3000:1::",
> // This is the length of the subnet that you are
> going to delegate (example /48)
> "prefix-len": 64,
> // this is the size of the delegation you want to
> give to the CPE (the recommendations you quoted said /64)
> "delegated-len": 96
> }
> ]
> }
> ],
> ...
> }
> 
> 
> 
> On Mon, Nov 28, 2022 at 5:42 AM Xuo Guoto via Kea-users
> kea-users at lists.isc.org wrote:
> 
> > Hello Kea list,
> > 
> > I am trying to configure kea-ipv6 in a BNG context where kea will be responsible for providing IP address for WAN (IA_NA) and for IA_PD. There is a requirement that when assigning IA_NA each Residential Gateway be given an IP address from a separate /64 prefix.
> > 
> > For example RIPE BCOP-690 section 4.1.1 says:
> > 
> > <quote>
> > Using a /64 prefix from a dedicated pool of IPv6 prefixes is the most common scenario and currently the best practice. A separate block of IPv6 space is allocated for the WAN links to the end customer CPEs, so that when CPE connects to the network and performs router discovery, a /64 prefix is used to number both ends of the connection.
> > </quote>
> > 
> > How such a configuration be provided in kea? From what I have seen if a /48 prefix is used in pool, kea will try to allocate single /128 to each CPE, and pd-pools are for IA_PD.
> > 
> > Thanks for your help!
> > 
> > X.
> > 
> > --
> > ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
> > 
> > To unsubscribe visit 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
> 
> --
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
> 
> To unsubscribe visit 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