时间:2024-05-04
奚波
摘要:在局域网络客户端管理工作中,怎样对网络中的客户端进行分类命名,对客户端的IP地址进行合理的分配,是一项繁杂而又细致的重要工作。该文通过具体实验操作的模式,介绍了如何使用SQLServer数据库对网络中的客户端进行分类命名管理,使用VLAN对局域网进行了合理的划分。逐步探索出了一套行之有效的客户端管理方案,借此让更多的网络管理人员可以制定出适合自己医院的局域网客户端信息管理方案,以此来规范医院网络管理,提高工作效率。
关键词:SQLServer数据库;局域网;客户端管理
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2022)16-0033-03
1 局域网管理中的难点
一个单位的局域网内存在着大量的不同类型的客户端。从客户端的性质来分,有面对普通用户的PC客户端和移动终端(包括手机、平板电脑等),有网络打印机和扫描仪等网络终端设备,有大型医疗设备,有作为网络交换节点的交换机路由器防火墙等网络设备。
这么多不同种类的客户端同时存在于一个大型的局域网络内部,怎样对它们进行严格有效的管理与控制,是网络管理人员所要面对的重要课题。而这个课题的核心就是客户端的IP地址和机器名的分配以及其他各种重要信息的记录,如客户端的MAC地址、序列号、操作系统版本等。
在一个大型的局域网中,这些信息的记录与管理得好与不好,直接关系到这个局域网的工作效率。如果信息的记录散乱不全,就会给网络管理工作带来诸多不便。例如想定位某一台客户端,却不知道这台客户端的IP地址,而普通网络用户又不知道该怎样查看自己操作的客户端的IP地址,或者是给客户端分配IP地址和计算机名,但是由于记录的混乱,而导致IP地址和计算机名重复分配。
为了解决这些长期困扰我们的问题,笔者通过实践,并查阅了大量的资料,逐步探索出了一套行之有效的客户端信息管理方案。
2 局域网客户端信息管理的方案
本方案由两大部分构成:局域网VLAN配置和客户端信息的分配与保存。局域网VLAN配置是将整个局域网按照不同的楼层分割成一个个单独的VLAN。客户端信息的分配与保存则由前台应用程序和后台数据库共同完成。
首先介绍一下本单位局域网的拓扑,如图1所示。
本单位的局域网是一个典型的三层结构的局域网,经过多年的建设,形成了以两台H3C10508、一台华为S7712、一台华为S7703交换机组成的OSPF区域为核心,以单模光纤为骨干,以汇聚和接入交换机为节点的交换网络。
2.1 局域网VLAN配置
VLAN(Virtual Local Area Network)的中文名为“虚拟局域网”,它的作用是在物理的交换机上划分出一个个逻辑的局域网,分割局域网的广播域。在局域网中使用VLAN和OSPF路由协议作为划分广播域的工具,划分原则是在接入交换机上的每一个端口分配一个指定的VLANID,在核心交换机上配置有对应VLANID的VLAN Interface(虚拟接口)作为每个VLAN的网关,这些VLAN的网关可以为各个VLAN之间的数据进行路由,同时可以分割广播域。核心交换机之间通讯则采用OSPF路由协议进行路由交换[1]。
每个VLAN中包含一个100.100.X.0/24网络,子网掩码长度默认为24,也就是说每个VLAN可以包含254个可用IP地址,除了最后一个网关地址100.100.X.254以外,还有253个IP地址可以分配给工作站使用,网关地址分配给VLAN Interface,如图2所示。
每个VLAN Interface中除了网关地址以外还有DHCP服务的配置。这个DHCP服务的作用是给第一次接入网络的客户端提供一个临时的IP地址,让客户端上运行的前台程序可以判断本客户端所属的网络地址段。
2.2 客户端信息的分配与保存
本单位的科室按照职责分为两级科室,一级科室有七个:门诊、病区、医技科室、行政科室、信息中心、药剂科室、财务科室,每个一级科室下再分为若干个二级科室。每个二级科室都有若干台客户端。每个客户端的核心信息是计算机名、IP地址和MAC地址,其中计算机名和IP地址采用了“池”的方式来进行管理,即预先设置好计算机名池和IP地址池,计算机名池的分配规则是每一个二级科室都有253个计算机名,如儿科的计算机名就是:儿科001—儿科253;IP地址池的分配规则根据前面VLAN的设置,每一个VLAN中有253個IP地址可以分配给工作站使用。需要给客户端分配资源时,从池中取出分配就可以了。
为了方便数据的保存和调用,本方案使用SQLServer数据库来保存科室信息、计算机名池和IP地址池。在数据库中新建了三个数据表:ZD_NETWORK_DEPT、ZD_NETWORK_COMPUTERNAME_POOL、ZD_NETWORK_IPADDRESS_POOL,分别保存科室信息、计算机名池和IP地址池。下面详细介绍一下这三个表的结构[2]。
1)ZD_NETWORK_DEPT(科室信息表)
这个表里保存的是医院一、二级科室的对应关系以及每一个二级科室客户端名的前缀。此表主要有四个数据列:SERIAL_NO、PARENT_DEPT、DEPT_NAME、COMPUTER_NAME_PREFIX。数据列的定义如表1。
取计算机名的规律是客户端名前缀再加上序列号001—253,客户端名前缀默认的和二级科室名是一样的,但有些二级科室的名字比较长,如“胃肠肝胆外科护理单元”,后面再加上序列号的话,会造成计算机名超过NETBIOS解析的允许长度15个字符,所以这里使用了客户端名前缀,此前缀的长度不超过12个字符,再加上3位序列号,总长度正好不超过15个字符。
2)ZD_NETWORK_COMPUTERNAME_POOL(计算机名池)
这个表里保存的是预先设置好的医院二级科室所有计算机名。此表主要有COMPUTER_NAME_PREFIX、COMPUTER_ID、COMPUTER_NAME、ENTER_DATE、FREE_NAME、MAC_ADDRESS六个数据列。数据列的定义如表2所示。
在这个表中为每一个二级科室都预先写入了253条数据,计算机名按照序列号的顺序写入,ENTER_DATE和MAC_ADDRESS置为NULL,FREE_NAME默认为1。某个二级科室的客户端需要使用计算机名的时候,首先从ZD_NETWORK_DEPT表中查询到本科室的客户端前缀,再按照客户端前缀从表中按照COMPUTER_ID从小到大的顺序找到第一个FREE_NAME为1的计算机名,找到以后,将FREE_NAME置为0,MAC_ADDRESS置为客户端的MAC地址,表示此计算机名已经被客户端占用,ENTER_DATE置为当前时间,也就是此计算机名的启用时间。
3)ZD_NETWORK_IPADDRESS_POOL(IP地址池)
这个表里保存的是预先设置好的医院所有的IP地址。这个表的部分结构与ZD_NETWORK_COMPUTERNAME_POOL类似,如表3所示。
与ZD_NETWORK_COMPUTERNAME_POOL类似,在表ZD_NETWORK_IPADDRESS_POOL中,按照每一个VLAN中IP地址的范围,把每一个IP地址都写入了表中,ENTER_DATE和MAC_ADDRESS置为NULL,FREE_IP默认为1。某个客户端需要分配IP地址的时候,首先要从自动获取的IP地址来判断出自己所属的VLAN,按照这个VLAN从表中按照COMPUTER_ID从小到大的顺序找到第一个FREE_IP为1的IP地址,找到以后,将FREE_IP置为0,MAC_ADDRESS置为客户端的MAC地址,表示此IP地址已经被客户端占用,ENTER_DATE置为当前时间,也就是此IP地址的启用时间。
此外,表ZD_NETWORK_IPADDRESS_POOL中还可以记录客户端使用的操作系统、机器序列号、机器型号、操作系统用户名、操作系统密码等信息。
4)前台应用程序
前面所述的三个数据库表在实际使用过程中,如果全部使用手工进行操作,也是十分不方便的。其中有些信息必须要使用软件才能获取到,因此使用[3]VB.NET开发了两个前台应用程序:“修改计算机名.exe”和“开机运行.exe”。后台数据库根据前台应用程序的运行结果,记录下客户端的IP地址、机器名的分配记录以及其他重要信息。
“修改计算机名.exe”在一台客户端第一次启用的时候运行,界面如图3所示。
在左侧的树状选择栏中选择需要的二级科室,点击“新建计算机”按钮,程序就在表ZD_NETWORK_COMPUTERNAME_POOL中按照COMPUTER_ID从小到大的顺序找到第一个FREE_NAME为1的计算机名,找到以后,會显示在文本框中。点击“修改本机计算机名”按钮,就可以将计算机名修改为文本框中的内容了。
“修改本机计算机名”按钮中的代码是以“System.Management”对象为基础,使用[4]WMI脚本来修改计算机名,其中的关键代码如下所示。
Dim ComputerCollection As ManagementObjectCollection
Dim queryComputer As ManagementObjectSearcher = New ManagementObjectSearcher("select * from win32_computersystem")
ComputerCollection = queryComputer.Get()
Dim SetHostName, NewHostName As ManagementBaseObject
For Each mo As ManagementObject In ComputerCollection
NewHostName = mo.GetMethodParameters("rename")
NewHostName.SetPropertyValue("Name", 计算机名)
NewHostName.SetPropertyValue("Password", 管理员密码)
NewHostName.SetPropertyValue("UserName", 管理员用户名)
SetHostName = mo.InvokeMethod("rename", NewHostName, Nothing)
ReturnCode = SetHostName("returnValue")
If ReturnCode = "0" Then
‘将FREE_NAME置为0,MAC_ADDRESS置为客户端的MAC地址,表示此计算机名已经被客户端占用
updatesql = New Data.SqlClient.SqlCommand
updatesql.CommandText = "update ZD_NETWORK_COMPUTERNAME_POOL set free_name=0,mac_address=@m where computer_name=@1"
updatesql.Connection = sqlca
updatesql.Parameters.AddWithValue("@m", MACAddress)
updatesql.Parameters.AddWithValue("@1", 计算机名)
updatesql.ExecuteNonQuery()
MsgBox("修改计算机名成功!")
Else
MsgBox("修改计算机名失败!错误代码:" + ReturnErrorMessage(ReturnCode), MsgBoxStyle.Critical)
Return
End If
Exit For
Next
修改完计算机名之后,要执行sql脚本,将FREE_NAME置为0,MAC_ADDRESS置为客户端的MAC地址,表示此计算机名已经被客户端占用。
“开机运行.exe”将添加到系统启动项中,这个程序的功能主要有两个:
①将客户端的桌面背景修改为统一的背景色,并在右下角显示客户端的IP地址和计算机名,这个功能的作用是方便普通用户了解客户端的IP地址,在客户端操作出现问题与管理员进行沟通时,将IP地址告知管理员,方便管理员进行远程管理。
②在系统第一次开机时,网卡的IP地址是从前文所述的核心交换机上的DHCP地址池中获取的。开机运行程序后,首先会从网卡自动获取的IP地址中读出网关IP,通过网关IP得出客户端属于哪个VLAN,再从表ZD_NETWORK_IPADDRESS_POOL中对应VLAN的IP地址段中按照COMPUTER_ID从小到大的顺序找到第一个FREE_IP为1的IP地址,找到以后,将FREE_IP置为0,MAC_ADDRESS置为客户端的MAC地址,表示此IP地址已经被客户端占用。
获得一个固定的IP地址以后,使用WMI脚本来修改IP地址,其中的关键代码如下所示[5]。
Dim SetIPAddress, NewIPAddress, setGateway, newGateway As ManagementBaseObject
'修改IP地址
NewIPAddress = mo.GetMethodParameters("EnableStatic")
NewIPAddress.SetPropertyValue("IPAddress", IPAddress)
NewIPAddress.SetPropertyValue("SubnetMask", SubnetMask)
SetIPAddress = mo.InvokeMethod("EnableStatic", NewIPAddress, Nothing)
ReturnCode = SetIPAddress("returnValue")
'修改網关
newGateway = mo.GetMethodParameters("SetGateways")
newGateway.SetPropertyValue("DefaultIPGateway", GateWay)
newGateway.SetPropertyValue("GatewayCostMetric", Metric)
setGateway = mo.InvokeMethod("SetGateways", newGateway, Nothing)
ReturnCode = setGateway("returnValue")
修改好IP地址以后,程序还会通过WMI脚本获取客户端使用的操作系统、机器序列号、机器型号等数据,然后一并写入ZD_NETWORK_IPADDRESS_POOL表,供管理员调用。
2.3 网络设备的IP地址管理
网络打印机、扫描仪或其他联网的医疗设备需要管理员手动指定IP地址,并在ZD_NETWORK_IPADDRESS_POOL表中做记录。其中尤其要注意的是,医院中的专业医疗设备都是由专门的厂商来维护的,在设备进场安装调试的时候,一定要事先向网络管理员申请IP地址,而不能自行从DHCP服务中获取地址,再将获取的地址保存到设备中,这样会造成IP地址分配的混乱。
3 总结
以上所述的这套局域网客户端信息管理方案在本单位的实际工作中得到了很好的使用效果,大大减轻了网络客户端管理工作的强度。在采用技术管理的同时,再加上严格的管理制度,最终解决了客户端信息记录混乱的问题,并在此基础上实现了对网络中的资源进行合理的划分。
参考文献:
[1] 朱小平,施游.网络规划设计师5天修炼[M].北京:中国水利水电出版社,2018.
[2] 刘俊强.SQL Server 2008入门与提高[M].北京:清华大学出版社,2014.
[3] 郑阿奇.Visual Basic.NET实用教程[M].3版.北京:电子工业出版社,2018.
[4] Marcin Polich.WMI技术指南[M].北京:机械工业出版社,2002.
[5] Win32_ComputerSystem 类[EB/OL].[2021-10-20]. https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-computersystem.
【通联编辑:代影】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!