scieee Science in your language
[es] (orig)

Desarrollo de un entorno de virtualización de redes con fines docentes

Abstract

El objetivo de nuestro proyecto es la creación de un controlador para usar de forma sencilla topologías virtuales de red y el estudio de las redes definidas por software. Para ello estudiamos el protocolo OpenFlow y su implementación más conocida Open vSwitch. Para el desarrollo de nuestra aplicación elegimos el lenguaje Tcl-Tk debido a la facilidad para la creación de la interfaz gráfica y la simplicidad del lenguaje mediante script, para ello fue necesario el estudio de sus peculiaridades. Nuestra aplicación es capaz de generar una topología de red y la gestión del flujo de datos de estos mediante la creación, eliminación y gestión de bridges virtuales, interfaces físicos, tuntap y enlaces vlink. Además de tener la capacidad de generar archivos para guardar y cargar los estados de la misma. Por estas razones pensamos que el proyecto cumple las expectativas iniciales ya que hemos entendido desde la base el funcionamiento de las redes definidas por software y hemos podido desarrollar nuestra aplicación para la creación de nuestros entornos virtuales.

Read accessible full text

Desarrollo de un entorno de virtualización de redes con fines docentes

Author: Fernández Duque, Víctor
Year: 2018
Source: https://docta.ucm.es/bitstreams/38e63e2b-a6eb-4635-9c83-7f7504d9c943/download
Desa ollo de un en o no
de i ualización de edes con ines
docen es
Víc o Fe nández Duque
Di ec o - Juan Ca los Fabe o Jiménez
T abajo de in de g ado del G ado en
Ingenie ía del So wa e
Resumen 3
Palab as cla e 3
Abs ac 4
Keywo ds 4
1. In oducción 5
2. Requisi os 6
2.1 Redes de inidas po so wa e 6
2.2 Redes VLAN 7
2.3 Open Swi ch 9
2.4 El ges o de la base de da os o sdb-se e 10
2.5 El ges o de la aplicación o s- swi chd 11
2.6 Reglas QoS 15
2.7 Mi o ing 16
2.8 Tcl-Tk 17
3. O as soluciones simila es 17
3.1 OpenS ack 18
3.2 VMwa e 20
3.3 P oxmox 21
3.4 Conclusión 21
4. Nues a solución. A qui ec u a 21
4.1 Lenguaje 22
4.2 Me odología 25
4.3 Especi icación de equisi os 26
4.3.1 Capa de p esen ación 29
4.3.2 Capa de negocio 30
4.3.3 Capa de acceso a da os 31
4.4 Plan de ges ión de iesgos 32
(R02): A aso en las en egas. 32
(R03): Desconocimien os de las ecnologías necesa ias. 33
(R04): No dispone del iempo necesa io pa a el p oyec o 33
4.5 Con ol de e siones 33
4.6 Plani icación 34
5. Manual de usua io 34
5.1 Vis a p incipal 34
5.2 Menú a chi o 35
5.2 Menú limpia 40
1
5.3 Menú puen e 42
5.4 Menú in e aces 45
5.5 Menú Link 47
5.6 Menú pue o 50
5.7 Menú con ol 52
5.8 Caso de uso 56
6. Manual pa a un u u o desa ollo 58
7. Apo ación y conclusiones 59
8. Bibliog a ía 61
Documen ación 61
Imágenes 61
2
Resumen
El obje i o de nues o p oyec o es la c eación de un con olado pa a usa de
o ma sencilla opologías i uales de ed y el es udio de las edes de inidas po
so wa e

. Pa a ello es udiamos el p o ocolo OpenFlow y su implemen ación más
conocida Open Swi ch.
Pa a el desa ollo de nues a aplicación elegimos el lenguaje Tcl-Tk debido a la
acilidad pa a la c eación de la in e az g á ica y la simplicidad del lenguaje median e
sc ip

, pa a ello ue necesa io el es udio de sus peculia idades.
Nues a aplicación es capaz de gene a una opología de ed y la ges ión del lujo
de da os de es os median e la c eación, eliminación y ges ión de b idges

i uales,
in e aces ísicos,  un ap

y enlaces  link

. Además de ene la capacidad de gene a
a chi os pa a gua da y ca ga los es ados de la misma.
Po es as azones pensamos que el p oyec o cumple las expec a i as iniciales ya
que hemos en endido desde la base el uncionamien o de las edes de inidas po
so wa e

y hemos podido desa olla nues a aplicación pa a la c eación de nues os
en o nos i uales.
Palab as cla e
SDN, Open low, Open Swi ch, Tcl-Tk, b idge

, opología de ed, lujo de da os,
i ualización, p o ocolos de ed, con olado .
3
Abs ac
The pu pose o his p ojec is he c ea ion o a con olle o use i ual opologies
o ne wo k and he in es iga ion o he ne wo ks based and de ined by so wa e. Fo
ha ma e , we s udy he Open low p o ocol and i ’s mos known implemen a ion
Open Swi ch.
Fo his applica ion’s de elopmen we use he Tcl-Tk language, due o he
easiness o he c ea ion o g aphic in e aces and he simplici y o he language
h ough he use o sc ip s, and o ha was necessa y he s udy o i s peculia i ies.
Ou applica ion is capable o gene a e a ne wo k opology, he managemen o
da a low h ough he c ea ion, elimina ion and managemen o i ual b idges,
physical in e aces, un aps and Vlink links. Fu he mo e, ha ing he capaci y o
gene a ing iles in o de o sa e and load he s a es o i sel .
Because o ha easons, we conside he p ojec mee s he main expec a ions
due he ac ha we unde s ood since he beginning he pe o mance o he
ne wo ks de ined by so wa e and we ha e been able o de elop ou applica ion o
he c ea ion o ou i ual en i onmen s.
Keywo ds
SDN, Open low, Open Swi ch, Tcl-Tk, b idge, ne wo k opology, da a low,
i ualiza ion, ne wo k p o ocols, con olle .
4

1. In oducción
Nues o obje i o es la in es igación de las edes de inidas po so wa e

[1][2],
pa a es udia la c eación de edes y máquinas i ualizadas. Pa a ello nos
cen amos en el p o ocolo Open low [2] y en su implemen ación más popula Open
Swi ch [2], la cual nos pe mi e la c eación y ges ión de b idges

