[Kea-users] KEA IPv6 Configuration Help?

Garett garett at kea.nebo.zy.ca
Tue Apr 28 23:08:20 UTC 2015


Hi all.

Let me start with saying I'm really familiar with IPv4, but I haven't used IPv6 at all.   I am thinking I'm missing something fundamental to do with IPv6 multicast as it relates to DHCPv6 and I'm hoping someone call tell me what I've done wrong.

I have setup two virtual machines to talk to each other, one with KEA 0.9.1 on it, the other with the standard linux suite of DHCP tools.  I have no problem getting the DHCPv4 stuff to work.  I was able to configure it and get it working in a minute.  DHCPv6, however, I can't get that working the same way (giving the interface an IP and telling the server to use an IP in the range). I can manually assign an IPv6 address to the client and I can ping between the machines so that and the fact that DHCPv4 works means the virtual machines are talking to each other properly so it has to be something I did in configuration (either of the network interface or KEA).

The interface I'm using is enp0s8; it has the IP 2004:db8::1/32.   The IP address isn't that overly important I don't think; the machines are only talking to themselves and, via enp0s3 on the server, to the host machine.

Here is the full configuration:

[root at server ~]# ip addr ls dev enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:af:a5:d5 brd ff:ff:ff:ff:ff:ff
    inet6 2004:db8::1/32 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feaf:a5d5/64 scope link 
       valid_lft forever preferred_lft forever

I set-up kea like so:

{"Dhcp6":{
  "interfaces-config": {
    "interfaces": [ "enp0s8" ]
  },

  "lease-database": {
    "type": "memfile"
  },

  "preferred-lifetime": 3000,
  "valid-lifetime": 4000,
  "renew-timer": 1000,
  "rebind-timer": 2000,

  "subnet6": [{
     "subnet": "2004:db8::/32",
       "pools": [ { "pool": "2004:db8:1::/64" } ] 
  }]
}}

(I also have the logging stuff in there, but that isn't important)

This results in this output:
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_CONFIG_START DHCPv6 server is processing the following configuration: { "interfaces-config": { "interfaces": [ "enp0s8" ] }, "lease-database": { "type": "memfile" }, "preferred-lifetime": 3000, "rebind-timer": 2000, "renew-timer": 1000, "subnet6": [ { "pools": [ { "pool": "2004:db8:1::/64" } ], "subnet": "2004:db8::/32" } ], "valid-lifetime": 4000 }
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element interfaces-config
2015-04-28 16:36:14.696 INFO  [kea-dhcp6.dhcpsrv/3825] DHCPSRV_CFGMGR_ADD_IFACE listening on interface enp0s8
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element lease-database
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element preferred-lifetime
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element rebind-timer
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element renew-timer
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element subnet6
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcp6/3825] DHCP6_PARSER_CREATED created parser for configuration element valid-lifetime
2015-04-28 16:36:14.696 INFO  [kea-dhcp6.dhcp6/3825] DHCP6_CONFIG_NEW_SUBNET a new subnet has been added to configuration: 2004:db8::/32 with params t1=1000, t2=2000, pref=3000, valid=4000
2015-04-28 16:36:14.696 DEBUG [kea-dhcp6.dhcpsrv/3825] DHCPSRV_CFGMGR_ADD_SUBNET6 adding subnet 2004:db8::/32
2015-04-28 16:36:14.696 INFO  [kea-dhcp6.dhcpsrv/3825] DHCPSRV_MEMFILE_DB opening memory file lease database: type=memfile universe=6
2015-04-28 16:36:14.697 INFO  [kea-dhcp6.dhcpsrv/3825] DHCPSRV_MEMFILE_LEASE_FILE_LOAD loading leases from file /opt/kea/var/kea/kea-leases6.csv
2015-04-28 16:36:14.697 INFO  [kea-dhcp6.dhcp6/3825] DHCP6_CONFIG_COMPLETE DHCPv6 server has completed configuration: no IPv6 subnets!; DDNS: disabled


So I am fairly certain my problem is the whole "no IPv6 subnets" but that doesn't make much sense because those appeared to load just fine a few lines earlier.  I also found a vague reference to some bug that will be fixed in 0.9.2 that make unnecessary "no IPv6 subnets" messages go away so maybe it isn't that.

I know it is getting the DHCPv6 requests from the client.   I run "dhclient -6 -v enp0s3" on the virtual client and I can see the requests in the tcpdump on the server ...

[root at server ~]# tcpdump -i enp0s8 
tcpdump: WARNING: enp0s8: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s8, link-type EN10MB (Ethernet), capture size 65535 bytes
16:39:16.386989 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
16:39:17.051220 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
16:39:17.331375 IP6 :: > ff02::1:ffbe:e078: ICMP6, neighbor solicitation, who has fe80::a00:27ff:febe:e078, length 24
16:39:18.333869 IP6 fe80::a00:27ff:febe:e078 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
16:39:18.335099 IP6 fe80::a00:27ff:febe:e078 > ff02::2: ICMP6, router solicitation, length 8
16:39:18.652743 IP6 fe80::a00:27ff:febe:e078 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
16:39:22.308676 IP6 fe80::a00:27ff:febe:e078 > ff02::2: ICMP6, router solicitation, length 8
16:39:26.311704 IP6 fe80::a00:27ff:febe:e078 > ff02::2: ICMP6, router solicitation, length 8

So it's sending the requests to the IPv6 multicast ... but the kea server isn't hearing them (or maybe isn't listening for them).   I'm sure I've forgotten a step somewhere and I'm sure it's something very stupid that I suspect someone with more familiar with IPv6 might be able to find in seconds ... but I'm not that person.  Could anyone point me in the right direction to get these machines talking?

Thanks,
Garett



More information about the Kea-users mailing list