Live data from Hacker News

Why I run FreeBSD for my home servers (2024)

aumont.fr

221–230 of 251 posts

Re: Why I run FreeBSD for my home servers (2024)

#221
post #173
post #12

If systemd is the reason, there are several good distros without systemd (I run Void Linux in particular). If "kubesomething" is the reason, there's no requirement to use it. I think most people don't run it on their home servers. If containers are the reason, then again, they are not a requirement. But they are pretty similar to BSD's jails. I don't think they are particularly complex. FreeBSD has a number of strong…

> If systemd is the reason, there are several good distros without systemd (I run Void Linux in particular). There are people in the FreeBSD camp that actually do advocate for something like systemd in FreeBSD. See "The Tragedy of systemd": https://www.youtube.com/watch?v=o_AIw9bGogo

Something like systemd might be useful. There are some aspects of systemd that make sense and are useful.

There's other stuff like eliminating boot interactivity, so you can't hit ctrl-c or any other keys to cancel waiting for dhcp on network ports that aren't plugged in, that really bother me.

I also don't think a FreeBSD init/system supervision system would go and re-implement dns, ntp, and whatever else, including redoing security mistakes from decades ago.

Re: Why I run FreeBSD for my home servers (2024)

#222
post #183

Earlier quoted context omitted.

> systemd, while not for everyone is a good for most people Are you really sure? systemd is a tool that automates system configuration with no interaction from the user, and it does it in such a way that the user doesn't have to know how the system works, then the user doesn't want to know, and then no longer actually knows . When that happens, the user can't make any political decisions about his/her system, the "sy…

I'm 100% certain, you're regurgitating the typical anti-systemd shill that hates into a future where we might be so lucky that Linux users don't need to know anything about their init system. That day is a good day for Linux users if it happens. I don't think not knowing all of what systemd does will turn Linux users into mindless drones and it's quite dismissive to take that stance, these are users that chose anothe…

You don't have to belive me, you know... Just look at what happend with Microsoft users over time as the OSs became more and more unconfigurable. On the other side, Linux users, from the beginning until recently, were very competent. They stayed competent because they had to. School is compulsory for everybody a reason - extremely few people learn, unless they're forced to.

"Mindless drones" is probably a little harsh - I usually reserve that for mobile phone/tablet users.

Re: Why I run FreeBSD for my home servers (2024)

#223
post #115
post #12

If systemd is the reason, there are several good distros without systemd (I run Void Linux in particular). If "kubesomething" is the reason, there's no requirement to use it. I think most people don't run it on their home servers. If containers are the reason, then again, they are not a requirement. But they are pretty similar to BSD's jails. I don't think they are particularly complex. FreeBSD has a number of strong…

To me arch linux is the middle ground between a too-much-complexity "fat" distribution like ubuntu or debian and a-minimal-but-eclectic-freebsd. the arch wiki is VERY comprehensive, linux has a huge community, and arch forced you to understand much just by stepping through the installation process.

[deleted]

Re: Why I run FreeBSD for my home servers (2024)

#224
post #213

Earlier quoted context omitted.

> I like how it's very reliable and integrated: the "kitchen sink mentality" can have positive effects. Many people don't. When something more complex and integrated works it can seem perfectly fine. When something more complex and integrated fails, it often has more cascading effects that would otherwise be desired. > In retrospect, given how well it all works, maybe he was right to refuse to compromise. systemd's t…

