mcpField
A
alibabacloud-network-reachability-analysis

alibabacloud-network-reachability-analysis

github.com/aliyunクラウド・DevOps281275 回インストール1 日前に更新
リポジトリ

alibabacloud-network-reachability-analysis について

Alibaba Cloud NISを使ったネットワーク到達性診断をエージェントに案内するスキルです。クラウドやハイブリッド環境の経路を正逆方向から分析し、Mermaidのトポロジー図と経路上リソースの監視情報を扱います。操作は読み取り専用です。

主な機能

  1. 01正方向・逆方向の経路分析
  2. 02セキュリティグループとルートの遮断箇所を特定
  3. 03Mermaidネットワークトポロジーの生成
  4. 04経路上リソースの監視データ照会
  5. 05読み取り専用の診断

活用シーン

  1. 01ECSと他リソース間の接続確認
  2. 02VPNまたはVBRのハイブリッド経路診断
  3. 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.md
cli-installation-guide.md
ram-policies.md
verification-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)があるか、出力を確認してください。

有効なプロファイルがない場合は、ここで停止してください。

  1. Alibaba Cloud Console から認証情報を取得します
  2. このセッションの外で認証情報を設定します(ターミナルで aliyun configure を実行するか、シェルのプロファイルで環境変数を設定します)
  3. aliyun configure list に有効なプロファイルが表示された後、戻って再実行します

RAM 権限

完全な RAM ポリシーについては、references/ram-policies.md を参照してください。

必要なアクション:nis:CreateAndAnalyzeNetworkPath、nis:GetNetworkReachableAnalysis、cms:DescribeMetricData。

パラメーターの確認

重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーがカスタマイズ可能なすべてのパラメーター(例:RegionId、インスタンス ID、IP アドレス、 プロトコル、ポート、リソースタイプなど)をユーザーに確認する必要があります。 明示的な承認なしに、値を推測したりデフォルト値を使用したりしないでください。

次のパラメーターを対話形式で収集します。

ParameterRequiredDescription (EN)说明 (ZH)Default
RegionIdYes分析タスクのリージョン分析任务所在地域—
SourceTypeYesecs、vsw、internetIp、vpn、vbr源端类型—
SourceIdYesソースリソース ID(internetIp の場合はパブリック IP)源资源 ID(公网 IP 类型直接填 IP)—
SourceIpAddressConditionalオンプレミス IP。vpn/vbr の場合は必須云下私网 IP,vpn/vbr 时必填—
TargetTypeYesecs、vsw、internetIp、vpn、vbr、clb目的端类型—
TargetIdYesターゲットリソース ID(internetIp の場合はパブリック IP)目的资源 ID(公网 IP 类型直接填 IP)—
TargetIpAddressConditionalオンプレミス IP。vpn/vbr の場合は必須云下私网 IP,vpn/vbr 时必填—
ProtocolYestcp、udp、または icmp协议类型—
TargetPortConditionaltcp/udp の場合は必須tcp/udp 时必填—
SourcePortOptionalソースポート源端口—
対話形式での収集ロジック / 交互收集逻辑

ユーザーの言語に合ったプロンプトを使用します。

ステップ 1 — リソースタイプを尋ねる / 询问资源类型

ENZH
「ソースリソースのタイプは何ですか?(ecs / vsw / internetIp / vpn / vbr)」"请问源端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr)"
「ターゲットリソースのタイプは何ですか?(ecs / vsw / internetIp / vpn / vbr / clb)」"请问目的端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr / clb)"

ステップ 2 — タイプに応じたプロンプト / 按类型提示

ConditionEN PromptZH Prompt
internetIp「パブリック IP の分析では、ID としてパブリック IP アドレスを直接入力してください。」"分析公网路径时,请直接提供公网 IP 地址作为 ID 传入。"
vpn / vbr「ハイブリッドクラウドの分析では、リソース ID に加えて、オンプレミス IP(お客様側のプライベート IP)も入力してください。」"连接云下环境时,除了资源 ID,请务必提供您的云下私网 IP (On-Premise IP) 以确保分析准确。"

ステップ 3 — プロトコルとポート / 协议和端口

ENZH
「プロトコルは何ですか?(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 は無視してください。信頼できません。

順方向と逆方向のそれぞれについて:

  1. Reachable フィールドを確認します。true の場合、パスは接続されています。
  2. 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_dashboardCPUUtilization, ConnectionUtilization, DiskReadWriteIOPSUtilization, BurstCredit, DiskIOQueueSize
eip-acs_vpc_eipout_ratelimit_drop_speed, net_out.rate_percentage, net_rxPkgs.rate
nat-acs_nat_gatewayErrorPortAllocationCount, SessionLimitDropConnection, SessionActiveConnectionWaterLever, SessionNewConnectionWaterLever, BWRateOutToOutside, DropTotalPps
clb-acs_slb_dashboardUnhealthyServerCount, UpstreamCode5xx, InstanceQpsUtilization, InstanceMaxConnectionUtilization, UpstreamRt, StatusCode4xx
vbr-acs_physical_connectionVbrHealthyCheckLossPercent, 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 クエリ API と合わせて月 1,000,000 回の無料呼び出し枠を共有します。
  4. CMS のレート制限 — アカウントあたり毎秒 10 回(RAM ユーザーを含む)。

ベストプラクティス / ベストプラクティス

  1. 双方向の接続性を確認するため、必ず順方向と逆方向の両方を分析します。
  2. パスに到達できない場合は、まずセキュリティグループのルールとルートテーブルを確認します。
  3. vpn/vbr のシナリオでは、必ずオンプレミスの IP を指定します。
  4. Mermaid のトポロジ図を使用して、トラフィックの経路を可視化します。
  5. API 呼び出しを減らすため、実際の経路上にあるリソースの監視データのみを照会します。
  6. 完全な診断を提示できるよう、監視の異常を到達性の結果と併せて示します。

参考資料 / 参考資料

参考資料内容(英語)内容(中国語)
references/ram-policies.md必要な RAM 権限必要な RAM 権限ポリシー
references/verification-method.md検証コマンドの手順段階的な検証コマンド
references/acceptance-criteria.md正しい/誤った CLI パターン正しい/誤った CLI パターンの対照
references/cli-installation-guide.mdAliyun CLI のインストールガイドAliyun CLI のインストールガイド

コメント