Está en la página 1de 29

Tópicos Especiales II

Isabel Leguías
Universidad Tecnológica de Panamá
Facultad de Ingeníera de Sistemas Computacionales
Departamento de Arquitectura y Redes de Computadoras
Instalación Mininet
Instalación Mininet
Instalación Mininet

Después de iniciada la máquina virtual, el sistema le solicita un nombre de usuario y


una contraseña, Mininet por defecto usa el usuario “mininet” y contraseña “mininet.
Para abrir el emulador Mininet basta con ingresar el comando “sudo mn”.

Conectarse a través de SSH a la máquina virtual Mininet por medio de PuTYY;


previamente debe activarse la casilla “Enable X11 forwarding” ubicado en
“Connection”/”SSH”/”X11” de la configuración de PuTTY
Introduction
MININET
❖ Es un programa emulador de red que posee una colección de
host finales, enlaces de red, conmutadores virtuales y
controladores en un solo núcleo de Linux.

❖ Utilizando principalmente para emular Redes Definidas por


Software y OpenFlow.
❖ Proporciona tanto la interfaz de linea de commando(CLI), como
la interfaz de Programación de Aplicciones(API).
▪ CLI = Comando Interactivo
▪ API = Automatización

❖ Mediante la interfaz de línea de commandos (CLI) se puede


interacturar y verificar la red.
❖ Provee un entorno simulado para la investigación,
experimentación y desarrollo de nuevas ideas mediante el
desarrollo de scripts antes de desplegarlas en un ambiente real.
Caracteríticas de Mininet
Se caracteriza por:
❖ Sencillez: Con solo un commando mn se puede desplegar
una red rápidamente.
❖ Personalización: Se puede crear cualquier tipo de
topología, , mediante programación (lenguaje Pyhton), se
puede realizer scripts para experimentar y almacenar
nuevos ejemplos de topologias.
❖ Entorno real: Se emula el envio de paquetes a través de
interfaces reales Etherneth, con su respectiva velocidad de
enlace y retardo.
❖ Permite el diagnóstico con herramientas como ping, dump,
tcpdump para comprobar la conectividad entre los host
Ventajas de Mininet
Aporta una serie de beneficios :
❖ Velocidad
❖ Posibilidad de crear infinitos tipos de topologías.
❖ Puede ejecutar programas de los que se disponga
en la maquina Linux.
❖ Permite personalizar los paquetes enviados
(customize Packet forwarding).
❖ Diferentes formas donde ejecutar Mininet
❖ Compartir resultados.
❖ Fácilmente de usar.
❖ Mininet es un programa Open-Source
Limitaciones de Mininet
También tiene una serie de limitaciones, las más importantes
son las siguientes :

❖ Usa un único núcleo de Linux para todos los hosts


virtuales.

❖ Necesidad de utilizar un controlador OpenFlow.

❖ No posee una noción de tiempo virtual.


Comandos Principales
Mininet Incluye una interfaz de línea de comandos (CLI) que puede invocar
una red y proporcionar una variedad de comandos útiles, al igual que mostrar
ventanas xterm

Antes de arrancar Mininet usaremos la opción “-c” para limpiar la pantalla

▪ help,= muestra una lista de posibles comandos de mininet


▪ nodes = muestra una lista de nodos
▪ net = muestra la topología de red
▪ dump = muestra la configuración de la interfaz por nodo y el PID del
proceso representando cada nodo.
▪ <node id >ifcofig = similar al comando de Linux para definir una red.
▪ <node id> route = define entradas en la tabla de enrutamiento
▪ iperf<node id><node id> = permite realizer prueba de rendimiento de la red.
▪ <node id> ping <node id> = realiza un ping de red entre dos nodos
▪ Pingall = Realiza una prueba de conectividad entre todos los host de la red
▪ xterm <node id> inicia un xterm remote conectado a este nodo especificado
Comandos Principales
“--switch=[PARAMETRO]”: permite invocar un tipo de switch, Mininet
dispone y es compatible con:
default: usa un switch Open vSwitch por defecto.
ovs: Open vSwitch, usa tecnología Open vSwitch compatible con
OpenFlow.
sudo mn –switch=ovs

“--host=[PARAMETRO]”: limita el ancho de banda del procesador de un


host virtual:
cfs: Completely Fair Scheduler, planificador de uso de recursos de
procesamiento en Linux basado en Fair Queuing.
sudo mn --host=cfs

“--link=[PARAMETRO]”: permite variar parámetros como ancho de banda y


latencia de los enlaces:
sudo mn --link=tc,bw=10,delay=10ms,los=5
Comandos Principales

“--topo=[PARAMETRO]”: Permite cambiar el tamaño y el tipo de topología


