ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HCL模拟器Server实战:从磁盘规划到SQL Server与网络联动

HCL模拟器Server实战:从磁盘规划到SQL Server与网络联动 HCL模拟器玩到一定程度大家基本都在折腾路由器、交换机、防火墙这些网络设备真正把Server服务器这个节点用起来的反而不多。其实HCL里面的Server是一台可以装真实操作系统的虚拟机你完全可以在里面装Windows Server、跑SQL Server、搭FTP和DHCP服务再配合前面的路由交换设备做联动实验。这篇是“玩转HCL Server”的第二篇重点讲怎么把Server用活而不是让它躺在拓扑图里当摆设。第一篇我们已经聊过怎么启动Server、挂载镜像、装个基本系统这期直接往下走磁盘规划、系统安装的坑、SQL Server和常用服务的搭建以及Server和路由器、防火墙、交换机联调的几类实用组网。不管你是在备考认证还是想在家搭一套仿真实验环境这篇文章都能给你省下不少查资料的功夫。1. Server在HCL里的地位和玩法1.1 它不只是“一台虚拟电脑”HCL的Server组件本质上是基于QEMU做的一个虚拟机默认会给你分配一块网卡可以桥接到HCL的虚拟网络里。也就是说它和路由器、交换机之间是天然打通的你可以给它配IP、用它做网关、做服务器、做测试终端完全模拟物理环境里的一台独立服务器。很多朋友会把Server单纯当作“用来Ping通的终端”这太浪费了。因为Server是一台可以安装完整操作系统的机器你装完Windows Server之后它就拥有了真实服务器的能力可以开DHCP服务给PC发地址可以装IIS或第三方Web服务对外提供HTTP可以装SQL Server支撑业务数据库甚至能装域控做活动目录实验。这才是它真正的价值所在。1.2 从“能开机”到“能干活”第一篇我们已经解决了“让Server开机能用”的问题比如怎么创建Server节点、怎么加载ISO镜像、怎么进入BIOS修改启动顺序。到了第二篇目标要升级让Server成为网络环境中真正提供服务的角色。所以这篇的路线很清晰先解决操作系统的安装效率和磁盘规划问题再解决常用服务DHCP、DNS、HTTP、FTP、SQL Server的搭建与调试最后解决Server与网络设备之间的联动。每一块都有不少容易踩的坑我会把实操中遇到过的问题和对应解决思路都写出来完整的步骤可以直接抄。2. 磁盘管理与系统安装的进阶操作2.1 给Server挂载第二块磁盘默认的HCL Server只有一块很小的虚拟磁盘装完Windows Server后基本剩不了多少空间再装SQL Server、IIS或者存放镜像文件就会很紧张。所以我习惯在装系统前或装完后额外挂载一块磁盘专门放安装包和数据。操作不算复杂在HCL拓扑上选中Server节点右侧面板找到“配置”或“磁盘”相关的入口添加一块虚拟磁盘。不同版本HCL入口名称略有区别但思路一致相当于给虚拟机增加一块空的虚拟硬盘。如果是装完系统后才加的盘需要进Windows的“磁盘管理”对新磁盘做初始化、创建分区、分配盘符。这里有一个细节Windows Server 2003/2008的磁盘管理对GPT分区支持不好如果待挂载磁盘显示“无法初始化”优先使用MBR分区。我们做实验不用追求大容量MBR完全够用。新盘分区格式建议用NTFS方便存放超过4GB的镜像或SQL Server安装包。此外所有资料最好单独放一个盘系统盘保持干净这样后续做快照或还原时能省很多事。2.2 Windows Server 2003/2008安装时的序列号处理HCL的Server建议安装Windows Server 2003或Windows Server 2008因为这两个系统对硬件要求低、启动快关键是对虚拟网卡的兼容性好。但安装过程中最让人烦躁的就是输入产品密钥那串25位字符又长又难输。我试过几种方式最靠谱的是在安装前先编辑ISO文件里的配置文件比如Windows Server 2003的ISO中有一个WINNT.SIF文件可以在里面预设ProductKey。如果你不想动ISO还有一个懒办法安装时跳过密钥等装完系统后再在“控制面板-系统”里尝试更新密钥。但要注意Windows Server 2003如果跳过了密钥系统会进入宽限期部分功能受限做实验影响不大。Windows Server 2008则可以直接在安装过程中选择不输入密钥装完再激活。另外顺带提一句很多朋友搜索“Windows Server 2016产品密钥”之类的东西想拿新版系统往HCL里装。我的建议是别折腾HCL的虚拟硬件比较老新版系统安装时大概率找不到合适的SCSI/网卡驱动即使能装上运行起来也非常卡。实验环境追求稳定和速度2003/2008足够。2.3 SQL Server安装的关键坑版本兼容篇热词里有一堆关于SQL Server的搜索说明不少人在Server上装SQL Server遇到了问题。在Windows Server 2003上最省心的是SQL Server 2000和SQL Server 2005在Windows Server 2008上可以装SQL Server 2008。注意SQL Server 2012以上版本对操作系统要求高强行往2003/2008上装基本装不上别浪费时间。安装SQL Server时我踩过最大的坑是“安装程序无法连接到数据库服务进行配置”多半是因为之前装过失败实例残留了服务或注册表项。解决办法是在服务管理器里把SQL相关的服务全部停掉然后用系统账户清理工具或者手动删除残留服务如sc delete MSSQLSERVER命令再重新安装。另外安装时如果要开启远程连接必须在SQL Server配置管理器中启用“TCP/IP协议”并重启SQL服务。否则从其他PC用SQL客户端连这个数据库时会一直提示连接超时或找不到服务器。3. 在Server上搭建常用网络服务3.1 DHCP服务轻轻松松让PC自动获取地址在HCL的拓扑里最常见的实验之一是让Server当DHCP服务器给下面的PC自动分配IP。很多朋友会在路由器上配DHCP但真实企业环境里经常会用独立服务器做地址分发所以这个实验很有练习价值。在Windows Server上安装DHCP服务的路径很简单“控制面板”-“添加删除程序”-“添加Windows组件”-勾选“网络服务”中的“动态主机配置协议DHCP”。装完以后打开DHCP控制台新建作用域设置地址池范围比如192.168.10.10到192.168.10.200排除地址可以留一部分给服务器、打印机或路由器用。然后配置网关、DNS服务器地址。这里有个最常见的坑Server的网卡IP必须手工配置为一个静态地址而且这个地址必须落在DHCP作用域所在网段内。比如你在给192.168.10.0/24网段下发地址Server网卡IP必须是192.168.10.x。否则DHCP服务能启动但客户端根本请求不到地址或者在Windows事件日志里看到“无法为DHCP客户端提供服务”的报错。另外一个细节在HCL中PC节点默认可能不支持DHCP请求需要在PC的配置里选择“自动获取IP地址”模式。如果你用的是路由器作为PC客户端也要把接口切到DHCP模式。做完之后用ipconfig /renew或重启PC接口就能看到效果。3.2 DNS服务让内网用名字访问服务器DHCP解决的是“上网要有地址”DNS解决的是“访问要叫名字”。HCL的Server同样可以安装DNS服务用来解析你自定义的内网域名比如www.lab.com解析到服务器的IP192.168.10.10。安装DNS服务跟在Windows组件里勾选“DNS服务器”一样简单装完在管理工具里打开DNS控制台新建正向查找区域区域名称填一个不会和公网冲突的域名比如lab.com。然后新建主机记录主机名写wwwIP地址填服务器的地址。DNS服务要和DHCP配合会产生112的效果在DHCP作用域的DNS选项里填上Server的IP这样PC获得IP的同时也会获得DNS服务器地址然后就能直接访问www.lab.com了。有几个点容易出错第一Server本身上网卡地址要是静态的第二DNS转发器的配置要看情况。如果只是内网解析可以不配转发器但如果你想在内网环境里顺便能解析公网域名比如在HCL里模拟上网最好在DNS服务器属性里设置转发器指向真实可达的DNS地址。不过HCL环境里没有外网所以这个功能通常用不上也别指望能解析出百度谷歌。3.3 HTTP/FTP服务用IIS和FileZilla走通网站与文件传输网页服务和文件服务是Server最常见的业务形态。在Windows Server 2003/2008上自带的IIS就可以做Web站点。安装IIS的方法仍然是“添加Windows组件”勾选“应用程序服务器”中的“Internet 信息服务IIS”2003或“Web服务器IIS”2008。安装完成后默认网站目录在C:\inetpub\wwwroot下放一个index.html进去访问http://Server的IP/就能看到页面。如果你要做端口区分可以新建多个网站绑定不同端口。我最常做的实验是在一个Server上同时跑多个站点用不同端口来区分比如80端口做A站点8080端口做B站点。这个套路在考高级网络工程师或做综合实验时很加分。FTP服务如果用IIS自带的FTP配置起来有点鸡肋尤其是虚拟目录和权限控制这块很容易被搞晕。所以在Server环境里我更推荐大家装一个FileZilla Server轻量、直观、配置简单。热词里就有“filezilla server使用教程”看来不少人也想用这个软件。FileZilla Server的安装非常傻瓜一路Next就行。装完以后打开管理界面在“Edit”-“Users”里添加用户设置密码然后在“Shared folders”里添加共享目录并设置读写权限。启动服务后用客户端的FTP工具连接Server的IP默认端口21输入刚才创建的用户名密码就能上传下载了。这里有一个容易掉的坑Windows防火墙如果不关会拦截FTP的21端口和被动模式端口。HCL里的Server节点默认可能没有开启防火墙但如果你之前做过加固实验还是要检查一下防火墙状态或者在防火墙里放行FileZilla Server程序。另外如果你在路由器上做了端口映射一定要同时放行被动模式的高位端口段否则会出现“能登录但列不出目录”的怪问题。3.4 SQL Server让数据库从“装好”到“用得起来”前面讲了SQL Server安装这里重点讲怎么让它真正被网络中的其他设备访问。SQL Server安装完成后默认的实例名是MSSQLSERVER服务器名称填本机计算机名或IP都可以连接。但如果要从HCL里的其他PC连接这台Server上的SQL Server就需要做三件事启用SQL Server身份验证、启用TCP/IP协议、保证PC端的网络能通。启用SQL Server身份验证的方法是用Windows身份验证登录SQL Server Management Studio在服务器属性里找到“安全性”改成“SQL Server和Windows身份验证模式”然后在“安全性”-“登录名”里给sa设置一个密码。这里要注意sa密码不要设太复杂否则实验时输入容易错。我一般用Lab123这种级别够用也不会触发策略问题。然后进入“SQL Server配置管理器”展开“SQL Server网络配置”找到“协议”把“TCP/IP”状态改为“启用”如果监听端口不是默认的1433也要记录下来。配置完成后重启SQL服务。接下来在HCL的PC节点上用客户端工具或命令比如sqlcmd -S 192.168.10.10 -U sa -P Lab123测试连接能进去就算大功告成。4. Server与网络设备的联动实验4.1 路由器Server跨网段地址下发前面DHCP实验是Server和PC在同一个网段比较简单。但真实组网里服务器往往在一个网段客户端在另一个网段这时候就需要路由器做DHCP中继。HCL里用路由器做DHCP中继的配置很典型在路由器上配置两个接口分别属于两个网段连接Server的接口配置IP为192.168.10.1连接PC的接口配置IP为192.168.20.1。然后在客户端的接口视图下执行dhcp select relay并指定DHCP服务器地址为192.168.10.10Server的IP。这样PC发出广播地址请求后路由器会把它转为单播转发给ServerServer会将分配结果回复给PC。这个实验能让你彻底理解“中继代理”的工作原理强烈建议配合H3C路由器的命令行做一遍。如果你用的是HCL自带的路由器记得在接口上开启DHCP服务和对应模式配置命令很有代表性。这类实验里最容易出问题的是路由器的接口有时没有开启DHCP服务或在配置中继时把地址写成了Server的网关而不是Server本身导致PC一直拿不到地址。解决办法是在路由器上执行debug dhcp relay或抓包看报文能看到是否有Discover和Offer包交互。4.2 防火墙Server把内网服务发布出去防火墙是HCL里另一个非常有意思的设备它跟Server配合可以做“服务器发布”实验。比如内网有一台Server提供Web服务你想让外网模拟外网的用户通过防火墙上映射的公网地址访问这台Web服务器。配置思路为先把Server连接到防火墙的信任区把外网PC或路由器连接到防火墙的非信任区。在防火墙上配置NAT和策略将公网IP:80端口映射到内网Server的内网IP:80端口同时放行对应的安全策略。我在HCL里做实验时发现很多人容易忽略安全策略的方向。防火墙默认拒绝所有你不仅要配置NAT还要配置从非信任区到信任区、允许目标端口为80的放行策略。如果做完访问不通过优先检查策略顺序再把“会话表”打开看看报文是否正常。另外一个容易忽视的坑是对Web服务器做NAT后服务器日志里看到的源地址全是防火墙内网接口的IP感知不到真实用户地址。如果实验里需要观察真实源IP需要开启防火墙的“NAT会话日志”或在HTTP头里看到X-Forwarded-For一般在反向代理里配置。HCL防火墙的Web界面有日志功能可以辅助排查。4.3 交换机ServerVLAN间访问控制交换机和Server的联动主要场景是把Server放在一个单独的VLAN里比如VLAN100其他客户端在VLAN200通过三层交换机实现VLAN间路由再通过ACL控制谁能访问Server。HCL的交换机有二层也有三层配置思路是在交换机上创建VLAN100和VLAN200把Server接口划入VLAN100PC接口划入VLAN200给两个VLAN配置VLAN接口地址作为网关开启VLAN间路由。然后配置ACL只允许VLAN200的某些主机访问Server的80端口其余全部拒绝。这套实验配合前文的HTTP服务特别好用能模拟企业里常见的“业务服务器隔离”场景。实际操作中要注意交换机的端口类型设置access或trunk连接Server的端口用access就行连接PC的也一样如果PC侧还要连接其他VLAN的设备可以配置trunk但实验尽量简单化。做访问控制时ACL的生效顺序是自上而下匹配的所以要先写允许再写拒绝不然全部被拒。在HCL交换机上配置完ACL后记得在接口视图或VLAN接口视图下用packet-filter应用很多人漏了这步结果ACL没有任何效果。5. 常见问题与排查技巧实录5.1 “Lost connection to server at handshake”这一类报错热词里有个很典型的报错2013 - lost connection to server at handshake: reading initial communication。这个问题在SQL Server远程连接时非常常见。它说明客户端发起了连接但服务端在握手阶段就断开了。如果出现在HCL的Server环境里大概率是网络根本没通或者SQL Server没有启用TCP/IP再或者防火墙拦了1433端口。排查步骤我一般这么走先在PC上Ping Server的IP不通就检查网络通了再用telnet ServerIP 1433测试端口是否可达不可达就去SQL配置管理器里确认TCP/IP协议状态和监听端口如果端口能连通但依然报这个错检查SQL Server的登录模式是否是“SQL Server身份验证”账号密码是否输入正确。5.2 FileZilla Server登录失败与被动模式问题FileZilla Server使用中常见的怪事是在服务器本机测试FTP能连上换个PC就连不上。这种情况九成是被动模式问题。FTP协议有主动/被动两种模式被动模式需要服务器开放一个高位端口段供数据传输。FileZilla Server默认的被动端口设置要手工指定比如在服务器设置里设置被动模式的端口范围为5000-5100这些端口也要通。HCL中如果你在Server和PC之间只放了一条链路没有防火墙那一般不会出问题。但如果你加了防火墙就要额外放行这些端口。我实际测试中还用了一招把FileZilla Server的被动模式改为主动模式客户端主动连回服务器虽然兼容性稍差但在纯实验环境里反而简单。5.3 SQL Server登录失败与“failed to start login server”类权限问题报错信息里有一类登录失败: failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字尝试访问权限。这类问题本质是服务启动或者监听端口的时候权限不够。出现在HCL的Windows Server里多半是因为SQL服务启动账户没有相应权限或者有程序占用了1433端口。解决思路分三步第一在“服务”管理器里找到SQL Server服务把启动账户更改为LocalSystem或者一个有管理员权限的账户并重启服务第二用netstat -ano | findstr 1433查一下端口占用如果不是SQL Server进程占用就停掉占用进程或修改SQL监听端口第三检查Windows防火墙是否拦截了程序如果是在防火墙里放行SQL Server的可执行文件或端口。5.4 DHCP服务启动报错或客户端获取不到地址DHCP服务在Windows Server上有时启动不起来事件日志里提示“服务未能启动”或“作用域无法创建”。我遇到过的原因主要有两个一是之前残留了旧的DHCP数据库删除C:\WINDOWS\system32\dhcp下的数据库文件后重新启动服务二是Server的IP地址没设置成静态地址DHCP服务要求本身必须是静态IP动态IP环境下服务会拒绝启动。如果DHCP服务正常但客户端获取不到地址可以先在客户端执行ipconfig /renew如果没反应就在DHCP控制台里看“地址租约”里有没有记录。没记录多半是客户端请求没到服务器这时候要检查路由器上的中继配置或交换机VLAN是否正确。5.5 常见问题速查表现象可能原因排查/解决办法SQL远程连接报握手失败网络不通/未启用TCP/IP/防火墙拦截Ping通后再telnet 1433检查协议状态SQL登录失败无权限服务账户权限低/端口冲突服务改为LocalSystem查端口占用FileZilla目录列出失败被动模式端口未放行设置被动端口段并在防火墙放行DHCP客户端拿不到地址Server非静态IP/中继配置错误/作用域问题确保Server网卡是静态地址检查中继IIS站点访问不了防火墙拦截/端口冲突/默认文档缺失放行80端口确认index.html存在这个速查表是我在做实验时反复对照总结出来的基本能覆盖八成以上的疑难杂症。遇到问题先按表逐项排查比盲目重装系统高效得多。最后说一点个人体会HCL这个仿真平台里Server设备的存在感一直偏低但恰恰是它能把“网络”和“业务”串起来。当你把DHCP、DNS、Web、FTP、数据库这些服务都跑起来以后再回头做路由交换实验感受完全不一样——你不再是单纯敲命令看协议状态而是能直观看到一个数据包从终端到服务器经过了哪一层做了哪些处理。尤其建议想把网络技术学扎实的朋友一定要花点时间把Server这台设备吃透。后续你还可以在这个基础上去模拟域环境、做备份与恢复、甚至是简单的虚拟化实验玩法远比想象中多。
返回列表