DNS Lib Underscore Bug Bites Everyone's Favorite Init Tool, Blanks Netflix (theregister.co.uk)
Reader OneHundredAndTen writes and shares a report: Systemd doing what it does best. From a report on The Register: A few Penguinistas spent a weekend working out why they can't get through to Netflix from their Linux machines, because when they tried, their DNS lookups failed. The issue emerged over the weekend, when Gentoo user Dennis Schridde submitted a bug report to the Systemd project. Essentially, he described a failure within systemd-resolve, a Systemd component that turns human-readable domain names into IP addresses for software, like web browsers, to connect to. The Systemd resolver couldn't look up Netflix's servers for Schridde's web browser, according to the report. In his detailed post, Schridde said he expected this to happen: ipv6_1-cxl0-c088.1.lhr004.ix.nflxvideo.net gets resolved to 37.77.187.142 or 2a00:86c0:5:5::142. When in reality, that wasn't happening, so Netflix couldn't be reached on his box. His speculation that libidn2, which adds internationalised domain names support to the resolver, was at fault turned out to be accurate. Rebuilding Systemd without that library cleared the problem.
Headline implies that the scope of the problem is much bigger than it is. While I don't like systemd, it's not like systemd took out all of Netflix.
Underscores are not allowed in domain names. Some resolvers allow them for historical reasons, because they were common in Microsoft environments that defaulted to converting a space to an underscore when entering the hostname on initial configuration, back when Microsoft thought that everybody would be using Microsoft Network and not Internet.
But they're not legal, and should NOT resolve. My DNS servers do not have the ancient msdos compatibility turned on, and reject them as they should.
libidn (internationalized domain names, punycode) do not use them either, and if it rejects them, all the better.
Does anyone know if they've settled on a timeline for pulling all SSH into systemd as well?
fencepost
just a little off
Awesome job everyone. You all get bonuses this year.
Any explanation for this piece of shit problem, asshole?
This is basic input validation, you ill-educated pompous fuck.
Get your ass in here and fucking explain yourself.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
NOTABUG WONTFIX
isn't systemd a sysvinit replacement for system bootup/services/etc... why is systemd doing any DNS resolution?!
Lennart: CLOSED. WONTFIX. ..b-but its a bug!!
Slashdot:
Lennart: well yes I see how you could think that but once you use OpenRC it becomes very apparent that this bug disappears and is resolved, so of course, its not a bug.
Good people go to bed earlier.
"A Gentoo users ... recompiled a component... everything is working OK now".
How is this not working as designed?
The real problem here isn't that a handful of Linux users couldn't use Netflix.
The real problem is that, yet again, systemd has been involved in critical functionality breaking in an unusual and unexpected way.
It doesn't matter if it was an external library that systemd used that's responsible. Systemd is responsible for the problem because it uses this flawed library.
There's no reason for systemd to be involved with resolving domain names. Linux got by just fine throughout the 1990s, the 2000s, and even a big part of the 2010s without systemd being involved. Yet now that systemd is involved, things are going to hell.
Long time Linux users will be very aware of how problematic systemd so often is in the dumbest of ways.
Maybe somebody who just started using Linux in the systemd era thinks it's acceptable for their system to sometimes not boot properly, or for the domain name resolution to break unexpectedly. But long time Linux users know it wasn't like that before systemd was forced on the Linux community, and they know that such breakage is just not acceptable.
This is just the latest in a long chain of problems involving systemd. It has gotten to the point where Linux's reliability is below that of the BSDs, of macOS, and as much as I hate to say it, even modern versions of Windows!
Systemd needs to go, at least from important distros like Debian and Ubuntu. If Fedora wants to screw around with systemd, then so be it. But the other distros should remove it immediately.
systemd = not-invented-here anti-UNIX botnet trash
Hitting them with the clue bat seems to have no impact.
I assume the poster wanted to be funny, right ?
Or is it one of those "black is white", "up is down" orwellian thing ?
Living in interesting times....
systemd network manager also does not do server stuff to well like bonding / bridging / etc.
Why the hell does an init system need a DNS resolver?
RFC 2181 and 2782 should correct you. Go read them now.
The systemd fan club's response is that underscores are not allowed in DNS, and that this is ultimately a libidn2 bug.
Both of these excuses are claptrap.
Underscores are not valid in hostnames. They are valid in DNS labels.
It is not the DNS resolver's job to translate internationalized domain names. It is the application's job to do so. The DNS resolver's job is to resolve the request. Full stop. Ten year old versions of bind will happily process, and pass on, internationalized domain name. This is because internationalized domain names gets transcoded into ASCII-compatible encoding and THAT's what in DNS.
The way that it should work is as follows: an application, such as a web browser, translates an international domain name into ASCII-encoded hostname, and then looks it up in DNS. It would be the application's responsibility to use libidn2, or some other equivalent, to do the translation.
A typical systemd fail.
Did you miss the "ANY BINARY CHARACTER" part in there?
Jesus, you are a sock puppet.
A bug was noted in an optional library that wasn't default for any release of systemd. ... wait for it, this is the best part ... he notices a bug.
The following release of systemd downgraded support of the optional unused library libidn2 to experimental.
A pull requested was put in the bug tracker by the maintainer (not Poettering) to fix this in the future.
Some dude compiles a piece of software with an experimental library and
It makes front page news and Slashdot users start frothing from their mouth in their stupor.
And you wonder why complaints aren't taken seriously by developers. *golfclap*
Are Millennial software developers actually unfamiliar with the Robustness Principle, also called Postel's Law, of RFC 761?!
be conservative in what you do, be liberal in what you accept from others
In this case the correct behavior is clear: accept the hostname with an underscore, even if it may not be standards-conformant, and try to resolve it anyway.
Remember, the point of computers and computing is to help the user accomplish what it is they want to do. The point is not to let software developers act out their Asperger's-inspired tyrannical urges over something as insignificant as a minimally malformed domain name.
Why in the FUCK is your init system messing with this type of shit?
What's next? Will you add an email client?
It's abundantly clear that systemd-resolved has quickly become a train wreck. It's inclusion in Ubuntu 16.10 was widely lamented and many folks have pointed out huge concerns for several different assumptions that it makes for fallbacks and erroneous configurations. That's not including the several different bugs that have plagued systemd-resolved thus far. Granted many of them are fixed but with the breakage what have we bought? Something that's a pretty basic task now requiring patch after patch. Additionally, what has this solved? Now we can make DNS configuration a bit easier to integrate across the board?
The bad rep that systemd especially resolved has obtained isn't just simply one where grey breads say "it's too different". It is one that time and time again, ignorant assumptions, bloated egos, and hasty code have led to a general distrust, especially when tools that have always worked are suddenly not working or worse still, become methods for exploits. I still think systemd is a vast improvement over the "ye olde init scripts", but while the idea is commendable, it's execution has been somewhat lack luster to put it mildly. There needs to be a serious "Come to Jesus" moment for the systemd team. You need to build trust if your going to build something that's rewriting the books. This is just another example of how that trust is being chipped away. Complexity of the task at hand aside, either the team is up to delivering or they are not. This ostinato where breakage just keeps happening needs a serious all hands or something to restore trust in the team guiding this project. Poettering, you are doing no favors to yourself nor your team by these stories. Deliver us from the hell of bad init if that's what you seek, but don't plunge us deeper into a different hell of your making and say that it's alright because you're the one who built it.
Time to kick Systemd to the curb.
We were bitten by this a few months ago when Microfocus (Novell)/SLES updated some dns libs. We had been using underscores since, well, forever and it worked file right up to change. It took a while to figure out what had happened. A few record/config changes later and all was well.
Conservative, mod down for violating
Slashdot has gone through bad patches where it jumped the shark twice a week. I sure hope this story isn't a harbinger of leprosy remission.
CDC: 1 In 10 Adult Deaths In US Caused By Excessive Drinking
Quite clearly, an adult is any person who survives much beyond his or her first frat party—which would put drinking ahead of cancer (sub category: tobacco), heart disease, and old age.
But here, "adult" is immediately redefined in the story body as "working-age adults (22-64 years old)".
Once upon a time I was considered an adult, and now all I've got to show for it is this damn pocket watch.
I don't usually expect the first sentence of the story lead to make the story headline nine orders of magnitude less mentally defective.
But apparently, it can be done.
This systemd headline isn't even that salvageable.
Does systemd recognize IPv6? Can that be the issue?
NO SHIT! Did you even bother to read the comment before replying to it, and before wrongly criticizing it?! OBVIOUSLY NOT! The comment you didn't read, yet still replied to, contained the following:
It doesn't matter if it was an external library that systemd used that's responsible. Systemd is responsible for the problem because it uses this flawed library.
By choosing to use this foreign library, the foreign library code effectively becomes part of systemd. If a user invokes systemd to perform some action, but systemd does the wrong thing because it uses a broken library, then it's both the library that's broken and it's systemd that's broken. Systemd can't be excused just because it uses a broken library. It's a problem with systemd as much as it is with the foreign library.
This is the issue on systemd's github. It actually notes that they are aware of this and downgraded support for libidn2 to experimental.
This issue isn't newsworthy. As others have noted in the comments, underscores are not supposed to be in hostnames (they can be in other DNS RRs) and is about a bug in an experimental feature in a release of systemd that is not in any stable distros. People running rolling distros using the latest versions of everything are going to experience bugs. That's not news.
It's getting more and more difficult to respect the anti-systemd arguments when issues this trivial make headlines. Add to this that many of the arguments raised against systemd are disingenuous or plain ignorant.
I have been using systemd-networkd and systemd-resolved on Debian 9 and so far I like it. It's easy and clear to configure, just like using systemd service units. The integration with systemd-nspawn is very handy. And it introduces new features such as domain name routing.
Did you even bother to read the comment before replying to it, and before wrongly criticizing it?! OBVIOUSLY NOT! The comment you didn't read, yet still replied to, contained the following:
It doesn't matter if it was an external library that systemd used that's responsible. Systemd is responsible for the problem because it uses this flawed library.
By choosing to use this broken library, the broken library code effectively becomes part of systemd. If a user invokes systemd to perform some action, but systemd does the wrong thing because it uses a broken library, then it's both the library that's broken and it's systemd that's broken. Systemd can't be excused just because it uses a broken library. It's a problem with systemd as much as it is with the broken library.
You still have to specify for external data formats (disk, network, etc.) the endianness of the data. I have no idea why you think endianness "doesn't matter" anymore.
This is completely false:
https://www.freedesktop.org/so...
Why do you lie?
:wq
Do Linux users who use SysVinit encounter this issue?
It is pitch black. You are likely to be eaten by a grue.
Come on have you ever tried to setup a bonding link with network manager ? I did, I fucking honestly tried to use this, and it's just completely broken and there is no way to guess what's going on. After disabling it it took me a couple of minutes to get it working with the interfaces file. And don't get met started on the so called reliable network interface name...
I'm sick with Pottering shit, he ruined everything good in Linux, foad.
systemd network manager also does not do server stuff...
[satire_mode = ON]
That's because apparently the systemd crew thinks Linux is only used in laptops and the occasional desktop, but never on a device with more than one network port.
[satire_mode = OFF]
Go on, citizen, stamp the vote card. R or D, your choice.
A new Word!
ostinato https://en.wikipedia.org/wiki/Ostinato
Thank you!
-not intended as sarcasm.
Because if he told the truth he would have no ability to complain, of course :^)
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Comment removed based on user account deletion
The issue emerged over the weekend
Gentoomen will get the joke. BTW, systemd is not used by default in Gentoo.
Escher was the first MC and Giger invented the HR department.
Back in the 1990's I was asked if .COM and .NET should continue to accept underscore in domain registrations. This was after I added "check-names" to BIND to prevent address and MX records with non-LDH names being accidentally added to zones in contravention of RFC 952 and RFC 1123 (still the current host requirement specification). I pointed out that if underscore was permitted that people would be continually having to explain why address lookups for names like "a.label_with_underscore.com" would not work reliably. The requirements for registration were tightened to only allow LDH.
Enforcing LDH for host names allows us to use prefix labels with underscores without running the risk of colliding with valid host names. It allows software to pick out host names from free form textual contexts. When you mail client automatically creates a link that is what it is doing.
Netflix need to fix their provisioning system. Their use of underscore in a hostname is wrong.
See subject & what you natively have in the IP stack that this populates APK Hosts File Engine 9.0++ SR-7 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/
Ads/script & malware rob speed/security/privacy
Hosts add speed (via hardcodes/adblocks), security (vs. bad sites/malware/poisoned dns), reliability (vs. dns down), & anonymity (vs. dns requestlogs/trackers).
Less power/cpu/ram + IO use vs. DNS/routers/addons/antivirus + less security bugs/complexity & faster vs. addons/routers/remote dns!
Avoids DNSChangers in routers/IP settings & dns redirects (99.999% of ISP DNS != patched vs. it) + lightens DNS load & resolves faster from local system RAM!
* Via what u NATIVELY have in the IP stack in FASTER kernelmode!
APK
P.S. - Safe https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/
Did you read his comment before you replied, motherfucker? He expressly stated why your logic is fucking stupid: "This has nothing to do with systemd except for the fact the user happened to be using systemd at the time, and systemd happens to use this library. What next? A kernel bug gets blamed on systemd because systemd uses the kernel?" And now, as the facts come in, it wasn't even close to systemd's fault as this was experimental and no way default. When you have to go out of your way to bitch like you do, you just weaken your argument as being a whiny little bitch.
This entire /. submission should be modded -1 flamebait. Double standard!
Only AC is allowed to bitch about systemd, especially on unrelated topics.
The title reads like technobabble gibberish, yet the summary reads like it was written for 5 year olds.
How do you go from this:
DNS Lib Underscore Bug Bites Everyone's Favorite Init Tool, Blanks Netflix
To this:
...a Systemd component that turns human-readable domain names into IP addresses for software, like web browsers, to connect to...
Why can't we leave off the flair and have a readable title? Why not go with a title like: "Systemd's DNS Lib Underscore Bug causes issues connecting to Netflix"
Your logic only gets used when systemd is involved, any other software that fails because of an external source will not get the same crap, they will defend the software involved and say "xxx is not at fault, its an external xxxx fault".
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Systemd doing what it does best.
Underscores are illegal in DNS hostnames.
Netflix fuck up and it's systemd's fault?
Watch this Heartland Institute video
network manager is not-invented-here anti-UNIX botnet trash
ifconfig is stable, works, does everything needed. it did not need a replacement. Expanding it with new functionality if needed should have been the proper path. Not re-writing it with a billion dependencies into a 45% functional pile of trash.
Which is all true.
NOTABUG -- underscores are illegal
WONTFIX -- the problem was in the experimental libidn2, not in systemd code
RESOLVED -- libidn2 has been fixed.
HTH. HAND.
Watch this Heartland Institute video
But here's a question: Did you even bother to read the comment before replying to it, and before wrongly criticizing it?! OBVIOUSLY NOT! The comment you didn't read, yet still replied to, contained the following:
So, before you go on, perhaps you can tell us why the systemd maintainers were wrong to adopt best practices in this case? Because I could have SWORN, sworn up and down, that the major criticism of systemd by its haters is that the authors insist on rewriting everything.
They haven't in this case. They've done exactly what the haters told them to do. And you're still going to criticize them?
How about just filing a bug ticket with the libidn team, and then shutting the fuck up?
You are not alone. This is not normal. None of this is normal.
Hehehe -- criticism of Netflix for not following RFC's is now seen as trolling on slashdot.
Watch this Heartland Institute video