返回技能市场
开发运维 安全

网络路径可达性分析

@aliyun/alibabacloud-network-reachability-analysis

使用阿里云 NIS(网络智能服务)网络路径可达性分析OpenAPI,帮助客户执行路径诊断、可视化等功能。

云Skills门户 热度 58v0.0.1

NIS 网络可达性分析

语言:使用与用户相同的语言回复。
如果用户使用中文,请使用下方的中文(zh-CN)提示语。
如果用户使用英文,请使用下方的英文(en)提示语。

指导 agent 使用阿里云 NIS 进行交互式网络可达性分析。 涵盖正向/反向路径分析、拓扑可视化(Mermaid),以及对路径沿途资源的 监控诊断。

架构NIS (CreateAndAnalyzeNetworkPath + GetNetworkReachableAnalysis) + CloudMonitor (DescribeMetricData)

⚠️ 关键仅限只读操作
此 skill 执行只读网络诊断。严禁创建、修改或删除任何云资源。
本技能仅执行只读网络诊断操作。严禁创建、修改或删除任何云资源。
允许:CreateAndAnalyzeNetworkPathGetNetworkReachableAnalysisDescribeMetricDataDescribe* APIs
允许:分析任务创建与查询、监控数据查询、Describe* 类查询 API
禁止使用以下 APIs:Create*CreateAndAnalyzeNetworkPath 除外)、Modify*Delete*Start*Stop*Run*
禁止:创建类 API(除 CreateAndAnalyzeNetworkPath 外)、修改、删除、启停、执行类 API

安装

预检查:阿里云 CLI 版本必须不低于 3.3.1
运行 aliyun version,验证版本是否不低于 3.3.1。如果尚未安装或版本过低,
安装说明请参见 [references/cli-installation-guide.md](references/cli-installation-guide.md)。
然后[必须]运行 aliyun configure set --auto-plugin-install true,以启用插件自动安装。
aliyun version
aliyun configure set --auto-plugin-install true

身份认证

