保护网络控制器

适用于:Azure 本地版本 23H2 和 22H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

本文介绍如何为网络控制器与其他软件和设备之间的所有通信配置安全性。

可以确保安全的通信路径包括管理平面上的北行通信、群集中网络控制器虚拟机之间的群集通信(VM 之间的群集通信),以及数据平面上的南行通信。

  1. 北行通信。 网络控制器在管理平面上与支持 SDN 的管理软件(如 Windows PowerShell 和 System Center Virtual Machine Manager (SCVMM))进行通信。 通过这些管理工具,可以定义网络策略并为创建网络状态目标,可以将实际网络配置与目标比较,然后将实际配置与目标状态一致化。

  2. 网络控制器群集通信。 将三个或多个 VM 配置为网络控制器群集节点后,这些节点将相互通信。 此通信可能会与跨节点的数据同步和复制或与网络控制器服务之间的特定通信有关。

  3. 南行通信。 网络控制器在数据平面上与 SDN 基础结构和其他设备(如软件负载均衡器、网关和主机)进行通信。 可以使用网络控制器来配置和管理这些南行设备,以便它们保持网络配置的目标状态。

北行通信

网络控制器支持对北行通信进行身份验证、授权和加密。 以下部分提供有关如何配置这些安全设置的信息。

身份验证

为网络控制器北向通信配置身份验证时,允许网络控制器群集节点和管理客户端验证其与之通信的设备的身份。

网络控制器支持管理客户端和网络控制器节点之间的以下三种模式的身份验证。

注意

如果要使用 System Center Virtual Machine Manager 部署网络控制器,则仅支持 Kerberos 模式

  1. Kerberos。 将管理客户端和所有网络控制器群集节点加入 Active Directory 域时,请使用 Kerberos 身份验证。 Active Directory 域须具有用于身份验证的域帐户。

  2. X509。 对未加入 Active Directory 域的管理客户端使用 X509 进行基于证书的身份验证。 必须将证书注册到所有网络控制器群集节点和管理客户端。 此外,所有节点和管理客户端都必须信任彼此的证书。

  3. 。 在测试环境中使用“无”进行测试,且不建议在生产环境中使用。 选择此模式时,节点和管理客户端之间没有执行身份验证。

可以使用具有 ClientAuthentication 参数的 Windows PowerShell 命令 Install-NetworkController 为北行通信配置身份验证模式。

授权

为网络控制器北向通信配置授权时,允许网络控制器群集节点和管理客户端验证其与之通信的设备是否受信任并且有权参与通信。

对网络控制器支持的每种身份验证模式使用以下授权方法。

  1. Kerberos。 使用 Kerberos 身份验证方法时,通过在 Active Directory 中创建安全组,然后将授权用户和计算机添加到该组,来定义有权与网络控制器通信的用户和计算机。 可以使用 Install-NetworkController Windows PowerShell 命令的 ClientSecurityGroup 参数将网络控制器配置为使用安全组进行授权。 安装网络控制器后,可以使用带参数 -ClientSecurityGroup 的 Set-NetworkController 命令更改安全组。 如果使用 SCVMM,需要在部署期间提供安全组作为参数。

  2. X509。 使用 X509 身份验证方法时,网络控制器仅接受已知其证书指纹的管理客户端的请求。 可以使用 Install-NetworkController Windows PowerShell 命令的 ClientCertificateThumbprint 参数配置这些指纹。 可以使用 Set-NetworkController 命令随时添加其他客户端指纹。

  3. 。 选择此模式时,节点和管理客户端之间没有执行身份验证。 在测试环境中使用“无”进行测试,且不建议在生产环境中使用。

加密

北行通信使用安全套接字层 (SSL) 在管理客户端和网络控制器节点之间创建加密通道。 北行通信的 SSL 加密包括以下要求:

  • 所有网络控制器节点都必须具有相同的证书,其中包含“增强型密钥使用 (EKU) 扩展”中的服务器身份验证和客户端身份验证目的。

  • 管理客户端用来与网络控制器通信的 URI 必须是证书使用者名称。 证书使用者名称必须包含完全限定的域名 (FQDN) 或网络控制器 REST 终结点的 IP 地址。

  • 如果网络控制器节点位于不同的子网上,则证书的使用者名称必须与 Install-NetworkController Windows PowerShell 命令中 RestName 参数使用的值相同。

  • 所有管理客户端都必须信任 SSL 证书。

SSL 证书注册和配置

必须在网络控制器节点上手动注册 SSL 证书。

注册证书后,可以将网络控制器配置为将证书与 Install-NetworkController Windows PowerShell 命令的 -ServerCertificate 参数配合使用。 如果已安装网络控制器,可以使用 Set-NetworkController 命令随时更新配置。

注意

如果使用 SCVMM,则必须将证书添加为库资源。 有关详细信息,请参阅在 VMM 构造中设置 SDN 网络控制器

网络控制器群集通信

