DNS

DNS是域名系统,用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。我们无法记住太多的ip地址,所以产生了域名。域名在公网和内网都有广泛应用,大多数具备域环境的网络都会存在一台或多台DNS服务器,它的常用端口为53。
它由下面几个部分组成:

  • 名称解析器(resolver)
  • 域名空间(domain name space)
  • 名称服务器(name server)

DNS记录

每个域名都带有自己的记录,这是DNS能识别归属域名的关键,主要的记录资源有以下几种:

  • A
  • AAAA
  • NS
  • SOA
  • MX
  • CNAME
  • SRV
  • PTR
  • TXT

A记录

A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少, 它是域名和IP地址的对应关系。

这是DNSpod上的解析,WWW是主机记录值,也是你的子域名如www.kitsch.live,想直接指向域名,添加@记录。抹除部分为指向ip。

AAAA

A记录的IPV6版本,将域名指向一个IPV6地址。

NS

NS(NAME SERVER)记录是域名服务器记录用来指定该域名是由哪个DNS服务器来解析。注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器的NS记录地址一般以以下的形式出现:f1g1ns1.dnspod.net等。
简单来说,NS记录是指定由哪个DNS服务器解析你的域名。

SOA

SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器。
SOA 记录表示此域名的权威解析服务器地址。 当要查询的域名在所有递归解析服务器中没要域名解析的缓存时,就会回源来请求此域名的SOA记录,也叫权威解析记录。
像我的个人站域名是没有SOA解析记录的。

MX

邮件交换 (MX) 记录将一个网域的电子邮件定向到托管该网域用户帐号的服务器。
在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里。
一个网域可定义多条MX记录,每条记录有不同的优先级。如果邮件通过最高优先级记录无法递送,则采用第二优先级,以此类推。
个人站也没得邮件服务器,但你可以设置MX,这样DNSpod就能给你发邮件了。

CNAME

CNAME 记录(即规范名称记录)将一个别名关联到另一个真正的或规范的域名。例如,www.example.com 可能会关联到 example.com
与A记录的关系:
A记录是把域名解析到IP地址,而CNAME记录是把域名解析到另外一个域名,而这个域名最终会指向A记录,在功能实现在上A记录与CNAME记录没有区别。
CNAME被广泛应用在CDN识别域名归属上。

SRV

SRV记录是服务器资源记录的缩写,记录服务器提供的服务,SRV记录的作用是说明一个服务器能够提供什么样的服务。
SRV记录是DNS记录中的新面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。
SRV记录在微软的Active Directory中有着重要地位,win2000以后,域就已经离不开DNS,域内的计算机依靠SRV记录来定位域控。

PTR

PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。

TXT

TXT 记录是为您所在网域之外的来源提供文本信息的一种 DNS 记录,可用于多种用途。该记录的值可以是人工可读文本,也可以是机器可读文本。
比如google校验域名的所有权时会用到。

CDN

CDN的全称是Content Delivery Network,即内容分发网络,它能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
总而言之,CDN将请求先分散到各个CDN节点上,再返回真实IP。对渗透而已,它隐藏了域名的真实IP,使得行动更隐秘。

用户使用DNS访问域名的过程:

  1. 用户向浏览器提供访问域名
  2. 浏览器首先向本地DNS缓存查询,若存在则直接访问IP地址
  3. 浏览器向DNS服务器请求
  4. 本地DNS向根服务器发起请求
  5. 根服务器再向本地服务器返回一级服务器
  6. 一级服务器把所授权的权威DNS返回给本地DNS,权威DNS服务器将IP地址作为解析结果送给本地DNS解析服务器
  7. 本地DNS解析服务器把IP地址返回给用户,从而完成一个解析过程

配置DNS后,使用DNS域名:

  1. 用户向浏览器提供访问域名
  2. 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问
  3. 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求
  4. 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求
  5. 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程
  6. 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程

CDN可以隐藏真实的服务器,用来隐藏CS真实IP,详情可以看我的另一篇文章隐藏CS服务器真实IP

DNS上线CS

适用于目标主机只有DNS出网的情况,或需要隐藏tcp流量。原理是使用CDN的TXT记录进行传输,因为我的域名有点问题就不再演示。


"孓然一身 , 了无牵挂"