i uales y lujos de
da os.
La azón po la que se decidió hace es a in es igación es debido a que el alumno
no había ecibido ninguna asigna u a du an e la ca e a sob e es e ama de
conocimien o, y además, inconscien emen e, lle aba poniéndola en p ác ica du an e
los cua o años de la misma, median e un se ido que enía con a ado en F ancia
donde implemen ó odas las aplicaciones que u o que desa olla . En és e, pa a
e i a sob ecos es debido al poco p esupues o, se usa on sis emas de i ualización
de máquinas y edes pa a, de es a o ma, pode compa i cos es con o as
pe sonas.
Los sis emas que se usa on ue on VMwa e [3] y P oxmox [4], los cuales e an de
pago pe o pe mi ían p uebas pa a máquinas pequeñas. Es e ue el p incipio debido
a que aunque la ama de es udio del alumno es aba más ligada al so wa e

que a
edes despe ó cu iosidad en él pa a sabe en qué se basan es os complejos
sis emas de pago y cómo pod ía usa los él mismo empezando desde la base.
Po lo an o buscamos a un p o eso el cual pe mi ie a ealiza es e es udio y que
apo ase ayuda en oda la in es igación. Po eso nos pusimos en con ac o con el
p o eso Juan Ca los Fabe o Jiménez, el enca gado de guia nos du an e odo es e
año.
Hemos conseguido en ende la base de las edes de inidas po so wa e

, es udia
los inicios del p o ocolo Open low el cual quie e llega a con e i se en un es ánda
pa a odos los ab ican es, ya que és e no se limi a solo al ámbi o académico sino
que se aplica ambién al p o esional. Además hemos ap endido el uncionamien o
de Open Swi ch y odas las posibilidades que és e nos o ece.
Como ag egado, decidimos no p og ama nues a aplicación en un lenguaje
común de la ac ualidad pudiendo se Ja a, Py hon o C++ sino que es udiamos cómo
implemen a la median e Tcl-Tk [5], debido a su po abilidad, como explica emos
más adelan e.
5
Nues o obje i o queda cumplido ya que hemos conseguido sin e iza odo lo
ap endido c eando nues a aplicación, la cual acili a el uso de Open Swi ch
median e una in e az g á ica sencilla.
2. Requisi os
Desde el p incipio del p oyec o han exis ido di icul ades no ables. Los equisi os
p incipales ue on en ende bien qué es una SDN (So wa e De ined Ne wo ks

,
Redes de inidas po so wa e

). Después de en ende es o descub imos OpenFlow y
Open Swi ch. T as es udia es os dos concep os in es igamos sob e Tcl-Tk pa a
desa olla nues o con olado . El p oblema de lo an e io es que no ha sido un
obje i o de la ama in o má ica que ha cu sado el alumno po lo an o se ha
necesi ado bas an e iempo de es udio pa a comp ende odos los concep os, desde
hace en papel esquemas de opologías de ed, a es udia cómo unciona el
lenguaje Tcl-Tk.
2.1 Redes de inidas po so wa e
La p ime a p egun a que nos hacemos es qué son las SDN. Como hemos dicho
con an e io idad se denominan  edes de inidas po so wa e

, median e las cuales se
sepa a la capa de con ol de la capa de encaminamien o. Pe mi en sepa a la
opología lógica de la in aes uc u a ísica. Las aplicaciones de usua io se
comunican median e la API (Applica ion P og amming In e ace

, in e az de
p og amación de aplicaciones) con la capa de con ol y és a median e el p o ocolo
OpenFlow, de ine la in aes uc u a o capa de da os. Aunque es á des inada a
emplea se en en o nos i uales ambién es compa ible con en o nos ísicos. Es e
sis ema puede se una buena opo unidad pa a un en o no educa i o debido a los
escasos ecu sos que son necesa ios.
6
Figu a 2.1 A qui ec u a SDN
En la  igu a 2.1 mos amos lo de inido an e io men e, sepa amos la capa de
aplicación de la de con ol, nos comunicamos median e una API y con OpenFlow
c eamos oda la es uc u a de ed o capa de da os.
Un pun o impo an e po des aca , como comen amos con an e io idad, es que
las edes SDN ue on des inadas p incipalmen e a un en o no i ualizado, pe o la
g an en aja que o ecen a día de hoy es que muchos ab ican es lo han lle ado a
su ha dwa e po lo que se amplía bas an e el ámbi o de aplicación de es e
pa adigma.
2.2 Redes VLAN
En es e apa ado habla emos de las edes VLAN (Vi ual Local A ea Ne wo k

,
Red de á ea local i ual), las cuales clasi ican las máquinas po g upos. Cuando un
usua io manda un paque e a la ed, el adminis ado con igu a los pue os pa a
asigna a cada usua io una VLAN, es deci , solo pod án comunica se las máquinas
que se encuen an en la misma.
7
Figu a 2.2 Red VLAN
Po ello, end íamos un con ol de ed mayo , ya que aunque u ié amos a ias
máquinas en una misma ed ísica, pod emos elegi si es as pueden comunica se
en e sí. En la  igu a 2.2, enemos cua o máquinas conec adas a dos VLAN, una
oja y o a e de. Es as máquinas sólo pod án comunica se con la que se encuen e
en su misma VLAN.
Todo es o se hace posible median e el p o ocolo 802.1Q

. Las máquinas
conec adas a una ed no ienen conocimien o de lo que ocu e. La ed es con olada
po un adminis ado , que es quien asigna el g upo al pue o donde se conec a el
usua io de iniendo, de es a o ma, la VLAN. Cuando en iamos un paque e de da os,
es e, al llega al p ime conmu ado modi ica la ama ag egando la e ique a de
VLAN.
A con inuación, mos a emos el uncionamien o del p o ocolo  802.1Q:
Figu a 2.3 T ama de da os de usua io.
Figu a 2.4 T ama de da os con e ique a 802.1Q.
En la  igu a 2.3 emos la ama de da os que en ía el usua io po la ed.
En la  igu a 2.4 podemos obse a la ama del usua io además de la e ique a
802.1Q

que añade el b idge