预检查:必须提供阿里云凭证
安全规则:
- 严禁读取、回显或打印 AK/SK 值(例如,严禁执行 echo $ALIBABA_CLOUD_ACCESS_KEY_ID
- 严禁要求用户在对话或命令行中直接输入 AK/SK
- 严禁aliyun configure set 中直接填写凭证值
- 只能使用 aliyun configure list 检查凭证状态
```bash
aliyun configure list --user-agent AlibabaCloud-Agent-Skills
```
检查输出中是否存在有效的身份配置(AK、STS 或 OAuth 身份)。
如果不存在有效的身份配置,请在此处停止。
1. 从阿里云控制台获取凭证
2. 在当前会话之外配置凭证(通过终端中的 aliyun configure 或 shell 配置文件中的环境变量)
3. 在 aliyun configure list 显示有效的身份配置后,返回并重新运行

RAM 权限

有关完整的 RAM 策略,请参见 [references/ram-policies.md](references/ram-policies.md)。

必须具备以下操作权限:nis:CreateAndAnalyzeNetworkPathnis:GetNetworkReachableAnalysiscms:DescribeMetricData

参数确认

重要:参数确认——在执行任何命令或发起任何 API 调用之前,
所有用户可自定义参数(例如 RegionId、实例 ID、IP 地址,
协议、端口、资源类型等)都必须经用户确认。
未经用户明确同意,不得假定或使用默认值。

以交互方式收集以下参数:

| 参数 | 是否必填 | 描述 (EN) | 说明 (ZH) | 默认值 | |-----------|----------|-------------------|-----------|---------| | RegionId | 是 | 分析任务所在地域 | 分析任务所在地域 | — | | SourceType | 是 | ecs, vsw, internetIp, vpn, vbr | 源端类型 | — | | SourceId | 是 | 源资源 ID(若为 internetIp,则为公网 IP) | 源资源 ID(公网 IP 类型直接填 IP) | — | | SourceIpAddress | 条件必填 | 云下私网 IP,vpn/vbr 场景下必填 | 云下私网 IP,vpn/vbr必填 | — | | TargetType | 是 | ecs, vsw, internetIp, vpn, vbr, clb | 目的端类型 | — | | TargetId | 是 | 目的资源 ID(若为 internetIp,则为公网 IP) | 目的资源 ID(公网 IP 类型直接填 IP) | — | | TargetIpAddress | 条件必填 | 云下私网 IP,vpn/vbr 场景下必填 | 云下私网 IP,vpn/vbr必填 | — | | 协议 | 是 | tcpudpicmp | 协议类型 | — | | TargetPort | 条件必填 | tcp/udp 场景下必填 | tcp/udp 时必填 | — | | SourcePort | 可选 | 源端口 | 源端口 | — |

交互收集逻辑

使用与用户语言相匹配的提示语:

步骤 1 — 询问资源类型

| EN | ZH | |----|-----| | "What is the source resource type? (ecs / vsw / internetIp / vpn / vbr)" | "请问源端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr)" | | "What is the target resource type? (ecs / vsw / internetIp / vpn / vbr / clb)" | "请问目的端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr / clb)" |

步骤 2 — 按类型提示

| 条件 | EN Prompt | ZH Prompt | |-----------|-----------|-----------| | internetIp | "进行公网 IP 分析时,请直接将公网 IP 地址作为 ID 提供。" | "分析公网路径时,请直接提供公网 IP 地址作为 ID 传入。" | | vpn / vbr | "进行混合云分析时,除资源 ID 外,还请提供云下 IP(您侧的私网 IP)。" | "连接云下环境时,除了资源 ID,请务必提供您的云下私网 IP (On-Premise IP) 以确保分析准确。" |

步骤 3 — 协议和端口

| EN | ZH | |----|-----| | "What protocol? (tcp / udp / icmp) And what is the target port?" | "请问使用什么协议?(tcp / udp / icmp)目的端口是多少?" |

核心工作流

步骤 1:正向路径分析

aliyun nis create-and-analyze-network-path \
  --source-id <SourceId> \
  --source-type <SourceType> \
  --target-id <TargetId> \
  --target-type <TargetType> \
  --protocol <Protocol> \
  --target-port <TargetPort> \
  --source-ip-address <SourceIpAddress> \
  --target-ip-address <TargetIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
若 SourceType/TargetType 不是 vpnvbr,可省略 --source-ip-address / --target-ip-address
若协议为 icmp,可省略 --target-port

记录返回的 NetworkReachableAnalysisId

⚠️ 强制正向分析完成后,必须执行反向路径分析。
步骤 2 完成后,必须立即执行步骤 3(反向路径分析)。不得跳过或省略反向路径检查。
必须在正向分析完成后立即执行步骤 3(反向路径分析)。严禁跳过或省略反向路径检查。

步骤 2:轮询正向结果

aliyun nis get-network-reachable-analysis \
  --network-reachable-analysis-id <ForwardAnalysisId> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills

重复查询,直到 NetworkReachableAnalysisStatusfinish。提取 ReachableNetworkReachableAnalysisResult

步骤 3:反向路径分析

交换源和目的:

  • 正向 SourceId/Type → 反向 TargetId/Type
  • 正向 TargetId/Type → 反向 SourceId/Type
  • 正向 SourceIpAddress → 反向 TargetIpAddress
  • 正向 TargetIpAddress → 反向 SourceIpAddress

端口处理

  • 反向 --source-port = 正向 TargetPort(服务端监听端口)
  • 反向 --target-port = 49152 ~ 65535 范围内的随机临时端口(客户端随机端口)
由于客户端使用动态分配的临时端口发起连接,反向路径(服务端 → 客户端)应使用临时端口范围(49152-65535)内的随机端口作为目的端口,以模拟真实的回程流量。
由于客户端发起连接时使用动态分配的临时端口,反向路径(服务端→客户端)的目的端口应使用临时端口范围(49152-65535)内的随机值来模拟真实回程流量。
aliyun nis create-and-analyze-network-path \
  --source-id <OriginalTargetId> \
  --source-type <OriginalTargetType> \
  --target-id <OriginalSourceId> \
  --target-type <OriginalSourceType> \
  --protocol <Protocol> \
  --source-port <OriginalTargetPort> \
  --target-port <RandomPort_49152_to_65535> \
  --source-ip-address <OriginalTargetIpAddress> \
  --target-ip-address <OriginalSourceIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
若 SourceType/TargetType 不是 vpnvbr,可省略 --source-ip-address / --target-ip-address
若源/目的类型不是 vpnvbr,可省略 --source-ip-address / --target-ip-address

步骤 4:轮询反向结果

与步骤 2 相同,但使用反向分析的 NetworkReachableAnalysisId

步骤 5:结果解读

关键:始终使用主动发起的分析任务中的 topologyData.positive
忽略任何响应中的 topologyData.reverse——该字段不可靠。
始终使用主动发起的分析任务返回的 topologyData.positive
忽略任何响应中的 topologyData.reverse——它不可靠。

对正向和反向分别:

  1. 检查 Reachable 字段,true 表示可达。
  2. 若为 false,则从 NetworkReachableAnalysisResult 中分析以下字段定位阻断点:
  • errorCode — 根因错误码
  • securityGroupData — 安全组拦截规则
  • routeData — 路由表丢包条目

步骤 6:拓扑可视化 (Mermaid)

根据 topologyData.positive 生成 Mermaid 图:

graph LR
  • 节点:从 nodeList 中提取 nodeTypebizInsId
  • 连线:根据 linkList 构建有向边

示例:

graph LR
    ECS_i-src["ECS: i-bp1xxx"] --> VRouter_vrt-1["VRouter: vrt-xxx"]
    VRouter_vrt-1 --> VSW_vsw-1["VSW: vsw-xxx"]
    VSW_vsw-1 --> ENI_eni-1["ENI: eni-xxx"]
    ENI_eni-1 --> ECS_i-dst["ECS: i-bp2xxx"]

步骤 7:途经资源监控诊断

对于 topologyData 中找到的资源 ID,如果匹配以下前缀,请查询最近 1 小时的监控数据: 对 topologyData 中途经的资源 ID,若匹配以下前缀,查询最近 1 小时监控数据:

| 前缀 | 命名空间 | 指标 | |--------|-----------|---------| | ecs- | acs_ecs_dashboard | CPUUtilization, ConnectionUtilization, DiskReadWriteIOPSUtilization, BurstCredit, DiskIOQueueSize | | eip- | acs_vpc_eip | out_ratelimit_drop_speed, net_out.rate_percentage, net_rxPkgs.rate | | nat- | acs_nat_gateway | ErrorPortAllocationCount, SessionLimitDropConnection, SessionActiveConnectionWaterLever, SessionNewConnectionWaterLever, BWRateOutToOutside, DropTotalPps | | clb- | acs_slb_dashboard | UnhealthyServerCount, UpstreamCode5xx, InstanceQpsUtilization, InstanceMaxConnectionUtilization, UpstreamRt, StatusCode4xx | | vbr- | acs_physical_connection | VbrHealthyCheckLossPercent, VbrHealthyCheckLatency, PkgsRateLimitDropOutFromVpcToVbr, RateOutFromVpcToIDC |

查询命令(CMS 使用 PascalCase API 风格,而非插件模式):

aliyun cms DescribeMetricData \
  --Namespace <Namespace> \
  --MetricName <MetricName> \
  --Dimensions '[{"instanceId":"<ResourceId>"}]' \
  --StartTime <1HourAgoTimestamp> \
  --EndTime <NowTimestamp> \
  --Period 60 \
  --user-agent AlibabaCloud-Agent-Skills
频率限制:每个账号每秒 10 次调用。批量查询多个指标时,应相应控制查询速率。

清理

NIS 可达性分析为只读操作——不会创建或修改任何云资源。 无需清理。 NIS 可达性分析为只读操作——不会创建或修改任何云资源,无需清理。

使用限制

  1. 仅支持 IPv4 — 仅支持 IPv4 路径分析。
  2. 单向分析 — 每次分析均为单向;反向路径需要交换源和目的后另行创建任务。
  3. CMS 配额DescribeMetricData 与其他 CMS 查询 APIs 共享每月 1,000,000 次免费调用额度。
  4. CMS 频控 — 每个账号每秒 10 次调用(包括 RAM 用户)。

最佳实践

  1. 始终执行正向+反向分析以确认双向连通性。
  2. 路径不可达时,优先检查安全组规则和路由表。
  3. vpn/vbr 场景务必提供云下私网 IP。
  4. 使用 Mermaid 拓扑图帮助用户可视化流量路径。
  5. 仅查询实际路径上的资源监控数据以减少 API 调用。
  6. 将监控异常与可达性结果一并呈现,提供完整诊断。

参考文件

| 参考文件 | 内容 (EN) | 内容 (ZH) | |-----------|---------------|-----------| | [references/ram-policies.md](references/ram-policies.md) | 所需 RAM 权限 | 所需 RAM 权限策略 | | [references/verification-method.md](references/verification-method.md) | 逐步验证命令 | 逐步验证命令 | | [references/acceptance-criteria.md](references/acceptance-criteria.md) | 正确/错误的 CLI 模式 | 正确/错误 CLI 模式对照 | | [references/cli-installation-guide.md](references/cli-installation-guide.md) | 阿里云 CLI 安装指南 | 阿里云 CLI 安装指南 |

qianwen skills install @aliyun/alibabacloud-network-reachability-analysis