SMTP(简单邮件传输协议)是一种用于电子邮件传输的通信协议。STARTTLS 基于 SMTP 将纯文本连接升级到已加密(TLS 或 SSL)连接,而不是使用单独的端口进行加密通信。

STARTTLS 流程流

以下是 STARTTLS 流程:



  1. STARTTLS 流程在 TCP 握手后启动。

  2. 服务器通过 220 Ready 确定电子邮件客户端可以继续进行通信。

  3. 客户端向服务器发送 EHLO 以告知服务器客户端将使用 Extended SMTP

  4. 服务器向客户端发送 250 STARTTLS 以检查是否接受 STARTTLS。

  5. 客户端向服务器发送 STARTTLS,表示可以接受 STARTTLS

  6. 如果可以启动 SSL/TLS,服务器将向客户端发送 220 GO Heads

  7. 客户端对服务器启动 SSL/TLS

  8. SSL/TLS 完成后,将对电子邮件进行加密。

L4 SSL 中的 DataScript 事件

新的 Datascript 事件:

事件名称:VS_DATASCRIPT_EVT_TCP_CLIENT_ACCEPT

功能:在 TCP 握手完成后发生。

新的 Datascript API:

API 名称

事件

描述

功能

avi.ssl.disable_ssl()

VS_DATASCRIPT_EVT_TCP_CLIENT_ACCEPT

无参数

TCP 握手后停用 SSL

avi.ssl.enable_ssl()

VS_DATASCRIPT_EVT_L4_REQUEST

无参数

在流量期间激活 SSL

流量传输

流量传输如下所示:



以下是流量传输流程:

  1. 在与客户端进行 TCP 握手后,NSX Advanced Load Balancer 将创建与后端服务器的连接。

  2. NSX Advanced Load Balancer 在客户端和服务器之间发送代理消息。

  3. 客户端可以随时向服务器发送有关扩展 SMTP 使用情况的 EHLO(就在 TCP 握手或发送某些数据之后)。

  4. 收到 EHLO 后,服务器将通告其服务。

  5. 如果没有 STARTTLS,系统会将 250 STARTTLS 添加为服务之一。

  6. 客户端可以向 STARTTLS 发送 TLS 请求。

  7. NSX Advanced Load Balancer 使用 220 回复客户端,然后启动 TLS 协商。

  8. SSL/TLS 协商后,客户端会向 NSX Advanced Load Balancer 发送加密邮件。