Skip to content

PyPI versions PyPI GitHub Discussion Tests Downloads

Fake Network Operating Systems - FakeNOS#

"Reality is merely an illusion, albeit a very persistent one."

~ Albert Einstein

FakeNOS simulates Network Operating Systems interactions. You can simulate network devices like Cisco IOS or Huawei SmartAX interactions over SSH with little effort. This project it is mainly intented for testing and development purposes.

Installation | Examples | Platforms

Installation#

PyPI versions

The package is currently available in PyPI, so you can install it using pip:

pip install fakenos

Usage#

This is sample example in which we simulate two devices, one running Cisco IOS and another running Huawei SmartAX. To run it, create inventory.yaml file with the following content:

hosts:
  R1:
    username: admin
    password: admin
    platform: cisco_ios
    port: 6000
  R2:
    username: admin
    password: admin
    platform: huawei_smartax
    port: 6001

Then create main.py file with the following content:

from fakenos import FakeNOS
network_os = FakeNOS(inventory='inventory.yaml')
network_os.start()

Run the script:

python main.py

And Voila! 💫 You have two devices running, one with Cisco IOS and another with Huawei SmartAX. In case you want to connect to them, you can use any SSH client, like ssh:

# To connect to Cisco IOS
ssh -p 6000 admin@localhost

# To connect to Huawei Smartax
ssh -p 6001 admin@localhost

And here are some commands 💻 you can try:

  1. Cisco IOS commands:
    • show version
    • show interfaces
    • show ip interface brief
  2. Huawei SmartAX commands:
    • display version
    • display board
    • display sysman service state

Tip

Many times, we don't have time to read the documentation. There is a simple help command which shows all the available commands. It can be called using help or ?.

CLI Usage#

FakeNOS comes with a CLI tool that allows you to start the simulation from the command line. You can try a predefined example by running:

fakenos

In this case 3 devices will be created: - Cisco IOS device with username user and password user on port 6000 - Huawei SmartAX device with username user and password user on port 6001 - Arista EOS device with username user and password user on port 6002

You can also specify the inventory file to use:

fakenos --inventory inventory.yaml