网站首页 > 文章精选 正文
一、漫不经心的存在——DNS
在给电脑设置IP地址的时候,要配置IP地址、子网掩码、默认网关,这些理所当然被认为是必须的,因为在互联网的世界里,IP地址就是用来标记电脑的互联网地址,有了地址才可以和别人通信。
同时,还需要设置2个DNS服务器,如果不设置,基本上99%以上的网站也上不了,这玩意与网速息息相关,但一般人都不care。
二、我们是怎么把消息发给对方的?
无论是上网还是发微信,手机/电脑都是把数据打包,然后把对方的IP地址填入数据包的头部,运营商的网络根据数据包头部的这个IP地址,不停地一站转一站,最后送达配置这个IP地址的设备上。IP地址就像生活中的住址,快递公司根据住址信息,帮你把快递准确无误地送达目标。
三、IP地址没有规律,太难记!
IPv4地址由32位2进制数字组成,一般表示为4段点分十进制,人们每次上网的时候,都要准确无误地输入这一串长长的数字。互联网上的网站千千万万个,这如何能记得住呢?更可怕的是,地球上IPv4地址不够用了,人们开始使用IPv6地址,IPv6地址由128位2进制数字组成,长度是IPv4的4倍,一般表示为8段点分十六进制,人们开始抓狂了......
四、DNS应运而生
懒惰是人类社会发展的源动力,人们不愿意记忆这些毫无规律的数字,于是发明了DNS。DNS系统是一个存储了所有计算机名称与IP地址之间对应关系的分布式数据库,从此,人们上网无需记住IP地址,只需要记住具有代表意义的名称即可,比如百度:www.baidu.com。但其带来的代价是,每一次上网,计算机都要去问一下DNS,拿到对应的IP地址后才能访问网站。
五、DNS查询流程(以百度为例)
电脑/手机等终端在上网时,向网卡中设置的DNS服务器(一般称之为Local DNS,本省运营商搭建的)发起域名解析请求(递归查询) 。DNS是一个分布式数据库,一开始Local DNS也不知道www.baidu.com的IP地址是多少,所以它也是根据域名结构一级一级去查询(迭代查询),最后由百度公司的权威DNS服务器返回www.baidu.com的IP地址给运营商的Local DNS服务器,运营商的Local DNS服务器再把结果返回给用户,用户根据这个IP地址进行上网了。用户上网时域名解析和访问网站的10个步骤如下图:
六、DNS设置被恶意篡改的后果
终端(电脑、手机、PAD等)DNS设置被一些软件或者病毒恶意篡改,可能出现的后果非常严重:你访问的网站在DNS域名解析的时候被恶意DNS服务器解析成假冒网站的IP地址,从而导致你去访问钓鱼网站或者带病毒的网站。这个危害非常巨大,一定要小心!
七、DNS设置不合理的后果
(一)第一个后果:
终端DNS设置不合理(比如设置成一些公众DNS,如8.8.8.8等),可能会导致网速变慢很多。第一个后果是:用户在解析域名的时候,从发起解析请求到DNS服务器返回结果给用户的时延会变大。举个例子,北京移动的用户访问百度的时候,要先进行域名解析:
(1)如果DNS设置成北京移动的DNS,这时候DNS服务器和用户很近,用户从发起解析请求到DNS服务器返回结果<30毫秒。
(2)如果DNS设置成公众DNS 8.8.8.8,这时候DNS服务器和用户很远,用户从发起解析请求到DNS服务器返回结果>60毫秒。
(二)第二个后果:
现在很多大型网站都建设了很多个节点,这些节点遍布三大运营商的IDC机房。你要访问的某个网站内容,可能在移动、电信、联通的机房里都有,不仅如此,在同一个运营商内部,可能多个省都有。很显然,用户当然是到同一个运营商内部的本省IDC机房(或最近的省)去获取资源,是最快的。举个例子,北京移动的用户访问百度的时候:
(1)如果DNS设置成北京移动的DNS,则DNS会把百度域名解析到北京移动站点1.1.1.1,这时候服务器和用户很近,而且没有跨网,打开网页<1秒。(人的感知:网速快如闪电)
(2)如果DNS设置成公众DNS 8.8.8.8,则DNS可能会把百度域名解析到广东电信站点2.2.2.2,这时候服务器和用户很远,而且要跨网,打开网页>3秒。(人的感知:网速慢如蜗牛)
八、家庭宽带的DNS设置情况一(默认,多数)
大多数用户家里的电脑/手机/PAD等终端的DNS是配置为自动获取,这代表其从路由器自动获取,路由器通过DHCP协议把IP地址和DNS地址分配给终端。这时候路由器一般是把自己的LAN口地址作为DNS服务器地址分配给客户端,路由器作为一层代理,给终端进行DNS应答。如果路由器使用DHCP方式接入光猫,那光猫也是把自己的LAN口地址作为DNS服务器地址分配给路由器,光猫作为另一层代理,给路由器进行DNS应答。
家庭宽带的DNS设置情况和家庭组网模式有关,具体组网模式的介绍可参考本人另外一篇文章——《大“猫“小”鹿”or 小”猫”大”鹿”》。
在这种情况下,电脑/手机/PAD等终端的每一次DNS域名解析时分为三步:
第一步:终端向路由器 192.168.0.1(即路由器的LAN口地址,也是路由器DHCP设置中的网关IP)发起DNS解析请求;
第二步:路由器向光猫192.168.1.1(即光猫的LAN口地址,也是光猫DHCP设置中的网关IP )发起DNS解析请求;
第三步:光猫向运营商DNS服务器218.85.15.16(此IP地址为举例,每个省都不一样)发起DNS解析请求。
运营商DNS服务器在应答的时候,也是三步,与上述类似。
在这种情况下,如果你购买的是一些比较小众(便宜)的路由器,电脑/手机/PAD等终端的DNS域名解析还可能碰到一些其它的情况:
第一步:终端向路由器 192.168.0.1(即路由器的LAN口地址,也是路由器DHCP设置中的网关IP)发起DNS解析请求;
第二步:路由器不向光猫发起DNS解析请求,而是向内置的公众DNS服务器(如谷歌DNS 8.8.8.8)发起DNS解析请求;
这个时候可能出现上述“DNS设置不合理的后果(二)”中的情况,导致网站解析出来的IP不是最优,然后用户访问就慢了很多。
九、家庭宽带的DNS设置情况二(少数)
在这种情况下,电脑/手机/PAD等终端的每一次DNS域名解析只有一步:
终端向运营商DNS服务器218.85.15.16(此IP地址为举例,每个省都不一样)发起DNS解析请求。运营商DNS服务器在应答的时候,也是直接回复给终端。
在这种情况下,每一次域名的解析时延从大于20ms变成小于10ms,而且,因为少了中间设备可能存在的干扰,运营商DNS服务器直接把最优的网站IP地址回复给终端,终端访问网站的速度变快了许多。
十、如何让自己家里的电脑/手机/PAD等终端的DNS都是直接使用运营商DNS服务器呢?
第一步:查光猫,看一下自家网络的运营商DNS服务器IP地址是多少。查看光猫背面粘贴条上的信息,使用电脑登录上面的管理页面,查看光猫上的网络侧信息,在网络侧信息中会有DNS1和DNS2的信息,这个就是运营商local DNS服务器的IP地址;
第二部:配置路由器,查看路由器背面粘条上的信息,使用电脑登录上面的管理页面,在管理页面上找到“DHCP服务”的配置菜单项,将这里的DNS 服务器配置为第一步中查看到的IP地址。
设置成功后的验证:
十一、非常坑爹的路由器(雷,一定要避)
有一些非常坑爹的小众(便宜)的路由器,电脑/手机/PAD等终端的DNS就算设置成运营商的DNS服务器,它还是会对DNS请求报文基于“UDP +port 53”进行劫持,而且不去咨询运营商的DNS服务器去获取解析结果,而是向8.8.8.8等公众DNS及一些第三方小DNS发起域名解析请求,导致网站解析出来的IP不是最优,然后用户访问就慢了很多,甚至访问钓鱼网站。
总结:
1、互联网是基于TCP/IP协议的,所以每台终端都有一个IP地址,IP地址就像门牌号,网络设备就是通过识别IP地址进行转发的 。
2、IP地址不好记,没有规律,所以人们更愿意使用有意义有规律的名称,即域名。
3、网络设备看不懂域名,所以需要有个设备和协议,把域名解析成IP地址,这就是DNS系统和DNS协议,很显然,DNS极其重要。
4、DNS解析对网速的影响有2个方面,第一方面,完成解析这个事情本身的时延,是大还是小?第二方面,解析出来的IP,是不是最合理的,距离用户最近的?其中,第二方面影响的权重要比第一方面大很多。
5、所以,光猫和路由器上的DNS设置非常重要,强烈推荐把DNS设置为用户所接入的运营商省份的DNS服务器地址,可以避免很多不理想的情况,能够有效提高网速,并提升网络稳定性。
6、路由器的质量非常重要,一定要选购大品牌质量好的路由器。有约xx%的路由器,能够对目的地指向它的DNS请求,比较任性地进行解析,导致网络变差。在这里面,还有一小部分的路由器,更为过分,对目的地不是指向它的DNS请求,也劫持了,然后任性地进行解析,导致网络变差。
猜你喜欢
- 2025-04-01 给局域网特定设备分配公网IPv6地址,网络稳定性+内网穿透我都要
- 2025-04-01 从IP地址到街道如何利用技术定位精准的地理位置?
- 2025-04-01 操作系统中的网络IP与DNS设置(网络操作系统的配置)
- 2025-04-01 网工必看!如何形象生动的解释IP地址、子网掩码和网关?
- 2025-04-01 十分钟小课堂|计算机类:IP地址及子网划分
- 2025-04-01 网络知识|子网的基本概念与作用(子网解释)
- 2025-04-01 比IPv4加了个2的IPv6 有啥不一样(ipv6比ipv4具有更小的路由列表)
- 2025-04-01 IPv6地址的格式及子网划分方法(ipv6地址格式例子)
- 2025-04-01 网工成长笔记《三》:IP编址(ip地址编码规则)
- 2025-04-01 Linux内核源码走读之IPv4及IPv6(linux的ipv4配置)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)