NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

misc/50893: dhcpd fails on carp(4) interfaces



>Number:         50893
>Category:       misc
>Synopsis:       dhcpd fails on carp(4) interfaces
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    misc-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 04 15:15:00 +0000 2016
>Originator:     Bruce Lilly
>Release:        NetBSD 7.0
>Organization:
>Environment:
(you don't need the node name; here's ouput of uname -srmpio:)

NetBSD 7.0 amd64 x86_64 Intel 686-class NetBSD

Obviously, the kernel was rebuilt (from modified GENERIC) to enable carp.
>Description:
When dhcpd is started or restarted on a machine with active carp(4) interfaces using the supplied /etc/rc.d/dhcp script, dhcpd whines about multiple interfaces on the same subnet (viz. the physical interface and any corresponding carp interfaces), complains about (e.g.) 'Unsupported device type 248 for "carp0"', and exits.

The patch to /etc/rc.d/dhcpd (below) specifies the (settable, broadcast-capable, active) non-carp interfaces on the dhcpd command-line (see the synopsis in the dhcpd(8) man page).  Dhcpd still whines about the carp interface(s) ('Multiple interfaces match the same subnet' and 'Multiple interfaces match the same shared network'), but doesn't go belly-up.
>How-To-Repeat:
1. rebuild kernel with carp support, reboot.
2. install and configure dhcpd.
3. create a carp interface and assign a virtual IP address on the same subnet as a physical interface on which dhcpd is authoritative.
4. start or restart dhcpd.
5. examine logs.
>Fix:
Patch to /etc/rc.d/dhcpd:

*** etc/rc.d/dhcpd.orig Fri Sep 25 04:22:00 2015
--- etc/rc.d/dhcpd      Fri Mar  4 09:43:41 2016
***************
*** 12,17 ****
--- 12,20 ----
  name="dhcpd"
  rcvar=$name
  command="/usr/sbin/${name}"
+ # dhcpd fails on carp(4) interfaces: 'Unsupported device type 248 for "carp0"' ... 'exiting.'
+ interfaces=`ifconfig -lsub | sed -e "s/carp[0-9]*//"`
+ command_args="${interfaces}"
  start_precmd="dhcpd_precmd"
  pidfile="/var/run/${name}.pid"
  required_files="/etc/${name}.conf"



Home | Main Index | Thread Index | Old Index