[HN Gopher] dhcpleased(8) and resolvd(8) enabled in base, replac...
       ___________________________________________________________________
        
       dhcpleased(8) and resolvd(8) enabled in base, replacing dhclient(8)
        
       Author : zdw
       Score  : 41 points
       Date   : 2021-07-17 20:48 UTC (2 hours ago)
        
 (HTM) web link (undeadly.org)
 (TXT) w3m dump (undeadly.org)
        
       | rascul wrote:
       | Might be useful to add OpenBSD in the title somewhere.
        
       | bonzini wrote:
       | > We are moving from a model where dhclient on 1 interface
       | believes it is MASTER of /etc/resolv.conf and a bunch of system
       | aspects, and the userbase is familiar with a pile of hacky
       | control knobs in dhclient.conf.
       | 
       | > Towards a model where multiple interfaces + unwind can
       | advertise their DNS resolution abilities to resolvd, which then
       | sorts the offers and maintains a configuration.
       | 
       | > dhclient will remain available for people who want that old
       | model, but I suspect they will encounter increasing difficulty
       | sticking to it.
       | 
       | > Because the default configuration is changing.
       | 
       | An old and somewhat crusty cross-platform daemon replaced by an
       | OS-specific set of daemons, that takes care of managing /etc
       | files that have been there forever. The older solution remains
       | available, but may bitrot or otherwise become harder to maintain
       | in the future.
       | 
       | Wait, isn't this what systemd is "accused" of doing all the time?
        
         | egberts1 wrote:
         | We can't block systemd from making a network socket/connection
         | so we daemonized the network aspects.
        
         | Denvercoder9 wrote:
         | Also interesting to note that dhcpleased and resolvd are
         | loosely analogous to systemd-networkd and systemd-resolved.
        
           | egberts1 wrote:
           | Makes it easier for embedded system to exist without systemd.
        
         | 1vuio0pswjnm7 wrote:
         | But in the case of Linux distributions do they let the older
         | solution remain available.
        
           | Denvercoder9 wrote:
           | Debian has, on paper at least, still support for sysvinit,
           | and ships with the old ifupdown-based network configuration
           | by default. In practice it's increasingly bitrotting because
           | it turns out that the majority of users and developers don't
           | care.
        
           | theamk wrote:
           | Sure they do, I run a few systems which use systemd with
           | older dhcp daemons. And for example Raspbian uses systemd for
           | process management, but completely disables its network
           | parts, using their own solutions instead.
           | 
           | One of the best parts of the systemd is how easy it is to
           | disable/replace any part of it. The resolved and timesyncd
           | are easy, but even things like journald have a mode when it
           | keeps no files on disk, and just forwards data to your
           | existing syslog daemon.
           | 
           | Quite a difference from "will encounter increasing difficulty
           | sticking to it."
        
             | 1vuio0pswjnm7 wrote:
             | How about removing all of it and just running daemontools,
             | runit or s6. Is this easy.
        
         | tinus_hn wrote:
         | I didn't see the part where it's a take it or leave it
         | proposition and there's politics to force people into accepting
         | one part which is then used to force them to accept an ever
         | growing list of unrelated parts.
        
         | throw0101a wrote:
         | > _An old and somewhat crusty cross-platform daemon replaced by
         | an OS-specific set of daemons, that takes care of managing /etc
         | files that have been there forever. The older solution remains
         | available, but may bitrot or otherwise become harder to
         | maintain in the future._
         | 
         | > _Wait, isn 't this what systemd is "accused" of doing all the
         | time?_
         | 
         | Each of these do one thing and one thing only. The code is
         | loosely coupled between the two, so you can use or not use
         | either/both. Basically the opposite of _systemd_ , which is a
         | giant code ball of code with components tightly coupled.
         | 
         | And while it is likely that _dhclient_ will eventually be
         | removed from OpenBSD Base, it will live on in Ports, where it
         | will be available to those who desire to use it:
         | 
         | * https://cvsweb.openbsd.org/ports/net/isc-dhcp/
         | 
         | * https://github.com/openbsd/ports/tree/master/net/isc-dhcp
         | 
         | The use or non-use of of either of these program will also not
         | effect device discovery / hot-plugging, mounting of file
         | systems, system run levels, network time, system logging, etc.
         | 
         | One of the programs does DHCP. One does resolve.conf(5)
         | changes. Each does nothing else. It may even be possible to
         | port each of these programs to another operating system, as I
         | suspect they don't need special APIs ( _*cough*_ dbus _*cough*_
         | ) and may mostly just use POSIX-y stuff.
        
           | Denvercoder9 wrote:
           | _> Basically the opposite of systemd, which is a giant code
           | ball of code with components tightly coupled.
           | 
           | > [..]
           | 
           | > The use or non-use of of either of these program will also
           | not effect device discovery / hot-plugging, mounting of file
           | systems, system run levels, network time, system logging,
           | etc._
           | 
           | This comes up again and again in the systemd discussion, but
           | it's at best a mischaracterization. Yes, there's some code
           | sharing between different components, but it's not a
           | monolith. On my Debian system it ships 50+ different binaries
           | split across 8 different packages. You can use the network
           | management without using the NTP service, the journal without
           | using the device manager, the tmpfiles manager without using
           | the user manager, etc.
           | 
           | Most, if not all, of these components only depend on the
           | service manager (i.e. PID 1). That's more or less unavoidable
           | for an event-driven system, there'll always be a dependency
           | on the event bus. The components itself can be freely swapped
           | out for different, even incompatible, implementations. If you
           | don't even want to run the service manager, all external
           | interfaces are stable, pretty well-documented and relatively
           | straightforward, so it's even possible to write a completely
           | independent implementation without breaking external
           | dependencies.
           | 
           | By the way, if we're talking about loose coupling and POSIX,
           | this OpenBSD implementation isn't it either. resolvd has an
           | hardcoded reference to the unwind socket, and they use a
           | special BSD-only socket type to communicate between the
           | different processes.
        
             | rkangel wrote:
             | systemd fundamentally made a branding mistake, not a
             | technical one. Putting all of these components under one
             | 'systemd' umbrella name meant that people simplistically
             | think of them as one thing and then start making the 'Unix
             | philosophy' argument.
        
             | IgorPartola wrote:
             | What I also don't get: why the hell would do I care which
             | NTP implementation is used in most cases. What I do care
             | about is that it's running and working. systemd has a good
             | init system and a decent set of other services. Could
             | things be improved? Sure. But honestly as long as when I
             | boot my Debian-derived distro it works as expected why am I
             | going yo go digging into how it works? What can I possibly
             | gain by switching which DHCP client or which NTP daemon I'm
             | using?
        
               | throw0101a wrote:
               | > _What I also don't get: why the hell would do I care
               | which NTP implementation is used in most cases._
               | 
               | Because some implementations have time jump while others
               | have it slew it slowly.
               | 
               | On boot-up a jump may be fine to get with +- some number
               | of milliseconds, but once the system is running, there
               | are situations where jumps could be a problem (especially
               | in the negative direction, where a moment is "repeated").
               | 
               | > _But honestly as long as when I boot my Debian-derived
               | distro it works as expected why am I going yo go digging
               | into how it works? What can I possibly gain by switching
               | which DHCP client or which NTP daemon I'm using?_
               | 
               | Because as a sysadmin it is your job to understand how a
               | system works. There should be very little "magic"
               | happening. Sure there are many times where things Just
               | Working(tm) is fine (it's why I run a Mac at home), but
               | many others where you should understand _why_ things are
               | working the way they are.
        
               | Denvercoder9 wrote:
               | _> Because as a sysadmin it is your job to understand how
               | a system works._
               | 
               | No, as a sysadmin your job is to deliver a working
               | system. To do that it usually helps to understand how the
               | system works, but it's not a necessity. As long as
               | something keeps working, and you're equipped to go
               | digging if and when it's necessary, it's fine to not
               | understand or know how something works.
        
               | cesarb wrote:
               | > What I also don't get: why the hell would do I care
               | which NTP implementation is used in most cases. What I do
               | care about is that it's running and working.
               | 
               | You should care whether it's SNTP (which only slews
               | and/or steps the clock periodically) or full NTP (which
               | also adjusts the clock frequency, so once it's
               | synchronized, no further slew and/or step is needed).
               | Full NTP is better.
               | 
               | Looking quickly at the manual pages for systemd-timesyncd
               | and systemd-timedated, I can see that systemd-timesyncd
               | is just SNTP, so a full NTP implementation like chrony or
               | ntpsec should be preferred. From what I can see, if you
               | have chrony installed and configured correctly, systemd's
               | "timedatectl set-ntp true" (enable NTP) will prefer to
               | enable chrony instead of systemd-timesyncd (it goes
               | through systemd-timedated which looks at
               | /usr/lib/systemd/ntp-units.d/, where chrony is usually
               | listed first).
               | 
               | (Also, there's some difference between chrony and ntpsec;
               | AFAIK, chrony is much better when you have an
               | intermittent network connection.)
        
             | throw0101a wrote:
             | > _Yes, there 's some code sharing between different
             | components, but it's not a monolith._
             | 
             | So I can take the code for _just_ systemd-resolved and port
             | it to FreeBSD or Solaris?
        
               | [deleted]
        
       ___________________________________________________________________
       (page generated 2021-07-17 23:00 UTC)