a emular:
linear: genera una topología de k switches en serie con n hosts
mal
sudo mn –topo=linear,k=4,n=1
minimal: genera una topología simple de 2 hosts y 1 switch.
sudo mn –topo=minimal
single: genera una topología simple de 1 switch y N Host
sudo mn –topo=single,k=4
tree: genera una topología de árbol compuesta de N niveles (depth), N
ramas (fanout) y 2 host conectados a cada switch hoja.
sudo mn –topo=tree,depth=2,fanout=3
“-c” , “--clean": limpia los registros de emulación y cierra el emulador.
sudo mn -c
Comandos Principales
- “--custom=[PARAMETRO]”: lee archivos de configuración escritos en Python, con extensió
n .py para crear redes personalizadas .
sudo mn –custom=/home/mininet/Codigo/prueba.py
“--test=[PARAMETRO]”: permite realizar diferentes pruebas a la red emulada según el
parámetro ingresado, estos pueden ser:
cli: inicia la emulación y permite el uso de la línea de comandos.
build: inicia la emulación hasta que la virtualización este completamente operativa,
seguidamente se finaliza imprimiendo en pantalla el tiempo de duración de la ejecución.

sudo mn –test=build
sudo mn –test=cli
pingall: inicia la emulación, realiza pruebas de conectividad entre todos los hosts por medio
de la herramienta ping y finalmente se finaliza la emulación.

sudo mn –test=pingall
iperf: es una herramienta que mide el máximo ancho de banda entre dos host basado e
n el protocolo TCP, retornando información como latencia, pérdida de datagramas y anc
ho de banda .
sudo mn –test=iperf
Comandos Principales
all: inicia la emulación, realiza una prueba de conectividad entre todos los host,
sudo mn –test=all
“-x”, “--xterms": inicia la emulación y abre una terminal independiente para cada dispositivo
emulado en Mininet
sudo mn –xterms
“-i [PARAMETRO]”, “--ipbase=[PARAMETRO]”: define el espacio de direcciones que usará
la red a emular, por defecto Mininet asigna la red 10.0.0.0/8.
sudo mn --ipbase=192.168.100.0/30
miniet>dump
“--mac": por defecto los valores de las direcciones MAC de los hosts emulados son aleatorio
s, este parámetro permite asignar direcciones MAC de forma ordenada.
sudo mn --mac
miniet>h1 ifconfig
“--arp": Este parámetro Inicializa las tablas ARP de los hosts emulados.
sudo mn
mininet> h1 arp
sudo mn –arp mininet> h1 arp mininet> h2 arp
Comandos Principales
“-v [PARAMETRO]”, “--verbosity=[PARAMETRO]”: esta opción imprime información interna
del emulador Mininet con el objetivo de depurar la operación de la virtualización, la informació
n está clasificada en los niveles critical, error, warning, info, debug y output ordenados de may
or a menor relevancia.
sudo mn –verbosity= critical
sudo mn –verbosity =error
sudo mn –verbosity=warning

“--innamespace": por defecto los hosts están puestos en su propio espacio de nombres
mientras que switches y controllers están en el espacio de nombres principal (root),
el parámetro --innamespace ubica a los switches en su propio espacio de nombres
permitiendo la separación en el sistema de comunicación entre switches y controllers.

sudo mn –innamespace –switch=user

“--nat": agrega servicio NAT entre la red emulada y el host anfitrión, este parámetro ofrece
conectividad entre los dispositivos emulados en Mininet y elhost anfitrión.

sudo mn –nat

“--version": Imprime en pantalla el número de versión del Emulador Mininet

sudo mn --version
Comandos Principales
mininet> dump: el comando “dump” muestra en pantalla información detallada de la red, dat
os como tipo de dispositivo, nombre, puerto usado, dirección IP e ID de proceso .
sudo mn
mininet>dump

mininet> net: el comando “net” muestra en pantalla los enlaces y los respectivos puertos
usados por los dispositivos emulados .
mininet> intfs: el comando “intfs” lista las interfaces usadas por los dispositivos emulados.

mininet> nodes: el comando “nodes” muestra en pantalla los nodos emulados.

mininet> ports: el comando “ports” muestra en pantalla los puertos e interfaces de cada
switch emulado.

mininet> time [comando]: el comando “time” muestra en pantalla el tiempo que usa
cualquier comando Mininet para ejecutarse
Comandos Principales
mininet> switch [switch] [start/stop]: el comando “switch” inicia o detiene el funcionamiento del s
witch especificado

Mininet>switch s1 stop
Mininet>switch s1 start

mininet> links: el comando “links” reporta los enlaces que presentan un estado correcto y
Funcional
mininet>links

mininet> link [nodo1] [nodo2] [up/down]: el comando “link” habilita o deshabilita el enlace
entre dos nodos.
mininet> link h1 s1 down
mininet> link h1 s1 up

mininet> noecho [host] [cmd args]: el comando “noecho” ejecuta acciones y


comandos directamente en el dispositivo virtualizado sin realizar eco en el host anfitrión
Mininet
mininet>noecho h1 ifconfig
Comandos Principales
mininet> sh [cmd args]: el comando “sh” ejecuta un comando Shell del sistema operativo
Ubuntu .
mininet> sh ifconfig

