双网卡双线路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的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...
随机推荐
- C# SQLiteHelper
using System; using System.Data; using System.Data.Common; using System.Data.SQLite; using System.IO ...
- Xamarin SQLite教程数据库访问与生成
Xamarin SQLite教程数据库访问与生成 在本教程中,我们将讲解如何开发SQLite相关的App.在编写程序前,首先需要做一些准备工作,如了解Xamarin数据库访问方式,添加引用,构建使用库 ...
- BZOJ.2324.[ZJOI2011]营救皮卡丘(费用流 Floyd)
BZOJ 洛谷 首先预处理出\(dis[i][j]\),表示从\(i\)到\(j\)的最短路.可以用\(Floyd\)处理. 注意\(i,j\)是没有大小关系限制的(\(i>j\)的\(dis[ ...
- HDU.4694.Important Sisters(支配树)
HDU \(Description\) 给定一张简单有向图,起点为\(n\).对每个点求其支配点的编号和. \(n\leq 50000\). \(Solution\) 支配树. 还是有点小懵逼. 不管 ...
- 2017-9-8-Linux下VNC server开启&图形界面显示
之前有一个写树莓派3B怎么只使用网线VNC远程的blog,里面写的比较粗糙(其实是很长时间没搞我也忘了怎么装的了,照着原来的看一遍应该能想起来),所以重新来在新的环境下搭建一下VNC server. ...
- Ubuntu环境中的Android源代码下载
跟随“老罗的Android之旅”学习Android系统,首先得学会创建能用于编译Android源代码的环境. 文章参考:http://0xcc0xcd.com/p/books/978-7-121-18 ...
- Centos ATI 显卡安装,“LCD 信号超出范围” 解决方法
centso ATI 显卡驱动安装 centos 版本 32位 6.4 Final ATI 显卡版本:Radeon HD 7400 Series 之前由于很久自己安装了centos显卡,分辨率很低不能 ...
- React使用DVA本地state传值取值
React使用DVA本地state传值取值 最近在用Ant Pro 做一个后台系统,在使用中发现Antd Pro使用DVA来实现redux+sagas+router一系列的功能,比传统方式要方便快捷的 ...
- Html列表:
有序列表: 在网页上定义一个有编号的内容列表可以用<ol>.<li>配合使用来实现,如: <ol> <li>列表文字一</li> <l ...
- java文件课后动手动脑
package 第九周作业1; import java.io.File; import java.io.FileInputStream; import java.io.IOException; imp ...