这两天发现在公司外当我使用SSL ×××接入到公司内网后, 不能直接使用主机名访问在公司总部的跨网段的劳动力管理系统的测试环境了.一开始没当回事,每次修改DNS为公司内网的DNS就可以了.可是时间长了,即使我是IT人员,我也觉着不方便了,于是就想知道为什么,开始用心的分析原因了.我们知道本地dns缓存(hosts文件已经加载到本地dns缓存)要优先于dns系统来对域名进行解析,就像本地的NetBIOS名字缓存优先WINS来对计算机名进行解析一样.
又看了一下风间子的文章:
理解Windows网络中的名字解析
TCP/IP协议通信是基于IP地址的,但是,谁会记住那一串单调的数字呢?因此,大家基本上都是通过访问计算机名字,然后通过某种机制将计算机名字解析为IP地址来实现。此时,名字解析机制就变得特别重要。在Windows Server 2003中,提供了两种名字解析方式:NetBIOS和DNS,它们具有各自不同的解析机制。
注:无论是NetBIOS名字还是DNS名字,都是计算机名字,只是使用不同的格式而已。
首先,给大家介绍一下Windows系统中的名字组成。当你安装Windows系统的时候,你必须为计算机输入一个长度不超过15个字符的名字,这个计算机名字将作为NetBIOS名字,同时也作为DNS名称的主机名。NetBIOS名字是平面性的,最大长度为15个字符(完整的NetBIOS服务名称是16个字符,其中最后一个字符用户不可配置,用于定义NetBIOS服务类型),在任何一个NetBIOS广播域中,某个确定的NetBIOS名字必须是唯一的,即只能有某一个确定的计算机拥有此NetBIOS名字。和NetBIOS名称不同,DNS名称是具有层次性的,主机名只是完整的DNS名称-称为完全限定域名( fully qualified domain name ,FQDN)的一部分而已。FQDN除包括主机名外,还包含主机所在的域名,例如DNS名称 www.winsvr.org,则www是主机名,winsvr.org则是这台主机所存在的域的域名。
在名字组成中,涉及了以下术语:
- NetBIOS名字:一个NetBIOS名字用于唯一识别绑定到某个网络适配器主要IP上的NetBIOS服务,可以通过广播、WINS服务器或Lmhosts文件来进行解析。NetBIOS名字为15个字符,和计算机名字相同;如果计算机名字长度超过15个字符则为前15个字符,如果不足15个字符则使用0进行填充。完整的NetBIOS服务名称为16个字符,其中第16个字符用于定义服务类型,用户不可配置。
- 主机名:通常代表FQDN的第一部分,例如,FQDN www.winsvr.org的主机名是 www。一般情况下,计算机名称也作为主机名。当你在安装时指定计算机名称或者在系统属性的计算机名标签中修改时,则同时指定了NetBIOS名字和主机名。
- 主域名后缀:主域名后缀指定计算机在名字注册和名字解析时所使用的域名后缀,你可以在系统属性的计算机名标签中修改。通常主域名后缀也称为主域名或者域名,例如,www.winsvr.org的主域名后缀是winsvr.org。
- 连接指定后缀:连接指定后缀指分配给某个网络适配器的DNS后缀,例如,一个连接指定后缀通常是subnet2.winsvr.org。当计算机具有连接到不同子网的多个网络适配器时,通过连接指定后缀,可以实现让不同子网中的客户通过不同的FQDN来访问这台主机上连接对应子网的网络适配器。
- 完全限定域名(FQDN):完全限定域名是完全标识网络上一台计算机的DNS名字。一个FQDN由“.”连接主机名和主域名后缀而产生,例如,www.winsvr.org。通常完全限定域名又称为DNS名字。
对于NetBIOS名字和DNS名字,主要区别如下:
| NetBIOS名字 | DNS名字 |
类型 | 平面 | 层次 |
组成字符限制 | Unicode字符,数字 | A~Z,a~z,0~9,和连字符“-” |
最大长度 | 15个字符 | DNS域名的每一节最大长度为63字节,FQDN长度最大为255字节 |
名字解析方式 | 广播 WINS服务器 Lmhosts文件 | DNS服务器 Hosts文件 |
通讯协议端口 | UDP 137 | UDP 53 |
那么,NetBIOS名字和DNS名字各自的作用和使用范围是什么呢?
NetBIOS实际上不是一个命名系统,而是一个使用在Windows网络中的应用程序编程接口,它允许计算机相互进行连接和通讯。NetBIOS名字是微软在Windows 2000之前的Windows系统中采用的标准名称解析方式;在Windows 2000之后,采用DNS协议作为首选名称解析方式,但是仍然保留了对Netbios协议的支持,称之为Netbios over TCP/IP。当你在使用计算机名字进行访问,例如,使用server1share1来访问网络共享时,则是通过NetBIOS来进行名字解析。同时,网上邻居和计算机浏览器服务依赖于NetBIOS协议。
注:计算机如何区别用户输入的名字是NetBIOS名字还是DNS名字呢?这是通过判断用户输入的名字中是否包含“.”来决定。如果包含则认为是DNS名字,如果不包含则认为是NetBIOS名字。
注意我在前面关于名字组成的时候,对于NetBIOS名字,提到一个NetBIOS广播域的概念,这是因为NetBIOS协议的广播特性。默认情况下NetBIOS协议基于本地局域网中的UDP广播,这样的好处是速度快、无需额外配置,缺点是广播不能跨越网段和增加了网络流量,因此微软推出了WINS(Windows Internet Name Service)服务器,当计算机配置为使用WINS服务器时,它直接和WINS服务器进行单播通讯,这样可以避开NetBIOS协议使用广播时的这两大缺陷。
对于NetBIOS名字的解析,默认过程如下:
- 检查本地的NetBIOS名字缓存;
- 查询WINS服务器;
- NetBIOS广播查询本地网络;
- 查询Lmhosts文件,如果配置为这样做,此文件位于%systemroot%System32DriversEtc目录下
DNS是Windows 2000及其后Windows系统的首选名字解析方式,它也是TCP/IP协议族中的标准名字解析机制。计算机通过和配置的DNS服务器进行通讯来解析域名。和NetBIOS相比,DNS提供了更好的扩展性、安全性以及和Internet的兼容性,同时DNS服务也是活动目录的基础服务。
对于DNS名字的解析,过程如下:
- 检查本地的DNS缓存(Hosts文件中的配置已经加载到DNS缓存中);
- 检查DNS服务器;
在Windows 2000及以后的Windows系统中,首选使用DNS方式进行名字解析,但是这两种名字解析机制是可以共用的。并且从用户惯性的角度,建议保留NetBIOS名字解析。不过,从网络性能的角度,当部署使用NetBIOS名字解析时并且计算机超过15台时,建议部署WINS服务器。
关于DNS服务器和WINS服务器的部署,请参见WinSVR.ORG相关技术文章。
原理算是懂了,于是查看了一下TCP/IP的高级设置的WINS和DNS,发现原来是DNS使用的公司内网dns后缀未在首先上,于是删除其他,更正公司内网DNS.问题解决.
©著作权归作者所有:来自51CTO博客作者match2000的原创作品,如需转载,请与作者联系,否则将追究法律责任
主机 Windows 管理系统 核心基础架构
2
收藏
上一篇:攒机号外之三 下一篇:公司外通过内网域名访问业务系统
2条评论
按时间倒序 按时间正序推荐专栏更多
VMware vSAN中小企业应用案例
掌握VMware超融合技术
共41章 | 王春海
¥51.00 346人订阅
订 阅
基于Kubernetes企业级容器云平台落地与实践
容器私有云平台实践之路
共15章 | 李振良OK
¥51.00 596人订阅
订 阅
网工2.0晋级攻略 ——零基础入门Python/Ansible
网络工程师2.0进阶指南
共30章 | 姜汁啤酒
¥51.00 1566人订阅
订 阅
负载均衡高手炼成记
高并发架构之路
共15章 | sery
¥51.00 507人订阅
订 阅
带你玩转高可用
前百度高级工程师的架构高可用实战
共15章 | 曹林华
¥51.00 462人订阅
订 阅
猜你喜欢
我的友情链接 针式打印机的问题处理 Windows路由表详解 Windows Server 2012 R2 安装密钥 linux加入windows域之完美方案 理解Windows操作系统的KMS与MAK密钥 检测远程主机上的某个端口是否开启——telnet命令 为VMware ESXi主机添加本地存储的过程及注意事项-之3 如何在一台ESXi主机上搭建一整套VSAN集群的环境 zabbix3监控ESXI主机 ansible自动化管理windows系统实战 为Windows 7 Professional安装多语言包 简述centOS 7系统用户和组的管理及配置 解析DELL R710服务器迁移操作内容 开学季出大事:某教育局丢失3台虚拟机 EVA4400存储虚拟机+数据库数据恢复成功案例 服务器数据恢复通用方法+服务器分区丢失恢复案例 在CentOS7上部署squid缓存服务器及代理功能 EMC 5400服务器raid阵列瘫痪数据恢复成功案例 服务器数据恢复案例 / raid5阵列多块硬盘离线处理方法
扫一扫,领取大礼包
2
0
2 分享
match2000 转载于:https://blog.51cto.com/conscience/750818
Ctrl+Enter 发布
发布
取消