. Es a e ique a es á compues a po 32 bi s, los cuales
son:
●16 bi s pa a el campo de ipo, 0x8100.
●4 bi s pa a la p io idad.
●12 bi s pa a el iden i icado de la VLAN, pe mi e 4096 iden i icado es dis in os
(0...4095).
Las e ique as no cambian a lo la go de odo el eco ido. El úl imo conmu ado
elimina la e ique a y los disposi i os pueden ecibi la ama inicial.
VLAN es á limi ada, en o as palab as, pe mi e un núme o máximo de
ag upaciones y no iene con ol de los da os que pasan po la ed. OpenFlow
soluciona los p oblemas an e io es. Quie e con e i se en el p o ocolo es ánda en
la de inición de edes median e so wa e

, pe mi iendo la ges ión de b idges

de o ma
8
●Tabla 200 pa a los se ido es de la Facul ad.
●Tabla 210 pa a los se ido es de la Uni e sidad.
●Tabla 220 pa a la salida a In e ne .
Queda demos ado que es e sis ema nos da miles de combinaciones posibles
pa a c ea nues a ed y con ola odo lo que se mue e po ella, de una o ma
simple y e icien e.
2.6 Reglas QoS
Es posible limi a el ancho de banda mínimo y máximo asignado a cada pue o,
así como la p io idad y el amaño de á aga en e o os. Es o se hace median e la
de inición de colas median e o s- sc l

usando eglas QoS [6].
Figu a 2.14 Reglas QoS.
En la  igu a 2.14 se mues a una in e az ísica la cual iene 1 Gbps de ancho de
banda, y a és a se conec an dos in e aces i uales, uml1.0 y uml2.0, a los que se
a a impone una limi ación de 10 Mbps y 20 Mbps espec i amen e. Open Swi ch,
median e eglas QoS, nos pe mi e con ola el ancho de banda de cada uno de las
in e aces.
Además, ambién nos pe mi e usa HTB, el cual es un algo i mo cuyas siglas
hacen e e encia a Hie a chical Token Bucke

. El concep o es muy sencillo: enemos
un elemen o llamado  oken

, que se acili a a los usua ios conec ados a un ancho de
banda de e minado po el adminis ado . Si es os consumen ancho de banda a la
ez que lo eciben, no pod án jamás supe a el lími e suminis ado po el
adminis ado de la ed. Sin emba go, si el usua io no consume a la misma
elocidad que se le o o gan es os  oken

, los ese a á y en un momen o de al a
demanda de ed pod á supe a la elocidad lími e asignada po el adminis ado
has a que se le acaben ( amaño de á aga).
Es e algo i mo pe mi e asegu a el se icio a odos los usua ios de la ed según
sus necesidades, así como el ancho de banda asignado. Dicho algo i mo pe mi e, a
15

su ez, el uso pun ual de más ecu sos de los asignados, siemp e que en p omedio
no se supe e.
Figu a 2.15 Funcionamien o HTB.
En la  igu a 2.15 A, el usua io ecibe  okens

a una elocidad mayo de los que él
es á consumiendo, po lo an o, és e los acumula pa a pode usa los en el momen o
que quie a. Los  oken

no son ilimi ados: si supe a el amaño máximo de á aga,
es os “ ebosa án” y los pe de á. Es a limi ación debe se asignada po el
adminis ado .
En la  igu a 2.15 B, el usua io es á en una si uación de mayo demanda y decide
u iliza los  oken

pa a pode hace uso de un mayo ancho de banda y así
ap o echa lo que no u ilizó con an e io idad.
En la  igu a 2.15 C, nos encon amos en la si uación en la que el usua io ha
gas ado odos sus  oken

y uel e al lími e de ancho de banda asignado po el
adminis ado .
2.7 Mi o ing
El mi o ing consis e en un p oceso en el cual se copia el con enido de uno o más
pue os a uno de des ino, y que esul a ú il pa a la depu ación de nues a ed. A
eces, es con enien e inspecciona el á ico que ci cula po alguno de los pue os,
con el in de de ec a el á ico anómalo. Pa a ello, podemos usa p og amas como
Wi esha k

o algún IDS (In usion De ec ion Sys em

) como sno .
16
Figu a 2.16 Mi o ing median e Open Swi ch.
En la  igu a 2.16 se puede e cómo odo el á ico de las máquinas uml1 y uml2
se copia al pue o de la máquina uml3. Como hemos comen ado con an e io idad,
és e nos puede se i pa a analiza las comunicaciones de nues os usua ios.
2.8 Tcl-Tk
En es e p oyec o, decidimos hace uso de Tcl-Tk

[5] debido a la sencillez pa a
c ea in e aces simples y uncionales. La en aja p incipal que nos o ece es que, al
se un lenguaje in e p e ado, pe mi e la p ueba de código de una o ma más ápida,
es deci , e i ando la compilación. Sin emba go, la di icul ad de es e lenguaje, ecae
p incipalmen e en ene una semán ica di e en e a los lenguajes de hoy en día,
como lo pueden se Ja a, Ja asc ip

o C++

.
3. O as soluciones simila es
A pesa de que en el me cado ya exis en opciones pa a pode ealiza odo lo
mencionado, el obje i o de es e p oyec o, aunque no o ezca inno ación, es
cons i ui un sis ema p opio, con el in de es udia el p oceso desde su base y pode
ap ende su uncionamien o. Las al e na i as p incipales que exis en, en e o as,
se ían Neu on

del p oyec o Opens ack, P oxmox, VMwa e

, e c.
A con inuación habla emos de cada uno de los es ejemplos expues os.
17
3.1 OpenS ack
OpenS ack [7][11] es un sis ema pa a la ges ión de se icios en la nube el cual
iene la posibilidad de con ola g andes g upos de ecu sos in o má icos,
almacenamien o y de ed en un CPD (Cen o de p oceso de da os). Todo es á
adminis ado desde un panel web, el cual b inda a los adminis ado es un con ol
absolu o y pe mi e a los usua ios ges iona sus se icios.
Se a a de so wa e

lib e y de código abie o, pe o és o no quie e deci que su uso
se limi e a en o nos de p ueba. OpenS ack iene ma cas muy g andes que con ían
en el p oyec o, ales como NASA ( undado es jun o a Rackspace

), IBM, O acle,
Canonical, Cisco,

