微软SDN的BGP路由与NAT技术剖析

Windows Server 2025 中的 SDN(Software Defined Networking,软件定义网络)继承了微软自 Windows Server 2016 开始构建的 SDN 架构,并在 Windows Server 2025 与 Azure Local(原 Azure Stack HCI)中进一步强化。其核心网络功能主要围绕:

  • 虚拟网络(Virtual Network)
  • 分布式防火墙(ACL)
  • 软件负载均衡(SLB)
  • 网关(Gateway)
  • BGP动态路由
  • NAT地址转换

展开。

对于企业私有云、IDC、多租户云平台而言,BGP与NAT是SDN南北向流量(North-South Traffic)的核心技术


一、SDN整体网络架构

这里:

  • SDN Gateway负责对外连接
  • Network Controller负责下发策略
  • Hyper-V Host负责数据转发

二、BGP在SDN中的作用

传统网络的问题

例如:

复制代码
VM Network
10.10.0.0/16

        │
        │
    Gateway
        │
        │
 Core Router

如果增加一个新的租户网络:

复制代码
10.20.0.0/16

管理员需要:

复制代码
ip route 10.20.0.0 255.255.0.0 next-hop

手工添加静态路由。

当:

  • 数百个VNET
  • 数千个租户

时基本不可维护。


BGP解决的问题

SDN Gateway可以作为BGP Router。

例如:

复制代码
Tenant-A
10.10.0.0/16

Tenant-B
10.20.0.0/16

Tenant-C
10.30.0.0/16

Gateway自动向核心交换机发布:

复制代码
10.10.0.0/16

10.20.0.0/16

10.30.0.0/16

核心路由器自动学习。

无需人工配置。


三、SDN BGP工作机制

微软采用标准:

Border Gateway Protocol

即RFC 4271。

因此:

  • Cisco
  • Juniper
  • DELL
  • H3C
  • 华为
  • Arista

都可对接。


BGP Peer关系

复制代码
               ASN 65000
        ┌────────────────────┐
        │   Core Router      │
        └─────────┬──────────┘
                  │
             BGP Peer
                  │
                  │
        ┌─────────┴──────────┐
        │   SDN Gateway      │
        │   ASN 65100        │
        └────────────────────┘

配置:

复制代码
Core Router ASN
65000

Gateway ASN
65100

建立邻居关系:

复制代码
Neighbor
192.168.100.1

之后路由自动同步。


四、SDN中的BGP路由发布

例如:

租户网络

复制代码
Tenant-A

10.10.0.0/24

Gateway自动生成:

复制代码
10.10.0.0/24

BGP Advertisement:

复制代码
Network:
10.10.0.0/24

Next Hop:
192.168.100.10

发送给:

复制代码
Core Router

路由学习

反向也成立:

复制代码
Core Router

172.16.0.0/16

发布给Gateway:

复制代码
172.16.0.0/16

Gateway学习后:

复制代码
Tenant VM

即可访问:

复制代码
172.16.x.x

企业内部网络。


五、SDN中的NAT技术

NAT主要解决:

地址重叠

多个租户:

复制代码
Tenant-A
192.168.1.0/24

Tenant-B
192.168.1.0/24

可以共存。


Internet访问

VM:

复制代码
10.10.1.10

不能直接上网。

需要:

复制代码
10.10.1.10
   ↓
203.0.113.100

转换。


六、SDN NAT类型

微软SDN主要支持:

1 出站NAT(SNAT)

最常见。

复制代码
VM
10.10.1.10

访问:

复制代码
www.microsoft.com

经过Gateway:

复制代码
Source:
10.10.1.10

↓

203.0.113.100

转换。


转换表

复制代码
10.10.1.10:50000

↓

203.0.113.100:40001

利用端口复用。

类似家庭路由器。


2 入站NAT(DNAT)

公网访问VM。

例如:

公网:

复制代码
203.0.113.100

映射:

复制代码
10.10.1.10

规则:

复制代码
203.0.113.100:443

↓

10.10.1.10:443

用户访问:

复制代码
https://203.0.113.100

实际到达:

复制代码
10.10.1.10

3 PAT

Port Address Translation

复制代码
203.0.113.100:8443

↓

10.10.1.10:443

常用于:

  • Web服务
  • 多租户发布

七、SLB中的NAT

Windows SDN中的NAT实际上大量依赖:

Software Load Balancer

SLB不仅做负载均衡:

还承担:

复制代码
VIP
↓
DIP
↓
NAT

转换工作。


例如:

复制代码
VIP
20.1.1.100

后端:

复制代码
10.10.1.10
10.10.1.11
10.10.1.12

SLB完成:

复制代码
DNAT

和:

复制代码
负载均衡

八、Azure Local中的BGP与NAT

在现代的 Azure Local 架构中:

微软推荐:

复制代码
TOR Switch
      │
      │ BGP
      ▼
SDN Gateway
      │
      ▼
Tenant Network

而不是:

复制代码
静态路由

因为:

  • 自动发现租户网络
  • 自动故障切换
  • 自动收敛
  • 云化管理

九、BGP与NAT协同工作流程

以一台虚拟机访问互联网为例:

复制代码
VM
10.10.1.10

访问:

复制代码
8.8.8.8

流程:

第一步

VM发送:

复制代码
Src:
10.10.1.10

Dst:
8.8.8.8

第二步

到达SDN Gateway

Gateway执行:

复制代码
SNAT

变成:

复制代码
Src:
203.0.113.100

Dst:
8.8.8.8

第三步

通过BGP学习到的默认路由:

复制代码
0.0.0.0/0

发往核心路由器。


第四步

互联网返回:

复制代码
Dst:
203.0.113.100

第五步

Gateway查询NAT表:

复制代码
203.0.113.100:40001

↓

10.10.1.10:50000

恢复原地址。


第六步

数据返回VM。


十、Windows Server 2025与2022的变化

对于 SDN 而言,Windows Server 2025 最大变化并不是 BGP 或 NAT 协议本身,而是:

  1. Network Controller 已不再强依赖独立虚拟机部署
    • 与 Azure Local 架构趋同
    • 作为集群原生服务运行
  2. Gateway与SLB性能提升
    • 更好支持高带宽网卡(25/100GbE)
    • 更适合大规模东西向与南北向流量
  3. BGP EVPN方向增强
    • 与现代数据中心 Spine-Leaf 网络集成更方便
  4. Azure Arc统一管理
    • SDN配置可纳入云端管理体系