Trabajo Mininet Telemática Grupo 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 30

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


Telemática I

TRABAJO FINAL DE:


TELEMÁTICA 1

TEMA:
MININET- WIFI

REALIZADO POR:
Estudiantes: Grupo No: 1
Freddy Torres
Steve Solís
Edison Loaiza

ESCUELA POLITECNICA NACIONAL

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA

TELEMÁTICA 1
TEMA: MININET- WIFI
INTRODUCCIÓN:

Este documento esta destinado a revisar las principales características y funcionalidades del
Mininet-WiFI, para que de esta manera usuarios nuevos tengan una idea de que es Mininet y cómo
funciona, a manera que sirva de guía para cualquier persona que tenga interés en el programa.
Primero se explicará brevemente que significa y en que consiste este emulador y revisará las
principales funciones y configuraciones de este.
Las Redes Definidas por Software (SDN) son un nuevo prototipo en redes de datos que está
siendo foco de estudio e investigación en los últimos años, debido a las diferentes ventajas que
tiene con respecto al funcionamiento de las redes convencionales. Las Redes Definidas por
Software separan el plano de control de un dispositivo de red, del plano de datos, permitiendo
controlar, monitorizar y gestionar una red desde un nodo centralizado o controlador, lo cual
promete simplificar la gestión de red e incluir innovación a través de su programación.
Mininet es un emulador de red (SDN). Este programa tiene una colección de hosts finales,
conmutadores, enrutadores y enlaces que se pueden ejecutar en Sistema Operativo Linux, se
requiere una sola máquina (VM, nube o nativo), su creación puede demorar segundos, y se puede
ejecutar con un solo comando. Los hosts virtuales, los conmutadores, los enlaces y los
controladores de Mininet son reales, ya que se crearon utilizando software en lugar de hardware,
y en su mayor parte su comportamiento es similar a los elementos discretos de hardware. Por lo
general, es posible crear una red Mininet que se asemeje a una red de hardware o una red de
hardware que se asemeje a una red Mininet. Mininet es útil para el desarrollo , la enseñanza y
la investigación .
MININET- WIFI
Mininet-WiFi es una extensión (bifurcación) del emulador de redes Mininet. Los desarrolladores
de Mininet-WiFi no modificaron ninguna funcionalidad existente de Mininet, sino que agregaron
una nueva funcionalidad. Los desarrolladores Mininet-WiFi agregaron estaciones WiFi-
virtualizadas y puntos de acceso basados en los controladores inalámbricos estándar de Linux y el
controlador de simulación inalámbrica 80211_hwsim (módulo kernel de Linux que se puede usar
para simular el número arbitrario de radios IEEE 802.11 para mac80211). También permite emular
los atributos de una estación móvil, como la posición y el movimiento en relación con los puntos
de acceso.

Figura 1. Logotipo de Mininet-WiFi


Mininet-WiFi extendió el código base de Mininet añadiendo o modificando clases y scripts. Por lo
tanto, Mininet-WiFi agrega una nueva funcionalidad y aún admite todas las capacidades de
emulación SDN (Redes definidas por software) normales del emulador de red Mininet estándar.
Cabe recalcar que los desarrolladores de este software siguen añadiendo funcionalidades hasta la
actualidad.
Mininet WiFi y movilidad
La movilidad se refiere a la capacidad de una red para acomodar hosts que se mueven de una
parte de la red a otra. El emulador de red Mininet estándar se puede usar para probar la
movilidad, sin embargo, Mininet-WiFi ofrece más opciones para emular escenarios complejos
donde muchos hosts cambiarán los conmutadores a los que están conectados.
Emulación de redes inalámbricas 802.11
Mininet-wifi incorpora los controladores inalámbricos como: el controlador mac80211_hwsim que
es un simulador de software para radios Wi-Fi, además de los controladores inalámbricos Linux
802.11 SoftMAC y la interfaz de configuración inalámbrica cfg80211.
Puede usar Wireshark para monitorear el tráfico inalámbrico que pasa entre el punto de acceso
inalámbrico virtual y las estaciones móviles virtuales en los escenarios de la red Mininet-wifi. Sin
embargo, le resultará difícil captar el tráfico de control inalámbrico en las interfaces WLAN
estándar porque Linux elimina los mensajes de control inalámbrico y los encabezados antes de
que el tráfico en estas interfaces esté disponible para procesos de usuario como Wireshark.
Pantalla gráfica de Mininet WiFi
Mininet WiFi proporciona una pantalla gráfica que muestra las ubicaciones de los nodos WiFi en
un gráfico.
El gráfico mostrará los puntos de acceso inalámbricos y las estaciones, sus posiciones en el
espacio y mostrará los efectos del parámetro de rango para cada nodo. El gráfico no mostrará
ningún elemento de red “cableado” como hosts o conmutadores Mininet estándar, conexiones
Ethernet entre puntos de acceso, hosts o conmutadores.

