NSX Advanced Load Balancer Controller 会持续与 NSX Advanced Load Balancer SE 安全地交换信息。同样,在集群部署中,多个 NSX Advanced Load Balancer Controller 也会持续安全地相互交换信息。

SE 执行负载均衡等数据平面操作,并向 NSX Advanced Load Balancer Controller 报告相关信息。此信息包括服务器运行状况、客户端连接信息和请求日志。在集群部署中,多个控制器共享用于日志处理和分析的工作负载。

NSX Advanced Load Balancer Controller 有时还可能会向 SE 发送命令,例如,进行配置更改。在正常操作期间,此管理流量可能平均为每个 SE 几 Kb/秒。如果控制器请求完整的客户端日志(大小可能为几 GB),则可能会出现通信高峰。

SE 与控制器的会话设置

NSX Advanced Load Balancer Controller 和 SE 使用 SSH 端口 22 通过其管理 IP 地址进行通信。在部署新的 SE 并将其连接到网络后,它会连接控制器以设置安全管理会话。(SE 和控制器的管理 IP 地址包含在 SE 的元信息中。)

SE 和控制器会交换密钥并通过端口 22 建立加密连接。在完全建立连接后,控制器会将相关配置推送到 SE。控制器从不启动这些连接。这些连接始终由 SE 启动。

注:

NSX Advanced Load Balancer ControllerNSX Advanced Load Balancer SE 之间的 RTT(往返时间)值必须小于 70 毫秒。

建立信任

  • 在控制器集群的给定实例以及此集群创建的一组 SE 中创建信任域。

  • 使用 SSH 端口转发确保传输安全,以保护控制器中的所有服务

    • 使用内部用户(aviseuseravictlruser)与密钥身份验证来创建隧道。

    • 身份的公钥保存在控制器和 SE 中这些用户的授权密钥中。

    • 密钥通过 HTTPS 隧道使用签名的 REST API 进行交换。

1 - 准备 SE 映像



  • 为控制器集群生成自签名根 CA。这将充当 NSX Advanced Load Balancer Controller 和 SE 的信任锚。

  • 集群中的每个 NSX Advanced Load Balancer Controller 节点将由根 CA 签名的唯一密钥对进行标识。

  • 生成 SE 映像密钥对,以按需自动创建 SE。

  • 控制器会将根 CA 证书和 SE 映像密钥对打包在 SE 映像中。

2 - 从映像创建 SE

  • NSX Advanced Load Balancer Controller 将使用相应的云基础架构 API 创建 SE。

3 - SE 初始化

  • 在引导时,SE 将为自身生成唯一的密钥对以创建 SSH 隧道。将使用内部 aviseuser 身份创建 SSH 隧道。

4 - 发布 SE 凭据

  • 在端口 8443 上建立与控制器的 HTTPS 会话。验证 NSX Advanced Load Balancer Controller 是否提供由根 CA 证书签名的证书。

  • 使用 REST API 将 SE 特定的公钥发布到控制器。

  • API 数据内容由 SE 映像凭据签名,该凭据由 NSX Advanced Load Balancer Controller 进行验证。此步骤仅执行一次。

  • NSX Advanced Load Balancer Controller 将 SE 特定的公钥保存在此 SE 中 aviseuser 的授权密钥中。

  • 此后,SE 可以使用 SE 特定的凭据建立 SSH 隧道。对于 8443 上来自此 SE 的 API 请求,将不再允许使用 SE 映像密钥。

5 - 创建 SSH 隧道

安全通道是用于在集群中的 NSX Advanced Load Balancer Controller 之间以及 NSX Advanced Load Balancer Controller 和 SE 之间进行通信的 SSH 转发和 SSH 反向隧道。

  • 使用 aviseuser 和 SE 特定的密钥对,创建一个使用端口转发的 SSH 隧道,SE 将通过该隧道与 NSX Advanced Load Balancer Controller 进行通信。

  • 从控制器到 SE 的反向通信也使用相同的 SSH 隧道。

控制器使用此隧道来运行升级脚本。为此,将使用内部 aviseuser,该用户具有基于 SSH 密钥的凭据。例如,其中一个 SE 的控制器中可能如下所示:

ssh -i /etc/ssh/id_se -p 5097 aviseuser@127.1.0.1

在上面的示例中,NSX Advanced Load Balancer Controller 的 127.1.0.1:5097 映射到 SE 上的 localhost:22。