This error is produced in /usr/src/sbin/dhclient/bpf.c, at line number 323:
Code:
315 } else {
316 memset(&msg, 0, sizeof(msg));
317 msg.msg_name = (struct sockaddr *)&dest;
318 msg.msg_namelen = sizeof(dest);
319 msg.msg_iov = iov;
320 msg.msg_iovlen = iovcnt;
321 result = sendmsg(ifi->udpfd, &msg, 0);
322 if (result == -1)
323 log_warn("%s: sendmsg(%s)", log_procname, desc);
324 else if (result < total) {
325 result = -1;
326 log_warnx("%s, sendmsg(%s): %zd of %zd bytes",
327 log_procname, desc, result, total);
328 }
sendmsg(2) is a syscall which can produce an access error.
Code:
[EACCES] The connection was blocked by pf(4), or SO_BROADCAST
is not set on the socket and a broadcast address was
given as the destination.
If you're certain this isn't a PF issue, then you may want to do some dhclient(8) debugging. You can start it with -v, and if that fails to provide sufficient information, you can dust off your programming skills and use gdb(1) or devel/gdb, set breakpoints, and/or log values before the syscall. I note that vmx(4) is something of a special case pseudo-NIC, designed for use in VMWare guests.