Fake Network Operating Systems - FakeNOS#
"La realidad es una simple ilusión, pero una muy persistente."
~ Albert Einstein
FakeNOS simula interacciones de sistemas operativos de red. Puedes simular interacciones de dispositivos de red como Cisco IOS o Huawei SmartAX sobre SSH con poco esfuerzo. Este proyecto está principalmente destinado a pruebas y desarrollo.
Instalación | Ejemplos | Plataformas
Instalación#
El paquete está disponible en PyPI, por lo que puedes instalarlo usando pip:
pip install fakenos
Uso#
Este es un ejemplo de simulación en el que simulamos dos dispositivos, uno
ejecutando Cisco IOS y otro ejecutando Huawei SmartAX. Para ejecutarlo, crea
un archivo inventory.yaml
con el siguiente contenido:
hosts:
R1:
username: admin
password: admin
platform: cisco_ios
port: 6000
R2:
username: admin
password: admin
platform: huawei_smartax
port: 6001
Luego crea un archivo main.py
con el siguiente contenido:
from fakenos import FakeNOS
network_os = FakeNOS(inventory='inventory.yaml')
network_os.start()
Ejecuta el script:
python main.py
¡Y Voilà! Tienes dos dispositivos en ejecución, uno con Cisco IOS y otro con Huawei SmartAX.
En caso de que quieras conectarte a ellos, puedes usar cualquier cliente SSH, como ssh
:
# Para conectarte a Cisco IOS
ssh -p 6000 admin@localhost
# Para conectarte a Huawei Smartax
ssh -p 6001 admin@localhost
Y aquí tienes algunos comandos que puedes probar:
- Comandos de Cisco IOS:
show version
show interfaces
show ip interface brief
- Comandos de Huawei SmartAX:
display version
display board
display sysman service state
Tip
Muchas veces, no tenemos tiempo para leer la documentación. Hay un simple comando help
que muestra todos los comandos disponibles. Se puede llamar usando help
o ?
.
Línea de comandos#
FakeNOS viene con una herramienta CLI que te permite iniciar la simulación desde la línea de comandos. Puedes probar un ejemplo predefinido ejecutando:
fakenos
En este caso se crearán 3 dispositivos:
- Dispositivo Cisco IOS con nombre de usuario
user
y contraseñauser
en el puerto6000
- Dispositivo Huawei SmartAX con nombre de usuario
user
y contraseñauser
en el puerto6001
- Dispositivo Arista EOS con nombre de usuario
user
y contraseñauser
en el puerto6002
También puedes especificar el archivo de inventario a utilizar:
fakenos --inventory inventory.yaml