[Kea-users] Prefix delegation

Marcin Siodelski marcin at isc.org
Mon Feb 2 15:26:28 UTC 2015


Mauro,

Thanks for your investigation. The answer to your question is twofold.

First, for each client (when sending a single Request with IA_NA and
IA_PD) only one subnet is selected! The subnet defines client's
(requesting router's) point of attachment. If the particular client is
to be delegated a prefix and should receive an address there should be
one subnet which includes both address pool and the pool for prefix
delegation.

In the light of this, your config has to be corrected:

"subnet6": [
        { "subnet": "2800:820:1:4::/64", "pools": [ { "pool":
 "2800:820:1:4::228-2800:820:1:4::254" } ],"interface": "eth0",
             "pd-pools": [ { "prefix": "2800:820:3::", "prefix-len": 56,
 "delegated-len": 60 } ]
         }
]

I hope, I didn't mess up the braces. Anyhow, the "pd-pools" structure
must be included in the same subnet as "pools".

But, here comes a second important note. The current version of Kea
requires that the prefix of the pool for the prefix delegation matches
the prefix of the subnet. In other words, Kea would accept the pd pools
of "2800:820:1:4::" because it matches the prefix in the "subnet"
parameter, but if it doesn't match (as in your case), it will be rejected.

I know, this is wrong!

The following ticket http://kea.isc.org/ticket/3647 fixes this and
allows for the pd-pools out of the subnet pool, but this ticket
(although implemented) is waiting for a code review. I am hoping that we
close on this ticket later this week and you should be able to test it
from the tip of the master branch in our git repository.

Hope that helps.

Marcin


On 02/02/15 16:11, Mauro Gasparini wrote:
> Hi,
> I would like to know if anyone has successfully configured prefix
> delegation in dhcpv6.
> In my case I'm trying to delegate network prefixes 2800:820:3::/56 to
> customers that require it (without specifying any subnet in particular).
> 
> *My kea setup is as follows:*
> 
> # cat /etc/kea/kea.conf
> 
> {
> # DHCPv6 configuration starts on the next line
> "Dhcp6": {
>  
> # First we set up global values
>     "interfaces": [ "eth0" ],
>     "renew-timer": 1000,
>     "rebind-timer": 2000,
>     "preferred-lifetime": 3000,
>     "valid-lifetime": 4000,
>  
>              "option-data": [
>                  {
>                      "name": "dns-servers",
>                      "code": 23,
>                      "space": "dhcp6",
>                      "csv-format": true,
>                      "data": "2800:820:1:2::18"
>                  }
>         ],
> # Next we specify the type of lease database
>     "lease-database": {
>         "type": "memfile",
>         "persist": true,
>     "name": "/usr/local/var/kea/kea-leases6.csv"
>     },
>  
> # Finally, we list the subnets from which we will be leasing addresses.
>     "subnet6": [
>         { "subnet": "2800:820:1:4::/64", "pools": [ { "pool":
> "2800:820:1:4::228-2800:820:1:4::254" } ],"interface": "eth0" },
>         { "subnet": "2800:820:3::/56",
>             "pd-pools": [ { "prefix": "2800:820:3::", "prefix-len": 56,
> "delegated-len": 60 } ],"interface": "eth0"
>         }
>     ]
> },
> # The following configures logging. It assumes that warning messages
> # will be logged to stdout.
> "Logging": {
>     "loggers": [
>         {
>             "name": "kea-dhcp6",
>             "output_options": [
>                 {
> #                    "output": "tdout"
>                     "output": "/usr/local/var/kea/kea.log"
>                 }
>             ],
>             "severity": "WARN"
>         }
>     ]
> }
>  
> # DHCPv6 configuration ends with the next line
> }
> 
> *In logs I see that it delivers a lease of IA_NA but it cannot deliver
> IA_PD:*
> 
> # tail /usr/local/var/kea/kea.log
> 
> 2015-02-02 12:18:05.831 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_CFGMGR_SUBNET6_IFACE selected subnet 2800:820:1:4::/64 for
> packet received over interface eth0
> 2015-02-02 12:18:05.831 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_CFGMGR_SUBNET6_IFACE selected subnet 2800:820:1:4::/64 for
> packet received over interface eth0
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_CFGMGR_SUBNET6_IFACE selected subnet 2800:820:1:4::/64 for
> packet received over interface eth0
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_SUBNET_SELECTED the 2800:820:1:4::/64 subnet was selected for
> client assignment
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_PROCESS_IA_NA_REQUEST server is processing IA_NA option
> (duid=00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d, iaid=1, hint=(no hint))
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID obtaining IPv6 leases for IAID 1,
> Subnet ID 1, DUID 00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d and lease
> type IA_NA
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address
> 2800:820:1:4::229 and lease type IA_NA
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address
> 2800:820:1:4::229 and lease type IA_NA
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcp6/30329] DHCP6_LEASE_ADVERT
> address lease 2800:820:1:4::229 advertised (client
> duid=00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d, iaid=1)
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_PROCESS_IA_PD_REQUEST server is processing IA_PD option
> (duid=00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d, iaid=1, hint=(no hint))
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID obtaining IPv6 leases for IAID 1,
> Subnet ID 1, DUID 00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d and lease
> type IA_PD
> 2015-02-02 12:18:05.832 ERROR [kea-dhcp6.dhcpsrv/30329]
> DHCPSRV_ADDRESS6_ALLOC_ERROR error during attempt to allocate an IPv6
> address: No pools defined in selected subnet
> 2015-02-02 12:18:05.832 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_PD_LEASE_ADVERT_FAIL failed to advertise a prefix lease for client
> duid=00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d, iaid=1
> 2015-02-02 12:18:05.833 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_RESPONSE_DATA responding with packet type 2 data is
> localAddr=[ff02::1:2]:547 remoteAddr=[fe80::2e0:4cff:fe0c:19fd]:546
> msgtype=2, transid=0x80e1c
> type=1, len=14: 00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d
> type=2, len=14: 00:01:00:01:1c:22:ed:15:00:01:2e:2a:02:fa
> type=3(IA_NA) iaid=1, t1=1000, t2=2000 1 sub-options:
>   type=5(IAADDR) addr=2800:820:1:4::229, preferred-lft=3000, valid-lft=4000
>  
> type=23 1addr(s): 2800:820:1:2::18 
> type=25(IA_PD) iaid=1, t1=0, t2=0 1 sub-options:
>   type=13, len=40, data fields:
>     #0 6 ( uint16 ) 
>     #1 Sorry, no prefixes could be allocated. ( string ) 
>  
> 2015-02-02 12:18:05.833 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_RESPONSE_DATA responding with packet type 2 data is
> localAddr=[ff02::1:2]:547 remoteAddr=[fe80::2e0:4cff:fe0c:19fd]:546
> msgtype=2, transid=0x80e1c
> type=1, len=14: 00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d
> type=2, len=14: 00:01:00:01:1c:22:ed:15:00:01:2e:2a:02:fa
> type=3(IA_NA) iaid=1, t1=1000, t2=2000 1 sub-options:
>   type=5(IAADDR) addr=2800:820:1:4::229, preferred-lft=3000, valid-lft=4000
>  
> type=23 1addr(s): 2800:820:1:2::18 
> type=25(IA_PD) iaid=1, t1=0, t2=0 1 sub-options:
>   type=13, len=40, data fields:
>     #0 6 ( uint16 ) 
>     #1 Sorry, no prefixes could be allocated. ( string ) 
>  
> 2015-02-02 12:18:06.839 DEBUG [kea-dhcp6.dhcp6/30329]
> DHCP6_PACKET_RECEIVED REQUEST packet received
> 2015-02-02 12:18:06.840 DEBUG [kea-dhcp6.dhcp6/30329] DHCP6_QUERY_DATA
> received packet length 3, data length 0, data is localAddr=[ff02::1:2]:0
> remoteAddr=[fe80::2e0:4cff:fe0c:19fd]:546
> msgtype=3, transid=0x22c8ee
> type=1, len=14: 00:01:00:01:1c:47:92:c6:00:19:21:78:c6:8d
> type=2, len=14: 00:01:00:01:1c:22:ed:15:00:01:2e:2a:02:fa
> type=3(IA_NA) iaid=1, t1=4294967295, t2=4294967295 1 sub-options:
>   type=5(IAADDR) addr=2800:820:1:4::229, preferred-lft=3000, valid-lft=4000
>  
> type=6, len=2: 
> type=8, len=2: 
> type=25(IA_PD) iaid=1, t1=4294967295, t2=4294967295 0 sub-options:
>  
> *Server IP conf is:*
> 
> # ip -6 addr list
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 
>     inet6 ::1/128 scope host 
>        valid_lft forever preferred_lft forever
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 2800:820:1:4::1/64 scope global 
>        valid_lft forever preferred_lft forever
>     inet6 fe80::201:2eff:fe2a:2fa/64 scope link 
>        valid_lft forever preferred_lft forever
> 
> 
> -- 
> Interlink SRL
> 	*MAURO GASPARINI Telecomunicaciones*
> mjgaspa at interlinksrl.com.ar
> *INTERLINK SRL*
> Corrientes 161 (2000) Rosario
> Santa Fe - Argentina
> Tel: +54 341 4248123 	
> 
> 
> 
> _______________________________________________
> 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