网络控制器支持针对网络控制器节点之间的通信进行身份验证、授权和加密。 该通信通过 Windows Communication Foundation (WCF) 和 TCP 实现。

可以使用 Install-NetworkControllerCluster Windows PowerShell 命令的 ClusterAuthentication 参数配置此模式。

有关详细信息,请参阅Install-NetworkControllerCluster

身份验证

为网络控制器群集通信配置身份验证时,允许网络控制器群集节点验证其与之通信的其他节点的身份。

网络控制器支持网络控制器节点之间的以下三种模式的身份验证。

注意

如果使用 SCVMM 部署网络控制器,则仅支持 Kerberos 模式。

  1. Kerberos。 如果所有网络控制器群集节点均加入 Active Directory 域,可以使用 Kerberos 身份验证,以及用于身份验证的域帐户。

  2. X509。 X509 是基于证书的身份验证。 如果网络控制器群集节点未加入 Active Directory 域,可以使用 X509 身份验证。 若要使用 X509,需要将证书注册到所有网络控制器群集节点,且所有节点都必须信任证书。 此外,每个节点上注册的证书的使用者名称必须与节点的 DNS 名称相同。

  3. 。 选择此模式时,网络控制器节点之间没有执行身份验证。 此模式仅用于测试目的,不建议在生产环境中使用。

授权

为网络控制器群集通信配置授权时,允许网络控制器群集节点验证其与之通信的节点是否受信任并有权参与通信。

对网络控制器支持的每种身份验证模式使用以下授权方法。

  1. Kerberos。 网络控制器节点仅接受来自其他网络控制器计算机帐户的通信请求。 当使用 New-NetworkControllerNodeObject Windows PowerShell 命令的 Name 参数部署网络控制器时,可以配置这些帐户。

  2. X509。 网络控制器节点仅接受来自其他网络控制器计算机帐户的通信请求。 当使用 New-NetworkControllerNodeObject Windows PowerShell 命令的 Name 参数部署网络控制器时,可以配置这些帐户。

  3. 。 选择此模式时,网络控制器节点之间没有执行任何授权。 此模式仅用于测试目的,不建议在生产环境中使用。

加密

网络控制器节点之间的通信使用 WCF 传输级别加密进行加密。 当身份验证和授权方法为 Kerberos 或 X509 证书时,将使用这种加密形式。 有关详细信息,请参阅以下主题。

南行通信

在南行通信中,网络控制器会与不同类型的设备进行交互。 这些交互使用不同的协议。 因此,身份验证、授权和加密会有不同的要求,具体取决于网络控制器用来与设备通信的设备和协议的类型。

下表提供有关网络控制器与不同南行设备交互的信息。

南行设备/服务 协议 使用的身份验证
软件负载平衡器 WCF (MUX)、TCP(主机) 证书
防火墙 OVSDB 证书
网关 WinRM Kerberos、证书
虚拟网络 OVSDB、WCF 证书
用户定义的路由 OVSDB 证书

以下部分介绍了其中每个协议的通信机制。

身份验证

南行通信使用以下协议和身份验证方法。

  1. WCF/TCP/OVSDB。 这些协议使用 X509 证书进行身份验证。 网络控制器和对等软件负载均衡 (SLB) 多路复用器 (MUX) /主机计算机相互出示证书进行相互身份验证。 每个证书都必须受到远程对等方的信任。

    南行身份验证可以使用对与北行客户端的通信进行加密时所用的相同 SSL 证书。 还必须在 SLB MUX 和主机设备上配置证书。 证书使用者名称必须与节点的 DNS 名称相同。

  2. WinRM。 对于此协议,身份验证是使用 Kerberos(针对加入域的计算机)和证书(针对非加入域的机器)来执行的。

授权

南行通信使用以下协议和授权方法。

  1. WCF/TCP。 对于这些协议,授权基于对等实体的使用者名称。 网络控制器存储对等设备 DNS 名称,并将其用于授权。 此 DNS 名称必须与证书中设备的使用者名称匹配。 同样,网络控制器证书必须与存储在对等设备上的网络控制器 DNS 名称匹配。

  2. WinRM。 如果使用 Kerberos,则 WinRM 客户端帐户必须存在于 Active Directory 中的预定义组或服务器上的本地管理员组中。 如果使用证书,客户端将向服务器出示一个服务器使用“使用者名称”/“颁发者”授权的证书,服务器会使用映射的用户帐户来执行身份验证。

  3. OVSDB。 授权基于对等实体的主体名称。 网络控制器存储对等设备 DNS 名称,并将其用于授权。 此 DNS 名称必须与证书中设备的使用者名称匹配。

加密

南行通信为协议使用以下加密方法。

  1. WCF/TCP/OVSDB。 对于这些协议,将使用在客户端或服务器上注册过的证书进行加密。

  2. WinRM。 默认情况下,使用 Kerberos 安全支持提供程序 (SSP) 来加密 WinRM 流量。 可以在 WinRM 服务器上以 SSL 形式配置其他加密。