Figura 2. Pantalla gráfica de Mininet WiFi


Requerimientos para Mininet Wifi
Requiere una Distribución Ubuntu desde la versión 14.04, el cual es un sistema operativo de
código abierto.
En este caso este sistema operativo se lo instalará en una máquina virtual y a continuación se
instalará el Mininet WiFi.

Instalación de Virtual Box

Se ingresa a la página oficial de Virtual Box.


https://www.virtualbox.org/
A continuación, se escoge la versión que se requiere, y el sistema operativo en donde se instalará.
Se recomienda descargar la versión más reciente.

Automáticamente empezará a descargarse el archivo del instalador.

A continuación, se ejecuta el instalador, y se sigue el proceso de instalación.

Se escogen las características a ser instaladas, según los requerimientos del usuario.
Se da clic en el botón siguiente, hasta llegar al proceso de instalación.

Se espera el tiempo requerido hasta que todos los componentes sean instalados y finalmente se
obtiene el Virtual Box instalado, con una interfaz gráfica como la siguiente.

Instalación de Ubuntu en una máquina virtual de Virtual Box

Al igual que con Virtual Box se ingresa a la máquina virtual y se selecciona la descarga del
instalador de acuerdo a la versión que se requiera. https://www.ubuntu.com
Una vez que el proceso de descarga ha terminado. Se accede a virtual box y se selecciona el
botón de Nueva y aparecerá un cuadro como el que se muestra a continuación, en donde se
escogerá el nombre que se asignará a la máquina, el tipo y la versión del sistema operativo.

Al dar clic en siguiente aparacerán opciones de creación del disco duro a usarse. Para lo que se
escogerá la creación de un disco duro virtual. Y a continuación el tipo de archivo que se quiere
usar para el nuevo disco duro que se escogerá la opción VDI.
Seguidamente se escogerá un almacenamiento en la unidad del disco duro físico reservado
dinámicamente. Es decir irá ocupando el espacio en el disco duro del computador a medida que se
vaya llenando.

A continuación se selecciona la máquina virtual creada y se escoge la opción Configuración,


seguidamente de Almacenamiento y en la opción de controlador IDE escoger el icónico de un
disco, en el cual se despliega una opción para seleccionar el archivo de disco óptico virtual. El cual
se escogerá desde la ubicación en donde se descargo el archivo (instalador) de la página oficial de
Ubuntu y se selecciona este.
Después de la configuración anterior se selecciona Iniciar la máquina creada. Y aparecerá una
interfaz de instalación de Ubuntu como la mostrada a continuación, en la que se selecciona el
idioma en el que se quiere usar el sistema operativo y se escoge la opción Instalar Ubuntu.

A continuación aparecen una serie de opciones para la instalación, en las que en este caso se
escogieron las mostradas a continuación.
Luego de seleccionadas las opciones que se requieran se da clic en el botón Instalar ahora y
comenzará el proceso. Y se deberá esperar que esperar un tiempo considerable hasta que se
complete, además se requiere una conexión a internet, ya que durante la instalación se van
descargando ciertos archivos que se requerirán para la misma.

Una vez concluida la instalación se tendrá una interfaz del sistema operativo como el siguiente,
dentro del Virtual Box.

Instalación Mininet WiFi

En ubuntu ingresamos a terminal.

Se ejecutan los siguientes comandos


sudo apt-get install git
git clone https://github.com/intrig-unicamp/mininet-wif

cd mininet-wifi
sudo util/install.sh -Wnfv

