类:NetBIOS名称服务、NetBIOS数据报服务和NetBIOS会话服务。每个服务都为应用程序提供了一组独特的功能并对网络有着不同的影响。
NetBIOS名称服务:NetBIOS名称服务在单个网段中提供名称解决,也就是在网络上宣告自己的NetBIOS。NetBIOS名称服名称务使用OSI模型传输层的UDP端口137。由于NetBIOS名称服务采用广播进行名称解决,因此只适用于单个网段,对于典型的路由器TCP/ IP网络,要使用lmhosts文件或wins服务。
NetBIOS数据报服务:NetBIOS数据报服务使用UDP端口号138,主要用于 浏览器服务通知。这些消息用于在用户桌面系统中构建网上邻居。
NetBIOS会话服务:网络中产生的NetBIOS通信主要是因为使用NetBIOS会话服务。NetBIOS会话服务使用TCP端口139。文件和打印机服务构成了NetBIOS会话服务产生的通信的主要部分。如果在[网络邻居]→[属性] →[本地连接] →[属性],打上了“Microsoft网络的文件和打印机共享”前面的勾,也就启用了文件和打印机服务,换句话说本机就变成了一台文件服务器或打印服务器(统称SMB服务器)。 特别的是,在Windows NT中SMB基于NBT实现。 而在Windows2000/xp/2003中,SMB除了基于NBT的实现,还可以直接通过445端口实现。
(4)当windows2000以上的操作系统作为SMB文件服务器时,就面临着选择139或者445端口了。下面的情况确定会话使用的端口:
1、如果SMB文件服务器启用了NBT,那么客户端连接SMB文件服务器的时候将同时访问139和445端口,如果从445端口得到回应,那么客户端将发送RST到139端口,终止这个端口的连接,接着就从445端口进行SMB的会话了;如果没有从445端口而是从139得到回应,那么就从139端口进行会话;如果没有得到任何回应,那么SMB会话失败。
2、如果SMB文件服务器禁用了NBT,那么客户端连接SMB文件服务器的时候就将只从445端口进行连接。
(5)当我们在同一个网段中用客户端去连接SMB文件服务器时,肯定能够连接。但是一旦我们的客户端和SMB文件服务器不在同一网段时,问题就出现了,客户端经常不能连接SMB文件服务器,现象就是在我的电脑中通过输入\\\\文件服务器的IP或机器名\\,会提示找不到\\\\文件服务器的IP或机器名\\。不会出现图14的画面。 3.2 问题分析
看来问题出在跨网段的路由器或三层交换机上,为了证实这个问题,做了两个场景下的访问SMB文件服务器时的抓包实验。
第一个场景是在一台windows server 2003上装两块网卡,在两块网卡上设置不同网段的IP地址,一个网段接SMB文件服务器,一个网段接客户端,如图15所示:
图15(用一台带两个网卡的2003作软路由连接两个网段)
这个软路由上不做任何限制,可以通过任何的通信。用192.168.0.63访问202.192.135.101,在我的电脑中通过输入\\\\文件服务器的IP(202.192.135.101),会出现图14的画面。
对刚才的过程用sniffer pro软件抓包,如图16所示,发现客户端会去连接SMB文件服务器的139和445端口。
图16(192.168.0.63访问202.192.135.101用sniffer pro软件抓包) 第二个场景是在真实的业务环境下,SMB文件服务器位于一个网段,客户机位于另一个网段,之间通过路由器或三层交换机相连。如图17所示:
图17(实际业务环境下的两个网段)
特别注意的是在客户端和SMB文件服务器之间有可能不止一个路由器或三层交换机。
同样的在客户端10.0.0.180访问202.192.135.101,在我的电脑中通过输入\\\\文件服务器的IP(202.192.135.101),出现错误提示,如图18所示:
图18(客户端10.0.0.180访问202.192.135.101错误)
对刚才的过程用sniffer pro软件抓包,如图19所示:
图19(10.0.0.180访问202.192.135.101用sniffer pro软件抓包) 发现客户端会去连接SMB文件服务器的139和445端口,但是SMB文件服务器的139和445端口都未对客户端的连接做出任何响应,因而会出现图18的
错误提示。
可见出于NetBIOS总所周知的安全问题,一般的路由器或三层交换机都会将NetBIOS的端口(UDP 137 138,TCP 139 445)屏蔽掉,也就是说路由器或三层交换机会建立一系列ACL,只要数据包的UDP和TCP端口是NetBIOS的端口,就会将此数据包丢弃。
4、通过VPN拨号远程访问文件服务器 既然路由器或三层交换机都会将NetBIOS的端口(UDP 137 138,TCP 139 445)屏蔽掉,那么就要找到一种办法让客户端和SMB文件服务器位于同一网段内,这就是VPN的应用场景了。
4.1 VPN简介 VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。 VPN可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。示意图如下:
图20(VPN原理示意图)
4.2 在SMB文件服务器上架设VPN服务器
(1)在windows2003中VPN服务称之为“路由和远程访问”,默认状态已经安装。只需对此服务进行必要的配置使其生效即可。
第一步:依次选择“开始”-“管理工具”-“路由和远程访问”,打开“路由和远程访问”服务窗口;再在窗口右边右击本地计算机名,选择“配置并启用路由和远程访问”。
第二步:在出现的配置向导窗口点下一步,进入服务选择窗口,选择第一项,然后一路点击下一步,完成开启配置后即可开始VPN服务了。
第三步:设置IP地址,在这里我们定义起始IP地址为11.0.0.1,结束IP地址为11.0.0.100共100个。
第四步:给予表2中的用户在“用户属性”-“拨入”-“远程访问权限(拨入或VPN)”允许访问的权限。
4.3 VPN客户端配置
这一端配置相对简单得多,只需建立一个到VPN服务端的专用连接即可。第一步:在桌面“网上邻居”图标点右键选属性,之后双击“新建连接向导”打开向导窗口后点下一步;接着在“网络连接类型”窗口里点选第二项“连接到我的工作场所的网络”,继续下一步,在如下图所示网络连接方式窗口里选择第二项“虚拟专用网络连接”;接着为此连接命名后点下一步。
第二步:在“VPN服务器选择”窗口里,等待我们输入的是VPN服务端的
IP(SMB文件服务器上架设VPN服务器的IP 202.192.135.101),接着出现的“可用连接”窗口保持“只是我使用”的默认选项;最后,为方便操作,可以勾选“在桌面上建立快捷方式”选项,单击完成即会先出现如VPN连接窗口。输入访问VPN服务端合法帐户后的操作就可开始连接了。连接成功后在右下角状态栏会有图标显示。并且VPN服务器会分配11.0.0.2至11.0.0.100中的一个IP给客户端,这样客户端就和SMB文件服务器的IP 11.0.0.1位于同一网段,也就可以访问文件服务器上的共享资源了。
5、总结
采用windows server 2003的文件服务器去建立集中的文档管理。可以做到文档的实时同步,也增加了文档的安全性,并且便于管理。如果固定在一台电脑上用同一个账号访问文件服务器,还可以将文档文件夹映射为本地的一个硬盘,这样就可以像访问本地硬盘一样访问文件服务器了。在一些大型的的局域网中,通过VPN连接文件服务器绕过了路由器和三层交换机的屏蔽,可以像在本地网段一样轻松的访问文件服务器,在局域网中,速度和本地网段几乎没有区别,速度非常快。如果你的文件服务器能够发布到公网上,那么任何位于外网的用户同样可以连接通过VPN连接访问文件服务器,达到了远程办公的目的。
参考文献
[1] Uyless Black,TCP/IP and Related Protocols 【M】.Mc Graw—Hill.1998.1
2—21
[2]汤教坚 计算机实用网络编程[M] 北京:人民邮电出版社,1995.1—73 [3] W David Schwaderer NetBIOS,IPX and SPX C程序员指南 【M】.徐
光贤,译 北京 科学出版社,1995