e c. Con és o ol emos a a i ma que las SDN son, a día de hoy,
una opción muy in e esan e de es udio, g acias a las emp esas que sos ienen es a
ecnología. Po lo an o, OpenS ack posee un ecosis ema ue e, en el cual los
usua ios que busquen un sopo e come cial pueden elegi en e di e en es
p oduc os y se icios impulsados en el Ma ke place

(me cado de la comunidad).
La pa e de ed o ne wo king de OpenS ack se denomina Neu on [8], an e io men e
llamado Quan um

. Se a a de una API que pe mi e con igu a y de ini la
conec i idad de ed.
Neu on maneja la c eación y adminis ación de una in aes uc u a de ed i ual,
que incluye edes, conmu ado es, sub edes y encaminado es pa a disposi i os
adminis ados po el se icio de cómpu o OpenS ack

. También se pueden usa
se icios a anzados como los co a uegos o las edes p i adas i uales (VPN).
Es e se icio de ed posee el denominado se ido Neu on: Una base de da os pa a
almacenamien o pe sis en e y complemen os, los cuales p opo cionan o os
18
se icios como la in e az con mecanismos de ed Linux na i os, disposi i os
ex e nos o con olado es SDN.
OpenS ack Ne wo king es comple amen e independien e y se puede implemen a en
un hos dedicado. Neu on es á in eg ado po a ios componen es de OpenS ack

:
● El se icio OpenS ack Iden i y se usa pa a la au en icación y au o ización de
solici udes API.
● El se icio de Compu ación de OpenS ack se usa pa a conec a cada NIC
i ual en la VM a una ed en pa icula .
●OpenS ack Dashboa d es u ilizado po los adminis ado es y los usua ios
inquilinos pa a c ea y adminis a se icios de ed a a és de una in e az
g á ica basada en web.
A con inuación mos amos desglosado odo lo que aba ca:
● Sopo e de ed básico:
○ E he ne .
○ VLAN.
○ Subne s y ARP.
○ DHCP.
○ IP.
○ TCP/UDP/ICMP.
● Componen es de ed:
○B idges

.
○Rou e s

.
○Fi ewalls

.
○ Balanceado es de ca ga.
● P o ocolos pa a unel:
○ GRE (Gene ic ou ing encapsula ion,

encapsulado de encaminamien o
gené ico).
○ VXLAN (Vi ual ex ensible local a ea ne wo k

, Red i ual de á ea local
ex ensible)
● Espacio de nomb es de ed:
○ Espacio de nomb es de ed Linux.
○ VRF (Vi ual ou ing and o wa ding

, encaminamien o y een ío i ual)
● T aducción de di ecciones de edes:
○ SNAT.
19
○ DNAT.
○ One o one NAT.
3.2 VMwa e
VMwa e [3][12] es la pla a o ma líde del
me cado en i ualización pa a cons ui
in aes uc u as cloud

. Puede se
conside ada la opción de pago en
con aposición a OpenS ack,

además de
que pe mi e la i ualización de máquinas.
Nos o ece un panel sencillo de u iliza , en
el cual nos pe mi e conec a nos a nues o
se ido y ges iona odos los ecu sos
ísicos.
VMwa e Esxi es una aplicación que nos pe mi e la ges ión de máquinas i uales y
de ed. Respec o a las máquinas i uales, se puede con igu a odo: disco, CPU,
RAM, a je as de ed, e c. No no a emos que es amos en un sis ema i ualizado, es
deci , se asemeja a un en o no ísico. Con e e encia a la ed, la aplicación nos
apo a odas las unciones mencionadas con an e io idad: c eación de b idge

e
in e aces de ed i uales, pue os i uales, VLAN, balanceo de ca ga, e c. Cabe
des aca que ambién incluye un concep o muy in e esan e: IP ail o e

.
IP ail o e

nos o ece la posibilidad de con a a un paque e de IP, las cuales se
pueden asigna a nues as máquinas i uales median e la mac de sus in e aces de
ed. És a uncionalidad esul a ú il pa a usua ios que quie an compa i una máquina
con g andes ca ac e ís icas y di idi la de mane a lógica en acciones más
pequeñas pa a aho a cos es.
El incon enien e que supone el uso de VMwa e es que es una pla a o ma de pago,
po lo an o, puede que no es é al alcance de cualquie pe sona. Sin emba go, y de
mane a no p o esional, la pla a o ma dispone de una licencia de p ueba pa a
se ido es pequeños que no supe en los 64GB de RAM. Po ello, un pun o
in e medio en e las dos opciones an e io es se ía P oxmox, el cual in oducimos en
el siguien e apa ado.
20

3.3 P oxmox
P oxmox [4][13] es un so wa e

de
i ualización de código lib e y abie o
que ap o echa el sis ema na i o de i ualización de Linux, con enedo es KVM
(Ke nel-based Vi ual Machine

, máquina i ual basada en el núcleo), y, con
espec o a la ges ión de la ed, se ecu e a la u ilización del ke nel

de Linux,
b idge-u ils.

Po o a pa e, añade la uncionalidad de un b idge

, y además puede
u iliza Open Swi ch

, que es en lo que se basa es e p oyec o.
P oxmox posee una in e az web en la cual se puede ges iona oda la c eación
de máquinas i uales: discos, ed, CPU, RAM, e c. Todo es o se puede hace de
una o ma sencilla y desde cualquie disposi i o, g acias a que se a a de una
página web. Cabe des aca que posee ambién un sis ema de susc ipciones en el
cual es posible ecibi asis encia y ayuda como en OpenS ack

.
3.4 Conclusión
Se han mencionado es os es sis emas, y en p ime luga OpenS ack y Neu on,
debido a su g an uso en la indus ia. Po o a pa e, VMwa e y P oxmox han sido
empleados po el alumno en su uso académico.
Po lo an o, como podemos comp oba , exis en al e na i as a nues o es udio,
sin emba go que íamos in es iga desde la base odo lo elacionado con las SDN
c eando además un en o no sencillo en ocado en la docencia.
4. Nues a solución. A qui ec u a
En el p ime momen o que comp endimos odos los concep os de las SDN,
OpenFlow y en especial Open Swi ch, comenzamos a desa olla nues a p opia
solución, que debe sa is ace a ias condiciones:
● Se po able.
● Man enible.
● Fácil de usa .
● Tene una in e az sencilla.
21
4.1 Lenguaje
Después de algunas euniones, consolidamos la idea de desa olla la aplicación
en el lenguaje Tcl-Tk. Lo conside amos de es a o ma debido a su sencillez pa a
c ea in e aces uncionales y simples pe o, p incipalmen e, g acias a su po abilidad
de un sis ema ope a i o a o o. O a de las en ajas es que es un lenguaje
in e p e ado, es deci , pe mi e la p ueba de código de una o ma más ápida.
Pa a una mayo comp ensión, debemos de ini dos concep os:
● TUN/TAP,