Mininet es instalado por una secuencia de comandos (script). Para visualizar todas las opciones
disponibles se coloca el siguiente comando:
wifi:~$ util/install.sh -h
El cual desliza un menú de comandos en los que se puede instalar o eliminar controladores,
archivos, entre otros.
Una forma alternativa es usar una máquina virtual preconfigurada con el software Mininet-Wifi, la
cual se lo puede encontrar en internet y no requiere el proceso de instalación anterior.
COMPONENTES DE MININET- WIFI

Las interfaces inalámbricas para virtualizar dispositivos WiFi funcionan en modo maestro para
puntos de acceso y modo administrado para estaciones.
Estaciones: son dispositivos que se conectan a un punto de acceso mediante autenticación y
asociación. En nuestra implementación, cada estación tiene una tarjeta inalámbrica (staX-wlan0 -
donde X será reemplazado por el número de cada estación).
Puntos de Acceso (AP): son dispositivos que administran estaciones asociadas. Usan interfaces
inalámbricas virtuales para puntos de acceso y servidores de autenticación. Los puntos de acceso
virtualizados no permiten todavía a los usuarios configurar varios parámetros de la misma manera
que uno real,sin embargo la implementación actual cubre las características más importantes, por
ejemplo ssid, canal, modo, contraseña, criptografía, etc.
EJEMPLOS PREESTABLECIDOS

Mininet-WiFi incorpora ejemplos que se pueden usar como una guía o como un punto de partida
para la creación de nuevas redes ya que los mismo son modificables. Para acceder a los ejemplos
se usa los siguientes comandos en el terminal:
Una vez que se accede a la carpeta ejemplos para observar los disponibles se coloca el comando ls
el cual mostrará, los ejemplos preestablecidos por mininet.

s
Para poder correr el ejemplo antes del nombre con el cual se identifica en la lista anterior se usa el
comando sudo python y se correrá automáticamente la red de ejemplo.

En estos ejemplos automáticamente se generarán automáticamente las pantallas gráficas en


donde se vizualisarán los nodos de la red y la cobertura de las mismas.
COMANDOS PARA OBTENER INFORMACIÓN DE LA RED
-nodes
Para conocer el número de nodos disponibles en la red ejecutada se usa el comando nodes. El cual
indicará cuantos Puntos de acceso y estaciones existen.

-net
También podemos verificar la configuración utilizando los comandos net. Por ejemplo, al ejecutar
este comando se puede ver las conexiones entre nodos.

-ping
El comando ping permite comprobar si una determinada interfaz de red, de una estación, se
encuentra activa con respecto a un servidor u otra estación.

-ping all
Permite verificar la conectividad y algunas estadísticas de todas las estaciones en la red.

-dump
Es el comando que permite ver de la forma más fácil las direcciones IP de los dispositivos como
estaciones y puntos de acceso.

-iperf
Este comando permite medir la velocidad de transmisión entre dos estaciones o de una estación
al servidor. Esto dependerán de la cobertura que tengan las estaciones con los APs

-distance
Este comando permite medir la distancia directa que existe entre estaciones o Puntos de acceso.

-iwconfig
Este comando es usado para obtener información de una interfaz inalámbrica.

-Obtener la posición

Para tener la posición de una estación o punto de acceso se debe ubicar el siguiente comando
especificando de que dispositivo se requiere obtener la posición.
mininet-wifi>py sta1.params[’position’]

-Obtener la información de un AP a la que una estación está asociada

Aquí se obtendrá el punto de acceso al que se encuentra conectado la estación especificada y las
direcciones IP que pertenecen a la misma.

mininet-wifi>py sta1.params['associatedTo']

-Obtener los Aps de los que una estación se encuentra en rango.

Esta función es similar a la anterior pero no necesariamente tiene que estar la estación asociada al
AP, sino que debe encontrarse en el rango de uno de estos y brindará la misma información que
en el comando anterior. Una estación puede encontrarse en el rango de varios APs.

mininet-wifi>py sta1.params['apsInRange']
-Obtener el canal

Como se indica obtiene el canal en frecuencia que está usando un AP o una estación en la red
WiFi.

mininet-wifi>py sta1.params['channel']

