SmartDNS是我最近才听说的,但这个DNS已经火了很久,我是后知后觉。跟着就去了解了下,能加速DNS解析(缓存),加快打开网页速,以及所谓的防污染。在SmartDNS设置里面可以配置多个DNS服务器,还能设置DNS服务器的TCP/UDP端口,说配置多个DNS服务器可能选择最优质的DNS解析网站。

我相信既然SmartDNS能火是有他自身的优势,被集成到openwrt里,肯定也是一款好软件。闲聊下openwrt在国内大部分用于kx上网,DNS优化,但大多给出的解决方案是旁路(二房太太),openwrt是可以独立完成整个家庭网络的组建,因为开源的问题,需要自己DIY安装系统,无法行成完整的硬件产品体系和售后,导致使用openwrt人群大多是跟着网上的人做旁路由,家庭地位就没法扶正。

关于SmartDNS在国外我不清楚,我只想聊下在国内的应用。把SmartDNS先放一边,我先科普下我们网络访问的基本流程和互联网内容访问的基本构架!

第一步,上网配置

需要将网络配置好,上网的几个设置包括:

  • IP地址/子网掩码,设置本机IP地址,子网规定IP在二层广播域的IP地址长度
  • 网关:跨二层广播域到其他三层IP地址段的出口
  • DNS服务器:将域名解析为IP地址

以上三个参数配置完后,就能正常连接互联网

第二步、打开网站的流程

先说一个名称CP(Content Provider)内容提供商,国内发证叫ICP(互联网内容提供商),阿里、腾讯,奇艺、百度、头条和B站都属于内容提供商,然后我们分两种情况:

1、运营商DNS递归查询,如打开www.qq.com

这里我来说下流程,假设我们设置的是本地运营商的DNS服务器,如四川电信DNS服务器61.139.2.69, 那么在192.168.88.2电脑上请求www.qq.com的DNS解析,如果运营商本地DNS服务器没有解析缓存,马上运营商本地DNS服务器直接查询全球13台根域中的某几台,然后查询.com域名服务器一步步解析,通过递归的方式,直到找到www.qq.com对应的DNS服务器,QQ的DNS服务器会根据请求运营商DNS服务器IP地址判断是中国四川电信IP,返回给请求电脑192.168.88.2就近的四川电信内容节点服务器IP地址,完成解析。

以上的DNS解析流程,看明白了,就知道DNS解析如何工作,你自己用本地运营商的DNS,腾讯的关键域名解析都放在深圳、北京和上海建立CAP节点(核心节点),但CDN内容分发都是本省就近分发,比如用nslookup解析腾讯视频v.qq.com,看看返回的IP地址是否就在本省。

我们自己也可以搭建递归查询的DNS服务器,提供DNS的递归查询服务,返回的解析结果取决于你使用的是那个地区的运营商IP地址。自己搭建的DNS服务器还可以配置A记录、域名转发和CNAME等(DNS服务器搭建可以参考树莓派3B/4B BIND DNS)。

2、调度服务器

还有另外一种情况,CP没有建立全球DNS域名服务器,只是建立了自己调度节点tracker,在国内东南西北的三大运营商建立多个调度节点,三大运营商的DNS会解析到就近大区的IP,用户请求会先到调度服务器,调度服务器判断你的IP地址归属地址,然后在返回就近的内容服务器节点

我想以上两种方式,你看懂了,就明白你上网是如何获取内容的,CP都会设法提高自己的服务质量,部署各个省份的CDN节点,包括找内容分发的CDN代理商,如网宿、金山和白山云等帮忙分发一些内容资源,这几年阿里、腾讯和京东也在做内容分发。大厂的内容本省都部署有点位,小一点的CP可能会从资源较好的省份覆盖周边,再小的CP因为体量小,没办法大规模覆盖,可能全国就1,2个点,或者找代理分发。

而且CP有一套自己的网络质量监控系统,会及时发现网络质量,并排查原因,及时处理,我和各种CP打交道很多年,监控严格的CP运维发现故障,一个电话半夜叫你起床尿尿。所以只要你是用的三大运营商的网络(有没有内容劫持就看运营商,不过移动内容缓存劫持还很多),只要你的接入宽带网络不是二手资源如广电、长宽和方宽,用三大运营商DNS解析都能从就近的节点获取内容。前段几年的缓存大师也是通过反向代理技术给小宽带做加速,但随着https的发展,反向代理基本都歇菜了。

主流CP在广电、长宽和方宽的内网部署有自己的内容加速,当然他们的出口有可能是全国各地的三大运营商,调度不好可能会跨省跨运营商取内容资源,导致用户体验变差,不过最近几年民营运营商都不好过,就国企的广电还能继续玩。

SmartDNS说可以防止污染,我开始以为这个污染是指DNS劫持,如将某些网站的广告图片进行替换,推送第三方的内容。我在想smartDNS如何判断这个DNS是否做了劫持,会和源站比较?我在油管看了几个smartdns的视频,没提到解决广告劫持的说法,都是说多配置几个DNS服务器,判断那个解析更快,加速DNS解析,解析后会加入缓存,以后打开网站速度更快。

  • SmartDNS设置多个DNS,如何判断一个DNS服务器解析快,我只知道自己用四川电信,访问国内资源用四川电信DNS解析最合理。何况四川电信用户是无法请求云南电信、重庆电信DNS服务器的,因为运营商的ACL只允许本省IP解析,就算114.114.114.114,阿里的233.5.5.5距离肯定比在本省远吧。
  • DNS缓存这个东西,很多路由器都有,RouterOS在IP DNS菜单选择allow remote request就启用了,让自家电脑在本地网关拿到解析的IP,并请求服务器,减少请求时间,做smartDNS的朋友在视频说缓存的越久越好,但我觉得适度的缓存就可以,一般24小时,如果CP调度域名更换了解析IP,SmarDNS没有及时更新缓存,那不是打不开。
  • 说取消广告和域名劫持,改114.114.114.114说有用,自己搭建递归DNS服务也是一种选择,直接向根域名服务器请求,但遇到移动这种运营商,估计改什么DNS都没用,直接给你重定向到运营商本地DNS。

要么说是去广告,好像有其他的DNS软件,估计是预先加入了广告域名,我看那些去广告的结果就是你看到的广告区域都是白板,估计有人喜好不看广告,前几天看到有个高手做了一个浏览器插件,实现了清除那个大厂页面的广告,结果被那个大厂给告了。

所以,SmartDNS都是转发到各种DNS进行查询,运营商把DNS劫持了,去哪里都一样,除了建立隧道跳过运营商!DNS解析也在改为DoH方式,微信很多年前就已经在使用DoH解析,避免被劫持。说到内容劫持这几年没那个运营商敢搞大厂的了,大厂一旦发现后,会默默的收集证据,然后给公安机关,警察叔叔来的时候就懂了,那些搞劫持的也就只能去搞小网站。

SmartDNS能给我们提供那种加速和防污染我就真不清楚,估计还能搞下kx上网了,国外的DNS解析和内容获取也是同理,DNS解析从那个IP出去,就返回这个IP区域就近的节点,kx上网的域名转发到8.8.8.8上,然后8.8.8.8的路由确保和kx上网线路一样,就可以正确返回最近的内容节点。kx上网的方法有很多,这个我不太专业不做多的讨论,我只是把DNS解析过程和内容获取原理讲清楚了,我家就一台RB750Gr3把所有事情都包干了!

所以理解整个互联网背后工作的原理,才能明白DNS是如何工作的,大家自己去思考吧!

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章很值,打赏犒劳作者一下