scieee Open visual document viewer

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

Fernández Duque, Víctor

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.

Full text

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