Skip to main content

Fake Network Operating System

Project description

Downloads PyPI PyPI versions GitHub Discussion Code style: black Tests

Fake Network Operating Systems - FakeNOS

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

~ Albert Einstein

FakeNOS created to simulate Network Operating Systems interactions.

Documentation

Why?

Crucial aspect of writing applications or scripts for Network Automation is testing, often testing done using physical or virtual instances of network appliances running certain version of Network Operating System (NOS). That approach, while gives best integration results, in many cases carries a lot of overhead to setup, run and tear down as well as putting significant burden on compute and storage resource utilization.

Other approach is to mock underlying libraries methods to fool applications under testing into believing that it is getting output from real devices. That approach works very well for unit testing, but fails to simulate such aspects as connection establishment and handling.

FakeNOS positions itself somewhere in the middle between full integration testing and testing that mocks device interactions. FakeNOS allows to create NOS plugins to produce pre-defined output to test applications behavior while running servers to establish connections with.

What?

FakeNOS can:

  • Run thousands of servers to stress test applications
  • Simulate Network Operating Systems Command Line Interface (CLI) interactions
  • Provide high-level API to create custom NOS plugins
  • Run in docker container to simplify integration with your infrastructure
  • Make use of FakeNOS CLI tool for quick run and prototype simulations
  • Works on Windows, MAC and Linux under major Python version

How?

Send input and get the output - this is how we interact with many Network Operating Systems, FakeNOS allows to pre-define the output to sent in response to certain input commands, making it ideal for isolated feature testing.

FakeNOS is a micro-kernel framework that can be extended using plugins. The core is kept small and optimized while most of the functionality offloaded to plugins.

FakeNOS has these pluggable systems:

  • Server Plugins - plugins responsible for running various servers to connect with
  • Shell Plugins - plugins to simulate command line interface shell
  • NOS plugins - plugins to simulate Network Operating System commands

What not?

FakeNOS is a simulator, it does not emulate any of Network Control, Data or Management planes, it merely takes the commands as input and responds with predefined output.

FakeNOS inspired by and borrowed from

  • sshim - library for testing and debugging SSH automation clients
  • PythonSSHServerTutorial - tutorial on creating paramiko based SSH server
  • fake-switches - pluggable switch/router command-line simulator
  • ncs-netsim - tool to simulate a network of devices
  • cisshgo - concurrent SSH server to emulate network equipment for testing purposes
  • scrapli-replay - tools to enable fdeasy testing of SSH programs and to create semi-interactive SSH servers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fakenos-1.0.1.tar.gz (343.4 kB view details)

Uploaded Source

Built Distribution

fakenos-1.0.1-py3-none-any.whl (370.9 kB view details)

Uploaded Python 3

File details

Details for the file fakenos-1.0.1.tar.gz.

File metadata

  • Download URL: fakenos-1.0.1.tar.gz
  • Upload date:
  • Size: 343.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.1 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for fakenos-1.0.1.tar.gz
Algorithm Hash digest
SHA256 471210154fe8c6cc5900cf170bec9ba1211e16dbb36d2074c412a185b179195b
MD5 3fb8d1c9fa49f37345533f96580d6915
BLAKE2b-256 be7c3f382aef2624754c7f67bdc3c40f072f55ca709ff7ee064b9c032683935e

See more details on using hashes here.

File details

Details for the file fakenos-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: fakenos-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 370.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.1 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for fakenos-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bb22e532f01b8d2150f8d323824a08ce6621816e288e2f954aa6c98d8d7e03f0
MD5 d2921ff086955292ee224982991abe7f
BLAKE2b-256 b3da265c391d3b672825ad6ebae5c5dfd6dfd85a216b51ea31dc51699d7c2486

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page