catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
description の原文を見る
Catalyst Center client operations and monitoring - list/filter wired and wireless clients, detailed client lookup by MAC, client count analytics, time-based analysis, SSID and band filtering, wireless troubleshooting. Use when looking up a client by MAC or IP, counting clients per site or SSID, analyzing wireless band distribution, or investigating Wi-Fi signal issues.
SKILL.md 本文
Catalyst Center クライアント操作および監視
Catalyst Center MCP サーバー
すべての Catalyst Center ツール呼び出しは以下の呼び出しパターンを使用します:
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 -u $CATC_MCP_SCRIPT
このドキュメント全体で使用される変数の省略形:
CATC_CMD="CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 -u $CATC_MCP_SCRIPT"
ツールの呼び出し方法
$MCP_CALL プロトコルハンドラーを使用して MCP ツールを呼び出します:
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" TOOL_NAME 'ARGS_JSON'
使用時機
- 有線および無線クライアントの利用状況の監視
- MAC アドレスで特定のクライアント接続の問題を調査する場合
- 容量計画: サイト、SSID、または周波数帯別のクライアント数
- 無線トラブルシューティング: シグナル品質、RSSI、バンドステアリング分析
- 時系列分析: 数時間から数日のクライアント数トレンド
- セキュリティ調査: IP または MAC でネットワーク全体のクライアントを特定する
- ヘルプデスクのエスカレーション: ユーザーのデバイスと接続詳細を確認する
- SSID 利用率および OS 分布分析
重要: 時間範囲の処理
Catalyst Center クライアント API は、startTime と endTime を エポック(ミリ秒) で要求します。API は startTime に対して 最大 30 日の遡り を強制します。
クライアントツールを呼び出す前に必ず get_api_compatible_time_range を最初に呼び出してください 。人間が読める時間範囲を有効なエポック(ミリ秒)のペアに変換します。
get_api_compatible_time_range -- 時間範囲を変換する
パラメーター:
time_window(文字列、オプション): 人間が読める相対時間。例:"last 2 hours"、"last 7 days"、"today"、"yesterday"、"last 30 days"。ISO パラメーターが提供されている場合、これが優先されます。start_datetime_iso(文字列、オプション): ISO 8601 形式での開始時刻。例:"2025-01-15T10:00:00Z"end_datetime_iso(文字列、オプション): ISO 8601 形式での終了時刻。省略時は現在時刻がデフォルトです。
戻り値: startTime と endTime (エポック ms)、adjusted_for_30_day_limit フラグ、検証用の ISO タイムスタンプを含む JSON。
# 相対時間窓
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 2 hours"}'
# 特定の日付範囲
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"start_datetime_iso":"2025-01-15T08:00:00Z","end_datetime_iso":"2025-01-15T17:00:00Z"}'
# 本日のみ
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"today"}'
重要: レスポンスに adjusted_for_30_day_limit: true が表示される場合、要求された開始時刻が API の 30 日制限を超えており、自動的に制限されました。ユーザーに対して、有効な時間範囲が要求よりも短いことを通知してください。
利用可能なクライアントツール
1. get_clients_list -- 接続クライアントを一覧表示する
/dna/data/api/v1/clients エンドポイントからクライアントのリストを取得します。呼び出しあたり 100 クライアントのハード制限があります。 100 を超えるクライアントがフィルターにマッチする場合、ツールは総数とメッセージを返して、部分データではなくより具体的なフィルターを要求します。
パラメーター:
| パラメーター | タイプ | 説明 |
|---|---|---|
start_time | int | エポック ms 開始時刻 (get_api_compatible_time_range を使用) |
end_time | int | エポック ms 終了時刻 |
limit | int | 返すクライアントの最大数 (デフォルト 100、100 で上限) |
offset | int | ページネーション用開始レコード (デフォルト 1) |
sort_by | str | ソート対象の属性 (例: clientConnectionTime) |
order | str | asc または desc (デフォルト asc) |
client_type | str | "wired" または "wireless" |
os_type | List[str] | OS フィルター: ["Windows"]、["macOS"]、["Android"] など |
os_version | List[str] | OS バージョンフィルター |
site_hierarchy | List[str] | 完全なサイトパス: ["Global/USA/NYC/Floor2"] |
site_hierarchy_id | List[str] | サイト階層 UUID |
site_id | List[str] | サイト UUID |
ipv4_address | List[str] | クライアント IPv4 アドレス |
ipv6_address | List[str] | クライアント IPv6 アドレス |
mac_address | List[str] | クライアント MAC アドレス |
wlc_name | List[str] | WLC 名 |
connected_network_device_name | List[str] | クライアントが接続しているネットワークデバイス名 |
ssid | List[str] | SSID 名 |
band | List[str] | 無線周波数帯: ["2.4GHz"]、["5GHz"]、["6GHz"] |
view | List[str] | 追加データビュー: ["Wireless"]、["WirelessHealth"] |
attribute | List[str] | 含める特定の属性 |
リスト型パラメーター (os_type、site_hierarchy、ssid、band など) は、JSON 文字列配列として渡す必要があります: ["value1","value2"]。
2. get_client_details_by_mac -- MAC による詳細なクライアント情報
/dna/data/api/v1/clients/{mac} エンドポイントから MAC アドレスで識別される単一クライアントの包括的な詳細を取得します。
パラメーター:
client_mac_address(文字列、必須): クライアントの MAC アドレスstart_time(整数、オプション): エポック ms 開始時刻end_time(整数、オプション): エポック ms 終了時刻view(List[str]、オプション): 追加データビューattribute(List[str]、オプション): 特定の属性
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_client_details_by_mac '{"client_mac_address":"AA:BB:CC:DD:EE:FF"}'
レスポンス含む: クライアント MAC、IP アドレス、ホスト名、OS タイプ/バージョン、接続デバイス名、接続インターフェース、VLAN、SSID (無線の場合)、周波数帯、チャネル、RSSI、SNR、データレート、接続時刻、ヘルススコア、その他。
自動再試行: API がエラーコード 14006 (要求された endTime のデータがまだ準備できていません) を返した場合、ツールは API が提案する調整済み endTime で自動的に再試行します。
3. get_clients_count -- フィルターに一致するクライアントをカウントする
/dna/data/api/v1/clients/count エンドポイントから、指定したフィルターにマッチするクライアントの総数を返します。完全なクライアント記録を取得しずに分析と容量計画に使用します。
パラメーター: get_clients_list と同じフィルターパラメーター (limit、offset、sort_by、order、view、attribute を除く)。
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless"}'
クライアント操作ワークフロー
ワークフロー 1: 特定の SSID 上のすべての無線クライアントを検索する
ステップ 1: 時間範囲を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 2 hours"}'
レスポンスから startTime と endTime を抽出します。
ステップ 2: 最初に SSID 上のクライアント数をカウントする
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","ssid":["Corporate-WiFi"]}'
カウント > 100 の場合、一覧表示前に追加フィルター (サイト、周波数帯、OS) で絞り込みます。
ステップ 3: クライアントを一覧表示する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_list '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","ssid":["Corporate-WiFi"]}'
カウントが 100 を超える場合、サイト別に絞り込みます:
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_list '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","ssid":["Corporate-WiFi"],"site_hierarchy":["Global/USA/NYC/Floor2"]}'
ワークフロー 2: MAC アドレスでクライアントを調査する
ヘルプデスク対応またはセキュリティインシデント時の全般的なクライアント調査。
ステップ 1: 時間範囲を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 24 hours"}'
ステップ 2: 詳細なクライアント情報を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_client_details_by_mac '{"client_mac_address":"AA:BB:CC:DD:EE:FF","start_time":1705312800000,"end_time":1705399200000}'
ステップ 3: 追加の無線ビューを使用
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_client_details_by_mac '{"client_mac_address":"AA:BB:CC:DD:EE:FF","start_time":1705312800000,"end_time":1705399200000,"view":["Wireless","WirelessHealth"]}'
結果を分析する:
- 接続状態: クライアントは現在接続していますか? 接続時刻は?
- ネットワーク接続: どのスイッチ/AP に接続していますか? どのインターフェース/SSID ですか?
- IP 割り当て: 有効な IP を持っていますか? DHCP または静的?
- ヘルススコア: クライアントヘルススコア (0~10)。7 未満は問題を示します。
- 無線クライアント向け: RSSI、SNR、チャネル、周波数帯、データレート、AP 名
- OS 情報: セキュリティ態勢評価用の OS タイプとバージョン
ワークフロー 3: サイト別クライアント数をカウントする
サイト別クライアント分布レポートを作成します。
ステップ 1: 時間範囲を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 1 hours"}'
ステップ 2: サイト階層を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" fetch_sites '{}'
ステップ 3: 各サイトのクライアント数をカウントする
# サイト 1
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"site_hierarchy":["Global/USA/NYC"]}'
# サイト 2
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"site_hierarchy":["Global/USA/CHI"]}'
ステップ 4: サイト別の有線と無線に分ける
# NYC の有線クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"site_hierarchy":["Global/USA/NYC"],"client_type":"wired"}'
# NYC の無線クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"site_hierarchy":["Global/USA/NYC"],"client_type":"wireless"}'
レポートを作成する:
クライアント分布レポート
===========================
Catalyst Center: $CCC_HOST
時間窓: 過去 1 時間 (2025-01-15 14:00 - 15:00 UTC)
+----------------------------+-------+--------+----------+-------+
| サイト | 合計 | 有線 | 無線 | %WiFi |
+----------------------------+-------+--------+----------+-------+
| Global/USA/NYC | 1,245 | 320 | 925 | 74.3% |
| NYC/Floor1 | 412 | 110 | 302 | 73.3% |
| NYC/Floor2 | 498 | 130 | 368 | 73.9% |
| NYC/Floor3 | 335 | 80 | 255 | 76.1% |
| Global/USA/CHI | 876 | 250 | 626 | 71.5% |
| Global/USA/LAX | 534 | 180 | 354 | 66.3% |
+----------------------------+-------+--------+----------+-------+
| 合計 | 2,655 | 750 | 1,905 | 71.8% |
+----------------------------+-------+--------+----------+-------+
ワークフロー 4: 時系列ベースのクライアントトレンド分析
容量計画またはアノマリー検出のためにクライアント数の経時変化を分析します。
ステップ 1: 時間窓を定義する (例: 過去 8 時間の 1 時間ごとのスナップショット)
# 8 時間前から 7 時間前
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 8 hours"}'
# または正確な時間別窓のため特定の ISO 範囲を使用
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"start_datetime_iso":"2025-01-15T06:00:00Z","end_datetime_iso":"2025-01-15T07:00:00Z"}'
ステップ 2: 各時間窓のクライアント数をカウントする
適切な start_time と end_time 値を使用して、各時間別窓に対して get_clients_count を実行します。
トレンドレポートを作成する:
クライアント数トレンド (無線)
==============================
サイト: Global/USA/NYC
日付: 2025-01-15
時刻 (UTC) | 数 | 変化 | バー
--------------+--------+--------+---------------------------
06:00 - 07:00 | 245 | -- | ============
07:00 - 08:00 | 512 | +267 | =========================
08:00 - 09:00 | 891 | +379 | ============================================
09:00 - 10:00 | 1,102 | +211 | ======================================================
10:00 - 11:00 | 1,189 | +87 | ===========================================================
11:00 - 12:00 | 1,156 | -33 | =========================================================
12:00 - 13:00 | 987 | -169 | =================================================
13:00 - 14:00 | 1,134 | +147 | ========================================================
ピーク: 1,189 クライアント (10:00-11:00 UTC)
最小値: 245 クライアント (06:00-07:00 UTC)
ワークフロー 5: OS 分布分析
セキュリティ態勢とコンパチビリティ計画のためのクライアント OS ミックスを理解します。
ステップ 1: 時間範囲を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 1 hours"}'
ステップ 2: OS タイプ別にクライアント数をカウントする
# Windows クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"os_type":["Windows"]}'
# macOS クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"os_type":["macOS"]}'
# iOS クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"os_type":["iOS"]}'
# Android クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"os_type":["Android"]}'
# Linux クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"os_type":["Linux"]}'
ワークフロー 6: 無線周波数帯分布
RF 計画用の 2.4 GHz と 5 GHz と 6 GHz のクライアント分布を分析します。
# 2.4 GHz クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","band":["2.4GHz"]}'
# 5 GHz クライアント
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","band":["5GHz"]}'
# 6 GHz クライアント (Wi-Fi 6E)
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_count '{"start_time":1705312800000,"end_time":1705399200000,"client_type":"wireless","band":["6GHz"]}'
RF 計画フラグ:
- 2.4 GHz 上のクライアントが 40% 以上 -> 警告: バンドステアリング不良、同一チャネル干渉リスク
- 5 GHz 利用率が無線クライアントの 80% 以上 -> 正常: バンドステアリング設定が良好
- Wi-Fi 6E AP が展開されている場合、6 GHz 採用率が 5% 未満 -> 情報: クライアント機能と SSID 設定を確認
ワークフロー 7: IP アドレスでクライアントを検索する
IP のみわかっている場合にネットワーク上のクライアントを探す (セキュリティ調査で一般的)。
ステップ 1: 時間範囲を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_api_compatible_time_range '{"time_window":"last 4 hours"}'
ステップ 2: IP で検索する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_clients_list '{"start_time":1705312800000,"end_time":1705399200000,"ipv4_address":["10.1.50.42"]}'
ステップ 3: レスポンスから取得した MAC を使用して完全な詳細を取得する
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP_CALL "python3 -u $CATC_MCP_SCRIPT" get_client_details_by_mac '{"client_mac_address":"AA:BB:CC:DD:EE:FF","start_time":1705312800000,"end_time":1705399200000}'
ワークフロー 8: 特定のネットワークデバイスに接続しているクライアント
特定のスイッチまたは AP を通じて接続しているすべてのクライアントを特定します。
CCC_HOST=$CCC_HOST CCC_USER=$CCC_USER CCC_PWD=$CCC_PWD python3 $MCP
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- automateyournetwork
- ライセンス
- Apache-2.0
- 最終更新
- 2026/5/11
Source: https://github.com/automateyournetwork/netclaw / ライセンス: Apache-2.0