Files
conti-docs/Architecture-Diagram/network-architecture-explanation.md
T

692 lines
24 KiB
Markdown
Raw Normal View History

# Multicloud Network Architecture 详细说明
本文用于解释 `network-architecture-diagram.drawio` 中的两个页面,帮助产品、研发、集成和评审人员快速理解这套架构为什么这样设计、每个区域代表什么、各条访问链路分别承担什么职责,以及从网络拓扑角度如何理解各 VNet / VPC 之间的连通关系。
这个 draw.io 文件现在包含两个视图:
- `Network Architecture`:架构评审视图,重点说明业务域边界、主访问链路、供应商接入方式和历史系统兼容策略。
- `Network Topology`:网络拓扑视图,重点说明 VNet / VPC 边界、公网入口、私有服务区、跨网络访问路径和允许 / 例外链路。
两张图表达的是同一套系统,但侧重点不同:第一张回答“为什么这样分域、谁应该访问谁”,第二张回答“网络上从哪里进、跨哪些边界、通过哪些受控入口连通”。
## 1. 这张图整体在表达什么
这张图表达的是一套“三域分离、主链路统一、供应商隔离、历史系统兼容”的多云网络架构。
它的核心目标不是展示某个具体服务器怎么部署,而是说明以下几个关键架构原则:
- `Mobile App -> App Backend` 是唯一主访问链路。
- `App Backend` 是 APP 的统一主后台和业务编排中心。
- `F6` 是供应商能力域,不是 APP 的主后台。
- `Mobile App -> F6` 只允许发生在嵌入式 `WebView` 场景。
- `App Backend -> F6 API` 必须通过 `F6 Integration Adapter` 访问。
- `Mini Program Backend` 保持独立后台域,但面向 APP 的能力应优先通过 `App Backend` 聚合。
- `App Backend -> Mini Program Backend``App Backend -> F6` 都是跨独立 VPC / VNet 边界的受控后端访问,不是主域内部本地调用。
- 历史上少量 APP 直连 Mini 后台的场景可以兼容保留,但不能继续扩散。
从架构表达上看,这张图并不是一张“部署拓扑详图”,而是一张“面向架构评审的网络边界与主访问链路图”。
## 2. 顶部:Mobile App 和 Internet
图最上方是 `Mobile App`,下面是 `Internet`
这部分表示:
- 用户所有访问都从移动端发起。
- APP 访问不同后端域时,需要通过公网链路进入各自对外暴露的入口层。
- 移动端不是直接连内部服务,而是只访问被允许暴露的受控入口。
这张图中,APP 主要存在两类访问路径:
- 主访问路径:`Mobile App -> App Backend`
- 特殊访问路径:`Mobile App -> F6 WebView Pages`
其中第一条是主链路,第二条是例外链路,而且这个例外只允许发生在 F6 的嵌入式 WebView 场景。
## 3. 中间 Azure 域:Primary App Backend Domain
中间区域是 `Azure China (Beijing) VNet`,它代表 APP 主业务域,也是整张图最核心的部分。
这一块承担的是:
- APP 的统一主后台。
- 身份、门店、权限、菜单、配置等基础能力中心。
- 多系统数据聚合和业务编排中心。
- F6 和 Mini Program Backend 的统一接入和治理出口。
### 3.1 为什么这块是核心
整张图最重要的一条架构原则就是:
`Mobile App -> App Backend`
这意味着 APP 不应该把多个后台都当成自己的“直接主后台”。真正的主后台只有一个,就是这里的 `App Backend`
这样做的好处是:
- APP 不需要分别理解多个后端的认证和权限模型。
- 门店上下文、角色上下文、菜单权限可以统一收口。
- F6 和历史 Mini 服务的复杂性可以被隔离在后端。
- 前端链路更稳定,后端也更方便统一治理。
### 3.2 DMZ / Public Ingress Zone
Azure 域上半部分是 `DMZ / Public Ingress Zone`
这部分是公网入口区,作用是先接住来自 APP 的外部请求,不让外部流量直接打进私有服务区。
里面包括:
- `WAF / Application Gateway`
- `Public Load Balancer`
这两个组件组合表达的是标准公网入口模式:
- 先经过网关和安全过滤。
- 再经过负载均衡。
- 最后把请求转发到私有区中的后端服务。
这里的 `WAF / Application Gateway` 主要表示:
- Web 应用防护。
- 统一入口控制。
- 基础七层流量治理。
- 对异常流量、非法请求做第一层拦截。
`Public Load Balancer` 则表示:
- 对后面的 APP 后端服务实例进行流量分发。
- 屏蔽单实例细节。
- 让后面服务集群保持弹性扩缩能力。
### 3.3 Private Application Zone
Azure 域下半部分是 `Private Application Zone`,也就是私有业务服务区。
这里才是真正承载 APP 业务能力的地方。
它包含以下几个关键组件:
#### App Backend BFF / Unified APIs
这是 APP 的统一接口层,可以理解成 APP 面向移动端的统一后端入口。
它负责的事情包括:
- 登录认证。
- 用户信息返回。
- 门店上下文建立和切换。
- 菜单与权限返回。
- 系统配置下发。
- F6 WebView 启动参数准备。
- 为移动端提供统一接口风格。
图中旁边的说明框:
`Identity / Store Context / Menu / Config / WebView Ticket`
就是为了强调这件事:APP 依赖的核心控制面能力必须由主后台统一掌握。
#### Business Aggregation / Orchestration
这是业务聚合与编排层。
它和 `App Backend BFF / Unified APIs` 的区别在于:
- `BFF / Unified APIs` 更偏向“给移动端一个统一的接口入口”。
- `Business Aggregation / Orchestration` 更偏向“把多个后端系统的数据和流程编排成一个完整业务结果”。
比如:
- 首页工作台聚合多个系统数据。
- 采购、库存、延保、返利等场景的跨系统整合。
- 对 Mini 后台返回结果做标准化。
- 把 F6 能力、Mini 后台能力和 APP 自身基础能力组合起来。
这个层次存在的意义是:
- 把复杂的多系统业务放在后端做,而不是让 APP 自己拼装。
- 让 APP 更像一个统一入口,而不是一个多系统直连终端。
#### F6 Integration Adapter
这是 F6 供应商接入适配层。
它的职责是:
- 发起对 F6 的 allowlisted B2B 访问。
- 处理 F6 鉴权、签名、票据换取。
- 组装调用 F6 所需的 Header 或上下文。
- 做字段映射和错误码转换。
- 做超时、重试、熔断、异常隔离。
- 把供应商侧不稳定性隔离在适配层内。
它存在的意义非常重要:
- APP 主后台不应该让每个业务模块都自己直接调 F6。
- F6 是外部供应商域,协议、鉴权、返回结构都可能与主系统不同。
- 所有访问 F6 API 的逻辑都集中在这里,才能实现统一治理。
#### NSG / Access Control
这个框表示私有区里的访问控制层。
`NSG` 一般可以理解为 `Network Security Group`,也就是网络安全组。
它在图里的意思不是某个独立业务服务,而是一层安全控制能力,用来表达:
- 私有业务区不是公网可直接访问的。
- 即使请求已经通过前面的 `WAF / Application Gateway``Public Load Balancer`,进入私有区后仍要受访问控制规则约束。
- 私有区内部组件之间也不应该默认全部互通,而应按来源、目标、协议、端口进行规则控制。
用更直白的话说,这一层是在强调:
“后端服务即使在一个私有网络里,也不是谁都能访问谁,必须按规则放行。”
#### Unified Error / Audit / Logging / Security
这个说明框不是单独服务,而是架构责任说明。
它表达的是:
- 错误处理要统一。
- 安全能力要统一。
- 审计记录要统一。
- 日志追踪要统一。
这也是为什么 `App Backend` 被定义为主业务域,而不是单纯一个 API 容器。
## 4. 右侧 F6 Supplier VPCF6 供应商域
右侧区域是 `F6 Supplier VPC (Alibaba Cloud)`,它表示供应商 F6 所在的独立云网络域。图中同时标注 `Supplier-managed VPC / network boundary`,用来强调 F6 不只是一个业务系统框,而是供应商侧独立管理的 VPC 网络边界。
这块的标题是:
`F6 Supplier VPC (Alibaba Cloud)`
这句话非常关键,它强调:
- F6 由供应商管理。
- F6 是外部能力域。
- F6 不是 APP 主后台的一部分。
- APP 需要接入 F6,但不能把 F6 当成自己的主系统。
### 4.1 F6 域的两类能力
F6 域中被分成两类对外能力:
- `F6 WebView Pages`
- `F6 Capability APIs (Backend Only)`
这两者是整张图中最重要的区别之一。
#### F6 WebView Pages
这是给用户页面使用的能力,也就是嵌入到 APP WebView 里的页面。
适用于:
- 扫码开单页。
- 到店记录页。
- 报价开单页。
- 施工查车页。
- 结算收银页。
- 扫码收货页。
- 部分采购和促销页面。
访问链路是:
`Mobile App -> Internet -> Access Gateway / WAF -> Load Balancer -> F6 WebView Pages`
这条链路的含义是:
- APP 可以直接访问 F6,但仅限于嵌入式 WebView 页面。
- 这里的“直接访问”不是绕过主后台做业务控制,而是在进入 WebView 之前,由 `App Backend` 先完成票据、上下文和权限准备。
#### F6 Capability APIs (Backend Only)
这是系统间调用的接口能力。
图上明确标注了:
`Backend Only`
这表示:
- 移动端不能直接调这些接口。
- 这些接口只能由 `App Backend` 经由 `F6 Integration Adapter` 发起访问。
典型用途包括:
- 获取 WebView 免登票据。
- 获取采购、促销、ERP补充能力。
- 发起供应商相关查询或写入。
- 执行需要后端协同的业务流程。
### 4.2 F6 域的入口层
F6 域上部也分为公网入口区:
- `Access Gateway / WAF`
- `Load Balancer`
- `Allowlisted B2B API Gateway`
这三者分别表达不同入口:
- WebView 页面流量走 Access Gateway / WAF 和 Load Balancer。
- 后端 API 调用走专门的 allowlisted B2B API Gateway。
这正是图中为什么要同时区分页面链路和 API 链路,因为它们不是一回事。
### 4.3 App Backend 到 F6 的受控后端集成链路是什么意思
图中从 `F6 Integration Adapter` 指向 `Allowlisted B2B API Gateway` 的绿色后端集成链路,表示:
- 这是系统间受控访问。
- 不是终端用户流量。
- 需要白名单放通。
- 这是从 App Backend 所在 Azure VNet 到 F6 Supplier VPC 的跨网络边界访问。
- 访问入口必须落在 F6 VPC 对外暴露的受控 B2B API Gateway 上,而不是直接访问 F6 私有服务节点。
- 同时承担获取 WebView 票据、签名、免登参数等职责。
- 图上不再在线路上写长标签,而是通过颜色和图例表达其语义。
这也是为什么 PRD 里强调:
- F6 API 必须通过 App Backend 调用。
- APP 对 F6 的直接访问只保留 WebView 场景。
## 5. 左侧 Mini Program Backend VPC:历史小程序后台域
左侧区域表示历史小程序后台域。图中外层标注为 `Mini Program Backend VPC`,用来说明 Mini 后台不是 App Backend 私有区里的内部模块,而是保留在独立 VPC / 网络域中的历史后台集合。
这一域在图中的定位是:
- 它仍然存在。
- 它仍然是独立后台边界。
- 它不会被简单视为 APP 的主后台。
- 面向 APP 的能力应逐步被 `App Backend` 聚合。
### 5.1 为什么这里采用聚合表示而不是展开拓扑
图中把它写成:
`Independent Mini Services`
并列出:
- `O2O`
- `Warranty`
- `Retail Store`
- `ROOS`
- `Shared Capabilities`
这样写是为了强调:
- Mini Program Backend 不是一个单体后台。
- 它是多个历史业务后台的集合。
- 它们仍然可能各自承担不同的数据主来源和业务责任。
- 其中 `Retail Store` 对应“马上下单”体系中的门店注册、门店信息修改、店员管理等门店基础资料能力,不再使用容易误解为交易订单的 `Order` 表述。
- 这张图是评审视图,因此只保留“入口层 + 独立服务集合”的表达,不再展开每个历史服务之间的内部转发关系。
图这样画,更符合 PRD 对历史系统边界的定义,也能避免内部箭头过多影响主链路可读性。
### 5.2 主推荐链路:通过 App Backend 聚合
`Business Aggregation / Orchestration` 指向 Mini 域入口的是绿色后端集成链路。
这条线表达的是推荐架构:
- 新能力优先通过 `App Backend` 聚合后暴露给 APP。
- 历史 Mini 后台继续作为独立服务存在。
- 但它们不再被 APP 当成第一入口直接大量访问。
- 从网络角度看,这条链路是 App Backend 所在 Azure VNet 到 Mini Program Backend VPC 的受控后端调用。
- App Backend 应访问 Mini VPC 暴露的网关、防火墙或受控入口,不应把 Mini 私有服务当作同一 VNet 内的本地服务直接访问。
这是“统一主后台”原则的重要一部分。
### 5.3 兼容链路:少量保留直连
图中从 `Internet` 指向 Mini 域入口的灰色虚线标注为:
`Legacy only`
这条线表达的是:
- 某些历史模块短期还保留 APP 直连 Mini 后台的方式。
- 但这种方式只是兼容,不是推荐方案。
- 这不是未来架构方向。
- 新模块不应该继续沿用这种方式。
这条线的存在是为了如实表达现状,同时避免评审误解为:
“APP 会长期平行直连所有历史后台。”
## 6. 这张图里的主要链路怎么理解
### 6.1 主链路:APP 到主后台
链路为:
`Mobile App -> Internet -> WAF / Application Gateway -> Public Load Balancer -> App Backend BFF / Unified APIs`
这条链路表示:
- 用户所有主业务请求先进入主后台域。
- 主后台对移动端暴露统一接口。
- APP 的身份、权限、门店上下文和主流程控制都从这里进入。
这是整个系统最重要的访问路径。
### 6.2 F6 H5 页面链路
链路为:
`Mobile App -> Internet -> Access Gateway / WAF -> Load Balancer -> F6 WebView Pages`
这条链路表示:
- APP 可直接以 WebView 方式打开 F6 页面。
- 但这里的“直接打开”是页面访问级别,而不是随意直接调用供应商 API。
- 页面进入前的上下文准备、票据获取、权限判断仍由 `App Backend` 完成。
### 6.3 F6 API 链路
链路为:
`Mobile App -> App Backend -> Business Aggregation / Orchestration -> F6 Integration Adapter -> F6 Supplier VPC / Allowlisted B2B API Gateway -> F6 Capability APIs`
这条链路表示:
- 所有后端级 F6 能力都应该由主后台发起调用。
- 供应商集成逻辑不直接暴露给移动端。
- 主后台统一承担安全、审计、错误处理和链路治理。
- 网络上这是跨 VPC / VNet 的后端集成链路,需要通过 F6 VPC 暴露的 allowlisted API 入口进入。
### 6.4 Mini 聚合链路
链路为:
`Mobile App -> App Backend -> Business Aggregation / Orchestration -> Mini Program Backend VPC -> Mini Gateway / Firewall -> Independent Mini Services`
这条链路表示:
- 历史后台能力仍被使用。
- 但 APP 访问时优先走主后台聚合。
- 这有利于统一接口、统一权限和统一数据口径。
- 网络上这不是 App Backend 内部进程调用,而是从主后台 VNet 到 Mini 后台 VPC 的受控后端访问。
- Mini VPC 的外层入口承担网络隔离、访问控制和历史服务保护职责。
### 6.5 Mini 兼容直连链路
链路为:
`Mobile App -> Internet -> Mini Program Backend Domain`
但图中明确标注这是:
`Legacy compatibility direct access only`
它表示:
- 当前还有少量历史兼容模块未完成收敛。
- 架构上允许暂时存在。
- 但这不是目标态。
## 7. 为什么说这是多云架构
这张图之所以叫 `Multicloud`,是因为主系统不是部署在单一云环境里,而是跨越了多个云网络边界:
- 移动端经公网访问。
- 主业务域在 `Azure China`
- F6 供应商域在 `Alibaba Cloud`
- 历史 Mini Program Backend 在独立 VPC / 云网络域中。
这意味着:
- 不同域之间不是天然内网互通。
- 跨域访问必须经过明确入口。
- 供应商域和主域的边界要清晰。
- 历史系统不能被简单视为主域内部服务。
这也是为什么图中如此强调:
- VPC / VNet 边界。
- DMZ 与私有区分层。
- 受控 API 链路。
- 兼容直连和推荐主链路的区别。
## 8. 这张图的价值是什么
这张图的价值不在于说明某台机器部署在哪,而在于回答下面这些评审问题:
- APP 到底应该先访问谁。
- F6 是主后台还是供应商域。
- 为什么 F6 页面能直开,但 F6 API 不能让 APP 直接调。
- 历史 Mini 后台还保不保留。
- App Backend 到底是不是只是一个 API 网关,还是主编排中心。
- 多个系统的数据、权限和上下文由谁统一控制。
如果用一句话总结整张图:
“APP 只有一个主后台入口,供应商能力通过受控方式接入,历史小程序后台继续存在但逐步被主后台聚合,整个系统通过多云边界和访问控制实现职责分离与链路治理。”
## 9. 如何理解图中的关键标签
### Primary App Backend Domain
表示 APP 的统一主业务域,是控制面和编排面的中心。
### F6 Supplier VPC
表示 F6 是位于 Alibaba Cloud 的供应商管理独立 VPC,不属于 App Backend 主后台域。
### Independent Mini Services
表示历史小程序后台不是一个单系统,而是一组位于独立 VPC / 网络域内的后台服务。
### DMZ / Public Ingress Zone
表示对外暴露入口区,用于承接公网流量,隔离内网服务。
### Private Application Zone / Private Service Zone
表示真正承载业务服务的私有区域,不直接向公网开放。
### NSG / Access Control
表示私有区域内的访问控制和安全规则层,强调后端服务是受控访问而非默认互通。
### F6 Integration Adapter
表示对 F6 的统一适配与治理出口。
### Backend integration path
表示推荐路径,即主后台通过受控 VPC 网络入口优先聚合历史系统能力。
### Legacy only
表示兼容性保留链路,不是目标架构,不应扩散到新模块。
## 10. 第二页 Network Topology 怎么理解
`Network Topology` 是对第一张 `Network Architecture` 的补充,不是重复画一张架构图。
第一张图更偏“架构职责和访问原则”,所以使用了较多业务组件、说明框和颜色区分;第二张图更偏“网络连通和边界关系”,所以采用黑白灰拓扑表达,避免让颜色承担业务语义。
这张拓扑图重点表达四件事:
- 三个核心网络边界:`Primary App Backend VNet``Mini Program Backend VPC``F6 Supplier VPC`
- 公网访问统一从 `Mobile App -> Internet -> Public DNS / Domain` 进入。
- 每个网络域只通过自己的受控入口暴露能力,而不是暴露内部服务。
- 跨 VNet / VPC 的访问必须经过网关、防火墙、API Gateway 或适配层。
### 10.1 为什么拓扑图是黑白灰
网络拓扑图的目标不是强调业务域颜色,而是强调:
- 网络边界在哪里。
- 公网入口在哪里。
- 私有服务在哪里。
- 哪些链路是允许的。
- 哪些链路只是兼容例外。
因此第二页没有继续沿用第一张图里的蓝色、绿色、橙色业务域配色,而是使用黑白灰表达。
这样更符合网络拓扑图的阅读习惯:读者主要通过形状、边界框、线型和线条粗细理解网络关系,而不是通过颜色理解业务语义。
### 10.2 拓扑图里的主要区域
#### Public Network
中间的 `Public Network` 表示公网访问区。
里面包括:
- `Mobile App`
- `Internet`
- `Public DNS / Domain`
它表达的是:移动端访问后端系统时,首先进入公网和域名解析层,然后再被路由到不同网络域暴露出来的公网入口。
这里不是一个业务系统,而是网络访问路径的公共部分。
#### Azure China / Primary App Backend VNet
左上区域表示 APP 主后台所在的 Azure China VNet。
它内部用虚线框标出 `VNet boundary`,并分成两层:
- `Public DMZ Subnet`
- `Private Application Subnet`
`Public DMZ Subnet` 中放的是 `WAF / App Gateway + Public LB`,表示 APP 主链路必须先经过公网入口、防护和负载均衡。
`Private Application Subnet` 中放的是:
- `NSG / Access Rules`
- `App Backend BFF + Orchestration`
- `F6 Integration Adapter`
这表示真正的 APP 后台服务不直接暴露公网,而是在私有子网中运行,并受到 NSG / Access Rules 约束。
#### Mini Program Backend Independent VPC
左下区域表示历史小程序后台所在的独立 VPC。
它内部包括:
- `Mini Gateway / Firewall`
- `Mini Services`
这里强调的是:Mini 后台不是 Azure App Backend VNet 里的内部模块,而是另一个独立网络边界中的历史服务集合。
APP 面向 Mini 能力的目标链路应当是:
`App Backend -> Mini Gateway / Firewall -> Mini Services`
而不是让 APP 长期绕过主后台直接访问 Mini 服务。
#### F6 Supplier VPC / Alibaba Cloud
右侧区域表示供应商 F6 所在的 Alibaba Cloud VPC。
它内部用 `Supplier-managed VPC boundary` 表示这是供应商管理的独立网络边界,不属于 APP 主后台网络。
F6 侧有两个不同入口:
- `Access Gateway / WAF + Load Balancer`
- `Allowlisted B2B API Gateway`
前者服务于 F6 WebView 页面访问,后者服务于主后台到 F6 API 的后端集成。
这两个入口不能混在一起理解,因为它们的访问来源、访问目的和安全要求都不同。
### 10.3 拓扑图里的线型含义
第二页不用颜色区分链路,而是用线型和粗细表达语义。
#### Primary App route
主访问链路是:
`Mobile App -> Internet -> Public DNS / Domain -> WAF / App Gateway + Public LB -> App Backend`
这条链路表示 APP 的主业务请求进入 Azure App Backend VNet,由主后台统一承接。
#### Backend integration
后端集成链路有两类:
- `App Backend -> Mini Gateway / Firewall -> Mini Services`
- `App Backend -> F6 Integration Adapter -> Allowlisted B2B API Gateway -> F6 Capability APIs`
这两类链路都表示受控的跨网络边界访问。
它们不是同一 VNet 内部的本地调用,也不是移动端直接访问第三方或历史后台。
#### F6 WebView route
F6 WebView 链路是:
`Mobile App -> Internet -> Public DNS / Domain -> F6 Access Gateway / WAF + Load Balancer -> F6 WebView Pages`
这条链路表示 APP 可以打开供应商 F6 的嵌入式页面。
但它仍然只是 WebView 页面访问例外,不代表 APP 可以直接访问 F6 API。
#### Legacy compatibility
Mini legacy 兼容链路是:
`Mobile App -> Internet -> Public DNS / Domain -> Mini Gateway / Firewall`
这条线用虚线表达,含义是:
- 这是历史兼容链路。
- 不是目标态主链路。
- 不应继续扩散到新功能。
- 后续应尽量收敛到 `App Backend -> Mini` 的后端聚合路径。
### 10.4 Network Architecture 和 Network Topology 的区别
两张图的区别可以这样理解:
| 页面 | 主要回答的问题 | 适合谁看 | 重点 |
| --- | --- | --- | --- |
| `Network Architecture` | 为什么这样分域、主链路是谁、F6 和 Mini 怎么定位 | 产品、研发、架构评审 | 架构原则、职责边界、访问治理 |
| `Network Topology` | 网络上怎么连、从哪里进、跨哪些 VNet / VPC | 网络、安全、运维、集成 | 网络边界、入口节点、连通路径、线型语义 |
因此,第二张图看起来应该比第一张更“网络化”:
- 更少业务说明。
- 更强调 VNet / VPC boundary。
- 更强调 ingress / gateway / firewall。
- 更强调公网和私网分层。
- 更强调跨网络访问不是默认互通,而是通过受控入口连接。
## 11. 结论
这两张图合起来已经把系统最关键的几件事表达清楚了:
- APP 的统一主入口是 `App Backend`
- F6 API 由主后台统一接入。
- 历史 Mini 后台独立保留在自己的 VPC / 网络域中,但应逐步收敛到主后台聚合。
- 各域通过公网入口区、私有服务区和访问控制层进行隔离。
因此,`Network Architecture` 本质上是一张“面向架构评审的网络边界与访问链路图”,重点在于:
- 说明系统边界。
- 说明主访问链路。
- 说明供应商接入方式。
- 说明历史系统兼容策略。
- 说明为什么要把 APP 主后台定义为统一编排中心。
`Network Topology` 则是一张“面向网络、安全和集成理解的拓扑图”,重点在于:
- 说明公网入口。
- 说明 VNet / VPC 边界。
- 说明私有服务区不直接暴露公网。
- 说明跨网络边界访问必须通过受控网关。
- 说明 legacy direct access 只是兼容例外,不是目标态。