能否用Windows服务器作为路由器?(基本配置篇)

作者:Sender Su  来源:原创内容  发布日期:2023-02-26  最后修改日期:2023-02-26

简单说,肯定是可以的。

但之所以要写这个主题,原因还是在于,怎样才是这个事情的最佳实践?

article banner

笔者:国际认证信息系统审计师、软考系统分析师

一个合格的软路由,需要具备(1)双向NAT(2)防火墙(3)局域网路由(4)DNS转发(5)DHCP动态分配地址(6)日志记录等功能,负载量大时要(7)性能调优,还要按使用需要考虑设置(8)Wifi接入。

大多数的教程其实就只说了NAT一件事而已。这固然是可以用了,但如果从网络安全、可靠性、吞吐量等角度,是远远不够的。

本文涉及知识点是 Windows Server、网卡配置、TCP/IP配置、路由和远程访问服务、防火墙服务、DHCP服务、DNS服务等。

由于内容比较多,本篇的目标是先把最基础的路由功能配置起来。

一、软硬件选型
1、Windows服务器版本选型

就现在是2023年来说,最低要选择从 Windows Server 2012 R2 版本开始。这一方面是 Windows Server 2012 R2 的路由和远程访问功能(RRAS)和 Windows 防火墙功能的完善可靠程度,另一方面是这个版本的系统还能获得安全补丁更新,扩展安全更新会延续到2026年。

2、服务器配置

服务器的配置,主要看使用环境的负载程度。起决定性作用的是CPU和网卡:尤其是网卡。网卡的功能和性能直接影响到软路由的性能。

一般来说,服务器产品的网卡都不会太差,尤其是能直接提升网络吞吐量、降低响应延迟的各种offload(卸载)功能特性都是具备的,例如下面这样的:

nic properties

上图中的各种校验和卸载选项,在启用RX和TX即接收和发送都卸载后,这些计算就由网卡接管,不用耗费CPU资源进行计算。不仅千兆,万兆网卡都可以达到全线速的收发能力。

但如果用一般的桌面PC来承担软路由功能,那就要先看清楚网卡(通常都是主板板载)是否具备这些卸载能力。如果没有,那就应该另外采购具备这些功能网卡,比如像下面这样的(注意PCI-E插槽要求是4X槽,可以插到16X槽使用):

nic high performance

CPU方面,在网卡的支持下,现在的主流4核桌面级CPU,主频1.8GHz以上都能轻松支持千兆线速吞吐。如果希望达到万兆线速,加上其它功能的需要,建议是6核起步,CPU主频不低于2.4GHz。

内存、硬盘等部件按一般Windows服务器去配置即可。

二、基础网络设置
1、网络接口的配置

硬件环境配置到位后自然是采购和安装操作系统。接下来对网络接口配置IP地址设置这些不在话下,但关键的第一件事其实是要区分网络接口。

例如,要实现 Windows 软路由作为内外网之间的路由器,那么至少应具备两个网络接口,一个用于内网,另一个用于外网,并且要重命名,把内网的接口命名为LAN,外网的接口命名为WAN,如下图:

3-rename-interface

也可以用中文命名,看自己喜欢。重点在于物理上不要接错线。改名后,对LAN接口配置本地IP地址,WAN接口则看ISP情况自行配置,比如ISP是DHCP给地址的,WAN口就设置为通过DHCP获取地址。

网络上有一些角度比较刁钻的做法,让软路由器在交换机的配合下用一个网络端口同时承载WAN和LAN流量,这种做法在家庭环境玩玩没问题,用于企业组织环境是万万不行。因为这样做是直接打破了网络边界和颠覆了网络分区,不符合网络安全的基本要求。

如果该服务器用于本地局域网的内部子网之间的路由,则可以按实际情况,包括服务器的扩展能力、企业的财力、局域网的VLAN设置等因素,配置更多的网络接口。

一般地,如果网络环境是通过VLAN划分子网,那么最好还是每一个子网配置一个对应的网络接口。尽量少用单臂路由模式。

2、网络接口的性能调整

如前所述,网络接口需要调整配置其性能设置,最大化网络吞吐、最小化网络延迟。

网络上相关的介绍不少,但务必要注意这些设置大多数都是和具体 Windows Server 版本相关的,应用之前要先落实。典型如 Windows 2012 提供的IPsec Task Offload 和 TCP Chimney Offload 两项设置在Windows 2016 被淘汰。建议参考微软如下文档:

https://learn.microsoft.com/en-us/windows-server/networking/technologies/network-subsystem/net-sub-performance-tuning-nics