-Obtener frecuencia

Se obtiene la frecuencia de operación de una estación o Punto de acceso

mininet-wifi>py sta1.params['frequency']

Obtener el modo

mininet-wifi>py sta1.params['mode']

-Obtener la potencia de Transmisión

mininet-wifi>py sta1.params['txpower']

-Obtener estaciones asociadas a una AP

Indicará la lista de las estaciones y su respectiva dirección IP.

Cambios en los parámetros de los elementos de la red

Configuración de posición de una estación o punto de acceso

mininet-wifi>py sta1.moveNodeTo('40,20,40')
Configuración en la ganancia de una antena
mininet-wifi>py sta1.setAntennaGain('sta1-wlan0', 5)

Configuración en el rango de la señal

mininet-wifi>py sta.setRange(100)
Configuración de la potencia de transmisión
mininet-wifi>py sta1.setTxPower('sta1-wlan0', 10)

Asociación de una estación a un AP

mininet-wifi>py sta1.moveAssociationTo('sta1-wlan0', ap1)

Otra forma para poder a cambiar estos parámetros en una red es ingresando a la configuración
general de esta mediante el comando nano y a continuación el nombre del archivo de la red
(ejemplo), y se accederá a una ventana de configuración como la siguiente.

Aquí se puede modificar varios parámetros de los dispositivos de la red, como su posición
dirección ip, puntos de acceso al que se encuentran asociados entre otras modificaciones.
Además es posible aumentar los elementos que conforman la red en este caso se aumentó una
estación que se visualizará en la siguiente imagen. Para usar los comandos que se encuentran en
la parte inferior se presiona la tecla Ctrl+ La letra de la función que se quiera realizar.
Figura 3. Red de ejemplo 4adress modificada.

Captura de tráfico inalámbrico con Wireshark

Wireshark es una herramienta básica para observar los mensajes intercambiados entre
aplicaciones es un analizador de protocolos (packet sniffer). Un analizador de protocolos es un
elemento pasivo, únicamente observa mensajes que son transmitidos y recibidos desde y hacia un
elemento de la red, pero nunca envía él mismo mensajes. En su lugar, un analizador de protocolos
recibe una copia de los mensajes que están siendo recibidos o enviados en el terminal donde está
ejecutándose.

Como primer requisito, es necesaria la instalación de Wireshark en nuestro sistema operativo,


para lo cual es necesario descargar la aplicación mediante la terminal de la siguiente manera:

El primer paso es entrar al menú como super usuario:

Como segundo paso se tiene que descargar el Wireshark usando el siguiente comando:

Una vez instalado el Wireshark simplemente es necesario abrirlo de la siguiente manera en el


terminal:
Una vez insalado el wireshark tomaremos un ejemplo ya existente en el mininet-WiFi para realizar
el control de trafico, se lo buscara paso a paso como se muestra a continuacion:
Como ya menciono mi compañero solo se emplea el siguiente comando para poder entrar al
escenario de la red escogida en el mininet-WiFi

Luego, es necesario habilitar la interfaz hwsim0. La interfaz hwsim0 es la interfaz de software


creada por MininetWiFi que copia todo el tráfico inalámbrico a todas las interfaces inalámbricas
virtuales en el escenario de red. Es la forma más fácil de monitorear los paquetes inalámbricos en
Mininet-WiFi.

A continuación, se ejecutará el comando ping entre las dos estaciones. En Wireshark se observan
los marcos inalámbricos y los paquetes ICMP encapsulados que están pasando por la interfaz
hwsim0.
El Protocolo de Mensajes de Control y Error de Internet, ICMP, su utilidad no está en el transporte
de datos de usuario, sino en controlar si un paquete no puede alcanzar su destino, si su vida ha
expirado, si el encabezamiento lleva un valor no permitido, si es un paquete de eco o respuesta,
etc. Es decir, se usa para manejar mensajes de error y de control necesarios para los sistemas de la
red, informando con ellos a la fuente original para que evite o corrija el problema detectado. ICMP
proporciona así una comunicación entre el software IP de una máquina y el mismo software en
otra.

UN PUNTO DE ACCESO

