什么是DNS
DNS(DOMAIN NAME SYSTEM)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
名词解释
也被称作「网址」,用于定为互联网上的资源

DNS 工作流程

DNS请求方式
如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
因此,递归查询返回的查询结果或者是所要查询的IP地址或者是报错,表示无法查询到所需的IP地址
DNS服务器的常见记录类型
又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上
www.example.com IN A 139.18.28.5;
定义主机的IPV6地址
1251625956.s2txipv6.cdntip.com 103 IN AAAA 240e:940:401:1:1a::
解析服务器记录,定义DNS信息服务器所在的位置,用来表明由哪台服务器对该域名进行解析。
NS记录只对子域名生效。
zhihu.com 52908 IN NS ns4.dnsv5.com.
zhihu.com 52908 IN NS ns3.dnsv5.com.
定义在多个NS服务器中哪个是主服务器
# ns3.dnsv5.com. 是主服务器
IN SOA: ns3.dnsv5.com. enterprise3dnsadmin.dnspod.com. 1594718785 3600 180 1209600 180
邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理
如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件
happy.example.com 作为邮件服务域名 IN MX happy.example.com.
A记录描述邮件服务器IP happy.example.com. IN A 123.123.123.123
通常称别名指向。您可以为一个主机设置别名。比如设置test.mydomain.com,用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com来代替访问www.rddns.com了(A 记录优先级高于 CNAME,若一个主机地址同时有 A 记录和 CNAME,则 CNAME 不生效)
www.example.com IN CNAME example.com.
提供文本信息
zhihu.com 600 IN TXT "google-site-verification=q42VyLbU7bjRv5xb2279AX9jJ3Vuxp-e4XG_f1EQRGk"
DNS查询工具
用来查询dns的小工具
交互式查询域名服务工具
DNS 服务器高可用
DNS 的不足
DNS 劫持
HTTP 劫持
http://wzjk.iis7.net/
3、浏览器对同一Host建立TCP连接到数量有没有限制?(拜托,一个网站那么多图片,开一个TCP连接,按顺序下载?那不是等到死?)
HTTPDNS
HttpDNS的原理非常简单,主要有两步:
客户端直接访问HttpDNS接口,获取业务在域名配置管理系统上配置的访问延迟最优的IP。(基于容灾考虑,还是保留次选使用运营商LocalDNS解析域名的方式)
客户端向获取到的IP后就向直接往此IP发送业务协议请求。以Http请求为例,通过在header中指定host字段,向HttpDNS返回的IP发送标准的Http请求即可。
从原理上来讲,HttpDNS只是将域名解析的协议由DNS协议换成了Http协议,并不复杂。但是这一微小的转换,却带来了无数的收益:
A、根治域名解析异常:由于绕过了运营商的LocalDNS,用户解析域名的请求通过Http协议直接透传到了腾讯的HttpDNS服务器IP上,用户在客户端的域名解析请求将不会遭受到域名解析异常的困扰。
B、调度精准:HttpDNS能直接获取到用户IP,通过结合腾讯自有专利技术生成的IP地址库以及测速系统,可以保证将用户引导的访问最快的IDC节点上。
C、实现成本低廉:接入HttpDNS的业务仅需要对客户端接入层做少量改造,无需用户手机进行root或越狱;而且由于Http协议请求构造非常简单,兼容各版本的移动操作系统更不成问题;另外HttpDNS的后端配置完全复用现有权威DNS配置,管理成本也非常低。总而言之,就是以最小的改造成本,解决了业务遭受域名解析异常的问题,并满足业务精确流量调度的需求。
D、扩展性强:HttpDNS提供可靠的域名解析服务,业务可将自有调度逻辑与HttpDNS返回结果结合,实现更精细化的流量调度。比如指定版本的客户端连接请求的IP地址,指定网络类型的用户连接指定的IP地址等。
通过BGP网络保证不同运营商的用户可以快速访问网络
通过在多个数据中心部署服务互备实现高可用
附录