调优的重点是检查网卡驱动程序设置:(1)各种卸载功能特性是否已经开启;(2)包数据接收和发送的缓冲区是否设置到允许的最大值;(3)延迟敏感时禁用中断调节;(4)最大化合并缓冲区的数量。

另外还有其它方面的设置,比如BIOS设置为高性能模式,禁用CPU的某些省电特性等,禁用一些主板监控功能等等,由于比较复杂,这里暂且按下。

三、路由服务配置
1、添加服务角色:路由和远程访问(简称RRAS)

接下来需要对服务器添加“远程访问”角色。通过服务器管理器的“添加角色和功能”向导,在角色选单中勾选“远程访问”,然后一步步完成安装过程步骤。过程太简单了,只放关键的图就好。

4-add-role-1

远程访问角色由三个不同的角色服务组成,选择“路由服务”会导致同步自动选择“DirectAccess和VPN(RAS)”角色服务,还因为功能依赖而需要安装其它角色和功能。

4-add-role-1

话说这功能依赖导致要安装和启用IIS,在我看来是增加了风险。

4-add-role-3

完成安装步骤后,该角色和相关的依赖项目已经被添加到Windows中,不需要重新启动系统。

2、配置并启用路由和远程访问

接下来,在“管理工具”中找到“路由和远程访问”管理控制台,启动控制台后,可见服务处于停止状态。右击服务器图标,选择“配置并启用路由和远程访问”:

5-config-rras-1

然后在向导界面,选择符合需要的模式。作为合格的路由器,需要详细配置,因此选择“自定义配置”,然后再勾选具体选项。

5-config-rras-2

这里有个重点:这个选择是一次性的。如果在完成选择后要改变,需要先禁用RRAS服务(会同时删除全部配置),然后重新启用和配置RRAS。

5-config-rras-3

这些选项大致解释如下:

●VPN访问:是否提供VPN接入,远程办公或远程管理的需要 ●拨号访问:是否提供传统的电话拨号接入 ●请求拨号连接(由分支机构路由使用):这是个相当有历史且复杂的功能,现在一般用不到,不解释了。 ●NAT:内外网之间的地址转换,连接互联网时必须选择 ●LAN路由:内网路由能力

勾选NAT、LAN 路由,并按需要决定是否勾选VPN接入(预先强调:PPTP VPN已经是历史产物,其安全性很低,应使用更先进的VPN产品),完成向导,最后选择不启动服务,因为尚未配置完成。

6-config-rras-done

3、配置NAT功能

接下来,要配置NAT。右击NAT分支,选择“新增接口”,然后选择已经命名好的WAN接口。随后设置NAT功能属性,选择“公用接口连接到Internet”并勾选“在此接口上启用NAT”。

7-nat-1-wan

另外两个页面,“地址池”页面的内容一般不需要关心,基本上不存在由ISP服务商分配地址池的情况。“服务和端口”页面用于对外开放端口。对于本例我们不开放端口,所以不用勾选任何选项。

完成WAN口配置后,再继续新增接口,选择LAN接口,选择默认的“专用接口连接到专用网络”。如果LAN接口不止一个,全都要通过新增接口操作按如上默认选项完成新增。

7-nat-2-lan

由此完成NAT的基本设置。

4、配置NAT功能属性

这个路由器有个关键点是,要实现符合《网络安全法》要求的日志留存6个月以上的法律义务。

右击NAT分支,选择属性,可以看到有四个设置页面,第1页就是日志设置。可以考虑选择“记录错误及警告”或“记录最多信息”。

8-nat-settings1

日志留存时长和可靠性是复杂的话题,可以参考我之前写的内容:

网络安全日志收集甲方基础实践

第2页“转换”,定义的是网络数据流的映射关系过时机制。通过合理设置,NAT功能可以在数据流映射关系超时时自动删除,从而避免映射表爆满导致路由器效率降低、用户断流等情况。

8-nat-settings2

第3页是地址分配,配置的是DHCP服务。定义自动分配的地址范围和保留地址:

8-nat-settings3

这里实现的是非常轻量级的DHCP服务,如果需要细化控制DHCP,需要通过“添加功能和角色向导”添加DHCP服务器。我们留到下一篇再说。

在这里,简单地设定整个D段地址范围用于DHCP分配,然后在排除清单中加入地址范围内的静态IP地址设备和LAN接口本身的地址即可。

