双网卡双线路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的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...
随机推荐
- maven 构建spring boot + mysql 的基础项目
一.maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...
- vue项目的搭建使用
环境变量的安装 参考 环境变量详解 第一次搭建参考 参考 简单初始项目搭建 配置好环境变量的项目的搭建 新建一个new proproject, 查看工作目录vue是否存在 使用查看指令 v ...
- Java并发编程(三)-- 多线程的“问题”
竞态条件与临界区 在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源.当多个线程同时访问同一个资源,并且其中的一个或者多个线程对这个资源进行了写操作,才会产生竞态条件.多个线程 ...
- Scrapy基础(六)————Scrapy爬取伯乐在线一通过css和xpath解析文章字段
上次我们介绍了scrapy的安装和加入debug的main文件,这次重要介绍创建的爬虫的基本爬取有用信息 通过命令(这篇博文)创建了jobbole这个爬虫,并且生成了jobbole.py这个文件,又写 ...
- No compiler is provided in this environment.Perhaps you are running on a JRE rather than a JDK?报错解决
Maven install 时出现如上错误. Eclipse-->Window-->preferences-->Java-->Installed JREs 查看jdk: 发现此 ...
- DJI-A2调参详细教程
DJI-A2飞控系统用户手册 https://wenku.baidu.com/view/bb632f88227916888586d749.html DJI-A2调参软件视频教程 http://www. ...
- OpenCV3.2.0+VS2017环境配置与常见问题(巨细坑爹版)
目录 安装 常见问题 题外话:首先,配环境一定要有耐心... 本博客是本小白第一次装OpenCV成功后第一时间整理发布.用的是刚下载好的OpenCV3.2.0版,用x64编译器Debug运行(当然Re ...
- python系统编程(六)
threading注意点 1. 线程执行代码的封装 通过上一小节,能够看出,通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会 ...
- 最全,可直接用的一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等。
一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等. // 判断邮箱 isValid = [text isValidEmail]; // 判断手机 ...
- 用单进程、多线程并发、多线程分别实现爬一个或多个网站的所有链接,用浏览器打开所有链接并保存截图 python
#coding=utf-8import requestsimport re,os,time,ConfigParserfrom selenium import webdriverfrom multipr ...