routeros-fundamentals について
MikroTik RouterOSを扱うエージェント向けのリファレンススキルです。GNU/Linuxとの違いを踏まえ、CLIやREST API、バージョン、アーキテクチャ、ハードウェア情報を説明します。
主な機能
- 01RouterOSとGNU/Linuxの違い
- 02CLIの構文と使い方
- 03REST APIのメソッドと注意点
- 04バージョンとアーキテクチャの参照
- 05ハードウェア確認コマンド
活用シーン
- 01CLIによるRouterOS管理の計画
- 02RouterOS REST APIリクエストの作成
- 03デバイスのバージョンとアーキテクチャの確認
- 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.mdbun-runtime-gotchas.mddevice-mode-rest.mddevice-mode.mdextra-packages.mdlicensing-rest.mdpackages-rest.mdrest-api-patterns.mdrouteros-firewall-rest.mdrouteros-networking-rest.mdrouteros-users-rest.mdscripting.mdversion-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 メソッドは標準とは異なる形で対応しています。
| HTTP | RouterOS のアクション | CLI 相当 |
|---|---|---|
GET | print(一覧表示/読み取り) | /path/print |
PUT | add(作成) | /path/add |
PATCH | set(更新) | /path/set |
DELETE | remove | /path/remove |
POST | command(実行) | /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 | 一般的なハードウェア |
|---|---|---|
x86 | x86_64 | CHR、x86 ベースの RouterBOARD |
arm64 | aarch64 | 最新の ARM ボード(RB5009、Chateau) |
arm | ARMv7 | 旧型の ARM ボード |
mipsbe | MIPS ビッグエンディアン | 旧型の RouterBOARD |
mmips | MIPS マルチコア | hAP ac、RB4011 |
smips | MIPS シングルコア | hAP lite、mAP |
ppc | PowerPC | CCR1xxx シリーズ |
tile | Tilera | CCR(旧モデル) |
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
追加リソース
リファレンスファイル:
- 新しい公式マニュアルのホーム:https://manual.mikrotik.com/。この新しいサイトは、Confluence ベースの旧
help.mikrotik.comドキュメントに代わるもので、https://manual.mikrotik.com/docs/CLI%20Reference/ に CLI Reference セクションがあります。 - REST API の詳細と
/console/inspectコマンドツリーについては、REST API リファレンスを参照してください - バージョンの解析、比較、ダウンロード URL のロジックについては、バージョン解析リファレンスを参照してください
- 追加パッケージ(container、iot、zerotier など)については、追加パッケージのリファレンスを参照してください
- デバイスモード(モード、機能マトリックス、物理的な確認)については、デバイスモードのリファレンスを参照してください
- RouterOS スクリプト言語の構文については、スクリプトのリファレンスを参照してください
- ユーザー管理、SSH キー、admin アカウントについては、ユーザー REST リファレンスを参照してください
- IP アドレス設定、ルーティング、DHCP、DNS、インターフェースについては、ネットワーク REST リファレンスを参照してください
- ファイアウォールの filter/NAT/mangle とルールの順序については、ファイアウォール REST リファレンスを参照してください
- HTTP に影響する Bun ランタイムのバグ(req.destroy、pool、secrets)については、Bun ランタイムの注意点を参照してください
関連スキル:
- 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 ツール:
- コマンドツリーの閲覧とプロパティの検索には、
rosettaMCP サーバーのツール(routeros_search、routeros_get_page、routeros_command_tree)を使用してください