双网卡双线路DNS解析分析
在企业网络维护过程中我们经常会遇到这样或那样的奇怪问题,而很多问题需要有深厚的理论知识才能解决。而随着网络的飞速发展越来越多的中小企业开始尝试通过多条线路来保证网络的畅通,一方面双网卡下的双线接入可以保证我们的速度有所提升,彻底解决网通与电信双网交叉访问问题;另一方面双线接入保证企业网络即使有一条线路出现问题另外一条也可以马上接管工作,从而保证企业网络畅通无阻,为企业外网接入提供冗余功能。今天我们也主要讨论下在双网卡双线路接入下的问题。
一,认知盲区解惑之DNS解析:
在实际工作中我们可能会产生以下疑问——当我们使用双网卡双线路时本地数据如何转发呢?究竟是通过哪个网卡向外传输又或者说域名解析工作该交给哪个网卡来完成呢?今天笔者就从实际出发从各位网络管理员的认知盲区下手为各位解惑双网卡下DNS解析的问题。
二,网络环境介绍:
直接在一台双网卡的计算机进行测试和操作,该机器安装了两个10M/100M自适应网卡,一个是无线网卡,另外一个是有线网卡。两个网卡分别连接两条不同的线路。网卡1是有线网卡获得的网络参数为——ip地址192.168.0.199,子网掩玛255.255.255.0,网关地址是192.168.0.1,而网卡2是无线网卡获得的是ip地址192.168.1.113,子网掩玛255.255.255.0,网关地址是192.168.1.1。
使用ipconfig /all查看两个网卡的DNS信息可以看到网卡1的DNS地址就是192.168.0.1,网卡2的DNS地址是192.168.1.1,当然这两个地址实际上对应的是两台路由器,各自路由器又对应外网接入。这样就形成了一个两网卡两线路的测试环境。
三,测试1——双网卡下DNS解析:
那么现在我就要向各位读者提出问题了,在这种连接方式下两个网卡分别连接两个网段,而这两个网段又分别提供了外网接入和数据路由功能的话,在实际使用过程中DNS是参照哪个网卡呢?答案无外乎三种——按照网卡1的DNS进行解析,按照网卡2的DNS解析,从哪个网卡传输就用哪个网卡的DNS进行解析。
我们在本机执行nslookup sohu.com针对此地址进行DNS解析操作,从结果可以看出搜狐的IP地址被成功解析出来,解析过程中使用的DNS服务器是192.168.1.1,也就是说解析时采用了网卡2上的DNS服务器地址来完成域名到IP的转换工作。
四,测试2——单网卡下DNS解析:
接下来我们将网卡2关闭禁用,再次执行nslookup sohu.com后可以看到IP地址还是被成功解析出来,这次使用的DNS服务器地址为192.168.0.1与网卡1的DNS服务器地址相符。
五,测试3——再次连接双网卡下DNS解析:
我们重新将网卡2开启并顺利连接之前的网络,再次执行nslookup sohu.com后可以看到IP地址还是被成功解析出来,这次使用的DNS服务器地址为211.103.158.182。
登录网卡1对应的路由器地址(192.168.0.1)查看其获得的DNS是202.106.195.68,与上面的地址不相符。
登录网卡2对应的路由器地址(192.168.1.1)查看其获得的DNS是211.103.158.182,与上面的地址相符。
经过比较和分析在再次启用网卡2后本地计算机执行域名解析工作又交给了网卡2对应的DNS服务器地址。
六,测试4——关闭有线网卡后再次开启下DNS解析
那么是不是本机进行DNS解析时会使用最近一次活跃的网卡呢?我们再次尝试将有线网卡——网卡禁用再开启,如果DNS解析时会使用最近一次活跃的网卡,那么这时本机的DNS地址应该变成网卡1的,但是事实证明这个假想是错误的,再次执行nslookup sohu.com后可以看到IP地址还是被成功解析出来,这次使用的DNS服务器地址还是之前的211.103.158.182,此地址依然是网卡2对应的DNS服务器地址。
七,总结:
从上面多个测试我们得出了以下结论——当我们有一个网卡启用而其他网卡禁用或断开时访问外网DNS解析交给该活动网卡中设置的DNS服务器地址;当有两个网卡都处于启用状态时系统会根据规则自动选择一个网卡的DNS服务器地址来解析,如何选择与两个网卡哪个先关闭哪个先开启是没有任何关系的。那么系统自动选择的规则是什么呢?
我们继续这个话题为各位从认知盲区解惑双网卡双线路DNS解析。
一,测试结论的一点思考:
从结论上看不管我们如何插拔网线和禁用启用网卡,当本机连接两个网卡时系统总是以网卡2的DNS服务器地址作为传输解析使用。
(1)本地连接次序决定优先级?
那么这个优先级是以什么规则来决定判断的呢?从本地网络状况处查询可知网卡1对应的是本地连接1,网卡2对应的是本地连接2,这也说明本地系统在选择DNS服务器地址时并不是根据本地连接次序来判断其优先级的。
(2)有线无线有别决定优先级?
那么是否无线网卡的优先级就一定比有线网卡的高呢?结论也不是肯定的,笔者还针对了其他几个机器进行了测试,发现有的机器有线网卡优先级总是比无线网卡的高,因此这个结论也被否决。
(3)IP地址决定优先级?
从实际参数查询可以看出网卡1是192.168.0.1,网卡2是192.168.1.1,那么是不是IP地址越大优先级越高呢?经过测试发现事实也不是这样的,优先级与IP地址的具体数值无关。
二,系统自身DNS服务器地址竞争规则:
经过反复比较和查询资料笔者最终发现了系统自身DNS服务器地址竞争规则,那就是从注册表中要答案。
第一步:我们通过regedit命令进入注册表编辑器,然后找到[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Tcpip/Parameters/Interfaces/这个键值。
第二步:在该键值下我们可以看到有很多字符键值,每个字符键值都包含32个数值。(如图1)
第三步:当我们查看第一个时就会发现实际上他对应的就是网卡2,里面的IP地址是192.168.1.1。
第四步:同时在其下的dhcp name server(DNS)中也能够看到DNS服务器地址211.103.158.182,202.106.0.20的身影。
第五步:反观网卡1对应的键值却要排名靠后很多,DNS地址,IP地址等信息也都在该键值里写得清清楚楚。
由此我们可以得出系统自身DNS服务器地址竞争规则是按照注册表中各个网卡的顺序来排列的,排名靠前的网卡DNS地址优先考虑,排名靠后的网卡DNS地址不予考虑。
三,总结:
至此我们就彻底弄清楚了双网卡双线路时DNS服务器的选取规则,以后在进行具体设置和故障排查过程中我们也要牢记这点,如果非要让其他网卡的DNS优先考虑的话就要通过编辑注册表的方式来解决了,可以把DNS对应的网卡在注册表中位置调整得靠前。
转自http://www.233.com/cisco/zhonghe/20081101/105158457.html
双网卡双线路DNS解析分析的更多相关文章
- rh358 003 ansible部署双网卡绑定 DNS原理 bind正向解析
双网卡绑定 绑定多张网卡成为逻辑口,从而实现链路冗余,以及数据流量的负载均衡 1.创建team口 [root@servera ~]# nmcli connection add type team co ...
- 在K8S集群中使用busybox-dig镜像,来作DNS解析分析
以前,判断K8S里的DNS功能是否正常时,得想很多办法. 如果有了busybox-dig镜像,则作这事就简单多了. 如下命令,直接部署 kubectl run busybox -it --image= ...
- DNS解析分析
一.基本概念 域名系统: 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使 ...
- 简单介绍智能DNS解析+双线路接入
导读:在讨论这个问题,其中群友老孤同志也提供了不少非常有参考价值的资料,所以我们再把这些资料再整理一次,从比较底层的技术原理上重新进行一次分析. 我们知道,因为南电信北网通现象的存在,我们的服务器 ...
- 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...
- (转)深度分析Linux下双网卡绑定七种模式
现在一般的企业都会 使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在 网卡产商也会出一些针对window ...
- 深度分析Linux下双网卡绑定七种模式
现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在网卡产商也会出一些针对windows操 ...
- DNS解析全过程分析
DNS解析过程 1.检查浏览器缓存中是否缓存过该域名对应的IP地址 用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址, 当用户再次访问的时候,浏览器就会从缓存中查找该域名对应 ...
- 分析DNS解析时间
提高网页的打开速度,一般地我们会选择使用CDN,利用“就近原则”让用户在最短的时间内获取到服务器资源,实际应用当中采用CDN的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...
随机推荐
- 踩坑记:Tensorflow环境搭建
自从上一篇论文投出去,之后就各种事就来了……处理那些乱七八糟的事就是让人心累,在加上师哥们毕业,能帮我的人越来越少了,而要指望你的人呢,越来越多.一想到那些用搜索引擎都搜不到资料的人,蓦地想起邓爷爷说 ...
- MySQL_时间戳处理
时间戳查询当天范围的数据 date(FROM_UNIXTIME(createAt, '%Y-%m-%d %H:%i:%s')) = CURDATE() 例: SELECT * FROM q_compa ...
- python基础一 ------如何根据字典值对字典进行"排序"
需求:{姓名:成绩} 的字典,按成绩进行排序 方法一:转化为元组,(91,"张三")的形式 ,用sorted()函数进行排序 方法二 :设置sorted() 中key的参数的值 # ...
- git 命令的使用
hello git 穿越时空 修改一条数据 git status 查看是否修改 git diff file1 如何修改的 git add file1 git commit -m "提交的信息 ...
- MySQL(五)
关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据:根据范式要求应该存储学生的编 ...
- Django——分页
必要属性和方法 per_page: 每页显示条目数量 count: 数据总个数 num_pages:总页数 page_range:页面范围,从1开始,例如[1,2,3,4]. page: page对象 ...
- 【C语言程序】让用户输入十个数,用冒泡排序法从小到大排序
#include <stdio.h> #define N 10 void swap(int*a,int*b); int main(int argc, char *argv[]) { in ...
- 原生ajax请求
$('#send').click(function(){ //请求的5个阶段,对应readyState的值 //0: 未初始化,send方法未调用: //1: 正在发送请求,send方法已调用: // ...
- Linux命令之tar篇
作业一: 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) [root@localhost ~]# cat /etc/passwd /etc/group > ...
- Uva11582 Colossal Fibonacci Numbers!(同余模定理+快速幂)
https://vjudge.net/problem/UVA-11582 首先明确,斐波那契数列在模c的前提下是有循环节的.而f[i] = f[i-1]+f[i-2](i>=2)所以只要有两个连 ...