que es una in e az de ed i ualizada.
● VETH/VLINK, el cual es un cable i ualizado que pe mi e conec a dos
pue os en e sí y además analiza el á ico que ci cula en él.
Pa a desa olla la p ác ica adqui imos los conocimien os del con olado Open
Swi ch. Todos sus comandos los hemos enunciado en la sección de equisi os, y a
con inuación, los enume amos y de inimos de o ma sencilla.
Los siguien es comandos los u ilizamos pa a le an a una in e az y pe mi i el
á ico del  i ewall

pa a las máquinas y cables i uales:
●ip link se <nomb e> (Ej.:  unk_0, b 0, uml1.0)up/down pa a encende o    
apaga las in e aces.
●ip ables -I FORWARD -i <nomb e> (Ej.: uml+ es el que noso os usamos) -o    
<nomb e> -j ACCEPT
●ip ables -I FORWARD -i <nomb e> (Ej.:  unk+, el nomb e que usamos pa a   
los E he ne

i uales) -o unk+ -j ACCEPT
Los comandos pa a gene a la opología de ed, que si en pa a c ea , elimina y
pone en modo STP un b idge

i ual:
●o s-o c l add-b <nomb e> (Ej.: b 0) c eamos un b idge

.
●o s-o c l del-b <nomb e> (Ej.: b 0) eliminamos un b idge

.
●o s-o c l se b idge <nomb e> (Ej.: b 0)s p_enable= ue habili a el  
p o ocolo STP pa a e i a bucles en e b idges,

debido al b oadcas s o m

.
Los siguien es comandos si en pa a ag ega una in e az y un cable i ual:
●ip un ap add <nomb e> (Ej.: uml1.0) mode ap añadi una in e az i ual.
22
●ip link add <nomb e> (Ej.:  unk0) ype e h pee name <nomb e> (Ej.:   
unk1) c eamos los cables i uales pa a conec a nues os b idges.
El siguien e comando si e pa a conec a a un b idge

un elemen o:
●o s- sc l add po <b idge> <elemen o> asignamos a un pue o del p ime   
campo el disposi i o del segundo.
Comando que se u iliza pa a cambia el núme o de pue o al que es á conec ado
un elemen o de un b idge

:
●o s- sc l se in e ace <nomb e> (Ej.: uml1.0)o po _ eques =<nume o>   
(Ej.: 2) cambia el núme o de pue o OpenFlow

.
Comandos pa a mos a da os impo an es:
El siguien e comando mues a odas las conexiones de un b idge, o s-o c l 
show <nomb e> (Ej.: b 0).
Pa a mos a una lis a de odos los b idges

,o s- sc l lis -b . Pa a mos a 
odos los elemen os conec ados a un b idge

,o s- sc l lis -po s <nomb e> (Ej.:  
b 0).
Con el siguien e comando mos amos el pue o OpenFlow al que es á conec ado
un elemen o a un b idge

: o s- sc l ge in e ace <nomb e> (Ej.: uml1.0) o po .
Comandos pa a el con ol de lujo. En es e pun o debemos explica a ias cosas
impo an es: el con ol de lujo se hace median e un campo ma ch

y o o campo
ac ions.

El p ime o si e pa a sabe a qué a ec a, y el segundo, qué acción oma:
● C i e ios que pueden o ma pa e del campo ma ch

:in_po (pue o de
en ada del b idge al que debe a ec a ), dl_s c(da a_link sou ce

,es la uen e 
del que p o iene el paque e), dl_ds , dl_ lan, dl_ ype, ip, a p, icmp,       
cp, udp, ip 6, icmp6, cp6, udp6.
● C i e ios que pueden o ma pa e del campo ac ions:

no mal, lood, all,   
d op, esubmi , <pue o>, mod_ lan_ id, s ip_ lan, mod_dl_s c,     
mod_dl_ds , mod_nw_s c, go o_ able.
Las eglas se pueden ag upa en ablas, los alo es pa a iden i ica las an desde
0 a 253 y se o denan po p io idad 0 a 65536.
23
Con el siguien e comando mos amos los lujos de inidos en un b idge

