DNS
General
Articles
mDNS
- https://en.wikipedia.org/wiki/Multicast_DNS - mDNS, resolves host names to IP addresses within small networks that do not include a local name server. It is a zero-configuration service, using essentially the same programming interfaces, packet formats and operating semantics as the unicast Domain Name System (DNS). Although Stuart Cheshire designed mDNS to be stand-alone capable, it can work in concert with unicast DNS servers. The mDNS protocol is published as RFC 6762, uses IP multicast User Datagram Protocol (UDP) packets, and is implemented by the Apple Bonjour, Spotify Connect, Philips Hue, Google Chromecast, and open source Avahi (software) software packages. Android contains an mDNS implementation. mDNS has also been implemented in Windows 10, but its use is limited to discovering networked printers. mDNS can work in conjunction with DNS Service Discovery (DNS-SD), a companion zero-configuration technique specified separately in RFC 6763.
Domains
- http://www.icann.org/
- https://en.wikipedia.org/wiki/ICANN - a nonprofit organization that is responsible for coordinating the maintenance and procedures of several databases related to the namespaces of the Internet - thereby ensuring the network's stable and secure operation.[1] ICANN performs the actual technical maintenance work of the central Internet address pools and DNS Root registries pursuant to the Internet Assigned Numbers Authority (IANA) function contract.
- ICANNWiki - a nonprofit organisation dedicated to providing a community developed wiki on ICANN and Internet Governance. We specialize in outreach, engagement and accessibility. Our mission to "give everyone a voice in the future of the internet" by providing educational resources, workshops and building a strong sense of community.
- Top 5000 Most Common Domain Prefix/Suffix List - Courtesy LeanDomainSearch - https://leandomainsearch.com/top-domain-name-prefixes-and-suffixes
- https://www.washingtonpost.com/news/the-intersect/wp/2015/02/23/the-surprisingly-complex-reason-you-never-see-emoji-urls/ [3]
- Ryan Freebern on Twitter: "Spooky dev environment hack: add 127.0.0.1 xn--9q8h to /etc/hosts and then all your dev servers can be accessed at http://👻 It's localghost!" / Twitter - [4]
Records
- http://en.wikipedia.org/wiki/DNS_zone - any distinct, contiguous portion of the domain name space in the Domain Name System (DNS) for which administrative responsibility has been delegated to a single manager. A DNS zone is implemented in the configuration system of a domain name server. Historically, it is defined in the zone file, an operating system text file that starts with the special DNS record type Start of Authority (SOA) and contains all records for the resources described within the zone. This format was originally used by the Berkeley Internet Name Domain Server (BIND) software package, and is defined in RFC 1034 and RFC 1035.
The domain name space of the Internet is organized into a hierarchical layout of subdomains below the DNS root domain. The individual domains of this tree may serve as delegation points for administrative authority and management. However, usually it is furthermore desirable to implement fine-grained boundaries of delegation, so that multiple sub-levels of a domain may be managed independently. Therefore, the domain name space is partitioned into areas (zones) for this purpose. A zone starts at a domain and extends downward in the tree to the leaf nodes or to the top-level of subdomains where other zones start.
From DreamHost wiki;
- A
- Forward mapping of hostname to an IP address (66.33.201.141).
- AAAA
- Forward mapping of hostname to an IPv6 address.
- PTR
- Reverse mapping of an IP address (66.33.201.141) to a hostname (dreamhost.com).
- MX
- Mail eXchange records tell you which hostname to connect to for sending email.
- CNAME
- Say it, See Name, it points one domain name to another domain name, including mail service.
- TXT
- Text records, these are free form text strings, used for things like SPF.
- SRV
- Service records advertise a specific service a server offers. Zeroconf and XMPP Federation (Jabber and Google Apps) use SRV records in addition to PTR records.
- NS
- Delegates a domain or subdomain to another DNS server.
- xip.io - wildcard DNS for everyone. xip.io is a magic domain name that provides wildcard DNS for any IP address. Say your LAN IP address is 10.0.0.1. Using xip.io, [maybesomething.]10.0.0.1.xip.io resolves to 10.0.0.1. No configuration required! A free service from Basecamp.
- https://en.wikipedia.org/wiki/Name_server - a computer hardware or software server that implements a network service for providing responses to queries against a directory service. It translates an often humanly-meaningful, text-based identifier to a system-internal, often numeric identification or addressing component. This service is performed by the server in response to a service protocol request. An example of a name server is the server component of the Domain Name System (DNS), one of the two principal namespaces of the Internet. The most important function of DNS servers is the translation (resolution) of human-memorable domain names and hostnames into the corresponding numeric Internet Protocol (IP) addresses, the second principal name space of the Internet which is used to identify and locate computer systems and resources on the Internet.
Root zone
- https://en.wikipedia.org/wiki/Root_name_server - a name server for the root zone of the Domain Name System (DNS) of the Internet. It directly answers requests for records in the root zone and answers other requests by returning a list of the authoritative name servers for the appropriate top-level domain (TLD). The root name servers are a critical part of the Internet infrastructure because they are the first step in translating (resolving) human readable host names into IP addresses that are used in communication between Internet hosts.
A combination of limits in the DNS and certain protocols, namely the practical size of unfragmented User Datagram Protocol (UDP) packets, resulted in a decision to limit the number of root servers to thirteen server addresses. The use of anycast addressing permits the actual number of root server instances to be much larger, and is 504 as of 17 January 2016.
Registrars
Comparison
- https://news.ycombinator.com/item?id=7839186 - list of good registrars
Good words(?)
- http://www.ukreg.com/ - .co.uk - £2.95pa*com - £5.99pa.net - £9.49pa.eu - £8.89pa All
- https://www.namecheap.com - cheap. nameserver included.
- https://internetbs.net - cheaper. nameserver not included.
- http://www.domains.coop/ - .coop
- Git-based DNS Hosting - Steve Kemp
to avoid
- http://www.1and1.co.uk/ - hmm, bibg corp, ugly ui
- http://123reg.co.uk - transfer out charges
- https://www.123-reg.co.uk/domain-names/cheap-domain-names.shtml
- http://en.wikipedia.org/wiki/Webfusion
- hidden transfer fees still?
- Network Solutions - avoid
- http://www.networksolutions.com/support/changing-payment-methods/
- http://www.networksolutions.com/support/using-paypal-as-your-payment-method/
- http://www.networksolutions.com/support/transfers-within-network-solutions-2/
- http://www.networksolutions.com/support/preparing-a-domain-name-for-a-transfer-out-of-network-solutions/
- http://inessential.com/2014/01/21/network_solutions_auto-enroll_1_850 [7]
Do NOT use GoDaddy. Google it +
- http://skepchick.org/2014/04/godaddy-released-my-personal-information-to-a-spammer-troll/
- https://news.ycombinator.com/item?id=18894792
Lookup
Search
- http://namevine.com/ - with social service lookup
TLDs
- Public Suffix List - A "public suffix" is one under which Internet users can (or historically could) directly register names. Some examples of public suffixes are .com, .co.uk and pvt.k12.ma.us. The Public Suffix List is a list of all known public suffixes.
- https://gigaom.com/2014/06/30/the-dark-side-of-io-how-the-u-k-is-making-web-domain-profits-from-a-shady-cold-war-land-deal/ [https://news.ycombinator.com/item?id=8587379
Styles
acronym in url, not domain - seo?
Management
Services
- http://uberdns.eu/ - uses git
Selling
Software
Configuration
/etc/resolv.conf
- https://hackernoon.com/dns-performance-comparison-google-quad9-opendns-norton-cleanbrowsing-and-yandex-d62d24e38f98
- https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5
# Quad9 nameserver 9.9.9.9 nameserver 149.112.112.112 # Provides: Security blocklist, DNSSEC, No EDNS Client-Subnet sent. nameserver 9.9.9.10 nameserver 149.112.112.10 # Provides: No security blocklist, DNSSEC, sends EDNS Client-Subnet. # Cloudflare nameserver 1.1.1.1 nameserver 1.0.0.1 # For IPv6: 2001:2001::, 2001:2001:2001::
# Google DNS nameserver 8.8.8.8 nameserver 8.8.4.4
/etc/hosts
resolvconf
- openresolv - Works with POSIX shell and userland; Does not need awk, grep or sed which means we can work without /usr mounted; Works with other init systems than Debians' out of the box; Available as a 2 clause BSD license; Prefer configs via IF_METRIC for dynamic ordering; Configures zones for local resolvers other than libc [11]
systemd-resolved
- systemd-resolved is a system service that provides network name resolution to local applications. It implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR resolver and responder. In addition it maintains the /run/systemd/resolve/resolv.conf file for compatibility with traditional Linux programs. This file may be symlinked from /etc/resolv.conf.
- systemd-resolve — Resolve domain names, IPV4 and IPv6 addresses, DNS resource records, and services
Other
See also #DNSCrypt
- https://github.com/kvz/nsfailover - Every minute (or whatever), nsfailover.sh checks to see if the primary configured nameserver can resolve google.com. If it cannot, it writes the secondary, or even tertary server to function as the primary server in /etc/resolv.conf
Servers, proxy, cache
BIND
YADIFA
- http://www.yadifa.eu/ YADIFA® is designed specifically for the efficient management of large Internet zones and uses dynamic updates to instantly change domain name records. It is equally optimised to handle multiple Internet zones. Our benchmark tests show how we measure up to the competition.
Knot DNS
PowerDNS
Unbound
- Unbound is a validating, recursive, and caching DNS resolver.
Dnsmasq
- Dnsmasq provides network infrastructure for small networks: DNS, DHCP, router advertisement and network boot. It is designed to be lightweight and have a small footprint, suitable for resource constrained routers and firewalls. It has also been widely used for tethering on smartphones and portable hotspots, and to support virtual networking in virtualisation frameworks. Supported platforms include Linux (with glibc and uclibc), Android, *BSD, and Mac OS X. Dnsmasq is included in most Linux distributions and the ports systems of FreeBSD, OpenBSD and NetBSD. Dnsmasq provides full IPv6 support.
pdnsd
- pdnsd is a proxy DNS server with permanent caching (the cache contents are written to hard disk on exit) that is designed to cope with unreachable or down DNS servers (for example in dial-in networking). Since version 1.1.0, pdnsd supports negative caching.
nscd
- nscd - name service cache daemon
Tools
whois domain.name
- DNSYO is a little tool I built to help me keep track of DNS propagation. In short, it's nslookup, if nslookup queried over 1500 servers and collated their results.
dig
dig any domain.name show all records for domain
dog
- https://github.com/ogham/dog - a command-line DNS client, like dig. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.
dnc
- https://github.com/fcambus/dnc - CLI tool to check domain names configuration
Services
- http://network-tools.com/ - good all round domain/ip tool
- http://www.who.is/ - basic whois archive records
- http://viewdns.info/
Tunnelling
- iodine - lets you tunnel IPv4 data through a DNS server. This can be usable in different situations where internet access is firewalled, but DNS queries are allowed. It runs on Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD and Windows and needs a TUN/TAP device. The bandwidth is asymmetrical with limited upstream and up to 1 Mbit/s downstream. [12]
- https://github.com/aaronjanse/dns-over-wikipedia - Redirect `.idk` domains using the official link found on a topic's Wikipedia page
Security
TSIG
- https://en.wikipedia.org/wiki/TSIG - Transaction SIGnature, protocol defined in RFC 2845. It is used primarily by the Domain Name System (DNS) to provide a means of authenticating updates to a DNS database. It is most commonly used to update Dynamic DNS or a secondary/slave DNS server. TSIG uses shared secret keys and one-way hashing to provide a cryptographically secure means of authenticating each endpoint of a connection as being allowed to make or respond to a DNS update.
DNSBL
DNSSEC
- http://www.icann.org/en/about/learning/factsheets/dnssec-qaa-09oct08-en.htm
- http://www.dnssec-deployment.org/
- http://www.dnssec-tools.org/
- https://wiki.debian.org/DNSSEC
- http://pir.org/get/faq/dnssec
- https://www.opendnssec.org/about/
- http://www.cisco.com/web/about/security/intelligence/dnssec.html
- http://www.internetsociety.org/deploy360/resources/step-by-step-how-to-use-a-dnssec-ds-record-to-link-a-registar-to-a-dns-hosting-provider/
- http://www.dnsops.gov/dnssec-perform.html
still CAs, registrars and TLDs
- http://jpmens.net/2011/02/16/ssl-certificate-validation-and-dnssec/
- http://blog.huque.com/2012/10/dnssec-and-certificates.html
- http://blogs.cisco.com/security/top-of-mind-problems-with-ssl-solved-with-dnssec/
DNSCurve
DNSCrypt
Client
- DNSCrypt is a protocol that authenticates communications between a DNS client and a DNS resolver. It prevents DNS spoofing. It uses cryptographic signatures to verify that responses originate from the chosen DNS resolver and haven't been tampered with.
- http://en.wikipedia.org/wiki/OpenDNS#DNSCrypt
- https://wiki.archlinux.org/index.php/DNSCrypt
- https://www.archlinux.org/packages/community/x86_64/dnscrypt-proxy/ - includes systemd service file to enable exec on start
sudo dnscrypt-proxy -R dnscrypt.eu-dk --local-address=127.0.0.1:40
Using dnsmasq listening on port 40 to cache requests. Also, edit dnsmasq.service to load after After=dnscrypt-proxy.service.
or
systemctl edit dnscrypt-proxy.socket
Note: The ListenStream and ListenDatagram options need to be cleared with empty assignment before overriding, otherwise the new address would be added to the list of sockets.
[Socket] ListenStream= ListenDatagram= ListenStream=127.0.0.1:40 ListenDatagram=127.0.0.1:40
Server
- https://github.com/Cofyc/dnscrypt-wrapper - A server-side dnscrypt proxy which helps to add dnscrypt support to any name resolver.
Resolvers
- https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv - Current list of free DNSCrypt-enabled resolvers
- DNSCrypt.eu does not censor or change DNS lookups, nor log your traffic through the DNSCrypt service in a way that can identify you.
- 176.56.237.171 and 77.66.84.233
Testing
- https://dnsleaktest.com - test dns connection
DANE
- Wikipedia:DNS-based Authentication of Named Entities (DANE) is a proposed protocol to allow X.509 certificates (commonly used for Transport Layer Security) to be bound to DNS names using Domain Name System Security Extensions (DNSSEC).
- http://www.internetsociety.org/deploy360/resources/dane/
Convergence
DNSNMC
DNS-over-HTTPS
- media.ccc.de - Encrypted DNS? D'oh! - The Good, Bad and Ugly of DNS-over-HTTPS (DoH) - December 2019
Free
Dynamic
Software
Self-hosted
- https://github.com/nsupdate-info/nsupdate.info - free dynamic DNS service.nsupdate.info is also the name of the software used to implement it. If you like, you can use it to host the service on your own server.
- https://github.com/arkanis/minidyndns - A simple DynDNS server with an build in HTTP interface to update IPs
- https://github.com/brianpcurran/gandi-automatic-dns - A Bourne shell script to update Gandi.net zonefiles
Subdomain
DNS over HTTP
- https://github.com/fcambus/rrda - REST API allowing to perform DNS queries over HTTP
- https://github.com/bambenek/block-doh - This is a list of hostnames, IP addresses, and appropriate RPZ zone files to either block usage of DNS-over-HTTPS in an environment or to redirect it to a local DNS-over-HTTPS (DoH) server.
- https://github.com/Sekhan/TheGreatWall - Prevent program and malware to bypass DNS filter by using DoH
Alternate
GNU Name System
KadNode
- https://github.com/mwarning/KadNode - a small and decentralized DNS resolver that can use existing public key infrastructures. It utilizes the BitTorrent P2P network and mbedtls for TLS/crypto support. KadNode can intercept .p2p domain queries on the systems level and resolve them using a decentralized DHT network. TLS authentication can be used to make sure the correct IP address was found. If successful, the IP address is passed to the application making the request.