mikrotik-routeros について
MikroTik RouterOS のコマンドライン設定やスクリプトを生成、レビュー、トラブルシューティングするスキルです。既定では RouterOS v7 を対象とし、事前確認、検証、ロールバック計画も扱います。
主な機能
- 01RouterOS コマンドの生成とレビュー
- 02RouterOS スクリプトの作成と問題調査
- 03必要に応じた公式ドキュメント参照
- 04バックアップ、安全モード、ロールバックの計画
- 05コマンドの冪等性と設定リスクの確認
活用シーン
- 01ファイアウォールや VLAN の設定変更を計画
- 02再利用可能な .rsc ファイルやシステムスクリプトを作成
- 03リモートネットワーク変更による管理アクセスへの影響を評価
- 04既存ルールを検証しロールバック手順を計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bastos/ skills --skill mikrotik-routerosインストール後、Claude Code で/mikrotik-routerosを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/config-change-workflows.mdofficial-docs.mdrecipes.mdrouteros-cli.mdrouteros-scripting.md詳細
MikroTik RouterOS CLI とスクリプト
RouterOS のコマンドライン設定やスクリプトの作成、レビュー、トラブルシューティングには、このスキルを使用します。ユーザーが別のバージョンを指定しない限り、RouterOS v7 を対象にします。
リファレンスの読み込み
コマンドを作成する前に、必要最小限の関連リファレンスを読みます。
references/official-docs.md- MikroTik の公式ドキュメントとバージョン情報の参照先。references/routeros-cli.md- ターミナルの構文、パス、項目の指定方法、引用符、SSH の実行方法。references/routeros-scripting.md- RouterOS スクリプトの構造、変数、関数、エラー処理、スクリプトリポジトリの動作。references/config-change-workflows.md- バックアップ、エクスポート、セーフモード、インポート、リセット、ロールバックの計画。references/recipes.md- よくある設定タスクに再利用できるコマンドパターン。
運用モデル
- ユーザーが求めているのが、実環境での実行、コマンド計画、再利用可能な
.rscファイル、または/system scriptエントリーのいずれかを確認します。 - 安全で正しい設定に必要な情報だけを集めます。RouterOS のバージョン、モデル、管理用 IP/インターフェース、WAN/LAN インターフェース名、ブリッジ/VLAN の設計、既存ルールの順序を確認します。
- RouterOS のターミナルにそのまま貼り付けても安全なコマンドを優先します。現在のメニューに依存せず、
/ip/firewall/filterなどの絶対パスメニューを使用します。 - 安定した識別子を使用します。項目名、コメント、default-name の値、または
[find ...]フィルターを使います。CLI の番号はセッションごとに変わるため、生成するスクリプトでは数値の項目 ID を避けます。 - 可能な場合は、コマンドを冪等にします。重複を追加しないよう、追加前に
[find ...]で既存オブジェクトを確認します。 - 事前確認、変更、検証、ロールバックを分けます。ルーター設定を誤ると、管理アクセスが失われる可能性があります。
安全性に関する既定の方針
- リモートでネットワーク、ファイアウォール、ルート、ブリッジ、VLAN、アドレスを変更する場合は、変更前にエクスポートを作成し、セーフモードを使用するか、段階的なロールバック手順を用意するよう提案します。
- 認証情報、パブリック IP、インターフェースの役割、ファイアウォールルールの順序を推測しません。不足情報が作業の妨げになる場合は、プレースホルダーを使用するか、ユーザーに確認します。
- ユーザーが明示的に求め、その情報を開示するリスクを理解している場合を除き、実際のパスワード、秘密鍵、共有シークレット、
show-sensitiveの出力を含めません。 - SSH またはローカルターミナルの例を優先します。明示的に隔離された復旧環境での使用を除き、Telnet は推奨しません。
- 再起動、リセット、管理サービスの無効化、アドレス/ルートの削除、input ファイアウォールポリシーの変更を行うコマンドには注意を促します。
- ユーザーが破壊的なリセットを求める場合は、具体的な影響を正確に伝え、先にバックアップ/エクスポートを行う手順を含めます。
回答の形式
設定変更では、次の構成を使用します。
## Preflight
<read-only commands to inspect state and save config>
## Commands
<RouterOS commands, grouped by subsystem>
## Verify
<commands to prove the intended state and connectivity>
## Rollback
<minimal commands or restore path>
スクリプトでは、次の構成を使用します。
## Script
<source code or /system script add/set command>
## Install
<commands to add the script and required policy>
## Test
<manual run, logs, dry-run behavior if applicable>
## Schedule or Trigger
<scheduler/netwatch/button hook only if requested>
RouterOS コマンドのスタイル
- コマンドはスラッシュ区切りの形式で記述します。例:
/ip/address/print、/system/script/add、/interface/bridge/vlan/add。 param=valueは詰めて記述します。RouterOS では=の前後にスペースを入れられません。- スペースや特殊文字を含む文字列は、引用符で囲みます。例:
comment="managed by routeros-script"。 - 生成したルールやスケジュール済みジョブを長期的に識別できるよう、コメントを使用します。
- 状態の取得には
print terseまたはprint detailを、対象を絞った確認にはprint where ...を使用します。 - 移植可能なコマンド出力には
export terseを使用します。バイナリ形式の/system backupは、同じデバイスへの復元に限って使用します。
冪等なパターン
最大 1 つだけ存在すべきオブジェクトを追加する場合は、次のパターンを使用します。
:if ([:len [/ip/firewall/address-list/find list="mgmt-allow" address="203.0.113.10"]] = 0) do={
/ip/firewall/address-list/add list="mgmt-allow" address="203.0.113.10" comment="managed: admin workstation"
}
既存オブジェクトについては、find 式が 1 つの項目だけに一致すると見込まれる場合に限り、set [find ...] ... を使用します。複数の項目に一致する可能性がある場合は、項目を一覧表示してユーザーに選んでもらうか、フィルターを絞り込みます。
検証チェックリスト
コマンドを引き渡す前に、次の点を確認してください。
- インターフェース名がユーザーのデバイスと一致しているか、または明確なプレースホルダーになっています。
- ファイアウォールルールは、広範な破棄/拒否ルールより前に配置されています。
- 管理用の許可ルールは、制限的な入力ポリシーより前に追加されています。
- スクリプトでは変数を使用前に宣言し、永続化が意図されている場合を除き、ローカルスコープを使用しています。
- インポートファイルでは、Bash ではなく RouterOS の構文を使用しています。
- バージョン依存の機能には、必要に応じてラベルを付け、公式ドキュメントへのリンクを記載しています。
コメント
Markdown 対応