DNS 解析常识

DNS:Domain Name System,是互联网的基础。TLD / Domain Name / FQDN

几个基础 RFC 规范:

  • RFC 1034:Domain names - concepts and facilities.
  • RFC 1035:Domain names - implementation and specification.
  • RFC 8499:DNS Terminology.
  • Ron Aitchison’s DNS for Rocket Scientists.

DNS 解析

FQDN

FQDN - Fully qualified domain name

BIND and DNS

  • BIND:The most widely used Name Server Open Source Software。
  • ISC:Internet Systems Consortium),负责域名服务器软件 BIND 开发和维护的组织。
  • Open Stand

解析示例

[serverfault - DNS: trailing periods][]
[Pro DNS and BIND][Pro DNS and BIND 2005th Edition - Ron Aitchison]

@:空主机头,直接解析主域名,比如:80gou.com(@ IN A 86400 192.0.34.166)

nginx 对 trailing dot(full stop | period) 的处理

至少 nginx 1.8 可以完全处理 FQDN 问题,你不需要做任何处理。你可以试验一下 host 和http_host 变量。host 会移除最后的 .,而http_host 不会移除。如果你想进行统一处理,移除最后的 .,则 Nginx - Redirect Domain Trailing Dot

The following snippet does this in a general way, without having to hard code any hostnames (useful if your server config handles requests for multiple domains). Add this inside any server definition that you need to.

if (http_host ~ "\." ){
rewrite ^(.*) scheme://host$1 permanent;
}

概念

  • 权威 DNS(Authoritative name server)
    权威就是对该域名及下级域名能“说了算”的服务器;在权威上可以设置,修改,删除该区域内的解析记录, 而非权威DNS只能是查询。

  • Local DNS
    Local DNS 就是和我们日常上网接触最多的 DNS,包括你的服务提供商(ISP)分配给你的 DNS(一般为两个),或者公共 DNS。因为填写在你的本地电脑上,所以也称为Local DNS。

  • 什么是公共 DNS(public DNS providers)
    要上网就必须使用 DNS(将 Domain Name 域名转成 IP 地址)。这个 DNS 可能是你的运营商提供给你的,也可以是一些其它组织提供的,比如我们熟知的谷歌的 8.8.8.8,国内 114 dns的 114.114.114.114。他们负责给我们的请求提供解析服务。

请注意,公共 DNS:
不是根服务器;
不是权威 DNS 托管商,不提供域名注册等服务,比如万网和 DNSpod;
不是权威 DNS,不针对个别域名进行解析;
 
公共 DNS 服务的特点:
 1. 服务的域名数量巨大,用户数多;
 2. 要具有安全性和抗攻击性;
 3. 低延迟(响应快);
 4. 无拦截(无广告);
 5. 对解析成功率要求非常的高。
  • A记录
    A (Address) 记录用来指定主机名(或域名)对应的 IP 地址记录。通俗地说,A 记录就是服务器的IP,域名绑定 A 记录就是告诉 DNS,当你输入域名访问网站的时候将你引导到设置在 DNS 的 A 记录所对应的服务器上。
Windows 下命令
  • nslookup
    进入命令行输入域名即可得到对应 IP;
  • ipconfig /all | find "DNS" /i
    查看你机器的DNS;
  • ipconfig /flushdns
    清空本地缓存;
参考