Simulated Network Operating Systems - SIMNOS¶
「現実とは、非常にしつこい幻想にすぎない。」
~ アルベルト・アインシュタイン
SIMNOS はネットワークオペレーティングシステムの対話をシミュレートします。 Cisco IOS や Huawei SmartAX などのネットワーク機器を SSH 経由で 簡単にシミュレートできます。本プロジェクトは主にネットワーク自動化ツールや スクリプトのテスト・開発を目的としています。
インストール¶
PyPI からインストールできます:
pip install simnos
開発環境には uv の使用を推奨します:
uv sync
使い方¶
Cisco IOS と Huawei SmartAX の2台をシミュレートする例です。
まず inventory.yaml を作成します:
hosts:
R1:
username: admin
password: admin
platform: cisco_ios
port: 6000
R2:
username: admin
password: admin
platform: huawei_smartax
port: 6001
次に main.py を作成します:
from simnos import SimNOS
network_os = SimNOS(inventory='inventory.yaml')
network_os.start()
スクリプトを実行します:
python main.py
これで完了です! Cisco IOS と Huawei SmartAX の2台が起動しました。
SSH クライアントで接続できます:
# Cisco IOS に接続
ssh -p 6000 admin@localhost
# Huawei SmartAX に接続
ssh -p 6001 admin@localhost
実行できるコマンド例 :
- Cisco IOS コマンド:
show versionshow interfacesshow ip interface brief
- Huawei SmartAX コマンド:
display versiondisplay boarddisplay sysman service state
Tip
ドキュメントを読む時間がない場合は、help または ? コマンドで利用可能なすべてのコマンドを表示できます。
CLI の使い方¶
SIMNOS にはコマンドラインツールが付属しています。 事前定義されたサンプルを以下のコマンドで実行できます:
simnos
この場合、3台のデバイスが作成されます:
- Cisco IOS (ユーザ名 user、パスワード user、ポート 6000)
- Huawei SmartAX (ユーザ名 user、パスワード user、ポート 6001)
- Arista EOS (ユーザ名 user、パスワード user、ポート 6002)
インベントリファイルを指定することもできます:
simnos --inventory inventory.yaml
謝辞¶
SIMNOS は FakeNOS のフォークです。オリジナルの作者 Denis Mulyalin 氏とメンテナの Enric Perpinyà 氏の基盤的な貢献に感謝いたします。詳細はコラボレーターページをご覧ください。