nps服务是无状态的,也是就说两个nps配置相同,使用谁都行。 微软有自己的负载均衡器和故障转移 nlb。
配置同步可以使用nps配置导出导入功能,通过powershell脚本自动同步。
nlb是什么?
nlb 是 network 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
## powershell 管理员 install-windowsfeature -name nlb -includemanagementtools
运行nlbmgr.exe 即可打开gui管理工具
nps-p1 上新建集群
获取操作网络接口名称为以太网
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集群
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上操作
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
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服务器。
## 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秒
到此这篇关于windows server 2025 nps高可用和主从同步的实现的文章就介绍到这了,更多相关server 2025 nps高可用和主从同步内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论