AD系列:Windows Server 2025 NPS高可用和主从同步

本文最后更新于 2025年5月12日 上午

实现windows NPS 高可用

NPS服务是无状态的,也是就说两个NPS配置相同,使用谁都行。 微软有自己的负载均衡器和故障转移 NLB。

配置同步可以使用NPS配置导出导入功能,通过Powershell脚本自动同步。

AD系列文章:https://songxwn.com/categories/AD/

NLB是什么?

NLBNetwork Load Balancing(网络负载均衡)

1. Network Load Balancing(网络负载均衡)​

概述

NLB 是一种在多台服务器之间分担外部网络请求/流量的技术,常用于提升网站、应用服务器的可用性和性能,以及实现高可用和容错。

作用

  • 分流用户访问到多台服务器,提高系统吞吐量

  • 实现冗余,一台服务器宕机不会影响整体服务

  • 进行无缝升级与维护

工作方式

NLB 会根据一定的负载分配算法(如轮询、最少连接等),自动将来自客户端的网络请求分发到多个后端服务器节点。

2. Windows NLB(Network Load Balancing)特点

在微软环境下,NLB 也是 Windows Server 操作系统自带的一个负载均衡组件,常用于:

  • 负载均衡 IIS Web 服务

  • 负载均衡远程桌面服务

  • 负载均衡应用服务器等

  • 负载网络策略服务器等

示例:

在多台 Windows Server 部署同一应用时,通过配置 NLB,客户端可以用同一个虚拟IP访问,NLB自动决定实际的处理服务器。

NLB工作模式

关于 NLB(网络负载均衡,Network Load Balancing)的“模式”,如果你指的是常见的部署和工作模式,尤其是在 Windows NLB 或常见软硬件负载均衡器上,主要可以归纳为以下几种:

1. 单播模式(Unicast Mode)​

  • 原理:所有 NLB 节点适配器都被配置为同一个(虚拟的)MAC 地址,真实服务器的物理 MAC 地址会被取消注册。

  • 特点

    • 节点之间无法直接通信(因为目标 MAC 一样,交换机无法区分)。

    • 需要多网卡(或额外配置)实现管理流量。

    • 常用于小型网络环境。

  • 优点:部署简单,对交换机无特殊要求。

  • 缺点:同一主机群组内的节点难以互访,广播/环回可能增加。

2. 多播模式(Multicast Mode)​

  • 原理:所有 NLB 节点都分配一个组播 MAC 地址(即虚拟IP对应的 MAC 是组播MAC),自己的物理MAC也保留。

  • 特点

    • 节点间可以直接通信。

    • 需要交换机支持组播MAC。

    • 适用于大型、需要群组节点互访的场景。

  • 优点:同组服务器间可以直接通信。

  • 缺点:部分三层交换设备/路由设备支持不好,需专门配置。

3. IGMP 多播模式(IGMP Multicast Mode)​

  • 在标准多播的基础上,结合 IGMP 协议优化组播广播,减少网络广播风暴。

  • 通常需要支持 IGMP 侦听(Snooping)的交换机。

  • 适合大型企业网络环境。

前提条件

  • 所有服务器都已加入域控

  • 所有操作都使用域控管理员执行。

  • 所有用于NLB集群的网卡,都在同一网段,同一广播域。

服务器IP规划 - 注意服务器所有接口都为静态IP

主机DNS名称 角色 IP地址 用于NLB网卡接口名称 备注
NPS-P1.songxwn.com 主Radius服务器 192.168.0.6 以太网
NPS-P2.songxwn.com 备Radius服务器 192.168.0.9 以太网
NPS-P3.songxwn.com 备Radius服务器 192.168.0.7 以太网
NPS-C1.songxwn.com NLB 集群IP 192.168.0.10 虚拟IP

安装和配置 NLB

NPS-P1和P2、P3都需要执行安装NLB

1
2
3
4
## Powershell 管理员

Install-windowsfeature -name NLB -IncludeManagementTools

运行nlbmgr.exe 即可打开GUI管理工具

NPS-P1 上新建集群

获取操作网络接口名称为以太网

