简单说,肯定是可以的。
但之所以要写这个主题,原因还是在于,怎样才是这个事情的最佳实践?
笔者:国际认证信息系统审计师、软考系统分析师
一个合格的软路由,需要具备(1)双向NAT(2)防火墙(3)局域网路由(4)DNS转发(5)DHCP动态分配地址(6)日志记录等功能,负载量大时要(7)性能调优,还要按使用需要考虑设置(8)Wifi接入。
大多数的教程其实就只说了NAT一件事而已。这固然是可以用了,但如果从网络安全、可靠性、吞吐量等角度,是远远不够的。
本文涉及知识点是 Windows Server、网卡配置、TCP/IP配置、路由和远程访问服务、防火墙服务、DHCP服务、DNS服务等。
由于内容比较多,本篇的目标是先把最基础的路由功能配置起来。
就现在是2023年来说,最低要选择从 Windows Server 2012 R2 版本开始。这一方面是 Windows Server 2012 R2 的路由和远程访问功能(RRAS)和 Windows 防火墙功能的完善可靠程度,另一方面是这个版本的系统还能获得安全补丁更新,扩展安全更新会延续到2026年。
服务器的配置,主要看使用环境的负载程度。起决定性作用的是CPU和网卡:尤其是网卡。网卡的功能和性能直接影响到软路由的性能。
一般来说,服务器产品的网卡都不会太差,尤其是能直接提升网络吞吐量、降低响应延迟的各种offload(卸载)功能特性都是具备的,例如下面这样的:
上图中的各种校验和卸载选项,在启用RX和TX即接收和发送都卸载后,这些计算就由网卡接管,不用耗费CPU资源进行计算。不仅千兆,万兆网卡都可以达到全线速的收发能力。
但如果用一般的桌面PC来承担软路由功能,那就要先看清楚网卡(通常都是主板板载)是否具备这些卸载能力。如果没有,那就应该另外采购具备这些功能网卡,比如像下面这样的(注意PCI-E插槽要求是4X槽,可以插到16X槽使用):
CPU方面,在网卡的支持下,现在的主流4核桌面级CPU,主频1.8GHz以上都能轻松支持千兆线速吞吐。如果希望达到万兆线速,加上其它功能的需要,建议是6核起步,CPU主频不低于2.4GHz。
内存、硬盘等部件按一般Windows服务器去配置即可。
硬件环境配置到位后自然是采购和安装操作系统。接下来对网络接口配置IP地址设置这些不在话下,但关键的第一件事其实是要区分网络接口。
例如,要实现 Windows 软路由作为内外网之间的路由器,那么至少应具备两个网络接口,一个用于内网,另一个用于外网,并且要重命名,把内网的接口命名为LAN,外网的接口命名为WAN,如下图:
也可以用中文命名,看自己喜欢。重点在于物理上不要接错线。改名后,对LAN接口配置本地IP地址,WAN接口则看ISP情况自行配置,比如ISP是DHCP给地址的,WAN口就设置为通过DHCP获取地址。
网络上有一些角度比较刁钻的做法,让软路由器在交换机的配合下用一个网络端口同时承载WAN和LAN流量,这种做法在家庭环境玩玩没问题,用于企业组织环境是万万不行。因为这样做是直接打破了网络边界和颠覆了网络分区,不符合网络安全的基本要求。
如果该服务器用于本地局域网的内部子网之间的路由,则可以按实际情况,包括服务器的扩展能力、企业的财力、局域网的VLAN设置等因素,配置更多的网络接口。
一般地,如果网络环境是通过VLAN划分子网,那么最好还是每一个子网配置一个对应的网络接口。尽量少用单臂路由模式。
如前所述,网络接口需要调整配置其性能设置,最大化网络吞吐、最小化网络延迟。
网络上相关的介绍不少,但务必要注意这些设置大多数都是和具体 Windows Server 版本相关的,应用之前要先落实。典型如 Windows 2012 提供的IPsec Task Offload 和 TCP Chimney Offload 两项设置在Windows 2016 被淘汰。建议参考微软如下文档:
调优的重点是检查网卡驱动程序设置:(1)各种卸载功能特性是否已经开启;(2)包数据接收和发送的缓冲区是否设置到允许的最大值;(3)延迟敏感时禁用中断调节;(4)最大化合并缓冲区的数量。
另外还有其它方面的设置,比如BIOS设置为高性能模式,禁用CPU的某些省电特性等,禁用一些主板监控功能等等,由于比较复杂,这里暂且按下。
接下来需要对服务器添加“远程访问”角色。通过服务器管理器的“添加角色和功能”向导,在角色选单中勾选“远程访问”,然后一步步完成安装过程步骤。过程太简单了,只放关键的图就好。
远程访问角色由三个不同的角色服务组成,选择“路由服务”会导致同步自动选择“DirectAccess和VPN(RAS)”角色服务,还因为功能依赖而需要安装其它角色和功能。
话说这功能依赖导致要安装和启用IIS,在我看来是增加了风险。
完成安装步骤后,该角色和相关的依赖项目已经被添加到Windows中,不需要重新启动系统。
接下来,在“管理工具”中找到“路由和远程访问”管理控制台,启动控制台后,可见服务处于停止状态。右击服务器图标,选择“配置并启用路由和远程访问”:
然后在向导界面,选择符合需要的模式。作为合格的路由器,需要详细配置,因此选择“自定义配置”,然后再勾选具体选项。
这里有个重点:这个选择是一次性的。如果在完成选择后要改变,需要先禁用RRAS服务(会同时删除全部配置),然后重新启用和配置RRAS。
这些选项大致解释如下:
●VPN访问:是否提供VPN接入,远程办公或远程管理的需要 ●拨号访问:是否提供传统的电话拨号接入 ●请求拨号连接(由分支机构路由使用):这是个相当有历史且复杂的功能,现在一般用不到,不解释了。 ●NAT:内外网之间的地址转换,连接互联网时必须选择 ●LAN路由:内网路由能力
勾选NAT、LAN 路由,并按需要决定是否勾选VPN接入(预先强调:PPTP VPN已经是历史产物,其安全性很低,应使用更先进的VPN产品),完成向导,最后选择不启动服务,因为尚未配置完成。
接下来,要配置NAT。右击NAT分支,选择“新增接口”,然后选择已经命名好的WAN接口。随后设置NAT功能属性,选择“公用接口连接到Internet”并勾选“在此接口上启用NAT”。
另外两个页面,“地址池”页面的内容一般不需要关心,基本上不存在由ISP服务商分配地址池的情况。“服务和端口”页面用于对外开放端口。对于本例我们不开放端口,所以不用勾选任何选项。
完成WAN口配置后,再继续新增接口,选择LAN接口,选择默认的“专用接口连接到专用网络”。如果LAN接口不止一个,全都要通过新增接口操作按如上默认选项完成新增。
由此完成NAT的基本设置。
这个路由器有个关键点是,要实现符合《网络安全法》要求的日志留存6个月以上的法律义务。
右击NAT分支,选择属性,可以看到有四个设置页面,第1页就是日志设置。可以考虑选择“记录错误及警告”或“记录最多信息”。
日志留存时长和可靠性是复杂的话题,可以参考我之前写的内容:
第2页“转换”,定义的是网络数据流的映射关系过时机制。通过合理设置,NAT功能可以在数据流映射关系超时时自动删除,从而避免映射表爆满导致路由器效率降低、用户断流等情况。
第3页是地址分配,配置的是DHCP服务。定义自动分配的地址范围和保留地址:
这里实现的是非常轻量级的DHCP服务,如果需要细化控制DHCP,需要通过“添加功能和角色向导”添加DHCP服务器。我们留到下一篇再说。
在这里,简单地设定整个D段地址范围用于DHCP分配,然后在排除清单中加入地址范围内的静态IP地址设备和LAN接口本身的地址即可。
第4页配置名称解析,也就是让NAT是否成为DNS解析中继。勾选启用后,NAT的LAN接口成为DNS解析代理,通过WAN网络接口设置的DNS服务器,转发局域网内客户端向LAN接口地址提出的DNS解析请求和解析回复。
同样地,如果需要细化DNS解析功能,需要安装“DNS 服务器”这一服务器角色。我们也是留到下一篇再说。
最后,是设置整个RRAS服务的属性。右击本机RRAS服务,选择属性,然后进行一些必要的设置:
第1页:如果不需要请求拨号路由,选择仅限局域网LAN路由。如不使用IPv6,取消IPv6路由器。如果不需要远程接入,取消IPv4、IPv6远程访问服务器。
然后是第3页,IPv4页面,“启用广播名称解析”选项下选择本地局域网的网络接口LAN:
再然后是第4页,IPv6页面,不使用就取消IPv6:
最后是第7页,日志记录页,视乎需要而勾选额外记录选项:
RRAS的日志会汇聚到Windows事件日志,通过事件查看器可以在ServerRoles 分支的 Remote Access 下查看到。日志文件位于:
C:\Windows\tracing
全部设置都完成后,启动RRAS服务:
稍等片刻,服务启动需要时间:
服务启动后,接下来在服务器上简单地做个DNS解析测试和PING测试:
还可以通过其它PC,测试从服务器获取IP地址、域名解析和网络通信,这里就不详述了。
这台基于Windows Server操作系统实现的软路由,只是刚刚完成了能用的配置程度。在下一篇再介绍安全性和性能调优等进一步的配置过程。
本站微信订阅号:
本页网址二维码: