mcpField
R
routeros-fundamentals

routeros-fundamentals

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

routeros-fundamentals について

MikroTik RouterOSを扱うエージェント向けのリファレンススキルです。GNU/Linuxとの違いを踏まえ、CLIやREST API、バージョン、アーキテクチャ、ハードウェア情報を説明します。

主な機能

  1. 01RouterOSとGNU/Linuxの違い
  2. 02CLIの構文と使い方
  3. 03REST APIのメソッドと注意点
  4. 04バージョンとアーキテクチャの参照
  5. 05ハードウェア確認コマンド

活用シーン

  1. 01CLIによるRouterOS管理の計画
  2. 02RouterOS REST APIリクエストの作成
  3. 03デバイスのバージョンとアーキテクチャの確認
  4. 04エージェントの案内でUnixシェルを前提とする誤りの回避

MCP 対応

コマンドツリーの閲覧とプロパティ検索には、rosetta MCPサーバーを利用するよう案内しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tikoci/routeros-skills --skill routeros-fundamentals

インストール後、Claude Code で/routeros-fundamentalsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
async-commands-rest.md
bun-runtime-gotchas.md
device-mode-rest.md
device-mode.md
extra-packages.md
licensing-rest.md
packages-rest.md
rest-api-patterns.md
routeros-firewall-rest.md
routeros-networking-rest.md
routeros-users-rest.md
scripting.md
version-parsing.md

詳細

RouterOS の基礎

RouterOS は GNU/Linux ではありません

RouterOS は Linux カーネル(5.6.3)を実行していますが、カーネルより上のすべては MikroTik 独自の nova システムです。これは、エージェントが最も重要な事実として理解しておくべきことです。

RouterOS に存在しないもの:

  • /bin、/usr、/etc、/var はありません。FHS のディレクトリ構成ではありません
  • bash、sh、ash、zsh はありません。Unix シェル自体がありません
  • coreutils(ls、cat、grep、ps、mount、ip、iptables など)はありません
  • glibc、musl、busybox はありません
  • apt、pkg、opkg はありません。パッケージマネージャーはありません(パッケージは .npk ファイルで、アップロード後に再起動してインストールします)
  • systemctl、service、init システムはありません
  • ユーザーランドからアクセスできる /proc や /sys はありません
  • docker、podman はありません。RouterOS には独自の /container サブシステムがあります(7.x 以降)

RouterOS に存在するもの:

  • RouterOS CLI — シェルではなく、独自の言語です。SSH、シリアル、WinBox、または WebFig からアクセスします
  • /rest/ の REST API(HTTP、デフォルトのポートは 80)— 主なプログラムインターフェースです
  • RouterOS スクリプト言語(.rsc ファイル)— bash ではなく、独自の構文です。routeros-scripting スキルとスクリプトリファレンスを参照してください
  • ポート 80 の WebFig(ウェブ UI)
  • ポート 8291 の WinBox プロトコル

エージェントが避けるべきよくある誤り:

  • ssh admin@host 'ls /' を実行しないでください。シェルではなく RouterOS CLI が開きます
  • mount、fdisk、mkfs を提案しないでください。代わりに /disk コマンドを使用してください
  • /etc/ に設定ファイルがあると考えないでください。設定は RouterOS データベースに保存されています
  • ping が同じように動作すると考えないでください。CLI では /tool/ping または /ping です
  • apt や opkg によるパッケージのインストールを提案しないでください。SCP 経由で .npk をアップロードし、/system/package/apply-changes(7.18 以降)または /system/reboot(7.18 未満)を実行してください
  • パッケージの全リストとインストール手順については、追加パッケージのリファレンスを参照してください

RouterOS CLI の構文

RouterOS CLI は、Unix のコマンドパイプラインではなく、パスベースのナビゲーションを使用します。

# Navigation
/ip/address/print
/interface/print
/system/resource/print

# Adding entries
/ip/address/add address=192.168.1.1/24 interface=ether1

# Modifying (by internal ID or find expression)
/ip/address/set [find interface=ether1] address=10.0.0.1/24

# Removing
/ip/address/remove [find address="192.168.1.1/24"]

# Running a command
/system/reboot
/tool/fetch url="http://example.com/file.npk" dst-path="/"

シェルとの主な構文の違い:

  • = はプロパティを割り当てます(前後にスペースを入れません)
  • [find ...] はクエリ式です(WHERE に相当します)
  • 対話型の print で表示される行番号は、スクリプトで安全に使えるオブジェクト ID ではありません。[find ...] または *HEX 形式の内部 ID を使用してください
  • 文字列には ""(二重引用符のみ)を使用します
  • コメントには # を使用します
  • 変数::local myVar "value" と $myVar
  • パイプ、リダイレクト、サブシェルはありません

REST API

http://HOST:PORT/rest/ にある RouterOS REST API です。HTTP メソッドは標準とは異なる形で対応しています。

HTTPRouterOS のアクションCLI 相当
GETprint(一覧表示/読み取り)/path/print
PUTadd(作成)/path/add
PATCHset(更新)/path/set
DELETEremove/path/remove
POSTcommand(実行)/path/command

注意点:

  • PUT は作成であり、更新ではありません。多くの REST API とは逆です
  • 空のパスワードによる認証:admin:(コロンは必須で、その後には何も付けません)
  • WebFig のルート(GET /)は、認証なしでも HTTP 200 を返します。ヘルスチェックとして使用してください
  • REST API(/rest/)には認証が必要です(認証なしでは HTTP 401)
  • .id フィールドは *HEX 形式です(例:*1、*A)

パターン、エラー処理、フィルタリング、POST コマンド、/console/inspect の詳細については、REST API リファレンスを参照してください。

バージョン体系

形式:MAJOR.MINOR[.PATCH][betaN|rcN] — 例:7.22、7.22.1、7.23beta2、7.22rc1

チャネル: stable / long-term / testing / development

バージョンエンドポイント(プレーンテキスト):https://upgrade.mikrotik.com/routeros/NEWESTa7.<channel>

バージョンの解析、比較、ダウンロード URL、パッケージの命名については、バージョン解析リファレンスを参照してください。

アーキテクチャ名

MikroTik では、次のアーキテクチャ識別子を使用します(標準的な Linux のアーキテクチャ名ではありません)。

MikroTik 名CPU一般的なハードウェア
x86x86_64CHR、x86 ベースの RouterBOARD
arm64aarch64最新の ARM ボード(RB5009、Chateau)
armARMv7旧型の ARM ボード
mipsbeMIPS ビッグエンディアン旧型の RouterBOARD
mmipsMIPS マルチコアhAP ac、RB4011
smipsMIPS シングルコアhAP lite、mAP
ppcPowerPCCCR1xxx シリーズ
tileTileraCCR(旧モデル)

CHR(Cloud Hosted Router)は x86 と arm64 でのみ利用できます。

デフォルトの認証情報

  • ユーザー名:admin
  • パスワード:(空 — パスワードなし)
  • SSH/コンソールから初めてログインすると、RouterOS 7.x はパスワードの設定を求めます。スキップするには a を押します
  • REST API と WebFig では、空のパスワードでアクセスできます

RouterOS CLI からハードウェアを確認する

# PCI devices (the RouterOS equivalent of lspci)
/system/resource/hardware/print

# IRQ assignments (shows driver binding)
/system/resource/irq/print

# System overview
/system/resource/print

# Disk info
/disk/print

# Installed packages
/system/package/print

# IP services and ports
/ip/service/print

# Network interfaces
/interface/print

追加リソース

リファレンスファイル:

関連スキル:

  • RouterOS スクリプトと .rsc/CLI 設定の自動化に関する注意点については、routeros-scripting スキルを参照してください
  • /container サブシステム(VETH、デバイスモード、ライフサイクル)については、routeros-container スキルを参照してください
  • netinstall-cli とデバイスのフラッシュについては、routeros-netinstall スキルを参照してください
  • /app YAML コンテナー形式(7.22 以降)については、routeros-app-yaml スキルを参照してください
  • /console/inspect ツリーの走査とスキーマ生成については、routeros-command-tree スキルを参照してください
  • QEMU で CHR を実行する方法(ローカルまたは CI)については、routeros-qemu-chr スキルを参照してください
  • パケットキャプチャ、/tool/sniffer、TZSP ストリーミングについては、routeros-sniffer スキルを参照してください

MCP ツール:

  • コマンドツリーの閲覧とプロパティの検索には、rosetta MCP サーバーのツール(routeros_search、routeros_get_page、routeros_command_tree)を使用してください

コメント