关于路由器和DNS解析的一些新理解

其实我本人对于交换机和路由器这些网络硬件是比较感兴趣的,也在一点一点的学习相关知识,每次解决一个问题,就让我对一些事情有新的思考。。

今天前台同事,的机器突然上不了网,,和领导一起去看了一波,首先ping了一下网关,,然后发现,可以ping通的,然后ping了下baidu,就不通了,,,我好奇了半天。怎么回事,,,然后瞟了一眼ip,突然发现怎么是192.168.1.144.。。。不对啊,之前在总的锐捷路由器上设置的都是192.168.10.X网段的,然后顺藤摸瓜发现,发现上层还有个路由器,原来这个路由器给做了路由,,,想进后台看看,发现忘记了密码,,,,然后就想那一定是这个路由器配置有问题,,,感觉看起来像是解析不了这个域名的感觉,然后手动设置了一下dns,就好了。。。。

然后我就觉得是这个路由器没给自动分配dns然后导致的。。

但是路由器有设置分配dns这个内容的吗?好像从来没听说过。

上网搜索了一番,才终于明白

首先,你要知道二级路由器的网段是不可以和上一级路由器的网段一样的,

比如你上一级路由器的网段是192.168.1.0/24,

那么二级路由器的网段就要改成192.168.X.0/24,

也就是说这个X除了1在0-254之间的数字都可以,这样就是把两个路由器的网段给岔开了,

第二点,你要知道上一级路由器的设置信息,比如是否开启了DHCP或者其他的,比如上一级的路由器的信息是192.168.0.1/24,DHCP是开着的,从192.168.1.100-192.168.1.199,那么我们就知道了,上一级路由器的IP地址从100-199之间是可以自动获取的,其他的只能手动设置,那么我们在二级路由器设置页面中找到WAN设置,里面可以用两种方法来设置:

一种是动态获取,还有一种是静态获取,选择动态获取 这个二级路由器就会自动获取到上一级路由器DHCP分配区间中的一个IP,使用静态获取,我们可以手动设置一下IP 子网掩码 网关,DNS等等,比如我们可以把IP地址设置成为除了上一级路由器DHCP自动分配以外的IP,但是不可以设置网关,比如我们可以设置2-99或者200-254之间,随便找个IP,子网掩码用C类的255.255.255.0,网关为192.168.1.1。

DNS根据你当地的要求网上查一下或者你可以直接设置成为上一级路由器的网关也可以。这样,只要保证上一级路由器和2级路由之间网段不同,而且获取方式遵循上一级路由器的信息(你的电脑将自动跟随猫或路由器的DNS设置),这样就没问题。

还有一种就是把这个二级无线路由路由器作为AP来使用,也就是说把这个路由器变成一个无线交换机。只要把二级路由器和上一级路由器的网段岔开,然后把二级路由器的DHCP服务关掉,把上一级路由器的LAN口连接在二级路由器的LAN口上,二级路由器的WAN口什么都不连,这样这个二级路由器就变成了个AP交换机了

那我刚刚也说了,,电脑如果不是手动设置是自动跟随猫或者路由器的DNS设置的,,那这个过程又是怎么样子的

DNS的查找顺序是什么样的

是一级一级往上查找的,大概顺序是:

本机缓存表Q->本机指定的DNS地址

当本机指定的DNS地址是路由器地址时,会通过路由器缓存或直接往上通过运营商默认的dns进行查找,

当本机指定的DNS是其他地址时,比如223.5.5.5 (阿里DNS),那么就直接连接到阿里的dns进行查找。

可以在本机的ip地址界面单独修改dns%地址,也可以在手机上网络连接只里面自定义修改。

如果,想要光猫自动分配自定义的DNS地址给电脑或手机,就必须进入光猫后台,更改lan口dns设置。否则,手动设置电脑或手机。

但是,如果光猫下有接一层路由器,那么可以直接在该路由器中设置要分配的自定义DNS地址,所有电脑和手机均连接这个路由器即可自动分配到自定义的dns地址。

其实你说我们本地有dns那个对应关系吗?没有,其实这个内容都是存储在一些官方的DNS服务器上的,不过我们本地有一些dns的缓存表

可以使用命令查看

ipconfig/displaydns

记录名称仅仅是简称,而真正的名称是CNAME后面的名称。百度真正的域名名称是四级。

生存时间就是这条记录在计算机中所存在的时间,单位是秒。也就是说218秒后这条记录就会自动删除。

如何清空这些缓存呢?

可以使用ipconfig/flushdns,如图:

这样就彻底的清空缓存了,当然我们也可以继续打开某一个网址,让电脑自动缓存。。

那我又开始好奇,,电脑为什么要有这个DNS缓存这个东西呢?这个有啥用

其实域名的解析服务要严格按照从根域名服务器、顶级域名服务器再到权威域名服务器的一级级查询过程

但是实际中,其实DNS解析过程并不总是严格遵循以上的流程,其实从我的小格局来看就是为了减少对那些DNS服务器的访问嘛,然后做个本地缓存,这个缓存还有时限,这样既能更新,又减少了DNS服务器的压力,,

那我又想这样有什么害处呢?

首先,DNS缓存只会保存查询结果,而不会检查该结果是否有效,这就导致如果域名与IP地址的映射关系发生变化,DNS缓存中仍记录原有过期的信息。在这种情况下,用户请求网站,从DNS缓存中读取的信息就是错误的,就可能导致网站不可达或者被导向一个错误的网站,当然,我们经常访问的一些百度,腾讯,肯定不会随便去变化的,所以一般也很少出现,但是要是自己的服务完全可能出现这种情况。比如说你要更换一个域名这种情况

其次,DNS缓存容易被恶意攻击者利用,对DNS发动缓存投毒攻击造成DNS劫持,将访客诱导至受攻击者控制的网站。DNS缓存投毒攻击是指攻击者利用DNS缓存的原理,在权威解析服务之前将伪造的数据包发送到DNS服务器中,当访客请求到DNS服务器时,就会将错误的数据发送给访客,从而达到DNS缓存攻击的效果。

此外,DNS缓存也会导致DNS服务器负载的增加,如果DNS查询的响应时间过长,或者缓存中保存的查询结果过多,都可能会导致DNS服务器的负载增加,从而影响网站的访问速度。

查找DNS缓存的顺序

(1)浏览器DNS缓存:浏览器会根据一定频率缓存DNS记录;

(2)本地DNS缓存:如果浏览器缓存中找不到解析记录,就会去询问操作系统中的缓存;

(3)本地HOSTS文件:HOSTS是记录域名与IP地址一一映射关系的本地文件,Windows系统中位于C:\Windows\System32\drivers\etc;

(4)路由器DNS缓存:我们常用的路由器也带有自动缓存功能,路由器DNS被篡改会造成域名劫持,将访问网址定位到另外一个服务器;

(5)递归服务器缓存:递归服务器在将解析结果告知客户端的同时,将记录缓存下来,当下次请求同一个域名时,直接会将记录返回,而无需再进行全球查询。

通过这次又仔细的了解了一波dns的原理,希望下次能更精进

相关推荐
hakesashou1 小时前
Python中常用的函数介绍
java·网络·python
C++忠实粉丝2 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
九州ip动态2 小时前
做网络推广及游戏注册为什么要换IP
网络·tcp/ip·游戏
Estar.Lee2 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月2 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM2 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
儒道易行2 小时前
【DVWA】RCE远程命令执行实战
网络·安全·网络安全
Koi慢热3 小时前
路由基础(全)
linux·网络·网络协议·安全
hzyyyyyyyu5 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全