LWN: Comments on "A DNS flag day" https://lwn.net/Articles/777273/ This is a special feed containing comments posted to the individual LWN article titled "A DNS flag day". en-us Mon, 06 Oct 2025 10:48:43 +0000 Mon, 06 Oct 2025 10:48:43 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net A DNS flag day https://lwn.net/Articles/781325/ https://lwn.net/Articles/781325/ Cyberax <div class="FormattedComment"> The problem is not Ethernet per se. It's the most ubiquitous medium of transfer but it's by no means the only one. There's also MPLS and even VPNs can be thought as if they are very complicated L2 networks.<br> <p> The first issue is that IPv6 actually had not solved the problem of multihoming and roaming. It totally could have, without changing the Ethernet layer. But unfortunately, the IETF did not have foresight for this. QUIC (and HTTP/3) are attempting to fix this, but it's probably too late.<br> <p> The second issue is hierarchic adressing. Ethernet addresses are flat, they don't have any structure. IPv6 -could- have been used to allow automatic hierarchic delegation: your router gets IPs from the ISP and delegates a part of the address space to a smart light switch, a smart switch then acts as a gateway for power line network, giving out each smart light bulb a separate IPv6 subspace, and so on.<br> <p> IPv6 theoretically supports this with DHCP PD, but... there's not enough bits in IPv6 for it! You will at most get a /48 from your ISP, which only gives you 16 bits to play with. And /56 or even /60 allocations are not at all uncommon. Also, even the DHCP PD standard was finalized only in 2003.<br> </div> Tue, 05 Mar 2019 09:28:08 +0000 A DNS flag day https://lwn.net/Articles/781321/ https://lwn.net/Articles/781321/ immibis <div class="FormattedComment"> Removing Layer-2 networking (and therefore ARP) is just not going to happen - it's too entrenched in existing hardware and protocols.<br> Five years ago as a university student, I would've agreed with you.<br> Now, as a software engineer at a networking hardware vendor, I know there's just no way, because things are too tangled already.<br> <p> Even if not for that, you'll just end up in an XKCD 927 situation. Adding the new option of {IPv6 + let's call it "IPv6L2"} does not make the {IPv6 + Ethernet} option go away. You weren't crazy enough to think I'll throw out my hundreds or thousands or millions of dollars of Ethernet NICs and switches and routers were you? The *very best* case is that I keep all that equipment and it interoperates nicely with IPv6L2. And at that point why shouldn't I keep getting Ethernet equipment so I only have one L2 protocol to manage?<br> <p> It's not that Ethernet and ARP are good, but at the very least, they're not all that harmful and they're entrenched, so good luck getting rid of them now. It's like saying the next version of Windows will run on RISC-V.<br> <p> And what the heck will you do if I want to run it over Infiniband? And in the future someone will want to unify Ethernet with IPv6L2...<br> <p> <p> </div> Tue, 05 Mar 2019 07:42:19 +0000 A DNS flag day https://lwn.net/Articles/778516/ https://lwn.net/Articles/778516/ nybble41 <div class="FormattedComment"> Assuming they already know your assigned IP range, does always responding to incoming connections with ICMP forbidden (including for unknown internal IPs) really leak significantly more information than silently dropping the packets?<br> </div> Tue, 05 Feb 2019 16:45:45 +0000 A DNS flag day https://lwn.net/Articles/778476/ https://lwn.net/Articles/778476/ JFlorian <div class="FormattedComment"> My understanding of this is that it's all about information disclosure. In other words, it's best practice to fail hard with ICMP forbidden on internal facing connections, but to silently drop on external ones. Is there a strong argument that ICMP forbidden in both directions doesn't really present any additional risk? I certainly get the advantages (I've been caught out by my own firewall rules more times than I can count), but the disadvantages can be of the type you don't know until you've been burned.<br> </div> Tue, 05 Feb 2019 15:22:58 +0000 A DNS flag day https://lwn.net/Articles/778108/ https://lwn.net/Articles/778108/ emmanuelF <div class="FormattedComment"> Sorry, correction :<br> "the solution is to disable the EDNS support." -&gt; "a (bad) solution is to disable the EDNS support."<br> </div> Thu, 31 Jan 2019 15:27:13 +0000 A DNS flag day https://lwn.net/Articles/778048/ https://lwn.net/Articles/778048/ emmanuelF <div class="FormattedComment"> Please note that even a compliant DNS dating "before edns existence" will not be disturbed by a edns request and give proper/compliant answer.<br> You are not forced to deploy an EDNS aware DNS server.<br> The problem is just non compliant DNS servers (edns aware or not) and non compliant/non transparent middle boxes/firewalls.<br> For some authoritative server buggy EDNS implementation, the solution is to disable the EDNS support.<br> <p> The phrase<br> "The problem that has led to the flag day stems from DNS servers that do not implement the "Extension Mechanisms for DNS", also known as EDNS(0) or just EDNS"<br> is wrong and misleading.<br> EDNS is completely backward compatible with plain non EDNS aware servers.<br> </div> Thu, 31 Jan 2019 14:52:12 +0000 A DNS flag day https://lwn.net/Articles/777851/ https://lwn.net/Articles/777851/ intgr <div class="FormattedComment"> <font class="QuotedText">&gt; Hi, firewalls!</font><br> <p> This!<br> <p> ICMP provides a perfectly good mechanism to report back forbidden packets. But for some odd reason it's considered best practice to instead blackhole disallowed packets.<br> <p> In more than one case, a missing firewall rule and the blackhole approach together turned a simple mistake into a cascading failure of multiple systems waiting for timeouts.<br> <p> </div> Tue, 29 Jan 2019 23:51:53 +0000 A DNS flag day https://lwn.net/Articles/777621/ https://lwn.net/Articles/777621/ mpr22 <div class="FormattedComment"> Define "made accountable".<br> <p> Ideally, in a way that still makes people want to work in that IT department.<br> </div> Sun, 27 Jan 2019 10:30:06 +0000 A DNS flag day https://lwn.net/Articles/777605/ https://lwn.net/Articles/777605/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; 4.1. Fail Fast and Hard</font><br> <font class="QuotedText">&gt; Protocols need to include error reporting mechanisms that ensure</font><br> <font class="QuotedText">&gt; errors are surfaced in a visible and expedient fashion.</font><br> <p> Hi, firewalls!<br> <p> Is there any big company where the IT department can be made accountable for severe losses of productivity? Curious whether they have any job offers right now.<br> <p> <p> <p> </div> Sat, 26 Jan 2019 23:29:38 +0000 A DNS flag day https://lwn.net/Articles/777593/ https://lwn.net/Articles/777593/ biergaizi <div class="FormattedComment"> Recommended reading: <br> <p> The world in which IPv6 was a good design<br> <a href="https://apenwarr.ca/log/20170810">https://apenwarr.ca/log/20170810</a><br> <p> IPv6 was intended to revolutionize the Internet. It was thought that the deployment of IPv6 would only take a few years. Then people will be able to eliminate the creeping Layer-2 networking and the ugliness of protocol layer violations around it, so we could eventually remove manual IP configuration, complicated IP headers (to make ASIC-accelerated routers that are competitive with Ethernet bridges), also remove MAC addresses, ARP, and DHCP, and IP-broadcast in general from the network stack, and shifting to a no-bridges, all-router, Layer 3-centric approach, the ultimate software-defined network. Also, IPv6 was planned to be the foundation of a fully end-to-end encrypted Internet, the original IPSec was developed for IPv6.<br> <p> However, this great vision was never materialized, as layers are always added, but never removed. But enormous amount of resources have already been spent on IPv6, and the only choice is keep pushing it. So unfortunately, the current IPv6 is a degenerated form of the original vision, with only two major features, "more IP addresses", and "restoration of end-to-end connectivity" (don't get me wrong, I'm posting this comment via IPv6).<br> <p> A sad story in the history of computing. Imagining what is happening in a parallel world. <br> </div> Sat, 26 Jan 2019 20:29:25 +0000 A DNS flag day https://lwn.net/Articles/777592/ https://lwn.net/Articles/777592/ biergaizi <div class="FormattedComment"> The Harmful Consequences of Postel's Maxim<br> <a href="https://tools.ietf.org/html/draft-thomson-postel-was-wrong-00">https://tools.ietf.org/html/draft-thomson-postel-was-wron...</a><br> <p> 2. The Protocol Decay Hypothesis<br> <p> [...]<br> <p> An implementation that reacts to variations in the manner advised by<br> Postel sets up a feedback cycle:<br> <p> o Over time, implementations progressively add new code to constrain<br> how data is transmitted, or to permit variations what is received.<br> <p> o Errors in implementations, or confusion about semantics can<br> thereby be masked.<br> <p> o As a result, errors can become entrenched, forcing other<br> implementations to be tolerant of those errors.<br> <p> An entrenched flaw can become a de facto standard. Any<br> implementation of the protocol is required to replicate the aberrant<br> behavior, or it is not interoperable. This is both a consequence of<br> applying Postel's advice, and a product of a natural reluctance to<br> avoid fatal error conditions. This is colloquially referred to as<br> being "bug for bug compatible".<br> <p> 3. The Long Term Costs<br> <p> Once deviations become entrenched, there is little that can be done<br> to rectify the situation.<br> <p> For widely used protocols, the massive scale of the Internet makes<br> large scale interoperability testing infeasible for all a privileged<br> few. Without good maintenance, new implementations can be restricted<br> to niche uses, where the prolems arising from interoperability issues<br> can be more closely managed.<br> <p> [...]<br> <p> Protocol maintenance can help by carefully documenting divergence and<br> recommending limits on what is both acceptable and interoperable.<br> The time-consuming process of documenting the actual protocol -<br> rather than the protocol as it was originally conceived - can restore<br> the ability to create and maintain interoperable implementations.<br> <p> Such a process was undertaken for HTTP/1.1 [RFC7230]. This this<br> effort took more than 6 years, it has been successful in documenting<br> protocol variations and describing what has over time become a far<br> more complex protocol.<br> <p> 4. A New Design Principle<br> <p> The following principle applies not just to the implementation of a<br> protocol, but to the design and specification of the protocol.<br> <p> Protocol designs and implementations should be maximally strict.<br> <p> Though less pithy than Postel's formulation, this principle is based<br> on the lessons of protocol deployment. The principle is also based<br> on valuing early feedback, a practice central to modern engineering<br> discipline.<br> <p> 4.1. Fail Fast and Hard<br> <p> Protocols need to include error reporting mechanisms that ensure<br> errors are surfaced in a visible and expedient fashion.<br> <p> 4.2. Implementations Are Ultimately Responsible<br> <p> Implementers are encouraged to expose errors immediately and<br> prominently in addition to what a specification mandates.<br> <p> 4.3. Protocol Maintenance is Important<br> <p> Protocol designers are strongly encouraged to continue to maintain<br> and evolve protocols beyond their initial inception and definition.<br> If protocol implementations are less tolerant of variation, protocol<br> maintenance becomes critical.<br> </div> Sat, 26 Jan 2019 19:48:58 +0000 A DNS flag day https://lwn.net/Articles/777577/ https://lwn.net/Articles/777577/ naptastic <div class="FormattedComment"> Hey everybody: Can we do this with IPv6 too? Please? &lt;3<br> </div> Sat, 26 Jan 2019 15:30:39 +0000 A DNS flag day https://lwn.net/Articles/777520/ https://lwn.net/Articles/777520/ jani <div class="FormattedComment"> The Crapustness Principle: The software design guideline based on the illusion of ability to happily process any crap that you're given as if it was actually meaningful. This is when GIGO and the robustness principle collide.<br> </div> Fri, 25 Jan 2019 06:10:46 +0000 djbdns https://lwn.net/Articles/777462/ https://lwn.net/Articles/777462/ mirabilos <div class="FormattedComment"> Ah: “day must not have timeout result in any of plain DNS and EDNS version 0 tests” so no, I don’t.<br> </div> Thu, 24 Jan 2019 14:04:48 +0000 djbdns https://lwn.net/Articles/777461/ https://lwn.net/Articles/777461/ mirabilos <div class="FormattedComment"> I may need some help interpreting the output of the EDNS tester.<br> <p> I run djbdns, which provides an axfrdns(1) utility that listens on TCP port 53.<br> <p> The results are:<br> <p> dns=ok edns=noopt edns1=noerror,noopt,soa edns@512=noopt ednsopt=noopt edns1opt=noerror,noopt,soa do=noopt ednsflags=noopt docookie=noopt edns512tcp=noopt optlist=noopt<br> <p> Do I need to worry?<br> </div> Thu, 24 Jan 2019 14:03:00 +0000 A DNS flag day https://lwn.net/Articles/777457/ https://lwn.net/Articles/777457/ farnz <p>There's a pattern in slightly counterintutive results for software engineering here: <ul> <li>It's better to build your software to crash as soon as it detects a broken invariant, than to try to carry on despite the problem. <li>It's better to build on top of multiple low-reliability computers and design the system to cope when one fails unexpectedly than to build atop a highly reliable system and cope when it goes down for maintenance. <li>It's better to be pedantic about what you accept and cope with the resulting failure, than to be liberal and then tolerate bad implementations. </ul> <p>I'm sure there's other cases where the long-term results of failing fast are better than trying to push on past a failure. Thu, 24 Jan 2019 13:06:59 +0000 A DNS flag day https://lwn.net/Articles/777448/ https://lwn.net/Articles/777448/ peter-b <div class="FormattedComment"> <font class="QuotedText">&gt; <a href="https://en.wikipedia.org/wiki/Robustness_principle#Criticism">https://en.wikipedia.org/wiki/Robustness_principle#Criticism</a></font><br> <font class="QuotedText">&gt; (conservative in what you do, liberal in what you accept)</font><br> <p> Over time, I've come to be of the opposite view: be absolutely pedantic about what you accept, and occasionally evil in what you send (so that there's a cost to implementations that aren't pedantic about what they accept).<br> <p> This is the real way to end up with robust, reliable and well-tested software. The "robustness principle" leads to a race to the bottom where everyone adopts a "screw it, it's good enough, so why pay attention to getting the corner cases right?"<br> </div> Thu, 24 Jan 2019 10:26:18 +0000 A DNS flag day https://lwn.net/Articles/777438/ https://lwn.net/Articles/777438/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; In some ways, this provides an object lesson in the perils of working around buggy implementations. Those workarounds eventually get cast in stone, which allows oblivious users (and vendors) to keep rolling along without dealing with the shortcomings of the software they provide or run. That can stifle innovation and, ultimately, prevent more secure options from being deployed.</font><br> <p> <a href="https://en.wikipedia.org/wiki/Robustness_principle#Criticism">https://en.wikipedia.org/wiki/Robustness_principle#Criticism</a><br> (conservative in what you do, liberal in what you accept)<br> </div> Thu, 24 Jan 2019 05:41:30 +0000