Skip to main content

nat会话数60万对hyper-v服务器及路由器进行的优化操作

# 问题根因总结
NAT 在前端两台路由器做端口映射 NAT,单台路由器硬件 NAT 上限 40 万会话;晚高峰总 NAT≈60 万,**NAT在前端两台路由器做端口映射NAT,单台路由器硬件NAT上限40万会话;晚高峰总NAT≈60万,两台负载不均,其中一台路由器 NAT 会话触达 40 万硬件上限,其中一台路由器NAT会话触达40万硬件上限,新连接被丢弃、存量连接老化断开,造成外网上传大量丢连接。
60** 万总会话>单台> 40 万阈值,60万总会话>单台40万阈值,负载不均衡时单路由打满上限,就是断连元凶,Hyper-VV侧是流量承载端,次要优化。 侧是流量承载端,次要优化。
## 一、路由器侧核心整改(优先做,根治瓶颈)
 ### 1. 两台路由器做两台路由器做NAT负载分担(必做) NAT当前60万NAT会话,**两台路由均分:每台30万<40万单台上限**,彻底避开硬件NAT阈值。 负载分担(必做)
当前1. 60 万 NAT 会话,两台路由均分:每台 30 万<40 万单台上限,彻底避开硬件 NAT 阈值。
组网现状:路由器做端口映射(目的 NAT目的NAT DNAT)+ 外网源 IP外网源IP SNAT,两台上联汇聚到锐捷交换机,下联下联Hyper-V宿主机。 Hyper-V2. 宿主机。
负载分担方案二选一:
方案 A:基于源#### IP 哈希分流(方案A:基于源IP哈希分流(最省事,现有拓扑不改)
前端两台路由做等价路由 ECMP,前端两台路由做**等价路由ECMP**,外网回包、入方向上传流量根据外网源入方向上传流量根据外网源IP哈希,自动分摊DNAT/NAT会话到两台路由器。 IP- 哈希,自动分摊 DNAT/NAT 会话到两台路由器。
交换机配置两条等价默认路由指向两台路由器,实现入向流量负载均衡;
 - 效果:6060万会话自动打散,单路由承载30W左右,低于40W硬件上限。 万会话自动打散,单路由承载#### 30W方案B:端口段拆分DNAT映射(固定分流) 左右,低于把外网端口段拆分: 40W- 硬件上限。
方案 B:端口段拆分 DNAT 映射(固定分流)
把外网端口段拆分:
路由器 A:映射外网端口段 1~路由器A:映射外网端口段1~30000 → Hyper-VV内网业务 内网业务
路由器- B:映射外网端口段 30001~路由器B:映射外网端口段30001~65535 → Hyper-VV内网业务 内网业务
流量天然按端口分到两台路由,会话天然均分。
 ### 2. 路由器 NAT 老化优化(路由器NAT老化优化(快速回收空闲会话,临时应急)
两台路由器统一缩短空闲 NAT 老化时间,两台路由器统一缩短空闲NAT老化时间,快速释放僵尸空会话,腾出硬件表项:
 ```ios
 # 通用路由器命令参考(华为/锐捷/华三通用逻辑)
 ip nat translation timeout 300 # TCP空闲5分钟老化
 ip nat translation udp-timeout 60 # UDP空闲1分钟老化
 ``` 作用:避免无效连接长期占用避免无效连接长期占用NAT表,防止会话堆积快速碰40W上限。 NAT### 表,防止会话堆积快速碰 40W 上限。
3. 路由器路由器NAT超限保护配置 NAT开启路由器NAT超限丢弃新连接保护,满40W后不再疯狂挤占存量会话: 超限保护配置
开启路由器```ios NAT 超限丢弃新连接保护,满 40W 后不再疯狂挤占存量会话:
ios
# 限制单设备NAT最大会话,防止单个恶意IP占满表项
 ip nat limit per-host 8000
 # 整机NAT告警阈值设35万,提前预警
 ``` ## 二、Windows Hyper-VV宿主机配套优化(解决内网侧次生瓶颈,你之前网卡+端口问题) 宿主机配套优化(解决内网侧次生瓶颈,你之前网卡### + 端口问题)