1
2
3
4
5
6
7
8
9
10
11
Get-NetIPConfiguration

InterfaceAlias : 以太网
InterfaceIndex : 5
InterfaceDescription : Red Hat VirtIO Ethernet Adapter
NetProfile.Name : songxwn.com
IPv4Address : 192.168.0.6
IPv6DefaultGateway :
IPv4DefaultGateway : 192.168.0.1
DNSServer : ::1
127.0.0.1

创建NLB集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
New-NlbCluster -InterfaceName "以太网" -ClusterPrimaryIP 192.168.0.10 -SubnetMask 255.255.255.0 -OperationMode Multicast -ClusterName "NPS-C1"

# 创建NLB集群,指定网卡、集群IP、集群IP的掩码、集群模式为组播、集群名称。


Get-NlbCluster

Name IPAddress SubnetMask Mode
---- --------- ---------- ----
NPS-C1 192.168.0.10 255.255.255.0 MULTICAST

# 查看NLB集群


Remove-NlbCluster

# 删除NLB集群




NPS-P2和P3 加入已有NLB集群 - 在NPS-P1上操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Get-NlbCluster -HostName 192.168.0.10 | Add-NlbClusterNode -NewNodeName "NPS-P2.songxwn.com" -NewNodeInterface "以太网"


Get-NlbCluster -HostName 192.168.0.10 | Add-NlbClusterNode -NewNodeName "NPS-P3.songxwn.com" -NewNodeInterface "以太网"


# 在现有集群加入新节点,指定集群IP,新节点主机名、新节点网卡名称。

## 注意接口名称都需要用Get-NetIPConfiguration 获取


Get-NlbClusterNode

# 查看NLB集群节点

配置更详细的端口规则 - 可选,默认是所有TCP/UDP

1
2
3
4
5
6
7
8
9

Get-NlbClusterPortRule | Remove-NlbClusterPortRule -Force


Get-NlbCluster | Add-NlbClusterPortRule -StartPort 80 -EndPort 80 -Protocol TCP -Affinity None | Out-Null

Get-NlbCluster | Add-NlbClusterPortRule -StartPort 1812 -EndPort 1813 -Protocol UDP -Affinity None | Out-Null


NPS 自动同步配置

所有NPS都创建C:\NPS-Backup 路径的文件夹,下面脚本保存为 .ps1 文件在主NPS服务器进行周期化执行,会将主NPS的配置同步覆盖到从NPS服务器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## Powershell 管理员

mkdir C:\NPS-Backup

# 创建配置文件备份文件夹

$date = get-date -Format yyyy_MM_dd

# 定义日期格式


$limit = (Get-Date).AddDays(-10)
$backup_dir = "C:\NPS-Backup"


# 删除10天前的文件


$Computers = @('NPS-P2.songxwn.com','NPS-P3.songxwn.com')

# 在此定义所有的NPS从服务器


Export-NpsConfiguration -Path $backup_dir\archive\NPS_config_$date.xml
Export-NpsConfiguration -Path $backup_dir\NPS_config.xml

# 导出本机的NPS配置

$Computers | Foreach-Object { Copy-Item -Path $backup_dir\NPS_config.xml -Destination \\$_\C$\NPS-Backup\NPS_config.xml }

# 复制配置文件到目标服务器


$Computers | Foreach-Object { Invoke-Command -ComputerName $_ -ScriptBlock {Import-NPSConfiguration -Path C:\NPS-Backup\NPS_config.xml} }

# 在目标服务器导入新的配置



Get-ChildItem -Path $backup_dir\archive -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force

# 删除早于$limit的文件

Start-Sleep -Seconds 4

# 暂停4秒

运维技术交流群

发送邮件到 ➡️ [email protected]

或者关注WX公众号:网工格物

微信扫码

博客(最先更新)

https://songxwn.com/

参考文档

https://gist.github.com/rheid/6e13667430d1d9d2644a


AD系列:Windows Server 2025 NPS高可用和主从同步
https://songxwn.com/AD-NPS-HA/
作者
Song
发布于
2025年5月9日
更新于
2025年5月12日
许可协议