1:为什么有dns,dns有什么用?
首先,我们要知道网页浏览的实质是用户访问服务商主机中的文件内容。
那么在没有出现域名之前是什么样子的?
访问一台主机只能通过服务商主机在网络中的ipv4地址进行访问
例如我们通过114.116.236.109访问csdn
(但是随着cdn边缘分发的发展和一些安全的需要,这种ip访问也逐渐被淘汰)
扯远了,那么dns最重要的作用是什么?
是域名的可读性
。
域名 | Value |
---|---|
baidu.com | 百度 |
qq.com | |
csdn.net | csdn |
2:dns如何进行分发的:
dns服务器实际上是专门用作域名解析的服务器,和普通服务器并无不同,不过是跑的域名解析的服务。
2.1:域名的存储:
dns服务商会收集所有已经成功注册,解析的域名的数据存储在自己的dns服务器上。
国内的dns服务商:
DNSPod。国内4大智能线路细分,国外线路细分。7条主流搜索渠道SEO优化。10个DNS节 …阿里云。子域名数量:无限制。记录类型:A、AAAA、CNAME、MX、NS、TXT、SRV …
京东云。智能解析线路(国内10条)最低TTL 120S。A记录负载均衡 5条。子域名级别 3级。 …
华为云。免费添加50个域名(可申请更多额度)目前没有付费服务。智能解析线路(地区, …
2.2:域名的解析:
以csdn.net
为例
1:当我们访问csdn的网址的时候,实际上是访问电脑预设的dns服务器(默认为运营商dns)
2:然后dns服务器返回csdn域名对应的ip地址,然后电脑访问csdn对应ip的主机,最后获得csdn的页面。
3:dns目前存在的问题:
3.1 DNS 污染:
该图片转自https://www.jianshu.com/p/5c1abb7f641d
网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning)。
是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。
一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的计算机导引往错误的服务器或服务器的网址。
3.2 DNS 挟持:
dns挟持与dns污染不同一般由dns服务器拥有者主动造成的返回错误。
例如我想访问csdn(csdn.net),我的dns服务器是百度的服务器,百度把正常应该返回的csdn的ip地址替换成了百度搜索的ip地址。
这样一来我访问csdn就变成了访问了百度!(运营商挟持比较常见)
当然以上例子是开玩笑的。
4: DNS 的其他优势:
4.1:DNS负载均衡:
为了充分利用现有服务器软件的种种优势,负载均衡最好是在服务器软件之外来完成。而最早使用的负载均衡技术是通过DNS服务中的随即名字解析来实现的。这就是通常所说的DNS负载均衡技术。DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。很多网站使用DNS负载均衡来保证网站的运行和可访问性。
4.2:DNS的cdn分发:
刚才说到cdn实际上是一个就近访问,那么现在有一个问题是,我们怎么知道用户的所在位置从而给他分配最佳的cdn节点呢。这就需要dns服务来进行定位了。当我们通过使用dns服务的时候,可以根据他使用的LDNS服务器来进行一个定位,例如我们的调度服务器看到他是来自深圳电信的LDNS服务器,那么我们就认为该用户来自深圳电信,然后调度服务器可以让该用户去访问深圳电信的CDN服务器,这样就让用户访问到了最优的cdn节点。
通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点,但是这种调度方式存在一个问题,例如,当我 是北京联通的用户但是使用的却是深圳电信的ldns的话,调度服务器会给我分配到深圳电信的cdn服务器,这样就产生了错误的调度。
引用https://blog.csdn.net/hetoto/article/details/90509328
5:结尾:
希望一起学习,一起进步!