DNS: Basic Concepts (2013)
petekeen.net
petekeen.net
A small business wants a website at SquareSpace, cloudflare CDN, email at Google Apps, landing pages on a subdomain with Unbounce, their blog on yet another subdomain, and DKIM/SPF records for the email newsletter system.
Setting this up is not easy for most people. Most people aren't even sure where to do it–let alone how to do it. (is your registrar handling your DNS? sometimes ...)
If you had a 1 or 2-click tool that setup these for people, maybe wrapped it around some domain search/affiliate tools, I think you could make some money.
My 2¢
I disagree that technical people should not have to understand DNS. DNS isn't that complicated in most scenarios, and having a basic understanding of it can help alleviate many of the headaches that are introduced when people don't understand the relationship between the ownership of their domain, their domain registrar and DNS records that point to various services, basic concepts around TTLs and caching, etc.
I think that any good technical developer/sysadmin has at some point set up their own BIND server or similar, if only to play with it for a few hours before uninstalling. This is something that is often missing from developers who went through a CS program just to get a degree in an industry that pays well, without really having an interest in the field.
Good developers/sysadmins, who actually have an interest in the work they do, have an innate curiosity that leads them to try their hand at things like a DNS server. For no reason other than to learn something new and understand a topic they didn't knowing anything about before the experimentation.
Of course, you can learn about DNS without actually configuring a DNS server from scratch - but the real "aha" moments come from working with the server itself rather than only understanding the difference between A/CNAME/MX et al. Learning about FQDN syntax, how DNS master syncs to slaves, SOA serial numbers, etc. - so many interesting things to discover.
As a developer you should know the basics of networking and the protocols you will be using to communicate, as well as their drawbacks but DNS as far as a developer is concerned, generally is a means to an end. They just need to know where to send a message to. I feel like you could be a great developer and not have a freaking clue how to configure a BIND server or manage a zone file- they're fairly unrelated to creating, maintaining, or deploying code (unless you're getting into containers and auto-provisioning).
Actually it's very useful to know and understand potential misconfigurations.
e.g. if your 3rd party integration starts failing, it's useful to know the signals that imply their sysadmin messed up a zone transfer.
This sort of 'hands-on' knowledge that you only really get from messing around with the daemons yourself reduces downtime and emergency maintenance from hours to minutes.
I have run my own resolver at home ever since and in retrospect learning how DNS works was one of the most interesting things I learned back then.
The thing is, when DNS fails for some reason, everything that sits on top fails, too. So as a network admin / sysadmin, it is very helpful to know. Heck, even as regular Internet user, it is helpful.
Well that is one way of looking at it. Probably the appropriate way if you're teaching, but if you want to be critical then it reeks of poor design for a particular service to get special treatment by a fundamental part of the internet. It isn't that MX records aren't needed. They just shouldn't only be useful for email.
Edit: And it wasn't as bad of a design decision back when changes to important network protocols was a thing that happened, not a case of the sky falling.
But it doesn't seem to be going away anytime soon.
And now I'm not even sure that was a correct move, since Gmail explicitly states[1] that you shouldn't change the envelope sender (which SRS does).
That's the thing, in theory I went from:
spf: fail
dkim: pass
for forwarded mails, before SRS, to: spf: pass
dkim: pass
so it should be better, right?But as I said, they explicitly mention NOT changing the envelope sender (maybe they have an exception for SRS cases, but it's not documented anywhere).
Oh yeah, and now I'm also responsible for any real spam forwarded to Gmail, since the From is @mydomain.
We no longer think of DNS as a "phone book" style directory system, and we no longer assume that every reachable machine is cared for individually.
While in theory that's common, the primary reason is because of the SOA record that must exist.
rfc1034 is vague but rfc2181 clears it up. https://tools.ietf.org/html/rfc1034 https://tools.ietf.org/html/rfc2181
I blame it on not having easy access to throwaway playgrounds.
I recently found this project http://mininet.org/ which promises throwaway network playgrounds. Hopefully it will help me finally learn networks for good.
Any home LAN is a playground. Internet is a playground. GNS3 for Cisco stuff. Linux itself is a playground (I have been playing today with StrongSwan, Quagga and SoftEther!). If you just want a network simulator, there's Packet Tracer. Of course you could also just fire up tcpdump and/or Wireshark and have a look. Many of the things I've mentioned are free :-)
It sounds like the poster you're replying to need to solidify the fundamentals, before the playground under his/her feet can be experienced. TCP/IP Illustrated, one of many introductory guides to DNS, etc. can be read through. TCP/IP Illustrated Vol 1 is great because of how simple it makes networking feel, and it does so while showing you packet captures (another skill to pick up).
Add to that GNS3, which I've seen people use to design and sketch out company networks (just need a Cisco account to download the IOS images).
We could go on. The point is that your (free) playground is right under your nose.
I prefer my domains to be naked (as opposed to www.), but I typically redirect all www-traffic in my web server (NGINX). Is this the wrong approach?
The summaries for each side:
https://blog.cloudflare.com/introducing-cname-flattening-rfc...
[0] https://www.tumblr.com/docs/en/blog_management#customdomain
Cookies can be set for specific subdomains only, but if they are set for the "unprefixed" domain they will also be sent for all subdomains (just the nature of how browsers handle cookies).
Since cookie data is rarely needed just to server static assets (images, css files, etc), you can shave off some time on each request if you serve them from a subdomain that is different from the web page's subdomain... but of course your web page has to actually be at a subdomain (e.g. www.example.com) in order for this to work.
Hence, setting up your main web pages to be at a subdomain (such as www.) gives you the ability to then serve static assets from different subdomains without browsers having to send cookie data on each request.
Using `www.example.com` as your cookied domain allows you to avoid sending your cookies to `cdn.example.com`, shaving off a few bytes of incoming bandwidth per request. Whereas if you use `example.com` as your cookied domain, those cookies will be passed to `cdn.example.com`. To avoid that, you'd have to set up your CDN on a completely different domain like `examplecdn.com`.
That's serverside at least, whichi is easily remididied given simple education Much harder is the more than 70% of exotic browsers used by millions; I hate 2345 in particular.
nike.com is obviously a website
nike.shoes isn't - especially depending on the context.
At least www.nike.shoes is recognisable as a URL
I like the idea behind the project, but from personal experience I decided that I had to switch to another provider that had more robust infrastructure and regularly patched their machines. DNS is too critical and I felt the risk of having my DNS requests hijacked by a compromised machine was too great.
(Also, who down-voted the parent comment? Bizarre, maybe that was accidental?)
Its one of the poorest interfaces ever created in the history of mankind.
Has anything as good been released since? What is the current "standard reference" on DNS and BIND?
You're never going to get perfect consistency of moderation here because it's impossible for us to see every post, and also because we're human.