You make very good points, but I think they come from a difference in expectations. For time sync, what you do depends on what you need: there's a long list of option: rdate, sntp, ntp, ptp and I have used all of them. Even if rdate is technically obsolete, for embedded systems it's sufficient that the time is not grossly wrong (and it's faster to write a rdate client and server) However, when I'm doing high precisio…

> Both of these are very far from the normal needs of linux installs: there is no one size fits all, there are even interesting inbetween (chrony doing hardware time-stamping with ntp is very clever) but when you design a system, you have to make choices.

There were choices/options, some of which have existed for decades. Instead of replacing them, systemd could have provided optional or mandatory services (eg time, dhcp, etc) that could be passed into systemd. "NTP is enabled and provides time, so it gets started at this point in the dependency tree"...or "NTP with priority 1, chrony with priority 2 provide time, start NTP and if it fails, switch to chrony". This also means that systemd could lag if successor protocols for time syncing, etc take off.

Millisecond or less time syncing is not outside the norm for distributed tracing or other server-side tech stacks, especially if there's lots of traffic. I've been lucky in that AWS's modern underlying hardware seems to keep clock pretty well, meaning I've not had to personally fight with it (that and ubuntu already defaulted to chrony, doing the override work for me.), but I do know people doing on-prem kubernetes loads that have had to...

Swinging back to networking, the tight integration with systemd makes (made? I am only now starting to plan the upgrade of our ubuntu 20.04 fleet to 24.04, so maybe it is better now...) disabling components a huge pain in the ass. My initial fights with systemd's dependency management meant that disabling its internal DHCP had several cascading consequences with other things that expected networking to be "up". This is to say nothing of the tooling that expects a full-slate of systemd services.

> For DHCP, you should suggest an update, and if it gets adopted, a patch to make systemd follow the updated RFC.

It's not mainly an issue with strict adherence to RFCs. There's quite bluntly real-world usage and industry norms.

Firstly RFCs can be vague and unclear. IPSEC is a notorious example in that vendors treat the IP restriction headers differently because the spec is nebulous to how precisely it should work (some call it a proxy-id or proxy-header, others subnet range, etc). Due to a variety of reasons that can be summed up as the consequences of committee driven design, a lot of the spec was defined with great "flexibility" in mind. Some vendors will not bring up the tunnel unless both ends agree on the ranges exactly. Others will happily bring up the tunnel, but only allow traffic that overlaps within the local restrictions. Even more infuriatingly, some vendors (cisco in particular) tie it to the firewall rules, which could include other non-vpn traffic. Some (like checkpoint) dynamically supernet the configured entries. The result is every person who's setup IPSEC VPN tunnels with third parties maintains a "quirks" record to understand how best to bring up tunnels between vendors (eg juniper srx to cisco ASA, juniper srx to palo alto, etc). You just cannot be stubborn here. You need to work with the way the real world works.

Secondly, there can be competing standards or necessary migration paths between them. I'm not sure what the IPv6 status is on systemd so this is only an example, but IPv6's autoconfiguration didn't initially include DNS and other optionally useful fields, meaning DHCPv6 was a thing. This is now mostly deprecated by SLAAC, but DHCPv6 deployments will be needed for awhile as it's all that windows' IPv6 implementation supported until recently. You can't just say "RFC now supports SLAAC...don't whine to me that DHCPv6 doesn't work as it's not part of the RFC".

> That would show some love, and it might be better (and more productive) than the hate

People have tried, but the response can be TL;DR'd to "works on my machine/setup" or to go harass AWS, Microsoft (via AD), etc to make things work the way the systemd mainainers think is right. There's a reason Lennart Poettering has a "difficult" reputation.

Re: Why I run FreeBSD for my home servers (2024)

#225
post #222

Earlier quoted context omitted.

I'm 100% certain, you're regurgitating the typical anti-systemd shill that hates into a future where we might be so lucky that Linux users don't need to know anything about their init system. That day is a good day for Linux users if it happens. I don't think not knowing all of what systemd does will turn Linux users into mindless drones and it's quite dismissive to take that stance, these are users that chose anothe…

You don't have to belive me , you know... Just look at what happend with Microsoft users over time as the OSs became more and more unconfigurable. On the other side, Linux users, from the beginning until recently, were very competent. They stayed competent because they had to . School is compulsory for everybody a reason - extremely few people learn, unless they're forced to. "Mindless drones" is probably a little ha…

You're turning "these systems work so incredibly shit that we must know everything about it to work it" into something positive while dismissing the state we had before systemd. And regarding learning, it seems people are still willing to use and work in the Linux ecosystem even after systemd and Kubernetes and other high level abstractions that makes utilizing computers easier.

I think using the description "mindless drone" for someone using a device is better left off this and any HN communication as I assume 99% of readers use a mobile phone daily.

Re: Why I run FreeBSD for my home servers (2024)

#227

I use FreeBSD for my home server and I have for years. For me, the biggest reason is just the stability from a user perspective. I don't mean system stability, although it has been rock solid, I mean the stability in terms of administration - the tools don't change frequently. `ifconfig` just works, like it has worked for 20 years. On my linux servers, it's all swallowed into `ip addr` now. I don't mind that, I certa…

Linux still has ifconfig, it doesn't support all the new features but maybe this use case doesn't need them. (Also the "ip" command from iproute2 came around in the last millenium, no?)

It "still has" ifconfig in the sense that you can install the 'net-tools' package which contains it and then use it, yes. However ifconfig is not included in base ubuntu installs and hasn't been since 18.04. It's marked as deprecated now.

There isn't anything specific that ifconfig can do that "ip" doesn't -- except I have 20 years of muscle memory for ifconfig and zero for "ip". That's my frustration. When I'm at home, just trying to set up Plex or debug a networking issue, and all I need to do is get my current IP address, the last thing I want to do is spend time learning a new interface that isn't necessary.

Again, this isn't really a complaint about the tools - I'm sure that "ip" is great and has more features and etc. But hosting on Linux feels like this about everything. Logs, services, networking, user configuration - the management tools for all these things have been changing quite fast, and in ways that can be hard to follow.

I'm not on the Kernel or Debian mailing lists and I don't think I should need to be to understand how to configure the network on ubuntu 20.04 vs 18.04. When I need to look up user management on BSD, I just look at the handbook. It's up-to-date and informative. Meanwhile in the Linux world these things change so fast that wiki articles from 2 years ago are often useless.

Re: Why I run FreeBSD for my home servers (2024)

#228
post #9

ZFS is probably the biggest reason for me. I have a machine with a zfs pool running samba and nfsd. Philosophically I tend to prefer *BSDs over Linux. I have a few FreeBSD machines, one OpenBSD, and one Linux.

when do you use samba and when do you use nfsd? any iscsi?

I mainly use NFS. SMB I typically use from Windows or Android. (The latter with the app "andsmb")

iSCSI is block layer so I don't find it very useful.

Re: Why I run FreeBSD for my home servers (2024)

#229
post #213

Earlier quoted context omitted.

You make very good points, but I think they come from a difference in expectations. For time sync, what you do depends on what you need: there's a long list of option: rdate, sntp, ntp, ptp and I have used all of them. Even if rdate is technically obsolete, for embedded systems it's sufficient that the time is not grossly wrong (and it's faster to write a rdate client and server) However, when I'm doing high precisio…

> Both of these are very far from the normal needs of linux installs: there is no one size fits all, there are even interesting inbetween (chrony doing hardware time-stamping with ntp is very clever) but when you design a system, you have to make choices. There were choices/options, some of which have existed for decades. Instead of replacing them, systemd could have provided optional or mandatory services (eg time,…

> Instead of replacing them, systemd could have provided optional or mandatory services (eg time, dhcp, etc) that could be passed into systemd

If sntp is not sufficient for your needs, just disable systemd own sntp solution (systemctl disable...) and use chrony (systemctl start / systemctl enable to make it persistent): then `systemctl status systemd-timesyncd.service` will show you it has been disabled

> but I do know people doing on-prem kubernetes loads that have had to...

What did they have to do? `systemctl disable systemd-timesyncd` is not very complicated. If they want to create a service, they can have it disable timesyncd iff chrony has started successfully (in an ExecStartPost), or doing a logic chain.

It's extremely practical: you can create very precise logic chains with systemd (if this and that, then...)

> My initial fights with systemd's dependency management meant that disabling its internal DHCP had several cascading consequences with other things that expected networking to be "up". This is to say nothing of the tooling that expects a full-slate of systemd services.

Maybe I can help you with that - I used to run a non systemd DHCP when I needed a rapid DHCP to reduce the TTFB for a specific configuration (read https://news.ycombinator.com/item?id=2755461 if you are not familiar with rapid DHCP)

It did not require much effort, just "inserting" my own service in the dependency chain.

Create a /etc/systemd/system/my-dhcpcd@.service with : (put the right option for your dhcp in execstart)

```

[Unit]

Description=dhcpcd on %I

Wants=network.target

Before=network.target

BindsTo=sys-subsystem-net-devices-%i.device

After=sys-subsystem-net-devices-%i.device

[Service]

Type=forking

ExecStart=/usr/bin/dhcpcd -q -w %I

ExecStop=/usr/bin/dhcpcd -x %I

ExecStop=/usr/sbin/ip addr flush dev %I

[Install]

WantedBy=multi-user.target

```

Using the @ syntax, you can create a dhcp just for the one interface you care about: then use systemctl daemon-reload, and start your custom service as my-dhcpd@eth1 : the %i will be replaced by eth1

If you are interested in rapid dhcp, I give more details on https://www.reddit.com/r/archlinux/comments/1392wrc/dhcpcd_1...

> I am only now starting to plan the upgrade of our ubuntu 20.04 fleet to 24.04, so maybe it is better now...

It shouldn't be very hard to fix, I had a similar setup working with a 18.04 and a 20.04

> My initial fights with systemd's dependency management meant that disabling its internal DHCP had several cascading consequences with other things that expected networking to be "up". This is to say nothing of the tooling that expects a full-slate of systemd services.

You need to insert yourself in the dependencies, but the example I gave above should be sufficient to do that

> This is now mostly deprecated by SLAAC, but DHCPv6 deployments will be needed for awhile as it's all that windows' IPv6 implementation supported until recently. You can't just say "RFC now supports SLAAC...don't whine to me that DHCPv6 doesn't work as it's not part of the RFC".

I have maintained such solutions and I had both SLAAC and DHCPv6: giving multiple IPv6 to an host is fine. On linux side, you can even use preferred_lft to change the priority (ex: use 0 to have an IPv6 address that will reply to connections, but that will not be used to initiate connections, for example if you don't want to expose "easy to remember" short addresses like yourprefix:subnet::1

In case you don't know, systemd-networkd IPv6AcceptRA is a separate option (and section) from DHCPv4 and DHCPv6 - you could decide to use either or both, and also do more advanced routing with RouteMetric to prefer one over the other if you have different gateways for redundancy

If what I've explained is not clear, try to read https://wiki.archlinux.org/title/Systemd-networkd it's a good starting guide.

If you have more advanced IPv6 needs, it's usually to request a /56: use PrefixDelegationHint

You can then chunk it out with systemd: check https://major.io/p/dhcpv6-prefix-delegation-with-systemd-net... for a nice guide

> People have tried, but the response can be TL;DR'd to "works on my machine/setup" or to go harass AWS, Microsoft (via AD), etc to make things work the way the systemd mainainers think is right.

Everything we talked about doesn't seem very complicated.

If with all the pointers I've provided you still can't make it work, or if you run into more complicated problems, send an email (username at outlook), I will see what I can do.

Re: Why I run FreeBSD for my home servers (2024)

#230
post #218

Earlier quoted context omitted.

Linux has ZFS too. FreeBSD actually switched over to using the Linux implementation a few years ago.

It is more like the ZFS started supporting Linux, not FreeBSD uses Linux implementation.

>The switch to [ZFS on Linux] as upstream

https://papers.freebsd.org/2019/eurobsdcon/jude-the_future_o...

Post reply on HN