1. TCPTCP动态端口扩容(已查到默认仅16384源端口,必须扩容) 动态端口扩容(已查到默认仅 16384 源端口,必须扩容)
管理员 CMD 执行,把 TCP 临时端口从 1.6W 扩容至 6.管理员CMD执行,把TCP临时端口从1.6W扩容至6.4W,内网虚拟机大量出站不缺端口:
 ```cmd
 netsh int ip set dynamicport tcp start=1025 num=64511
 netsh int ip show dynamicport tcp
 ``` ### 2. Intel 8259982599万兆网卡高级参数固定配置(Hyper-V高并发最优) 万兆网卡高级参数固定配置(Hyper-V| 高并发最优)
表格
参数 | 配置值 | 作用
 | | ---- | ---- | ---- | | Receive Side Scaling(RSS) | Enabled | 开启多队列中断分流
 | | RSS load balancing profile NUMAScalingStatic| NUMA**NUMAScalingStatic** 静态均分| RSS 队列,NUMA静态均分RSS队列,多核均衡,杜绝单核满载丢包
 | | Virtual Machine Queues(VMQ) | Enabled | Hyper-VV虚拟机队列,vSwitch转发硬件分流,海量虚拟机互访不堵 虚拟机队列,vSwitch| 转发硬件分流,海量虚拟机互访不堵
| RX/TX Receive/Transmit Buffers | 拉到最大值 | 加大网卡硬件缓存,突发上传报文不溢出丢弃
 | | TCP/UDP Checksum Offload 全部| Enabled全部Enabled | 校验卸载下放网卡,节省宿主机节省宿主机CPU CPU
| > 改完网卡参数后,Hyper-V 虚拟交换机属性勾选启用虚拟机队列(V虚拟交换机属性勾选**启用虚拟机队列(VMQ)**,和网卡硬件配置联动。
 ### 3. WindowsWindows系统连接跟踪优化(RRAS/防火墙conntrack) 系统连接跟踪优化(RRAS / 防火墙 conntrack)
注册表路径:`HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
新建FirewallPolicy` DWORD:MaxNATEntries,十进制新建DWORD:`MaxNATEntries`,十进制=**2000000(200万)**,放开Windows系统连接跟踪上限; =2000000(200PowerShell执行: 万),放开```powershell Windows 系统连接跟踪上限;
PowerShell 执行:
powershell
Set-NetNatGlobal -ConcurrentConnectionCountThreshold 2000000
 ``` ## 三、临时应急&验证步骤 &1. 验证步骤
**应急:先改路由器先改路由器NAT老化时间**,当晚高峰立刻减少存量会话堆积; NAT2. 老化时间,当晚高峰立刻减少存量会话堆积;
**短期:交换机配置交换机配置ECMP等价路由实现NAT两台均分**,60W→每台30W<40W硬件上限,彻底解决超限断连; ECMP3. 等价路由实现 NAT 两台均分,60W→每台 30W<40W 硬件上限,彻底解决超限断连;
**长期:Hyper-VV主机优化端口+网卡RSS+注册表NAT上限**,消除内网侧次生瓶颈。 主机优化端口## +补充关键说明 网卡1. RSS + 注册表 NAT 上限,消除内网侧次生瓶颈。
补充关键说明
断连主瓶颈在前端路由器单台 NAT 硬件 40 万上限、负载不均,断连**主瓶颈在前端路由器单台NAT硬件40万上限、负载不均**,Windows Hyper-VV是次要瓶颈; 是次要瓶颈;
外网上传流量是DNAT2. 目的地址转换,会话全部占用前端路由器外网上传流量是**DNAT目的地址转换**,会话全部占用前端路由器NAT表,和后端交换机、宿主机NAT无关; NAT3. 表,和后端交换机、宿主机 NAT 无关;
若两台路由现在负载差距极大(一台 38W、一台 22W)一台38W、一台22W),就是路由引流不均,ECMP 分流是最优解。ECMP分流是最优解。