第4页配置名称解析,也就是让NAT是否成为DNS解析中继。勾选启用后,NAT的LAN接口成为DNS解析代理,通过WAN网络接口设置的DNS服务器,转发局域网内客户端向LAN接口地址提出的DNS解析请求和解析回复。

8-nat-settings4

同样地,如果需要细化DNS解析功能,需要安装“DNS 服务器”这一服务器角色。我们也是留到下一篇再说。

5、设置路由和远程访问服务的属性

最后,是设置整个RRAS服务的属性。右击本机RRAS服务,选择属性,然后进行一些必要的设置:

第1页:如果不需要请求拨号路由,选择仅限局域网LAN路由。如不使用IPv6,取消IPv6路由器。如果不需要远程接入,取消IPv4、IPv6远程访问服务器。

9-rras-properties-1

然后是第3页,IPv4页面,“启用广播名称解析”选项下选择本地局域网的网络接口LAN:

9-rras-properties-2

再然后是第4页,IPv6页面,不使用就取消IPv6:

9-rras-properties-3

最后是第7页,日志记录页,视乎需要而勾选额外记录选项:

9-rras-properties-4

RRAS的日志会汇聚到Windows事件日志,通过事件查看器可以在ServerRoles 分支的 Remote Access 下查看到。日志文件位于:

C:\Windows\tracing

全部设置都完成后,启动RRAS服务:

10-rras-start-1

稍等片刻,服务启动需要时间:

10-rras-start-2

服务启动后,接下来在服务器上简单地做个DNS解析测试和PING测试:

11-cmd-test

还可以通过其它PC,测试从服务器获取IP地址、域名解析和网络通信,这里就不详述了。

小结

这台基于Windows Server操作系统实现的软路由,只是刚刚完成了能用的配置程度。在下一篇再介绍安全性和性能调优等进一步的配置过程。

本栏目相关
  •  2024-09-06 拿来主义也高质:优化 WSUS 之不会开发但会找
  •  2014-01-05 解决虚拟化运行的 Windows Server 2003 标准版 出现“PNP0C80”未知设备
  •  2013-09-04 Windows Server 2008 重命名域和域控制器
  •  2015-05-11 解决Windows Server 2008 R2域控制器显示无法连接到Internet
  •  2020-02-27 服务器热加硬盘、热转RAID模式,配合LINUX卷操作实现不重启服务器完成扩容
  •  2023-01-26 Windows服务器折腾安装MegaRAID存储管理器17.05版
  •  2020-02-23 WINDOWS SERVER 2012 R2 STANDARD 重装 WSUS 过程记录
  •  2009-04-15 Symantec个人防火墙的广告拦截功能相当的弱智
  •  2022-02-24 如何安装使用 Broadcom RAID卡命令行管理工具 StorCLI(或称PercCLI)?
  • 本站微信订阅号:

    微信订阅号二维码

    本页网址二维码:

    本栏目热门内容
  • Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然...
  • LINKSYS交换机登录WEB界面显示不正确的解决方法
  • 又一次RAID 5阵列故障记录
  • 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能...
  • 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET...
  • 解决虚拟化运行的 Windows Server 2003 标准版出现...
  • Windows Server 2008 重命名域和域控制器
  • Intel Nehalem CPU Errata 导致 VMWare ESXi(vSpher...
  • 一次很精神的电脑组装过程记录(但不是自己的电脑)...
  • 解决MySQL Cluster 备份总是失败,提示文件已存在的...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的问题
  • 解决 VMWare vSphere 6 客户端无法修改用户密码
  • 解决Windows Server 2008 R2域控制器显示无法连接到...
  • 本站服务器RAID 5阵列双硬盘失效挽救记录
  • 网站数据库从MySQL 5.0升级到5.6的记录
  • 解决MariaDB使用Percona XtraBackup增量备份出错
  • DELL PowerEdge 820 报CPU3 INTERNAL ERROR 的解决...
  • Linux 下的分区调整工具GParted实战
  • 修改arpwatch使通知邮件主题显示IP地址
  • 程序员漫画:如何用8种不同的编程语言去解救公主
  • 解决Samba WINS服务的错误解释问题
  • 解决很好用的多合一即时通信软件pidgin的崩溃问题
  • 使用 GParted 进行虚拟机硬盘分区调整操作
  • 解决Squid代理HTTP时在浏览器出现Content Encoding ...
  • 用Delphi编写使用到ADO的DLL的一些问题
  • 网站简单改版
  • 索尼系列手提电脑备份失败,出现700错误的解决办法
  • Dell R900服务器 BMC firmware incompatible with C...
  • 更多...