コンテンツにスキップ

Simulated Network Operating Systems - SIMNOS

PyPI versions PyPI GitHub Discussion Ruff Tests Downloads

「現実とは、非常にしつこい幻想にすぎない。」

~ アルベルト・アインシュタイン

SIMNOS はネットワークオペレーティングシステムの対話をシミュレートします。 Cisco IOS や Huawei SmartAX などのネットワーク機器を SSH 経由で 簡単にシミュレートできます。本プロジェクトは主にネットワーク自動化ツールや スクリプトのテスト・開発を目的としています。

インストール | サンプル | プラットフォーム

インストール

PyPI versions

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

実行できるコマンド例 💻 :

  1. Cisco IOS コマンド:
    • show version
    • show interfaces
    • show ip interface brief
  2. Huawei SmartAX コマンド:
    • display version
    • display board
    • display 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à 氏の基盤的な貢献に感謝いたします。詳細はコラボレーターページをご覧ください。