En esta primera parte se muestra como crear escenarios simples así como la forma de capturar
tráfico en una red Wireless Mininet-WiFi. La topología está formada por un punto de acceso
wireless, se trata de un switch conectado a un controlado y dos estaciones también inalámbricas
que en este caso son hosts

Lo primero que se hará será arrancar Wireshark.

Tras esto, se iniciará Mininet-WiFi con un escenario por defecto.


Si ocurre el este error debemos poner el siguiente comando.

Ahora se activará la interfaz en la que se va a capturar.

Se envía un ping desde la estación 1 (sta1) a la estación 2 (sta2)

Para parar la primera parte del tutorial:


MÚLTIPLES PUNTOS DE ACCESO

En esta parte se va a crear un escenario de red con 2 o más puntos de acceso inalámbricos. Con el
siguiente comando se creara una topología de red en la que se dispondrá de tres puntos de
acceso inalámbricos y una estación conectada a cada punto de acceso:

Como resultado se ve como la red es establecida y como cada estación es relacionada con cada
punto de acceso. Se puede verificar la configuración usando los comandos net y dump. Si se
quiere saber cuáles son los puntos de acceso visibles para cada estación se usara el comando
siguiente:

Si lo que se quiere saber es con qué punto de acceso está conectada nuestra estación se utilizará
el comando:

Escenario simple de movilidad Con el comando iw se puede cambiar la conexión entre los puntos
de acceso y las estaciones. Esto no es recomendable cuando no son escenarios estáticos. Y en
caso de que la obtención de esta información sea durante la ejecución será mejor utilizar el
comando info del que se hablara más adelante.

Lo que se ha hecho es cambiar la conexión de la estación, por lo que ahora estará conectada al
punto de acceso 2. Esto se puede verificar con el comando link que se ha usado anteriormente
FLUJO OPENFLOW EN ESCENARIOS DE MOVILIDAD.

Ahora se va a ver como maneja el controlador este escenario. Para ello, se va a generar tráfico
entre la estación 1 y la estación 3. Para saber las direcciones IP basta con escribir el comando
dump. Una vez se sabe las direcciones IP de las estaciones se va a abrir una ventana externa para
una de las estaciones [5]:

Desde esta nueva ventana se enviara un ping a la estación 1:

Ahora se abrirá Wireshark para


observar el flujo de OpenFlow,
como recordatorio decir que hay
que capturar en la interfaz de
loopback. Para filtrar los paquetes
usar ’of’. Tras esto, en el cliente
Mininet, se puede comprobar los
flujos en cada punto de acceso:
Se puede observar flujos en los puntos de acceso 2 y 3, pero no en el 1, esto se debe a que ahora la
estación 1 está conectado al punto de acceso 2 por lo que todo el tráfico va por los puntos de
acceso 2 y 3. Si lo que se quiere es que haya flujo en los tres basta con volver a la configuración
que se ten´ıa inicialmente ya que ´esta es la que se había modificado. Se debe tener en cuenta que
al hacer ´esto el controlador no es capaz de detectar las situaciones en las que una estación se
mueve y cambia de punto de acceso por lo que se debe borrar los flujos con el siguiente
comando: dpctl

MOVILIDAD

Posiblemente, la característica más importante que ofrece Mininet-WiFi con respecto a Mininet
sea el soporte sobre la movilidad de las estaciones. En esta parte, se va a ver cómo manejar y
crear un escenario donde las estaciones se muevan a lo largo del espacio y vayan cambiando de
puntos de acceso a los que se conectan, basándose en la cercanía.
Si lo que se quiere es que el movimiento sea aleatorio se pueden utilizar alguno de los siguientes
métodos: RandomWalk, TruncatedLevyWalk, RandomDirection, RandomWayPoint, GaussMarkov,
ReferencePoint,TimeVariantCommunity. Por ejemplo:

En este ejemplo se puede observar un parámetro AC que es el encargado de las asociaciones de


control: - iif (Least-Loaded-First) - ssf (Strongest-Signal-First)

TEST CON IPERF

Para ver cómo responde el sistema al tráfico realizaremos un ping, cuando ya se haya realizado
ese ping. Se inicia un servidor iperf en la estación:

