Roy's Blog

A Hacker's musings on Code | Tech | Life

dhcpcd-7.0.7 has been released with the following changes:

  • host routes work correctly again
  • vlanid is also used to calculate slaac stable private addresses

dhcpcd-7.0.6 was also released a while back, I forgot to post a log for it, so here it is:

  • fixed compile issues with prior release
  • fixed carrier loss not being detected for IPv4
  • UUID based DUID is used where available and no prior DUID exists

Continue reading...

  • dhcp: Clarified some checksumming code, style and commentary (thanks to Maxime Villard)
  • dhcp6: IAID is now unique per IA type rather than global
  • ip6: if an IA callback causes a fork, exit earlier

dhcpcd-7.0.5a was released with a compile fix for those wanting builds without IPv6
dhcpcd-7.0.5b was released with a compile fix for those wanting builds without IPv4LL

Continue reading...

  • OpenBSD: Fix adding INET6 on-link routes without an address
  • Linux: Improve interface renaming
  • Linux: If listening to dev manager, let it remove interfaces
  • Routing: Fix case when cloning route changes but needs to be replaced
  • DHCP6: Transpose DHCP userclass option into DHCP6
  • DHCP6: Fix sending custom vendor class option
  • Auth: Allow zero value replay detection data
  • Auth: Allow different tokens for send and receive
  • ND6: Warn if router lifetime is set to zero
  • DHCP6: Softwire Address and Port-Mapped Clients, RFC7598

The Authentication changes allow DHCP6 Prefix Delegation from the French ISP Orange

Continue reading...

A very important update:

  • udev: uses the logerr framework so that udev debug goes into the debug file
  • BSD: fix a segfault when IPv6 addresses are present and carrier changes (not NetBSD)
  • dhcp6: fix a null termination overflow on status messages (dhcpcd-7 branch only)
  • options: static routes can be setup in global context again
  • routes: dhcpcd added host routes are now reported correctly

dhcpcd-7.0.0, 7.0.1 and 7.0.2 are vulnerable to the DHCP6 issue where the message is copied from the DHCP6 option into a buffer, but is NULL terminated beyond the size of the buffer. dhcpcd-6 is not vulnerable.

Continue reading...

A long overdue release, and apologies for the wait Fixed stuff:

  • Added support for setproctitle(3)
  • Kernel RA is no longer disabled when IPv6 is disabled in dhcpcd
  • DHCPv6 PD is no longer stopped if no Routers are found
  • If the DHCP leased address is deleted, enter the reboot state
  • DHCPv6 unicast is no longer performed when not in master mode
  • dhcpcd will now detect netlink/route socket overflows ad re-sync

The last point is the one that took sometime, mainly because I had to patch the NetBSD kernel on my router where this happens a lot when booting. Technically this was achieved just as in Linux - recv(2) now returns ENOBUFS when the internal receive buffer as overflowed. OpenBSD has a different approach where they flush the internal buffer and send a custom route(4) RTM_DESYNC message. This is supported as well.

Once overflowed, dhcpcd will close the socket to throw away now garbage messages and open a new one. Then it will re-learn interfaces (+ their carrier state and flags) and addresses (+ their flags and lifetimes). dhcpcd will then run the hooks for any departed/arrvied/carrier/nocarrier events resulting from this, in other words it should function as if nothing happened.

Continue reading...