mininet> pingall: el comando “pingall” realiza una prueba de conectividad entre todos los
host emulados.
mininet> pingallfull: el comando “pingallfull” realiza una prueba de conectividad entre todos
los host emulados, mostrando en pantalla los resultados.
mininet> pingpair: el comando “pingpair” realiza una prueba de conectividad entre los dos
primeros host emulados (h1 y h2)
mininet> pingpairfull: el comando “pingpairfull” realiza una prueba de conectividad entre los dos pri
meros host emulados (h1 y h2) mostrando en pantalla los resultados.
mininet> iperfudp [bw] [host1] [host2]: el comando “iperfudp” es una herramienta que prue
ba el rendimiento de ancho de banda UDP entre dos host específicos.
mininet>iperfudp 1024 h1 h2
mininet> xterm [nodo1] [nodo…]: el comando “xterm” abre una nueva terminal
para los nodos especificados.
mininet>xterm h1 s1
Comandos Principales
Comandos de Switches OpenFlow
Administrador de Switches OpenFlow (dpctl). La utilidad dpctl es una herramienta de
administración y monitoreo que permite crear, modificar y eliminar entradas de flujo en switch
es OpenFlow

show [SWITCH]: muestra información OpenFlow del switch especificado

mininet@mininet$dpctl show tcp:127.0.0.1:6624

status [SWITCH]: imprime en pantalla estadísticas de parámetros del switch especificado .


mininet@mininet$dpctl status tcp:127.0.0.1:6624

show-protostat [SWITCH]: imprime en pantalla estadísticas del protocolo OpenFlow en el


switch especificado

mininet@mininet$dpctl show-protostat tcp:127.0.0.1:6624

dump-desc [SWITCH]: imprime en pantalla una descripción del switch especificado.

mininet@mininet$dpctl dump-desc tcp:127.0.0.1:6624


Comandos Principales
Comandos de Switches OpenFlow
dump-tables [SWITCH]: Imprime en pantalla estadísticas de las tablas del switch
especificado.

mininet@mininet$dpctl dump-tables tcp:127.0.0.1:6624

mod-port [SWITCH] [puerto] [acción]: modifica el comportamiento del puerto indicado en el


switch especificado. El argumento [acción] puede recibir:
up,
down: habilita o deshabilita la interfaz.
flood,
noflood: controla si una acción de flujo OpenFlow enviará tráfico de salida a través de la
interfaz, suele usarse para prevenir loops cuando STP no está en uso.

mininet@mininet$dpctl mod-port tcp:127.0.0.1:6624

dump-ports [SW] [puerto]: imprime en pantalla estadísticas de todos los puertos de los
switches o del puerto solicitado .
mininet@mininet$dpctl dump-port:127.0.0.1:6624
Comandos Principales
Comandos de Switches OpenFlow
dump-flows [SWITCH] [flujo]: imprime en pantalla la entrada de flujo especificada o si se om
ite su valor se imprimen todas las entradas de flujo del switch especificado.

mininet@mininet$dpctl dump-flows tcp:127.0.0.1:6624

monitor [SWITCH]: imprime en pantalla todos los mensajes OpenFlow recibidos en el switch
especificado.
mininet@mininet$dpctl monitor tcp:127.0.0.1:6624
Comandos Principales
Comandos de Switch y Controller OpenFlow

probe [DISPOSITIVO] envía paquetes un dispositivo OpenFlow especificado esperando


respuesta para identificar si existe operatividad y conectividad OpenFlow, se puede adicionar
la opción –timeout

mininet@mininet$dpctl probe tcp:127.0.0.1:6624

ping [DISPOSITIVO] [n]: envía una serie de 10 paquetes de [n]-bytes que prueban
conectividad y miden el tiempo de respuesta existente con respecto a un dispositivo
especificado.
mininet@mininet$dpctl ping tcp:127.0.0.1:6624
Interfaz de Aplicciones Programables Mininet

Las API de Mininet, incluyen clases, tales como Topo, Host, Mininet, Switch,
Link sus subclases
Las APIs de Mininet están construidas en tres niveles
principales:

▪ API de Nivel Bajo: Se basa en el uso de las clases


elementales que implementan los nodos y enlaces como:
host, Switch, Link y sus subclases. Lo que permite gran
flexibilidad, se puede instanciar indivdualmente y se usa
para crear una red.
Interfaz de Aplicciones Programables Mininet
Interfaz de Aplicciones Programables Mininet

▪ API de Nivel Medio: Se basa en la encapsulación de las


clases de nivel bajo de las clases de Mininet.
Proporcionando métodos como addHost(), addSwitch(),
addLink, configuraciones y operaciones de toda la red
Interfaz de Aplicciones Programables Mininet
Interfaz de Aplicciones Programables Mininet

▪ API de Nivel Alto: En este nivel se agrega una plantilla que


facilita la abstracción de las topologías en la clase Topo, la
cual permite crear topologías reusable y por medio de
parámetros adicionales que brinda Mininet. Esto permite al
usuario construir topologías reusables y por medio de
parámetros adicionales que brinda Mininet. Esto permite al
usuario construir topologías en base a la clase Topo
heredando sus funciones y variable
Interfaz de Aplicciones Programables Mininet
Interfaz de Aplicciones Programables Mininet

--topo tree,depth=2,fanout=2
Interfaz de Aplicciones Programables Mininet

--topo single,3

También podría gustarte