has a el
momen o: o s-o c l dump- lows <nomb e> (Ej.: b 0).
A con inuación mos amos algunos ejemplos pa a ag ega y elimina lujos:
●o s-o c l add- low b 0 “p io i y=100 in_po =1    
ac ions= esubmi (,101)”. Es e comando pe mi e edi ecciona el á ico que
ecibe el pue o 1 a la abla 101 con p io idad 100.
●o s-o c l add- low b 0 “ able=101 p io i y=0 ac ions=d op”. Es e     
comando bloquea el á ico de la abla 101 con p io idad 0, es deci , la
máxima. 
●o s-o c l add- low b 0 “ able=101 p io i y=100 ip,nw_ds =192.168.1.1     
ac ions=no mal”. Es e comando pe mi e un á ico no mal de los paque es a
la abla 101, con des ino a la IP asignada.
●o s-o c l del- lows b 0 “in_po =1”. Elimina la egla in_po =1 de b 0.
●o s-o c l del- lows b 0 “ able=101”. Elimina la egla  able=101 de b 0.
Comando pa a eglas QoS. Pa a asegu a la calidad del se icio, con los
siguien es comandos c eamos las colas con el máximo de ancho de banda que les
p opo cionamos:
●o s- sc l c ea e queue o he -con ig:max- a e=1000. Ob enemos   
a1c74455-5cb4-4379-9bb2-b7e79b47edb8.
●o s- sc l c ea e queue o he -con ig:max- a e=2000. Ob enemos   
b918a5b-4d3 -4613-a299-cd338831c2da.
Es os comandos pe mi en la c eación de una cola pa a asigna un máximo de
ancho de banda: en el p ime caso 100MB y en el segundo 200MB.
Aho a c eamos la calidad del se icio de ipo HTB con un ancho de banda de
1Gbps, en el cual le asignamos las dos colas:
●o s- sc l c ea e qos ype=linux-h b o he -con ig:max- a e=100000 
queues:10=a1c74455-5cb4-4379-9bb2-b7e79b47edb8 
queues:20= b918a5b-4d3 -4613-a299-cd338831c2da. Ob enemos
3882a54d-859a-4 6 -9564-da31b36d9d5c.
●o s- sc l se po e h0 qos=3882a54d-859a-4 6 -9564-da31b36d9d5c.
Ag egamos la calidad de se icio a la in e az que es á conec ada a In e ne .
Se c ean los lujos pa a asigna las colas ecién c eadas:
24
me hod delPo { om o} {}
me hod delVlink { om} {}
me hod showIn o {} {}
me hod sa eTopology { ileName} {}
me hod sa eTopologyOld { ileName} {}
me hod loadTopology { ileName} {}
me hod loadTopologyOld { ileName} {}
me hod cleanTopology {} {}
}
Figu a 4.5 Capa de negocio, opología.
En la  igu a 4.5 mos amos el módulo de opología de la capa de negocio. En él
se pueden e odas las unciones de las que hablamos en el apa ado de
especi icación de equisi os.
4.3.3 Capa de acceso a da os
Es a capa es la enca gada de comunica se con la base de da os de Open
Swi ch y con los iche os que c eamos pa a gua da y ca ga el es ado de nues a
aplicación.
oo::class c ea e daoTopology {
me hod addB idge {b idge} {
i {[ca ch {exec sudo o s- sc l add-b $b idge} e msg]} {
 e u n 0
}
e u n 1
}

me hod addIn e ace {in e ace} {}
me hod addVlink { om o} {}
me hod addPo { om o} {}
me hod addPo a { om o} {}
me hod se O Po {in e ace o Po } {}
me hod upElemen {elemen } {} 
me hod delB idge {b idge} {}
me hod delIn e ace {in e ace} {}
me hod delPo { om o} {} 
me hod delVlink { om} {}
me hod downElemen {elemen } {}
me hod lis B {} {}
me hod lis Po {b idge} {}
me hod ge In e aceS a us {in e ace} {}
me hod ge Ve hConnec ion {in e ace} {}
31

me hod exis In e ace {in e ace} {}
me hod ge O Po {in e ace} {}
}
Figu a 4.6 Capa de acceso a da os, opología.
En la  igu a 4.6 mos amos la capa de acceso a da os del módulo de opología.
Como ya comen amos an es, es á o almen e basada en la especi icación de
equisi os cumpliendo con odas las necesidades.
4.4 Plan de ges ión de iesgos
En es e apa ado habla emos del plan de ges ión de iesgos que hemos ealizado
en nues o p oyec o, así como los dos iesgos más g a es que pod ían a ec a a
nues a aplicación.
Lo p ime o que hicimos ue analiza cuáles e an los posibles iesgos que
pod íamos encon a nos a la ho a de ealiza el p oyec o, desde la in es igación, a
la elabo ación del código: ob u imos diez iesgos. Una ez iden i icados los
clasi icamos de dos o mas, la p ime a la p obabilidad que se die a y la segunda la
g a edad de que sucedie a.
De es a o ma, median e las ablas de SQAS-SEI (No mas de ce i icación)
ob enemos el impac o que pod ían p oduci en nues o abajo y los o denamos de
mayo a meno .
Nos basamos en el p incipio de Pa e o, el cual dice que el 80% del iesgo eal se
encuen a en el 20% de los analizados, po lo que cogimos dos iesgos más uno
pa a elabo a un plan en el caso de que se ol ie an ealidad. Son los siguien es:
(R02): A aso en las en egas.
Es el p incipal iesgo que e isamos desde el p incipio. El p oblema del p oyec o
es que se ealiza po una única pe sona, po lo an o exis en mayo es di icul ades ya
que no puede ecibi ayuda de un compañe o espec o a los lenguajes, memo ia,
c eación de código, e c. Po lo que es e iden e que puede ocasiona es os a asos.
La solución se á iden i ica las semanas de mayo abajo pa a e i a que coincida
con las demás asigna u as pa a así, de es a o ma, ob ene mayo iempo y pode
cumpli con las en egas del p o eso .
32
(R03): Desconocimien os de las ecnologías necesa ias.
O o de los iesgos más se ios que alo amos ue el p oblema de a qué
ecnologías nos en en amos. El conocimien o de las SDN y de Tcl-Tk es o almen e
nulo, po lo que es necesa io pa a e i a es e p oblema es udia los en p o undidad.
De es a o ma, in i iendo unos meses y g acias a la ayuda del p o eso y a nues a
p opia in es igación, pudimos supe a es e escalón.
(R04): No dispone del iempo necesa io pa a el p oyec o
Como comen amos en el iesgo “R02”, uno de los p oblemas e iden es es que el
p oyec o es desa ollado po una única pe sona, po lo que di icul a mucho el
abajo. Es e iesgo a a de la p obabilidad que enemos de no llega a iempo en la
en ega po no pode acaba nues o p oyec o. La solución a es e iesgo es
iden i ica la echa de en ega, habla con el p o eso sob e una en ega ealis a que
no se salga de nues as expec a i as y lógicamen e aumen a las ho as de abajo.
No podemos llega a es e pun o: El p oyec o debe en ega se.
4.5 Con ol de e siones
Pa a e i a el iesgo de la pé dida de da os, an o de la documen ación como el
código desa ollado, hemos ealizado odo el p oyec o median e dos pla a o mas: La
p ime a, pa a los documen os ha sido Google D i e, donde es án almacenados cada
uno de los cambios. La segunda pa a el código, la cual ha sido Gi hub [9] donde se
ha ac ualizado el código mien as se inalizaban los módulos. Lo mos amos en la
Figu a 4.7.
Figu a 4.7 Con ol de e siones, Gi hub y Google D i e.
33
4.6 Plani icación
La plani icación la hemos desa ollado median e el p og ama Planne en Debian,
median e el cual hemos ealizado una pequeña guía de las a eas que debíamos
hace en unos iempos ma cados, pa a así e i a e asos en las en egas, al como
mos amos en la Figu a 4.8.
Figu a 4.8 Plani icación, Planne
5. Manual de usua io
En es e apa ado mos a emos oda la aplicación y cuál es su o ma de uso.
I emos paso a paso po odas las unciones enseñando además un ejemplo g á ico
pa a pode guia nos.
5.1 Vis a p incipal
En la  igu a 5.1 mos amos la is a p incipal de nues a aplicación. Como se
puede e iene es pa es, el menú con odas las unciones, la posición cen al
donde i emos mos ando cada una de las is as y el cuad o de ex o que mues a
las no i icaciones del p og ama.
Figu a 5.1 Vis a p incipal del con olado .
34
5.2 Menú a chi o
En es e apa ado comen a emos el menú de a chi o. Encon amos cua o
unciones: gua da opología, ca ga opología, gua da con ol, y ca ga con ol al
como mos amos en la  igu a 5.2.
Figu a 5.2 Menú a chi o.
En la  igu a 5.3 mos amos la is a de gua da opología. Nos apa ece un cuad o
de ex o en el cual debemos pone el nomb e de la ca pe a en la que que emos
gua da el es ado ac ual del p og ama.
Figu a 5.3 Vis a gua da opología.
35
En la  igu a 5.4 mues a el esul ado al pulsa el bo ón de “Gua da opología”. La
aplicación ha gua dado den o de la ca pe a sa e

