Why might you run your own DNS server?
jvns.ca
jvns.ca
I run both authoritative (nsd) and resolving (unbound) nameservers. They require literally zero maintenance. Before nsd, I ran djbdns, which also required zero maintenance. I've run BIND, back in the dark ages. Rumor has it that BIND doesn't suck any more, but I've seen no reason to confirm.
If you are able keep sshd up and running on your hosted or colo'ed server, you have the skills required to run a nameserver reliably. It's that easy. I recommend nsd and/or unbound.
If the article does not persuade you that you want to do so, then don't bother. But if you do want to, don't be dissuaded by assuming it will be difficult.
But I agree that there's something other that's not ok. Compromised client (probably a computer) or a compromised router is my guesses.
It's stealth and has mitigations for DOS attacks.
I already run PiHole, but I might run this on a different box just to keep things simple.
Also, last I checked - port 51820 is reasonably well known, is it safe to use this default when forwarding traffic?
DNS is nowadays very robust and secure, and if you have unattended-upgrades configured there's literally zero reason to be frightened by DNS.
[1] https://www.nlnetlabs.nl/documentation/unbound/howto-optimis...
But I should have qualified -- I run a caching resolver for use by half a dozen users (so about 20 devices). Load is negligible, but it works perfectly! YMMV.
As an added benefit, my unbound instance is also faster than 1.1.1.1, 8.8.8.8, or my ISP's resolver farm.
I had to modify my default BIND options to disable DNSSEC:
options {
dnssec-enable no;
dnssec-validation no;I think it’s a dead tech.
This dnssec/ntp dependency loop is absurd, and it is incomprehensible that ntp/dns can break this way.
Both show how silly it all is, IMO.
In fact, I run my own private Internet complete with DNSSEC for my white lab.
I used Bind v9.16+ and wrote some bash tools to generate in a flexible manner the named configuration files.
Can generate private root servers, private TLD, split-horizon, bastion, and hidden-master.
Adding DNSSEC to a domain name is more work. You need a registrar that support it, and then depending on what DNS server program you are running you might need to install a signer, a key storage, monitoring and scripts that talks between the different parts of the chain. I have heard that the latest version of bind might now ship with all the required parts built in, but I have yet to test it. It a bit far yet from simply uncommenting an option, and the protocols for talking with registrars is being actively discussed and worked on during technical conferences.
There are tools to automate resigning, but personally I just do it manually once a year for fun.
Sure, fixing that squeaky door is "easy," but have you ever heard the adage that every home project involves three trips to the hardware store? There may be technical aspects that few of us can implement from scratch and on the first try, but at the same time I also don't know how to build a good broom. These concerns are not insurmountable, especially with the network effects of people being in the same boat. How easy is it to find a good handyman without asking anybody? You don't have to.
CurveDNS is also not difficult to set up, so if you run your own authoritative DNS for your website, you can provide optional per packet encrypted DNS. There are very few websites that offer this option.^1 If every website provided this option, users would have a better alternative than DoT or DoH.^2 Neither DoT, DoH nor DNSSEC provide per packet encryption and they focus on DNS caches run by third parties, not authoritative servers.
1. One example is https://ianix.com
2. Users could query the authoritative servers directly using stub resolvers and/or recursive resolvers that support dnscurve protocol, such as dq and dqcache, respectively.
Curious to know what made you switch (I still run djbdns).
I did tire of building my own djbdns and daemontools packages. When I switched from qmail to Postfix, the others were collateral damage.
I actually run djbdns (both cache and authoritative) under systemd (not my fave thing, but the thing my OS comes equipped with) and it works fine.
The lack of native support for some record types (eg. IPV6) is a little bit of a pain, but it's manageable.
The biggest downside to djbdns, to me, is its lack of DNSSEC support. There are patches available for that, but my distro doesn't package them and I haven't gotten around to making my own package to include them.
The next biggest is related: djbdns lacks direct support for some newer Resource Records (like type 257 CAA) in its data file. However, the data file does allow you to encode arbitrary records directly, it's just a hassle to do it and to verify correctness.
https://gitlab.com/leonhard-llc/ops/-/tree/safe-dns/safe-dns
My goal is to have libraries for all the common services. Then I can run web, APIs, DNS, and email from a single static binary, with no config files.
Then the next stage is to run the server in a unikernel in a VM, eliminating the OS. The following stage is to run the server directly on bare metal, eliminating the hypervisor kernel and OS. The final stage is to run the server as firmware directly on the CPU, shipping built-from-source firmware for all peripherals, eliminating all unauditable binary blobs from the server.
Eventually there will be a decentralized name system for probably a decentralized P2P radio system, and I'm trying to build that: http://radiomesh.org
But it's proving more tricky than I could have ever dreamed, right now I have scrapped 433MHz LoRa on Rasperry Zero and I'm moving to 169MHz plain radio on Raspberry Pico.
As for running your own it's very easy with these simplified lines of Java and dns4j (excluding port 53 UDP stuff):
Message query = new Message(data);
Header header = query.getHeader();
Record question = query.getQuestion();
Message response = new Message(query.getHeader().getID());
response.getHeader().setFlag(Flags.QR);
response.addRecord(question, Section.QUESTION);
Name name = question.getName();
int type = question.getType();
int dclass = question.getDClass();
String host = name.toString(true).toLowerCase();
...
response.addRecord(new ARecord(name, dclass, 300, "someIP"), Section.ANSWER);
...
response.getHeader().setFlag(Flags.AA);
return response.toWire(512);
Everyone should run their own DNS on the same process as their HTTP and SMTP servers... because without DNS nothing exists.There are few things more frustrating than having your DNS provider be down for hours without recourse!
The root servers use anycast, so you can figure there are "several" nameservers with the same address scattered around the 'tubes, and distinguished by the routes announced in different places.
There are and have been alternate roots since the beginnings of internet time, notiwthstanding Mockapetris' opinion that people who advertise false root should be shot.
Writing a decent recursive nameserver is nontrivial, I've written several for specific purposes but generally I use BIND.
I concur that running a recursive server for your SMTP server is best practice because network intelligence is oftentimes utilized for spam / malware mitigation. I'm unclear why you need it for e.g. HTTP.
> few root servers with a few people that have keys to them
Well, kind of. As said, there are quite a few root servers although the control is in the hands of relatively few. Maybe you realize this, maybe you don't but yes there are keys for DNSSEC. I'm not sure exactly how it works, but several people have to cooperate to sign the root zone. They have key signing ceremonies which are televised online. During COVID I watched them drill a lockbox, because one of the keyholders couldn't make it to the ceremony; fun times.
I might use geolocation on my DNS replies, and unfortunately here is the 2nd flaw of DNS, the replies should follow the sent order, because as the protocol works now you either get round-robin redundancy or direct your users to the hopefully correct continent, you can't have both!
As for my brute force workaround: I use IPs for connecting as often as I can, and the hostname is just for virtual hosting to work.
So all my applications have euro., asia. and iowa. prefixes and when outside of a browser I can "hardcode" the IPs so that extra second of lookup never hits my users.
Ofcourse that requires fixed IPs and open port 53 which is something every home fiber owner should ask for to distribute the internet again!
Advanced protocols may be able to use SRV records to distribute further traffic, but web browsers can't, so kind of stuck for them.
Not for lack of trying from the DNS community, more like web browsers won't. However if you haven't already you should take note of the HTTPS and SVCB DNS record types: https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https...
> extra second of lookup
Hrm. Sounds like you want it to work like today's internet, with today's internet services.
You're using radios, what's your traffic shaping look like UDP vs TCP? I know from experience that media devices spam the crap out of wifi (weird stuff too, like multicast MAC addresses). A common scenario is a TCP channel for control, and an accompanying UDP spew for the actual content.
DNS resolution according to the standards which were promulgated in the 1980s uses UDP, unless a (UDP) reply indicates that the request should be retried with TCP: there is no use of TCP, as in there is no "and if all else fails, retry with TCP".
For media, this provides a first mover advantage: whomever resolves their service and starts streaming first attenuates DNS resolution for the latecomers. I actually wrote about this on HN and wrote a demo TCP-only forwarder (which also conveniently does DoT) https://github.com/m3047/tcp_only_forwarder but nobody was very interested.
Point being, if DNS resolution is failing or slow and you can't / won't do traffic shaping you might want to force DNS over TCP / TLS.
here is a link to the key signing ceremony if, like I was, you are interested.
Maybe it's the englisher in me, but I was hoping for more grandeur, perhaps some kind of ceremonial mace or at least a benediction.
why would you want DNSSEC?
https://educatedguesswork.org/posts/dns-security-dane/
Reasons not to DNSSEC? The biggest one is that it exposes you to misconfigurations that happen routinely even at large sites (because DNSSEC is hard to manage), for no actual security benefit. The "no actual benefit" part is my big reason, though. DNSSEC is pure path-dependence; people do it because they think they should be doing it, because a bunch of people put a standard together back in the 1990s and have been lobbying for it ever since.
If you proposed DNSSEC today, rather than in 1994, it would go nowhere. But since it's been an IETF effort for 2 decades, it now has a life of its own.
I'm against CAs because they are fabrications who do a beauty show primarily for the browser makers, and everybody else has to deal with the fallout (eschewing political comparisons... deep breaths...); they also provide cover for "infrastructure vendors" who mint their own CAs.
They say that DNS encapsulates the two most difficult problems in data science: naming and cache expiry (I'd add delegation). So if we already have one global tribe attempting to solve this problem, how much of our attention budget do we really want to spend on people who have discovered this "new problem": CA chains: really?
There are (Derrida-not) misconfigurations which routinely happen (PeeWee Herman "I meant to do that") which clearly benefit from DNSSEC. Surely noone would configure their network to trust the name of, say a file server, which serves the executables for your short order diner. Dang. It's such a brilliant idea. Why doesn't it pan out? JasBug hasn't been solved, other than M$ saying "don't do that". What if the DNS solved it?
We're writing here for the public so yes, "CA chains" is technically inaccurate. I don't care.
You need to redesign everything from scratch and be aware how the old system was flawed. The tradeoffs are usually complex high energy vs. simple low energy and it's always a good idea to start with the simple low energy.
SMTP(1971), ETHERNET(1973), IP(1974), UDP(1980), C64(1982), TCP&DNS(1983), HTTP&BGP(1989), DHCP(1993) and RASPBERRY4(2019) are never going away because they are simple. If you want to use something new make sure you are not wasting everyones time!
Edit: I added two hardware devices because they mark the first and last open personal device humans made at scale big enough to matter so that you can see the timeline properly; it took us 50 years to complete the creation loop of a global computer network.
It's going to be REALLY interesting to see what the Raspberry 5 looks like. My guess it's going to flop like the PS5 unless they REALLY increase the energy consumption of the GPU by a factor of atleast 2x, but they need to make that dynamic or the 4 will retain it's low energy value and hurt adoption (think C64 vs. 128)!
Do you have more detailed explanations about this project? radiomesh.org homepage doesn't contain a lot of info.
You may be interested to check out projects like GNU Name System, or routing mechanisms such as CJDNS. Tor's onion services are also very interesting as a global secure naming scheme.
The real challenge is the physical limits and the scalability problem (radio range, bandwidth, electricity use, longevity and disc space) .
I have a working prototype for most parts so I know the project is doable, but to what extent it can successfully replace legacy systems without them faceplanting on their own is another question.
I'll check out your mentions, but I doubt they can be applied to radio.
Maybe a penalty for unused names with time, but that will just drive paid spam and energy "waste"... time solves everything, I'm sure a better solution will crop up eventually, it's not like I will be done next week!
Unfortunately for us, everything is a pyramid scheme, you just have to make an as stable/fair pyramid as you can!
Of course often there's a desire to mirror some existing namespace (e.g. DNS, trademarks) where there is value in the name already. In that case the best you can do is to build some oracle mechanism that consumes proofs of namespace ownership. Similar to how LE/Acme works, but used to drive an oracle.
I just noticed a full blog post on this topic is also on the front of HN right now. [1]
[0] https://transparencyreport.google.com/https/certificates?hl=...
[1] https://shkspr.mobi/blog/2022/01/should-you-use-lets-encrypt...
How is LetsEncrypt going to handle revocation … in under 24 hours?
There are so many CA's installed by default that it's truly a massive man-in-the-middle attack whenever you might think you are safe, you are not.
I would assume the CCP & the KGB control at least one of the CA's your OS currently trusts. (No doubt the NSA has one too)
In debian: dpkg -L ca-certificates
[1]: https://pi-hole.net
Last Nov I spent half day installing Pi-hole on spare Pi 2 and Pi 3 (Ubuntu LTS) serving as two internal DNS Servers for home network), router (AsusWrt-Merlin) as its upstream doing DoT (DNS over HTTPS). Really happy with the performance and cost (quite, low power consumption, no heating issue, no dust collection issue, etc.)
On Pi 2 and 3 it's no longer an issue (even if you don't do anything about it) to a memory buff and better I/O (using faster micro SD).
Pi-hole provides a mechanism to backup and rotate the database from time to time, one can do that whatever way suits their use cases.
Why'd I exempt my apple tv from the pi-hole? I don't want to screw things up when my wife or visitors are watching tv :)
Very wise. There are a lot of cool things I’d like to setup, but keeping things simple for guests and spouses matters.
Disclaimer: I work for Google.
We need to normalize people using Pi’s for at-home DNS just like we did HTTPS.
But it depends what/who you trust. Say you're based in the US work for Google and want to whistle-blow about some nefarious defense/Pentagon contracts, then staying away from Google (or US based Tech firm) infra as much as possible would be sound advice.
Even if you're just a consumer you should be interested in degoogling your life including not just google DNS but their stupid web-fonts and google auth API's. Google is still going to get lot of your traffic no matter what you do but every data point you can remove is good - even if it adds zero to your bottom line at least you will maintain awareness of how you get milked every day.
Can you explain why giving a complete list of URLs you visit to the worlds largest advertising and data gathering company isn't dodgy? If you can't see why, then you appear to have drunk the SV Koolaid.
tldr; If millions of people do a silly thing, it is still a silly thing.
The ISP will do the least legally possible it can to satisfy whatever these external players are coercing them to do. The recording industry does not pay your ISP. On the contrary - they sue them to court and try to force them to implement solutions to censor your internet without any compensation. All these solutions cost the ISP, so if the court is happy that removing the DNS records from the ISP's primary DNS is sufficient, then so be it. The ISP has no incentive to be hostile towards you or implement any more blocks than the absolute minimum they are legally required.
Your router doesn't need to support it, one of the complaints from business/school admins or even just people trying to run pihole network wide is that DoH bypasses network level DNS setup
Consider using DoT or DoH instead, or at the very least disable UDP queries (there's a slight penalty though).
The latest BIND has DoT (DNS over TLS) out of the box, or you can put nginx in front of any decent DNS server to terminate TLS just like you do with a web server (this is fundamentally TCP not UDP however).
For the recursives one, I started with bind, but after a few months I replaced it to unbound and it's works like a charm. The only problem that I experienced was about DDoS, mainly generated by ultra cheap chineses home router with buggy firmware. Anyway after a few attacks, we start implementing an application monitoring solution and we were able to mitigate the attacks in a short time.
On my laptop I run a a docker container with grimd (https://github.com/looterz/grimd) as recursive DNS and DoH proxy. I can filter out lot of dab requests and tracking and have visibility of what my DNS traffic is. It's not hard to configure
If you just want the NS records and glue for all the ccTLDs they're in the root zone.
https://www.internic.net/domain/root.zone
If you want the complete zone files from every ccTLD that is a much bigger ask. I'm not sure but I imagine you would have to look into each ccTLD and find out if they're available.
For ccTLDs there’s no centralised system and availability depends on the country registry. For example, Nominet make the UK zone file and others available for UK registrars for a fee I think.
Another approach is to buy WHOIS files from providers like Whoxy [1], the registrant data shouldn’t be used because of GDPR and other restrictions but as a domain list it can be useful.
I’ve done a fair bit in this area so if anyone wants any help feel free to send an email - details in profile.
Example where the magic happens in ~40 lines of code:
https://github.com/paulc/dnslib/blob/master/dnslib/shellreso...
Hurricane Electric can sit in front of it if you like (and your records are dynamically generated but bounded to a known finite set), god bless them <salute>:
Example where you might want this: you wrote a nameserver that runs arbitrary shell commands!
Key thing I learnt writing dnslib (which was originally to provide a DNS API for an application) is that DNS is actually a very dynamic protocol but the complexity of mainstream servers like BIND makes it hard to do a lot of the things that you can actually do. There are a lot of problems (in particular in the service discovery space) which can be solved much more easily using DNS rather than inventing something separate.
As an aside if you want an authoritative DNS server I would look at KnotDNS [1] - you can avoid all the zone file cruft and interact with it using a sensible API. If you want to write a dynamic DNS app I would look at @miekg’s excellent Go library [2]
I used your library to broadcast weather readings via DNS in the park where I live. It was really nice to have all the protocol work done for me, leaving me to focus on my meteoprocrastination :)
There’s a special place in my heart for tools where you learn by following examples, rather than by having to read abstract documentation.
And I like BIND. I like editing zone files by hand. It never fails to make me happy.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-2521... https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8625
There are numerous DoS CVE's over the same time period.
The rest is pretty solid and well tested.
That said, outside of serious enterprise settings, you can do all sorts of things without hosting your own DNS servers - even odd ones, like making records on public DNS servers for your internal network. Sometimes using a dynamic DNS client (e.g. ddclient) is actually easier than caring about setting static IP addresses (if you just want to let DHCP handle everything), when you don't care about that sort of data being exposed. Of course, that's not to say that people should actually do stuff like that, just that they can.
On a more practical note, if you use the DNS servers of someone like NameCheap or GoDaddy, you might run into limits for how many records for a domain you can create. For example, NameCheap allows up to 150 records (https://www.namecheap.com/support/knowledgebase/article.aspx...).
seems to me that they are increasing in numbers, both public and private.
I was shocked that DNS was only almost 40 years old - I would have guessed it was at least older than me, but she's right. According to https://datatracker.ietf.org/doc/html/rfc882 it's almost 10 years younger...
Fun times.
Or do they stand to lose something in a major way if they do this?
I quote: "But the “phone book” mental model might make you think that if you make a DNS query for google.com, you’ll always get the same result. And that’s not true at all!"
Phone books are not a static model either. If you were to look up "Walmart" in your local phone book, you're going to get a different set of phone numbers for the Walmart stores around you as compared to five states to the West or East of where you are. As such, the mental model really is apt.
I can look up www.google.com from 3 different machines here on my local network (behind a single ipv4 nat'd address) and get 3 different IPs as a result.
One way to redirect application traffic to a local daemon, e.g., something like sslsplit or stunnel, is using firewall rules. Another way is to use DNS.
Running DNS for oneself with a custom root.zone allows one to redirect traffic, for example, to a loopback address where the daemon is listening. The DNS server can run locally on a loopback or private address (for use while at home/office), or remotely on a public address (for use when travelling).
For example, I use a local proxy server instead of remote DNS lookups. When I visit example.com, there is a local DNS lookup to a local DNS server listening on the loopback. No DNS packets leave the computer. The local DNS server returns the loopback address of the proxy. The proxy, which has the remote address of example.com stored in memory, then accesses example.com.
[1]: /r/pfBlockerNG
> reason: do something weird and custom
Oh yes please! Previous discussions on this topic:
https://news.ycombinator.com/item?id=28218406 (HTML over DNS)
https://news.ycombinator.com/item?id=25620411 (DNS Key Value Storage)
https://news.ycombinator.com/item?id=22808121 (Wikipedia over DNS)
> reason: geo DNS
Please don't do this! IP addresses aren't geolocated in the common sense. The good way to get content closer to your users is to announce your IP space from your different locations. Then client ISPs can choose the best route depending on peering policy and number of hops.
If your DNS lies depending on the IP who asks, you're going to have quite a bunch of people redirected to the "wrong" (far/slow from their perspective) server. The only exception i can think of is for split-horizon DNS where your local resolver advertises local IP addresses.
Anyone can lighten me up on how to defend this kind of attack? I really want to run my own dns server
reason: You want to use anycast (rent cheap VPS servers that support BGP)
The anycast managed services that exist will takes days to sync all servers, thus you can't use DNS validation with Letsencrypt. Solution: Run your own Anycast ...
That said, anycast is overkill, because DNS has caching built in to it's protocol, if the user has looked up your IP once, it will be cached on the user machine next time he/she looks it up. And if you have a fairly popular domain, it will also be cached at the ISP or whatever DNS resolver the user has.
That doesn't mean it's not decentralized. If the .kz operator has a heavy hand, it affects people in their legal jurisdiction but not anyone else, and that's true of everything else as well. A system which doesn't allow enforcement of legal requirements will be blocked, and this isn't a technical problem with a technical solution no matter what the blockchain salespeople say.
They don't change the fact of the centralized structure.
The center used to be Jon Postel, now it's ICANN.
It's a hierarchy of delegated authority (aka "bailiwick"... aka "domain") emanating from the center.
> no one entity owns the entire data set
Because of the delegated authority.
But the authority is all delegated from a center.
It means there's a central point where names can be removed.
The central point owns as much of the data set as they choose to own.
Yes, but authority can be delegated recursively, thus disempowering the top of the tree (ICANN) over the leaf nodes (the rest of us). The root server could technically lie and say thepiratebay.org.'s A record is 127.0.0.1, but recursive resolution (from right to left) prevents that so that only a direct parent could lie.
So because you can get names from pretty much everyone and only a direct parent has authority over you, power is very balanced overall.
That's silly. There's a single organization in charge of everything, with total enforcement power.
> The root server could technically lie and say thepiratebay.org.'s A record is 127.0.0.1
They don't have to "lie."
The people who own `.` can simply issue public orders to the people who own `org.`. They can set policies, demand payment, demand the removal of hosts, and so on.
Since `.` has the power to remove the `org.` delegation, the owners of `org.` are forced to comply.
Maybe i've missed a few episodes in the DNS wars saga. Do you have a few links on this topic? I wasn't aware that ICANN felt powerful enough to threaten to take entire TLDs off the root zone.
> I wasn't aware that ICANN felt powerful enough to threaten to take entire TLDs off the root zone.
What do you think happens if you don't pay ICANN the fee for a gTLD?
Of course, they're not going to remove `org.` -- and `org.` isn't going to defy their rules.
I somewhat agree with that argument, i'd be much happier with a public-key delegation process like in the GNU Name System. But to be fair, given the technical constraints of the time, i would argue DNS is as close as you can get to an anarchist protocol: it appears centralized on the outside, but when you dig into the technical details it was explicitly designed to decentralize powers from the hands of the hosts file maintainers.
> Of course, they're not going to remove `org.` -- and `org.` isn't going to defy their rules.
Do you have examples of .org being ordered by ICANN to take certain actions? Or .org domains being seized? wikileaks.org and thepiratebay.org, which arguably a lot of people have tried to take down over the years are still around and well.
_Powers_ aren't decentralized at all. Only administration and hosting is decentralized. Every single power has to be delegated from above, and continuously renewed. That is what makes it possible to cut people off for non-payment.
> Do you have examples of .org being ordered by ICANN to take certain actions?
ICANN's "Registrar Compliance Program" has helpfully published this powerpoint-style summary of their compliance requirements:
https://www.icann.org/en/system/files/files/registrar-compli...
However, I would say that the most important example is simply that ICANN charges an annual fee for each and every domain!
The power to make the rules is the power to demand the rents.
Less inaccurately, ICANN has social consensus to be trusted with the root delegations. If they abuse that position, that consensus would very quickly disappear because they don’t own any of it.
I only explain that DNS delegation is structured with a central `.` zone.
The central node is all-powerful. It can remove any name by removing the top level delegation for that name.
The biggest effort for me was about 24 years ago, when BIND 8 replaced BIND 4.
Probably the last thing I had to learn was putting AAAA records in (easy enough) and putting SPF records (yes, I run my own personal postfix as well).
Weird flex but ok
What's also not mentioned is the possibility to run your own hidden master and use a DNS provider (or multiple!) as slaves. This way you have full control over your zone but you don't have to run your own network of nameservers.
The problem for Slack was not caused by DNSSEC directly. It was caused by:
1. A bug in Route 53 which caused wildcard record not to work with DNSSEC signing. Anyone not using Route 53 would not have had any problems with DNSSEC.
2. Slack decided to revert the DNSSEC rollout, but botched the process badly, effectively locking themselves in the trunk and throwing away the key. If they hadn’t tried to revert the DNSSEC rollout, or if they had been a bit more deliberate and careful while doing it, this would not have happened.
(Also, except for DNSSEC solving the obvious problem of not having any way to authenticate DNS responses, you also can’t use newer e-mail security standards like DANE without DNSSEC. MTA-STS is an obvious ugly hack, requiring a web server to run an e-mail server.)
> This indicated there was likely a problem with the ‘*.slack.com’ wildcard record since we didn’t have a wildcard record in any of the other domains where we had rolled out DNSSEC on
I'm not going to stick my hand in either camp for the sake of this discussion, but dynamic/wildcard DNS records are exactly the type of thing I'd suspect DNSSEC to have trouble with
That's about as decentralized as a real system gets while still being usable.
Uh, this is DNS. Bitcoin has a similar but far more expensive mechanism for social consent but more importantly it also doesn’t have equivalent functionality for a global namespace. That’s the underlying problem here: the purpose of the DNS system is to map human-meaningful names to addresses and that requires a mechanism for guaranteeing uniqueness and dealing with abuse. Bitcoin can’t do that and things like ENS have the usual problems handling abuse.
This is why, for example, ICANN doesn’t have the ability to arbitrarily transfer domains — their operation of the root servers is limited to the terms agreed to, and if they tried to abuse their technical access they’d be replaced by an alt root. The Russian government has already done this for political reasons and it’s not especially hard to do given a reason.
What you are replying with is a political science style defense of the idea of centralized power.
Your argument is like the political science idea of the benevolent dictator, who is vulnerable to coup unless they can keep the factions happy.
Political science also has the idea that the institutional democracy can be more resilient than that to such simple attacks as a coup by a would-be dictator.
When I'm talking about decentralized I'm saying that the technology doesn't even have a place for the benevolent dictator to exist. Not that the node is constrained politically. The node is not even there.
Centralization is easy to build and provides easy "solutions" to problems like abuse. Centralization simply reduces all problems to the one problem of choosing the center. Like you say: "selecting the work of a third-party aligned with your views."
Centralization works, insofar as it does, because the human beings controlling the center have to maintain some kind of political alliance in outside society to maintain their spot.
Fair enough, I guess, for some purposes. But it's like CAP theorem, sometimes you want a different set of tradeoffs for a different purpose. Not all systems work by choosing a center. Some systems fragment, some unify by non-political (mathematical) means.
This is why I asked your definition and alternatives because that isn’t possible or desirable for a system like DNS, or almost anything else. At some point you need a query for your bank to go to the intended party, not a scammer, and that means that you usually end up relying on third-parties. A decentralized in the standard definition system like DNS handles the root issue using social consensus which makes abuse obvious and limited to the period before an untrustworthy party is no longer consulted.
I mean the DNS root, which holds all authority, is not decentralized.
You only call it decentralized by looking at the aspects of the system besides how naming authority is structured!
I think nobody cares about your "standard" definition at all. The naming authority is the part of the system that matters (and is big business).
Perils of a centralized system!
And it's because of the centralized structure of DNS technology that it's possible for Russian sovereign orders to propagate DNS information to those users.
Just like the political science benevolent dictator replaced in a coup, retaining the previously-built chain of command.