¡La mejor manera de emular casi cualquier red en su computadora portátil!
Mininet 2.3.1b4
Mininet emula una red completa de hosts, enlaces y enciende una sola máquina. Para crear una muestra de dos host y una red de unta, simplemente ejecute:
sudo mn
Mininet es útil para el desarrollo interactivo, las pruebas y las demostraciones, especialmente aquellas que usan OpenFlow y SDN. Los controladores de red basados en OpenFlow prototipos en Mininet generalmente se pueden transferir al hardware con cambios mínimos para la ejecución completa de la tasa de línea.
Mininet crea redes virtuales utilizando la virtualización basada en procesos y los espacios de nombres de redes, características que están disponibles en los núcleos de Linux recientes. En Mininet, los hosts se emulan como procesos bash
que se ejecutan en un espacio de nombres de red, por lo que cualquier código que normalmente se ejecute en un servidor de Linux (como un servidor web o programa de cliente) debería funcionar bien dentro de un "host" de Mininet. El "host" de Mininet tendrá su propia interfaz de red privada y solo puede ver sus propios procesos. Los interruptores en Mininet son conmutadores basados en software como Open VSwitch o el interruptor de referencia OpenFlow. Los enlaces son pares virtuales de Ethernet, que viven en el núcleo de Linux y conectan nuestros interruptores emulados a hosts emulados (procesos).
Mininet incluye:
Un lanzador de línea de comandos ( mn
) para instanciar redes.
Una práctica API de Python para crear redes de diferentes tamaños y topologías.
Ejemplos (en los examples/
directorio) para ayudarlo a comenzar.
Documentación completa de API a través de documentos Python help()
, así como la capacidad de generar documentación PDF/HTML con make doc
.
Topologías parametrizadas (subclases Topo
) utilizando el objeto Mininet. Por ejemplo, se puede crear una red de árbol con el comando:
mn --topo tree,depth=2,fanout=3
Una interfaz de línea de comandos (clase CLI
) que proporciona comandos de diagnóstico útiles (como iperf
y ping
), así como la capacidad de ejecutar un comando a un nodo. Por ejemplo,
mininet> h11 ifconfig -a
le dice al host H11 que ejecute el comando ifconfig -a
Un comando de "limpieza" para deshacerse de la basura (interfaces, procesos, archivos en /tmp, etc.) que Mininet o Linux podrían dejarlo. ¡Prueba esto si las cosas dejan de funcionar!
mn -c
Mininet 2.3.1b4 es compatible con Python 3 y Python 2
Puede instalar las versiones Python 3 y Python 2 de Mininet lado a lado, pero la instalación más reciente determinará qué versión de Python usa por defecto por mn
.
Puede ejecutar mn
directamente con Python 2 o Python 3, siempre que se instale la versión apropiada de Mininet, por ejemplo
$ sudo python2 `which mn`
Puede encontrar más información sobre el soporte de Python 3 y Python 2 en las notas de la versión en http://docs.mininet.org.
Soporte para Ubuntu 22.04 LTS (y 20.04)
Pruebas y CI más confiables a través de acciones de GitHub
Soporte preliminar para CGROUPS V2 (y V1)
Correcciones de errores menores (2.3.1)
Se puede encontrar información adicional sobre esta versión y las versiones anteriores en las notas de la versión en http://docs.mininet.org.
Consulte INSTALL
para obtener instrucciones y detalles de instalación.
Además de la documentación de la API ( make doc
), mucha información útil, incluido un tutorial de Mininet y una introducción a la API de Python, está disponible en el sitio web de Mininet. También hay un wiki al que se le recomienda leer y contribuir, particularmente las preguntas frecuentes (FAQ) en http://faq.mininet.org.
Mininet es apoyado por la comunidad. Le recomendamos que se una a la lista de correo de Mininet, mininet-discuss
en:
https://mailman.stanford.edu/mailman/listinfo/mininet-discuss
¡Gracias nuevamente a todos los colaboradores y usuarios de Mininet!
Mininet es un proyecto de código abierto y actualmente está alojado en https://github.com/mininet. Se le recomienda descargar, examinar y modificar el código, y enviar informes de errores, correcciones de errores, solicitudes de funciones, nuevas funciones y otros problemas y solicitudes de extracción. Gracias a todos los que han contribuido con código al Proyecto Mininet (¡ver contribuyentes para obtener más información!) Es debido al arduo trabajo de todos los que Mininet continúa creciendo y mejorando.
¡Divertirse! Esperamos ver lo que hará con Mininet para cambiar el mundo de las redes.
Bob Lantz, en nombre de los contribuyentes de Mininet