alibabacloud-network-reachability-analysis について
Alibaba Cloud NISを使ったネットワーク到達性診断をエージェントに案内するスキルです。クラウドやハイブリッド環境の経路を正逆方向から分析し、Mermaidのトポロジー図と経路上リソースの監視情報を扱います。操作は読み取り専用です。
主な機能
- 01正方向・逆方向の経路分析
- 02セキュリティグループとルートの遮断箇所を特定
- 03Mermaidネットワークトポロジーの生成
- 04経路上リソースの監視データ照会
- 05読み取り専用の診断
活用シーン
- 01ECSと他リソース間の接続確認
- 02VPNまたはVBRのハイブリッド経路診断
- 03ネットワーク経路上の監視異常の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-network-reachability-analysisインストール後、Claude Code で/alibabacloud-network-reachability-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdram-policies.mdverification-method.md詳細
NIS ネットワーク到達可能性分析/NIS 网络可达性分析
言語/语言: ユーザーが使用する言語で応答してください。 ユーザーが中国語を使用する場合は、以下の中国語(zh-CN)のプロンプトを使用してください。 ユーザーが英語を使用する場合は、以下の英語(en)のプロンプトを使用してください。
Alibaba Cloud NIS を使用した対話型のネットワーク到達可能性分析をエージェントに案内します。 順方向/逆方向の経路分析、トポロジーの可視化(Mermaid)、経路上のリソースに関するモニタリング診断を扱います。
アーキテクチャ: NIS (CreateAndAnalyzeNetworkPath + GetNetworkReachableAnalysis) + CloudMonitor (DescribeMetricData)
⚠️ 重大/关键: 読み取り専用操作のみ
このスキルは読み取り専用のネットワーク診断のみを実行します。クラウドリソースを作成、変更、削除しないでください。
本技能仅执行只读网络诊断操作。严禁创建、修改或删除任何云资源。
許可:
CreateAndAnalyzeNetworkPath、GetNetworkReachableAnalysis、DescribeMetricData、Describe*API允许:分析任务创建与查询、监控数据查询、Describe* 类查询 API
禁止:
CreateAndAnalyzeNetworkPathを除くCreate*、Modify*、Delete*、Start*、Stop*、Run*API禁止:创建类 API(除
CreateAndAnalyzeNetworkPath外)、修改、删除、启停、执行类 API
インストール
事前確認:Aliyun CLI >= 3.3.1 が必要です
aliyun versionを実行して、バージョンが 3.3.1 以上であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、 インストール手順について references/cli-installation-guide.md を参照してください。 その後、自動プラグインインストールを有効にするため、[必須]aliyun configure set --auto-plugin-install trueを実行してください。
aliyun version
aliyun configure set --auto-plugin-install true
認証
事前確認:Alibaba Cloud の認証情報が必要です
セキュリティルール:
- AK/SK の値を読み取ったり、エコーしたり、出力したりすることは絶対にしないでください(例:
echo $ALIBABA_CLOUD_ACCESS_KEY_IDは禁止です)- 会話やコマンドラインで、ユーザーに AK/SK を直接入力するよう求めることは絶対にしないでください
- リテラルの認証情報を指定して
aliyun configure setを使用することは絶対にしないでください- 認証情報の状態確認には
aliyun configure listのみを使用してくださいaliyun configure list --user-agent AlibabaCloud-Agent-Skills有効なプロファイル(AK、STS、または OAuth ID)があるか、出力を確認してください。
有効なプロファイルがない場合は、ここで停止してください。
- Alibaba Cloud Console から認証情報を取得します
- このセッションの外で認証情報を設定します(ターミナルで
aliyun configureを実行するか、シェルのプロファイルで環境変数を設定します)aliyun configure listに有効なプロファイルが表示された後、戻って再実行します
RAM 権限
完全な RAM ポリシーについては、references/ram-policies.md を参照してください。
必要なアクション:nis:CreateAndAnalyzeNetworkPath、nis:GetNetworkReachableAnalysis、cms:DescribeMetricData。
パラメーターの確認
重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーがカスタマイズ可能なすべてのパラメーター(例:RegionId、インスタンス ID、IP アドレス、 プロトコル、ポート、リソースタイプなど)をユーザーに確認する必要があります。 明示的な承認なしに、値を推測したりデフォルト値を使用したりしないでください。
次のパラメーターを対話形式で収集します。
| Parameter | Required | Description (EN) | 说明 (ZH) | Default |
|---|---|---|---|---|
| RegionId | Yes | 分析タスクのリージョン | 分析任务所在地域 | — |
| SourceType | Yes | ecs、vsw、internetIp、vpn、vbr | 源端类型 | — |
| SourceId | Yes | ソースリソース ID(internetIp の場合はパブリック IP) | 源资源 ID(公网 IP 类型直接填 IP) | — |
| SourceIpAddress | Conditional | オンプレミス IP。vpn/vbr の場合は必須 | 云下私网 IP,vpn/vbr 时必填 | — |
| TargetType | Yes | ecs、vsw、internetIp、vpn、vbr、clb | 目的端类型 | — |
| TargetId | Yes | ターゲットリソース ID(internetIp の場合はパブリック IP) | 目的资源 ID(公网 IP 类型直接填 IP) | — |
| TargetIpAddress | Conditional | オンプレミス IP。vpn/vbr の場合は必須 | 云下私网 IP,vpn/vbr 时必填 | — |
| Protocol | Yes | tcp、udp、または icmp | 协议类型 | — |
| TargetPort | Conditional | tcp/udp の場合は必須 | tcp/udp 时必填 | — |
| SourcePort | Optional | ソースポート | 源端口 | — |
対話形式での収集ロジック / 交互收集逻辑
ユーザーの言語に合ったプロンプトを使用します。
ステップ 1 — リソースタイプを尋ねる / 询问资源类型
| EN | ZH |
|---|---|
| 「ソースリソースのタイプは何ですか?(ecs / vsw / internetIp / vpn / vbr)」 | "请问源端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr)" |
| 「ターゲットリソースのタイプは何ですか?(ecs / vsw / internetIp / vpn / vbr / clb)」 | "请问目的端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr / clb)" |
ステップ 2 — タイプに応じたプロンプト / 按类型提示
| Condition | EN Prompt | ZH Prompt |
|---|---|---|
internetIp | 「パブリック IP の分析では、ID としてパブリック IP アドレスを直接入力してください。」 | "分析公网路径时,请直接提供公网 IP 地址作为 ID 传入。" |
vpn / vbr | 「ハイブリッドクラウドの分析では、リソース ID に加えて、オンプレミス IP(お客様側のプライベート IP)も入力してください。」 | "连接云下环境时,除了资源 ID,请务必提供您的云下私网 IP (On-Premise IP) 以确保分析准确。" |
ステップ 3 — プロトコルとポート / 协议和端口
| EN | ZH |
|---|---|
| 「プロトコルは何ですか?(tcp / udp / icmp)また、ターゲットポートはいくつですか?」 | "请问使用什么协议?(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 が
vpnまたはvbrでない場合は、--source-ip-address/--target-ip-addressを省略します。 Protocol がicmpの場合は、--target-portを省略します。
返された NetworkReachableAnalysisId を記録します。
⚠️ 必須 / 强制: フォワード分析の完了後、必ずリバースパス分析を実行してください。
ステップ 2 の完了直後に、必ずステップ 3(リバースパス分析)を実行してください。 リバースパスの確認を省略したり、スキップしたりしないでください。
正向分析完成后,必须立即执行 Step 3(反向路径分析)。严禁跳过或省略反向路径检查。
ステップ 2:フォワード結果のポーリング / 轮询正向结果
aliyun nis get-network-reachable-analysis \
--network-reachable-analysis-id <ForwardAnalysisId> \
--region <RegionId> \
--user-agent AlibabaCloud-Agent-Skills
NetworkReachableAnalysisStatus が finish になるまで繰り返します。Reachable と NetworkReachableAnalysisResult を抽出します。
ステップ 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 が
vpnまたはvbrでない場合は、--source-ip-address/--target-ip-addressを省略します。 ソース/ターゲットのタイプがvpnまたはvbrでない場合は、--source-ip-address/--target-ip-addressを省略できます。
ステップ 4:逆方向の結果をポーリング
逆方向の NetworkReachableAnalysisId を使用して、ステップ 2 と同じ手順を実行します。
ステップ 5:結果の解釈
重要:能動的に開始した分析タスクの
topologyData.positiveを必ず使用します。 どのレスポンスでもtopologyData.reverseは無視してください。信頼できません。能動的に開始した分析タスクから返される
topologyData.positiveを必ず使用します。 どのレスポンスでもtopologyData.reverseは無視してください。信頼できません。
順方向と逆方向のそれぞれについて:
Reachableフィールドを確認します。trueの場合、パスは接続されています。falseの場合は、NetworkReachableAnalysisResultを分析して、次のフィールドから遮断箇所を特定します。errorCode— 根本原因のエラーコードsecurityGroupData— トラフィックを遮断しているセキュリティグループルールrouteData— パケットを破棄しているルートテーブルエントリ
ステップ 6:トポロジの可視化(Mermaid)
topologyData.positive から Mermaid 図を生成します。
graph LR
- ノード:
nodeListからnodeTypeとbizInsIdを抽出します - リンク:
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 の到達可能性分析は読み取り専用操作です。クラウドリソースは作成も変更もされないため、クリーンアップは不要です。
制約
- IPv4 のみ — IPv4 のパス分析のみサポートされています。
- 一方向分析 — 各分析は一方向です。逆方向のパスを分析するには、ソースとターゲットを入れ替えて別のタスクを実行する必要があります。
- CMS のクォータ —
DescribeMetricDataは、他の CMS クエリ API と合わせて月 1,000,000 回の無料呼び出し枠を共有します。 - CMS のレート制限 — アカウントあたり毎秒 10 回(RAM ユーザーを含む)。
ベストプラクティス / ベストプラクティス
- 双方向の接続性を確認するため、必ず順方向と逆方向の両方を分析します。
- パスに到達できない場合は、まずセキュリティグループのルールとルートテーブルを確認します。
vpn/vbrのシナリオでは、必ずオンプレミスの IP を指定します。- Mermaid のトポロジ図を使用して、トラフィックの経路を可視化します。
- API 呼び出しを減らすため、実際の経路上にあるリソースの監視データのみを照会します。
- 完全な診断を提示できるよう、監視の異常を到達性の結果と併せて示します。
参考資料 / 参考資料
| 参考資料 | 内容(英語) | 内容(中国語) |
|---|---|---|
| references/ram-policies.md | 必要な RAM 権限 | 必要な RAM 権限ポリシー |
| references/verification-method.md | 検証コマンドの手順 | 段階的な検証コマンド |
| references/acceptance-criteria.md | 正しい/誤った CLI パターン | 正しい/誤った CLI パターンの対照 |
| references/cli-installation-guide.md | Aliyun CLI のインストールガイド | Aliyun CLI のインストールガイド |