, en el di ec o io p incipal de la
aplicación, una nue a ca pe a llamada “ejemplo” en la cual se encuen an los da os
del es ado ac ual de la opología y cada uno de los lujos de con ol de los b idges
i uales.
Figu a 5.4 Vis a gua da opología, esul ado.
En las igu as 5.5 y5.6 mos amos el con enido que gene a el gua da el es ado
de la aplicación. En la p ime a emos que ha c eado es documen os los que
empiezan po “b ” son los es ados gua dados pa a el con ol de lujo de cada uno de
los b idges

i uales y el sa e es el que con iene la opología de ed, el cual es un
iche o Json

del que podemos e su o ma o en la segunda imagen.
Figu a 5.5 Con enido del gua dado.
" opologia":
{
 " e h" : [{" e h1.0": " e h1.1"}],
 " un ap" : ["uml1.0", "uml2.0", "uml2.1"],
"b idge" : [{"b 0" : ["b 0.nco s", {"uml1.0": 1}, {"uml2.0": 2},
{" e h1.0": 3}]}, {"b 1" : ["b 1.nco s", {"uml1.1": 1}, {"uml2.1": 2},
{" e h1.1": 3}]}]
}
Figu a 5.6 Con enido de sa e.nco s.
36

En la  igu a 5.7 mos amos la is a de ca ga pa a busca un iche o donde
hayamos gua dado an e io men e el es ado del p og ama y pos e io men e ca ga lo.
Figu a 5.7 Vis a ca ga opología.
En la  igu a 5.8 podemos obse a lo que ocu e al selecciona el a chi o, nos
mues a dónde es á si uado y además da como esul ado que se ha ca gado
co ec amen e. Después de es e comando es ecomendable i al menu “Puen e” y
u iliza la unción “Mos a puen es” pa a comp oba que se ha ealizado
co ec amen e.
Figu a 5.8 Vis a ca ga opología, esul ado.
37
En la  igu a 5.9 mos amos la is a de gua da con ol de lujo, almacena el
es ado ac ual de un b idge en un iche o que de ina el usua io. Se desplega á un
menú pa a in oduci el nomb e del a chi o con el que que emos gua da lo.
Figu a 5.9 Vis a gua da con ol.
En la  igu a 5.10 podemos obse a el esul ado que nos o ece al gua da el
con ol de lujo del b idge

“b 1” y nos mues a el iche o donde lo hemos gua dado.
El con enido del mismo se ía:
cookie=0x0, du a ion=44.593s, able=0, n_packe s=34 n_by es=4854, idle_age=12     
p io i y=0 ac ions=no mal
Donde podemos e que el único lujo exis en e es á ico no mal con p io idad ce o.
Figu a 5.10 Vis a gua da con ol, esul ado.
38
En la  igu a 5.11 mos amos la is a de ca ga lujo. Una ez hemos gua dado el
con ol de lujo de uno de nues os b idges

, podemos selecciona el a chi o pa a
ol e al es ado an e io . Además debe emos in oduci po ex o o po cuad o de
diálogos el nomb e del b idge

en el cual que emos olca el a chi o.
Figu a 5.11 Vis a ca ga con ol.
En la  igu a 5.12 mos amos el esul ado que nos o ece el ca ga el con ol de
lujo sob e el b idge

“b 1”. El cuad o de diálogo nos mues a que se ha hecho de
o ma co ec a sob e el b idge

in oducido y qué iche o hemos usado.
Figu a 5.12 Vis a ca ga con ol, esul ado.
39
5.2 Menú limpia
En es e apa ado mos amos las unciones u ilizadas pa a elimina el es ado
ac ual de la aplicación o el con ol de lujo de un b idge

al como mos amos en la
igu a 5.13.
Figu a 5.13 Menú limpia .
En la  igu a 5.14 emos el e en o que limpia oda la opología de ed que
enemos ac ualmen e. És a unción no iene pa e isual ya que sólo equie e de la
acción humana nada más in oca la. El esul ado que o ece es que se ha ealizado
co ec amen e po lo que ha bo ado odos los b idges

i uales de la aplicación.
Figu a 5.14 E en o limpia opología.
40
En la  igu a 5.27 mos amos el esul ado al elimina la in e az c eada con
an e io idad. En nues o caso ol emos a in oduci “uml1.0” y el p og ama nos dice
que se ha ealizado con éxi o.
Figu a 5.27 Vis a elimina in e aces, esul ado.
5.5 Menú Link
En es e apa ado habla emos del menú Link, el cual usamos pa a c ea los
cables i uales pa a conec a nues os b idges

. Tenemos dos unciones: ag ega y
elimina Link, al y como mos amos en la  igu a 5.28.
Figu a 5.28 Menú Link.
47

