4 ms·
I have mixed feelings regarding systemd but to be honest I don't think this particular thing is necessarily bad. In terms of name resolution unlike other OSes
by takeda 12y ago
I have mixed feelings regarding systemd but to be honest I don't think this particular thing is necessarily bad.
In terms of name resolution unlike other OSes Linux is kind of dumb, it sends every single request to resolvers listed in /etc/resolv.conf it does not matter it resolved the same name second ago it'll send that request.
Back in my university I remember when network admin blocked one node in the lab I was working at. Their argument was that the server was DoSing department's DNS servers.
Turns out that one of students had a very inefficiently written application, the application was making a separate TCP connection to insert a row into a database and of course there were tons of data to be imported. The server then made reverse name resolution on every request and in turn made DNS query for every row inserted in the database.
The DNS problem was solved by installing bind and setting it up as a caching server. Of course now we have other services just for caching such as unbound, nscd, dnsmasq etc.
The thing is that DNS caching is essential part of a network enabled operating system and even if you don't care about DoSing your ISPs DNS server it still brings a huge benefit by speeding up name resolution. I can't think of a scenario when you wouldn't need a DNS caching server and it looks like other OSes already include one built in, so why not standardize it?
- wtallis 12y agoThe answer to "why not standardize it" isn't to make a brand new and still-incomplete implementation part of init. At most there could have been justification for further standardizing the interface through which dnsmasq, unbound, et al. can act as the default system resolver. But it's not like they didn't all already have a way to do so.
- takeda 12y agoWhile current setup works well in server environment where ideally you want to have full control over services so you can set up your system by running only services that you actually need. But in case of desktop system such approach becomes very problematic. There are tons of services you need for it to function and simply there too many moving parts. From my limited experience Ubuntu shows it best. Because there's so much interaction required between many simple services it is full of race conditions with things working mostly ok but once in a while behave in an odd way.
- bitwize 12y agoThe answer to "why not standardize it" isn't to make a brand new and still-incomplete implementation part of init. Yes it is because unless you make it a required component of the core OS, balky sysadmins will never embrace it and Linux will keep doing the wrong thing. That's the ultimate goal of systemd: to enforce consistent, correct behavior across distributions.