4 ms·
DNS is a pile of edge cases on a top of other edge cases. There are hundreds of million if not billions of devices that have been deployed that cannot be easily
by notyourday 7y ago
DNS is a pile of edge cases on a top of other edge cases. There are hundreds of million if not billions of devices that have been deployed that cannot be easily updated, hence implementations need to be not protocol compatible but bug compatible.
- tptacek 7y agoUnless you can provide specific examples of the necessity for bug-compatibility with BIND in DNS servers, I'm totally unconvinced by this. DNS is a gross, creaky old protocol, but it's just not that complicated.
- notyourday 7y agoYou should ask people from Dyn. They wrote their own DNS service and learned it the hard way. I only have peripheral knowledge of it.
- tptacek 7y agoDoes it count if I've implemented DNS servers several times in my career without running into any problems like this? Mine were limited-purpose --- global traffic management redirectors and, earlier, security testing --- but still, I didn't run into any crazy bug-ness.
- yjftsjthsd-h 7y agoI think the question is very much of scope/purpose. I expect that narrow-use one-offs and internal services are easy. I don't have the experience to back this up, but I wouldn't be surprised if it is much harder to write a general-purpose server for use on the open internet by arbitrary clients (and of course <10% of clients will be responsible for 90% of "interesting" behavior).