En la  igu a 5.29 mos amos la is a pa a c ea un cable i ual pa a conec a dos
b idges

i uales. Pa a ello necesi amos el nomb e de los dos ex emos y pulsa
sob e el bo ón “c ea Link”.
Figu a 5.29 Vis a c ea Link.
En la  igu a 5.30 mos amos el esul ado al pulsa sob e “c ea Link”, nos dice
que se ha c eado un cable i ual con dos ex emos “ link1.0” y “ link2.0”.
Figu a 5.30 Vis a c ea Link, esul ado.
48
En la  igu a 5.31 mos amos la is a pa a elimina un cable i ual. Pa a ealiza
es a unción sólo necesi amos elimina uno de los ex emos y con és e se eliminan
los dos, po lo an o, debemos in oduci uno de ellos y pulsa sob e el bo ón
“elimina Link”.
Figu a 5.31 Vis a elimina Link.
En la  igu a 5.32 mos amos el esul ado al pulsa sob e el bo ón “elimina Link”
hemos in oducido uno de los ex emos, “ link1.0”, y nos dice que se ha eliminado
sa is ac o iamen e.
Figu a 5.32 Vis a elimina Link, esul ado.
49
5.6 Menú pue o
En es e apa ado habla emos del menú pue o, el cual se u iliza pa a ag ega y
elimina componen es a un b idge

i ual. Disponemos de dos unciones: ag ega y
elimina pue o al como mos amos en la  igu a 5.33.
Figu a 5.33 Menú pue o.
En la  igu a 5.34 mos amos la is a de ag ega pue o, necesi amos el nomb e de
un b idge

y el componen e que que emos ag ega , pulsamos en el bo ón “c ea
pue o” pa a ejecu a el e en o.
Figu a 5.34 Vis a ag ega pue o.
En la  igu a 5.35 obse amos el esul ado que nos o ece al pulsa en el bo ón
“c ea pue o”. Hemos in oducido el b idge

“b 1” y la in e az “uml1.0”, nos mues a
un mensaje que odo se ha ealizado co ec amen e.
50
Figu a 5.35 Vis a ag ega pue o, esuel o.
En la  igu a 5.36 mos amos la is a de elimina un pue o a un b idge

. Pa a ello
necesi amos in oduci el nomb e del b idge

y el componen e que que emos
desconec a del mismo, po úl imo pulsa emos en el bo ón “elimina pue o”.
Figu a 5.36 Vis a elimina pue o.
51
En la  igu a 5.37 mos amos el esul ado que ecibimos al pulsa en el bo ón
“elimina pue o”, hemos in oducido el b idge

“b 1” y el componen e “uml1.0”, nos
mues a un mensaje de que se ha desconec ado co ec amen e.
Figu a 5.37 Vis a elimina pue o, esul ado.
5.7 Menú con ol
En es e apa ado habla emos del menú con ol, en el cual se puede modi ica el
con ol de lujo de nues os b idges

i uales. Pa a ello poseemos las unciones
ag ega , elimina y mos a con ol de lujo, como se puede e en la  igu a 5.38.
Figu a 5.38 Menú con ol.
52

En la  igu a 5.39 mos amos la is a pa a ag ega un con ol de lujo a un b idge

.
Pa a ello necesi amos el nomb e del b idge

y el lujo que que emos ag ega le. Nos
podemos guia del apa ado 2 y 3 de la memo ia, donde explicamos cómo se
con igu a el lujo. Una ez in oducidos pulsamos en el bo ón “c ea lujo”.
Figu a 5.39 Vis a ag ega con ol.
En la  igu a 5.40 mos amos el esul ado al pulsa sob e el bo ón “c ea lujo”. Se
ha añadido el b idge

“b 1” y un lujo de ejemplo el cual iene p io idad 100, que
a ec a a la abla 101, y que iene como uncionalidad no acep a ningún á ico. Po
úl imo indica que la ope ación se ha ealizado con éxi o.
Figu a 5.40 Vis a ag ega con ol, esul ado.
53
En la  igu a 5.41 mos amos la is a pa a elimina un lujo. Pa a és e in,
necesi amos in oduci el nomb e de un b idge

y la pa e ma ch del lujo in oducido,
que se explica en el apa ado 3 de la memo ia, en la sin axis empleada. Después
pulsa emos sob e el bo ón “elimina lujo”.
Figu a 5.41 Vis a elimina con ol.
En la  igu a 5.42 mos amos el esul ado que ob enemos al pulsa sob e el bo ón
“elimina con ol”. Hemos in oducido el b idge

“b 1” y en lujo la pa e ma ch
“ able=101”. Nos indica median e mensaje que se ha eliminado co ec amen e.
Figu a 5.42 Vis a elimina con ol, esul ado.
54
En la  igu a 5.43 obse amos la unción mos a lujo, en la cual debemos
in oduci el nomb e de un b idge

y pulsa en el bo ón “mos a lujo”.
Figu a 5.43 Vis a mos a con ol.
En la  igu a 5.44 mos amos el esul ado que ob enemos al pulsa sob e el bo ón
“mos a lujo” in oduciendo en el campo de ex o el b idge

“b 1”. Indica que iene un
con ol de lujo que es “p io idad ce o á ico no mal”.
Figu a 5.44 Vis a mos a con ol, esul ado.
55
5.8 Caso de uso
En es e apa ado ha emos un caso de uso pa a demos a cómo unciona nues a
aplicación median e un ejemplo.
Figu a 5.45 Caso de uso.
En la  igu a 5.45 mos amos la opología de ed que amos a c ea median e
nues a aplicación. Pa a ello debemos c ea dos b idges

, un enlace  Link

y cua o
in e aces de ed i ual pa a las máquinas UML pa a así, po úl imo, conec a los.
Pa a c ea los b idges i emos al menú “Puen e” y selecciona la opción “Ag ega
puen e”. Pa a c ea los simplemen e debemos in oduci los nomb es y después
pulsa sob e el bo ón “c ea puen e”. Ejemplo: b 0 y b 1.
En el caso de c ea el enlace  Link

, debemos di igi nos al menú “ Link

” y
selecciona la opción “Ag ega  Link

”. Debemos in oduci el nomb e de los dos
ex emos y pulsa sob e el bo ón “c ea Link”. Ejemplo: Link0 y Link1.
56