HTML
1. Error al abrir archivos .mn en MiniEdit
Al intentar cargar un archivo de topología en MiniEdit, puedes encontrar un error similar a este:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.8/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "./miniedit.py", line 1486, in loadTopology
hosts = loadedTopology['hosts']
KeyError: 'hosts'
Esto generalmente se debe a cómo MiniEdit maneja la carga de JSON. Para solucionarlo, modifica la línea 1444 del archivo miniedit.py:
Cambia:
loadedTopology = self.convertJsonUnicode(json.load(f))
Por:
loadedTopology = json.load(f)
2. Error al generar y ejecutar archivos Python en MiniEdit
Pueden ocurrir dos problemas: un error durante la generación del script Python y que el script generado no funcione.
Error de generación:
Traceback (most recent call last):
File "/usr/lib/python3.8/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "miniedit.py", line 2019, in exportScript
for widget, item in self.widgetToItem:
File "/usr/lib/python3.8/tkinter/__init__.py", line 1652, in cget
return self.tk.call(self._w, 'cget', '-' + key)
TypeError: can only concatenate str (not "int") to str
Script generado sin respuesta:
Solución:
-
Ignora los errores mostrados en la terminal durante la generación. Lo importante es que el archivo Python se cree en la carpeta designada.
-
Añade el siguiente código al final del archivo Python generado para que la red se inicialice y se detenga correctamente: ```
CLI(net) net.stop()if name == 'main': setLogLevel('info') myNetwork()
3. Error "RTNETLINK answers: File exists" al crear una topología en Mininet
Este error ocurre cuando Mininet intenta crear interfaces de red que ya existen, usualmente porque la limpieza de la topología anterior no se completó correctamente.
Solución:
Ejecuta el siguiente comando para limpiar todas las topologías y recursos de red residuales de Mininet:
sudo mn -c
4. Problemas de conexión con el controlador remoto (100% de pérdida de paquetes)
A pesar de que los hosts puedan hacer ping entre sí, la comuniccaión con el controlador remoto falla, mostrando mensajes como:
Getting Hosts and Switches.
Getting controller selection:remote
Unable to contact the remote controller at 127.0.0.1:6633
Solución:
Asegúrate de que el controlador Ryu esté ejecutándose en una terminal separada *antes* de lanzar tu topología Mininet. Por ejemplo:
ryu-manager ./ryu/ryu/app/simple_switch.py
5. Recomendaciones de entorno
Para evitar problemas inesperados, se recomienda utilizar un entorno con:
- Ubuntu 20.04 o superior.
- Python 3.8 o superior.
El uso de Python 2.7 puede generar comportamientos erráticos y problemas de compatibilidad.
HTML