Tras esto, se abrirá una ventana de comando en un host o en una estación con el comando xterm
ya mencionado. Ahora se iniciará un cliente iperf en esta ventana nueva que se ha abierto con
xterm:
Se puede observar la salida de iperf y como la estación se mueve a través del gráfico. Cuando esta
pasa de un punto de acceso a otro el tráfico se para. Para que vuelva a haber tráfico es necesario
limpiar las tablas de flujo, ya que sino el controlador puede funcionar de manera incorrecta. Para
ello, basta con el siguiente comando:

PROPAGACIÓN

En los escenarios de Mininet-WiFi se pueden utilizar diferentes modelos de propagación


dependiendo las características de la red que se pretenda simular. Los modelos de propagación
son los siguientes [6]:

Donde sL es las pérdidas del sistema.

Otras características que se pueden especificar son las siguientes:


Inconvenientes solucionados
Problema de bloqueo de get

Solución: rm -rf /var/lib/apt/lists/lock

rm /var/lib/dpkg/lock

apt-get update

rm -rf /var/lib/apt/lists/lock

rm /var/lib/dpkg/lock

apt-get update

error

Error al ejecutar Wireshark.

Solucion:
Guardar y salir.

Problema:

Solucion:
Problema:

Solución:

CONCLUSIONES

 Este trabajo presentado se muestra a Mininet-WiFi como una herramienta para emular
escenarios inalámbricos SDN que permiten experimentos de alta fidelidad que replican
entornos reales de red. Mininet-WiFi aumenta el famoso emulador Mininet con estaciones
inalámbricas virtuales y puntos de acceso mientras conserva las capacidades SDN
originales y la arquitectura ligera del software de virtualización.
 Se concluye que la emulación de red es una técnica ampliamente utilizada para evaluar los
protocolos de rendimiento, prueba y depuración, así como para respaldar múltiples
problemas de investigación relacionados con la red. La emulación permite ejecutar código
real en redes realistas y condiciones informáticas. En apoyo de la investigación sobre
arquitecturas de redes definidas por software (SDN), el emulador Mininet permite
experimentos enriquecidos y ciclos rápidos de creación de prototipos, que son
especialmente interesantes para fines de enseñanza, investigación y reproducibilidad en
el ámbito académico.
 Mininet-Wifi es un simulador que nos permite realizar proyectos relacionados a redes y
poder hacer cambiar parámetro de la red como el canal, la movilidad el tráfico la
asociación y des asociación de APs y estaciones, etc. Las dificultades que se presentaron
en la realización de pruebas del programa se han podido solucionar, algunas de ellas, con
la poca información al inicio del proyecto, problemas de instalación o partición del disco,
des configuración de elementos instalados, problema de bloqueo de comando, ejecución
como root, algunos de los cuales se solucionaban reiniciando la máquina virtual.

BIBLIOGRAFÍA:
[1] “ The User Manual Mininet-WiFi” [En línea]. Disponible http://sdncentral.ir/wp-
content/uploads/2017/07/mininet-wifi-draft-manual.pdf [Accedido: 03- Ago- 2018].
[2] Esteve Christian. “Mininet-WiFi”. Git Hub [En línea]. https://github.com/intrig-unicamp/mininet-
wifi Disponible [Accedido: 03- Ago- 2018].
[3] “Introduction to Mininet”. Git Hub [En línea].
https://github.com/mininet/mininet/wiki/Introduction-to-Mininet Disponible [Accedido: 03- Ago-
2018].
[4] Fontes Ramon “Mininet-WiFi: SDN emulator supports WiFi networks”. Brian Link Letter [En
línea].http://www.brianlinkletter.com/mininet-wifi-software-defined-network-emulator-supports-
wifi-networks/ Disponible [Accedido: 03- Ago- 2018].
[5] Andr´e Panisson. Modelos de movilidad: Mininet-wifi
https://github.com/intrigunicamp/mininet-wifi/blob/master/mininet/mobility.py, 21 de Julio de
2016.
[6]Ramon Fontes. Modelos de propagaci´on: Mininet-wifi
https://github.com/intrigunicamp/mininet-wifi/blob/master/examples/wifipropagationmodel.py, 21
de Julio de 2016.

También podría gustarte