Resultados - INF225-2023-2-P201/06-mereketengue GitHub Wiki
Resultados Sprint 1:
Se implemento un modulo de procesamiento de lenguaje natural en Python y se establecieron parámetros para que este entendiera una consulta o petición realizada por un usuario para una red, en este se definieron distintas parámetros para que se lograra entender la intención, actualmente identifica el acceso o bloqueo a la red, toma en cuenta el caso de una negación, es decir, cuando se recibe se realiza lo contrario a la acción, por ejemplo, la frase es "El nodo A no tiene acceso a internet", el programa identifica la palabra "acceso" y la palabra "no", ya que se tiene esta negación realizaría un bloqueo a la red del nodo, imprimiendo en pantalla un formato que próximamente será recibido por un router Cisco. Se modifico este sprint debido a su complejidad en donde no se va a realizar un entrenamiento de aprendizaje automático, por lo que se dejara para otro sprint futuro.
La imagen se ve como se toma el token, que en este caso seria la frase a analizar, y la separa en variables según el tipo de palabra que haya encontrado.
Resultados Sprint 2:
En el Sprint 2, Se obtuvo un diagrama de la red que se divide en tres partes: "red", "outside", "inside" y "dmz". En el diagrama se incluyen los hosts de las redes locales, lo que proporciona una representación visual de la estructura de la red. Se llevó a cabo la implementación del entorno de red (configurada con las IP's) señaladas en la imagen utilizando dispositivos de Cisco, incluyendo:
- 2 switchesen dmz y en inside.
- 1 router en outside.
- 1 firewall que se encuentra en el centro de la topología de la red.
Además, se revisó y corrigió el código de la Historia de Usuario 1.
Para probar red, se puede abrir el archivo "red.pkt" que se encuentra en el repositorio, y utilizar PDU's simples para probar conexiones.
También se implemento una interfaz básica con la que comenzar a trabajar, usando como GUI DearPyGui.
La interfaz esta conectada al modulo de procesamiento creado en el sprint 1. Para poder utilizar esta interfaz se debe abrir el archivo "v0.1.1.py", y ejecutarlo, se va a abrir una pestaña nueva con un campo de texto en donde ingresar la frase.
Resultados Sprint 3:
Como resultado del hito 3 se creo una base de datos en mySql que va a almacenar la información acerca de la red implementada. Se crean 3 tablas, 1 con datos del firewall, otra con datos del router y una ultima con datos de los hosts.
Tabla firewall: Esta posee ID, el tipo de interfaz al que esta conectado, una ip, una mascara subnet y una zona, que seria el área en donde viene la conexión.
Tabla Router: Posee los mismos atributos que la tabla firewall, solo que ademas tiene una columna Nombres, para mejor identificación.
Tabla pc/server: Ademas de las columnas anteriores, se agrega un DNS server, y una default gateway que indica por donde se transmite la red.
Resultados Sprint 4:
En el código del interpretador se implementaron mas palabras y adverbios para una mejor comprensión del interpretador. Se crea una carpeta historial que almacena las frases ingresadas para poder pedirlas en el interpretador, el código ahora reconoce de mejor manera las ip o nodos, y por ultimo, se agrega la funcionalidad de poder hacer ping.
Incorporación de nuevas restricciones y adverbios:
Historial incorporada a interfaz:
Se intenta conectar BD con código, pero no se logra implementar de forma correcta, se realizan varios casos prueba pero no se logra conectar correctamente.
Con respecto a implementación de API's, se creo una API que funciona en una pagina HTML, en donde se puede ingresar la frase y realiza la conexion con el codigo, y se obtienen los comandos necesarios.
Resultados Sprint 5:
Debido a la dificultad de realizar la conexion Python-Red, y por orientación del ayudante, se decide realizar solo conexión del interpretador a la BD, en donde a partir de la frase entregada, esta genera dos instrucciones, una que serviría para modificar la red cisco manualmente, y la otra una query que es para modificar la BD, esta ultima si es ejecutada. De esta forma, se modifica la topología de la red o algun campo de esta, ingresando la query en mySql.
Se implementaron 3 API:
-La primera sirve para ingresar la frase a interpretar y da como resultado el código a ingresar para modificar la red.
-La segunda muestra como es actualmente el entorno de red que queremos modificar, si uno hace clic en el botón correspondiente, se muestra como es la base de datos actual, con las tablas respectivas y campos.
-La tercera es para ver el historial, esta API accede a la base de datos mediante consultas para mostrar por pantalla
-Además muestra un resumen de la siguiente manera:
-Se almacena el historial de solicitudes en una tabla en la base de datos. El formato del archivo es [fecha, Acción, Nodo(s) Origen/Destino]