Implementari de politici QoS n ret ,ele programabile prin [628990]

Universitatea POLITEHNICA din Bucures ,ti
Facultatea de Electronic a, Telecomunicat ,ii s ,i Tehnologia Informat ,iei
Implementari de politici QoS ^ n ret ,ele programabile prin
software
Lucrare de licent , a
Prezentat a ca cerint , a part ,ial a pentru obt ,inerea
titlului de Inginer
^ n domeniul Electronic a, Telecomunicat ,ii s ,i Tehnologia Informat ,iei
programul de studii Electronic a Aplicat a
Conduc ator s ,tiint ,i c Absolvent: [anonimizat]. Valentin-Gabriel Voiculescu
S.l. Dr. ing. S ,erban ObrejaVictor Buruntia
Anul 2019

Cuprins
Lista gurilor : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : v
Lista tabelelor : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : vii
Lista acronimelor : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : viii
1. Introducere : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1
2. Tehnologii folosite : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2
2.1. Limbajul Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Virtualizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2.1. Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2.2. Evolut ,ia virtualizarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2.3. Cum se foloses ,te virtualizarea . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.4. Tipuri de virtualizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.5. Mas ,ini virtuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Software De ned Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.1. Arhitectura SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.2. Cum funct ,ioneaza SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.3. Bene ciile SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. OpenFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5. Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.1. Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.2. Tipuri de erori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6. Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6.1. Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6.2. Limitari Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6.3. FlowVisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7. Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Instalare si con gurare : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10
3.1. Instalare Mininet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2. Instalare FlowVisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3. Prezentarea aplicat ,iilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1. Cazul 1. ^Imp art ,irea ret ,elei ^ n doua slice-uri: upper s ,i lower . . . . . . . . 12
3.3.1.1. Creare slice-uri s ,i con gurare . . . . . . . . . . . . . . . . . . . 12
3.3.1.2. Ad augare
owspace upper . . . . . . . . . . . . . . . . . . . . . 13
3.3.1.3. Ad augare
owspace lower . . . . . . . . . . . . . . . . . . . . . 14
3.3.2. Cazul 2. Separarea tra cului video de restul tra cului din ret ,ea . . . . . 15
3.3.2.1. Creare slice-uri s ,i con gurare . . . . . . . . . . . . . . . . . . . 16
3.3.2.2. Ad augare
owspace . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.3. Cazul 3. Separarea tra cului ^ n trei categorii . . . . . . . . . . . . . . . 21

3.3.3.1. Creare slice-uri s ,i con gurare . . . . . . . . . . . . . . . . . . . 22
4. Testare s ,i veri care : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28
4.0.1. Testare s ,i veri care caz 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.0.2. Testare s ,i veri care caz 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.0.3. Testare s ,i veri care caz 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5. Concluzii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34
Bibliogra e : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35
Anexa A. Cod topo.py : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 36
Anexa B. Cod topo1.py : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 38
Anexa C. Cod Flowspace complet caz 3 : : : : : : : : : : : : : : : : : : : : : : : : 40
ii

Lista gurilor
2.1. Arhitectura virtuala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Arhitectura generala a SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Aplicarea politicilor QoS asupra tra cului din ret ,ea . . . . . . . . . . . . . . . . 7
2.4. Arhitectura generala FlowVisor . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1. Topologia folosita la primele 2 cazuri . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Topologia folosita la caz 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. Slice-urile upper s ,i lower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4. Con gurare switch 1 pentru slice-ul upper . . . . . . . . . . . . . . . . . . . . . 13
3.5. Con gurare switch 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6. Con gurare switch 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.7. Con gurare switch 1 pentru slice-ul lower . . . . . . . . . . . . . . . . . . . . . . 15
3.8. Con gurare switch 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.9. Con gurare switch 4 pentru slice-ul lower . . . . . . . . . . . . . . . . . . . . . . 16
3.10. Imaginea de ansamblu a topologiei . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.11. Slice-uri video s ,i non-video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.12. Con gurarea switch 1 si host-uri . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.13. Con gurarea switch 4 si host-uri . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.14. Con gurarea slice video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.15. Con gurarea slice non-video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.16. Imaginea de ansamblu a topologiei in cazul 2 . . . . . . . . . . . . . . . . . . . 21
3.17. Slice-urile video, non-video, game . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.18. Con gurare switch 1 s ,i hosturi . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.19. Con gurare switch 4 s ,i hosturi . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.20. Con gurare slice video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.21. Con gurare slice non-video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.22. Con gurare slice game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.23. Imaginea de ansamblu a topologiei ^ n cazul 3 . . . . . . . . . . . . . . . . . . . 27
4.1. Switch-urile conectate ^ n ret ,ea ^ n cazul 1 . . . . . . . . . . . . . . . . . . . . . . 28
4.2. Test conectivitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3. Test conectivitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4. Test conectivitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5. Test conectivitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6. Switch-urile conectate ^ n ret ,ea ^ n cazul 2 . . . . . . . . . . . . . . . . . . . . . . 30
4.7. Switch-urile conectate ^ n ret ,ea ^ n cazul 2 . . . . . . . . . . . . . . . . . . . . . . 30
4.8. M asurarea vitezei video pe server ^ n cazul 2 . . . . . . . . . . . . . . . . . . . . 30
4.9. M asurarea vitezei video pe client ^ n cazul 2 . . . . . . . . . . . . . . . . . . . . 31
4.10. M asurarea vitezei non-video pe server ^ n cazul 2 . . . . . . . . . . . . . . . . . 31
4.11. M asurarea vitezei non-video pe client ^ n cazul 2 . . . . . . . . . . . . . . . . . . 32
4.12. M asurarea vitezei non-video pe server ^ n cazul 3 . . . . . . . . . . . . . . . . . 32
4.13. M asurarea vitezei non-video pe client ^ n cazul 3 . . . . . . . . . . . . . . . . . . 32
iii

4.14. M asurarea vitezei game pe server ^ n cazul 3 . . . . . . . . . . . . . . . . . . . . 32
4.15. M asurarea vitezei game pe client ^ n cazul 3 . . . . . . . . . . . . . . . . . . . . 33
4.16. M asurarea vitezei video pe server ^ n cazul 3 . . . . . . . . . . . . . . . . . . . . 33
4.17. M asurarea vitezei video pe client ^ n cazul 3 . . . . . . . . . . . . . . . . . . . . 33
iv

Lista tabelelor
v

Lista acronimelor
CLI=Command Line (linie de comand a)
hx=Host-ul x
ICMP=Internet Controll Messaging Protocol
IP=Internet Protocol
IT=Information Tehnology (Tehnologia informat ,iei)
OF=OpenFlow
QoS=Quality of Service(Calitatea serviciilor)
SDN=Software de ned network (Retea programabila prin software)
sx=Switch-ul x
VM=Virtual Machine (masina virtuala)
vi

1
Capitolul 1
Introducere
^In ziua de azi, s ,tiint ,a s ,i tehnologia se dezvolta ^ ntr-un ritm alert, d^ and astfel posibilitatea
test arii ideilor teoretice prin aplicarea tehnicilor de simulare ^ ntr-un timp cat mai scurt.
Potrivit Cisco's Visual Networking Index pana ^ n 2022, 82 % din tra cul IP va video com-
parativ cu 75% ^ n anul 2017. Aceasta cres ,tere va aduce de la sine o multitudine de probleme,
provoc ari (l at ,ime de banda, timp de as ,teptare, prioritizare a tra cului) c arora furnizorii de
servicii trebuie sa le g aseasc a solut ,ii.
Cerint ,ele de scalabilitate s ,i granularitate ^ n ret ,elele moderne sunt la un nivel foarte ridicat astfel
^ nc^ at abordarea tradit ,ionala din ret ,ea, ^ n care echipamentele luau decizii de rutare independente
s,i rulau mai multe protocoale au devenit un factor limitator ^ n ceea ce prives ,te dezvoltarea ^ n
industrie.Ret ,elele din prezent nu au fost construite pentru a r aspunde necesit at ,ilor de ret ,ea din
urm atorii ani. Tendint ,a este de a renunt ,a la echipamente scumpe de ret ,ea s ,i de a folosi echi-
pamente virtuale.Aici intervine SDN, reprezent^ and o noua abordare a ret ,elelor de calculatoare
ce permite operatorilor de ret ,ele, produc atorilor de echipamente s ,i furnizorilor de servicii de
telecomunicat ,ii sa inoveze s ,i sa implementeze noi competente ^ ntr-un ritm rapid.
Lucrarea de fat ,a este structurata ^ n 3 p art ,i, ecare prezent^ and o modalitate de delimitare
a tra cului din ret ,ea cu ajutorul QoS.
Capitolul 1 se ocup a cu prezentarea tehnologiilor folosite ^ n aceasta lucrare ^ ncep^ and de la con-
cepte teoretice s ,i prezentarea aplicat ,iilor folosite. ^In acest capitol vor prezentate conceptele
de virtualizare, SDN, OpenFlow, QoS dar s ,i aplicat ,iile Mininet s ,i FlowVisor.
^In capitolul 2 se prezint a instalarea aplicat ,iilor, con gurarea lor s ,i implementarea topologiilor
de test.
Capitolul 3 va prezenta rezultatele testelor f acute pe topologiile implementate.
Lucrarea se ^ ncheie prin prezentarea concluziilor personale obt ,inute ^ n urma studiului concep-
tului de SDN, a implement arii unei ret ,ele virtuale s ,i a politicilor QoS.

2
Capitolul 2
Tehnologii folosite
2.1 Limbajul Python
Este un limbaj de programare interpretat, adic a transformarea din codul scris de programator
^ n cod mas ,ina se efectueaz a de ecare data la momentul rul arii, spre deosebire de limbajele
compilate ce presupun ^ nt^ ai compilarea ^ ntr-un s ,ier executabil, executarea propriu-zisa ind
un pas separat. Avantajul ^ n acest caz al unui limbaj interpretat este acela ca putem rula
codul foarte us ,or pe orice platforma pentru ca nu interpretorul de cod va produce cod mas ,ina
special pentru sistemul de operare pe care rulam. Dezavantajul fata de un limbaj compilat,
apare atunci c^ and rulam acelas ,i program f ar a a face modi c ari, acesta av^ and un num ar mare
de instruct ,iuni, deoarece timpul este mereu acelas ,i, codul mas ,ina ind reprodus, des ,i nu exista
modi c ari de la ultima rulare.
2.2 Virtualizare
2.2.1 Descriere
Virtualizarea este un mecanism prin care se creaz a o entitate care prezint a majoritatea carac-
teristicilor unei entit at ,i zice, f ar a ca aceasta sa existe zic, cum ar un sistem de operare, un
server, un dispozitiv de stocare sau echipamente de ret ,ea. Probabil s ,tit ,i un pic despre virtua-
lizare dac a at ,i ^ mp art ,it vreodat a un hard disk ^ n partit ,ii diferite. O partit ,ie este divizia logica
ale unui hard disk extern pentru a crea, ^ ntr-adev ar,dou a unit at ,i hard disk separat.
Figura 2.1: Arhitectura virtuala
2.2.2 Evolut ,ia virtualizarii
Virtualizarea sistemului de operare este folosirea unei aplicat ,ii care permite unei singure p art ,i de
hardware s a ruleze mai multe imagini de sisteme de operare ^ n acelas ,i timp.Aceasta tehnologie
a ^ nceput sa e utilizata ^ n marile companii cu zeci de ani ^ n urma scutind administratorii de
folosirea unor echipamente cu o putere de procesare mai mare,reduc^ and costurile.

3
2.2.3 Cum se foloses ,te virtualizarea
Virtualizarea descrie o tehnologie ^ n care o aplicat ,ie, un sistem de operare virtual sau un
spat ,iu de stocare sunt abstractizate de partea hardware. Una din cele mai folosite virtualiz ari
este virtualizarea serverelor care foloses ,te un nivel software numit hypervisor pentru a imita
componentele hardware.De obicei aceste hardware sunt memoria CPU, porturi I/O s ,i tra cul
de ret ,ea.Sistemul de operare virtual, de obicei interact ,ioneaz a cu componentele hardware, dar
^ n acest caz acesta interact ,ioneaz a cu o emularea f acut a prin aplicat ,ie a acestor componente
s,i acesta nu are nicio informat ,ie ca interact ,ioneaz a cu componente hardware virtuale. ^In timp
ce performant ,a sistemului virtual nu este egala cu cea a unui sistem de operare care ruleaz a
pe componente hardware reale, conceptul de virtualizare funct ,ioneaz a deoarece majoritatea
sistemelor de operare virtuale s ,i majoritatea aplicat ,iilor nu au nevoie de ^ ntreaga putere de
calcul a componentelor hardware.Din aceasta cauza s-au improvizat
exibilitatea, controlul
s,i izolat ,ia prin ^ nl aturarea dependentei de o platforma hardware data. ^In timp ce init ,ial a fost
g^ andit pentru virtualizarea serverelor, conceptul de virtualizarea s-a ^ ntins spre aplicat ,ii, ret ,ele,
date, s ,i stat ,ii de munca.
2.2.4 Tipuri de virtualizare
Exista s ,ase arii ale IT ^ n care virtualizarea avanseaz a rapid:
1.Virtualizarea ret ,elei este o metoda de a combina resursele disponibile^ ntr-o ret ,ea prin^ mp art ,irea
l argimii de banda disponibila ^ n canale de banda, ecare ind independent s ,i care poate alocat
sau realocat c atre un server sau echipament particular ^ n timp real.Ideea este ca virtualizarea
ascunde adev arata complexitate a ret ,elei prin separarea ^ n part ,i mai us ,or de administrat, la fel
cum partit ,ionarea hard-disk-ului ^ t ,i face mai us ,oar a accesibilitatea s ,ierelor.
2.Virtualizarea spat ,iului de stocare este acumularea de depozitare zica de la mai multe dispo-
zitive de stocare din ret ,ea ^ n ceea ce pare a i un dispozitiv de stocare unic care este gestionat de
o consola centrala.Virtualizarea spat ,iului de stocare este frecvent utilizata ^ n ret ,elele de spat ,iu
de stocare.
3.Virtualizarea serverelor este ascunderea resurselor serverului, cum ar num arul s ,i identitatea
ec arui server zic, procesoare s ,i sisteme de operare, de utilizatorii serverului. Nivelul software
care permite aceasta abstractizare este de regula numit hypervisor.Cel mai ^ nt^ alnit hypervi-
sor este tipul 1(type 1).Acest hypervisor ruleaz a direct pe componentele hardware ale hostului
pentru a controla s ,i a administra sistemul de operarea virtual.
Tipul 2 (type 2) de hypervisor ruleaz a pe un sistem de operare al hostului.Sistemul de
operare virtual este v azut ca un proces ^ n sistemul de operare al hostului.Exemple VMWare
Workstation, VirtualBox.
4.Virtualizarea datelor este abstractizarea informat ,iilor tradit ,ionale despre date s ,i gestionarea
datelor cum ar locat ,ia, performant ,a sau format ^ n detrimentul unei acces mai larg.
5.Virtualizare workstation.Aceasta permite utilizatorului sa acceseze calculatorul de la distanta,
de obicei utiliz^ and un thin client -este un calculator care a fost optimizat pentru a stabili cone-
xiunea intre utilizator s ,i workstation-.Workstation-ul ruleaz a ^ ntr-un server al data center-ului
acest lucru f ac^ and ca accesul sa e mai securizat s ,i mai portabil.
6.Virtualizarea aplicat ,iei abstractizeaz a nivelul aplicat ,ie fata de sistemul de operare. ^In acest
mod aplicat ,ia poate rula ^ ntr-o forma ^ ncapsulata f ar a sa e dependenta de sistemul de operare
de pe echipament.Acest lucru permite ca o aplicat ,ie Windows sa poat a rula pe Linux,MacOS
s,i viceversa, ad aug^ and s ,i un nivel de izolare.

4
Virtualizarea poate v azuta ca o tendint ,a generala ^ n mediul IT care include Autonomic
Computing, un scenariu ^ n care mediul IT va putea s a se gestioneze singur prin activitatea
perceputa s ,i Utilty Computing, ^ n care puterea de procesare a calculatorului este v azuta ca o
utilitate ^ n care clientul poate pl ati doar de cat are nevoie.Scopul uzual al virtualiz ari este de a
centraliza comenzi adminstrative ^ n timp ce improvizeaz a scalabilitatea s ,i volumul de munca.
2.2.5 Mas ,ini virtuale
Termenul uzual ^ n industrie pentru un computer virtual este mas ,ina virtuala.Un container
software izolat cu un sistem de operare s ,i aplicat ,ii.Fiecare mas ,ina virtuala este independenta.Av^ and
mai multe mas ,ini virtuale pe un singur calculator permite ca pe un singur server zic sau host
sa ruleze mai multe sisteme de operare sau aplicat ,ii.
Mas ,inile virtuale au urm atoarele caracterisitici care ofer a anumite bene cii:
Partit ,ionare
Rularea mai multor sisteme de operare pe un singur dispozitiv zic Divizarea resurselor siste-
mului intre mas ,inile virtuale.
Izolare
Asigura izolarea, securitate s ,i defectelor la nivel de componente hardware. Asigura performanta
cu control avansat al resurselor.
^Incapsulare
Starea mas ,ini virtuale este salvata ca un s ,ier. Mutarea s ,i copiere mas ,inilor virtuale este la fel
de us ,oara ca cea a s ,ierelor.
Independenta hardware
Mas ,inile virtuale pot rula pe orice computer.
2.3 Software De ned Network
Software de ned networking(SDN) este un concept ce ofer a operatorilor de ret ,ea s ,i centrelor de
date
exibilitate ^ n administrarea echipamentelor de ret ,ea prin intermediul aplicat ,iilor software
ce ruleaz a pe servere externe. Scopul SDN este de a ^ mbun at at ,i controlul ret ,elei facilit^ and
companiilor s ,i furnizorilor de servicii de a r aspunde rapid la schimb arile din mediul online.
^Intr-o ret ,ea SDN un administrator poate direct ,iona tra cul de la o consol a central a de control
f ar a a trebui sa intre ^ n contact cu switch-urile individuale din ret ,ea.Controller-ul SDN central
gestioneaz a switch-urile din ret ,ea pentru a livra serviciile necesare acolo unde trebuie f ar a sa
tina cont de conexiunile dintre server s ,i echipamente.Acest proces este o ^ ndep artare de la
arhitectura tradit ,ionala a unei ret ,ele ^ n care echipamentele individuale din ret ,ea iau decizii ^ n
leg atura cu tra cul ret ,elei pe baza tabelelor de rutare con gurate. Open Networking Foundation
(ONF) este grupul cel mai implicat ^ n crearea s ,i standardizarea SDN, iar de nit ,ia oferit a de
aces ,tia este urm atoarea:"SDN este o arhitectur a ^ n curs de dezvoltare, dinamic a, us ,or de
administrat, e cient a din punct de vedere al costurilor s ,i adaptabil a, f ac^ and-o ideal a pentru
dimensiunea mare band a necesar a naturii dinamice a aplicat ,iilor din ziua de azi. Aceast a
arhitectur a desprinde funct ,iile de control de funct ,iile de expediere, permit ,^ and astfel controlul
ret ,elei s a e programabil direct s ,i structura de sub acesta s a e abstractizat a pentru aplicat ,ii
s,i servicii. Protocolul OpenFlow este elementul fundamental ^ n crearea de solut ,ii SDN."[1]

5
2.3.1 Arhitectura SDN
O reprezentare tipica a arhitecturii SDN include 3 mari nivele: nivelul aplicat ,ie,nivelul de
control s ,i nivelul infrastructurii.
Figura 2.2: Arhitectura generala a SDN
La nivelul de aplicat ,ie se a
 a aplicat ,iile nite ce ajung la utilizatori, precum aplicat ,ii pentru
video conferint ,e sau management-ul relat ,iilor cu client ,ii. Nivelul de control reprezinta controller
centralizat SDN care act ,ioneaz a ca s ,i creierul SDN.Acest controller gestioneaz a politicile s ,i
ow-
urile tra cului ^ n ^ ntreaga ret ,ea. Infrastructura este alc atuit a din echipamentele ^ n sine, aici
reg asindu-se o gam a diferit a de modalit at ,i de gestionare a acestora ^ n funct ,ie de necesitatea
s,i scopul ret ,elei. Exist a astfel: -Switch pur SDN – toate funct ,iile de control ale unui switch
tradit ,ional (protocoalele de rutare sunt folosite ^ n crearea bazei de expediere a informat ,iei) sunt
rulate de un controller central, astfel funct ,ionalitatea switch-ului este restr^ ans a strict la planul

6
de date. -Switch-ul hibrid – este un switch pe care ruleaz a, simultan, protocoalele de rutare
tradit ,ionale s ,i tehnologiile SDN). Un administrator de ret ,ea poate con gura controller-ul SDN
pentru a descoperi s ,i controla anumite
uxuri de tra c, ^ n timp ce protocoalele tradit ,ionale
continu a s a distribuie tra cul prin ret ,ea. -Ret ,ea hibrid a { este ret ,eaua ^ n care se reg asesc at^ at
switch-uri tradit ,ionale, pur SDN sau hibride funct ,ioneaz a ^ n acelas ,i sistem
2.3.2 Cum funct ,ioneaza SDN
SDN cuprinde mai multe tipuri de tehnologii, inclusiv separarea funct ,ional a, ret ,ea de virtu-
alizare s ,i automatizare prin programare. Init ,ial, tehnologie SDN s-a concentrat exclusiv pe
separare a planului de control al ret ,elei de planul de date. ^In timp ce planul de control ia
decizii despre cum pachetele ar trebui s a curg a prin intermediul ret ,elei, planul de date de fapt
mut a pachete din loc ^ n loc. ^Intr-un scenariu de SDN clasic, un pachet ajunge la un switch
de ret ,ea, este analizat de controller,s ,i pe baza regulilor setate ^ n controller acesta va transmite
switch-ului unde se poate transmite pachetul respectiv. Acest lucru are ca scop obt ,inerea unui
control centralizat asupra tra cului din ret ,ea.
2.3.3 Bene ciile SDN
^In ret ,eaua SDN un administrator poate schimba orice regula din aceasta c^ and este nevoit:
prioritizare deprioritizare sau chiar blocarea unor anumite tipuri de pachete cu un nivel foarte
mare de securitate s ,i de granularitate. Asta ofer a administratorului posibilitatea sa foloseasc a
switch-uri mai ieftine s ,i sa aibe mai mult control asupra
uxului de tra c din ret ,ea. Un alt
bene ciu al SDN este gestionarea ret ,elei s ,i vizibilitatea end-to-end.Administratorul de ret ,ea
lucreaz a doar cu controller-ul centralizat pentru a distribui politicile c atre switch-urile conectate
^ n loc sa con gureze manual ecare switch^ n parte.Aceasta capabilitate este totodat a un avantaj
din punct de vedere al securit at ,ii deoarece controller-ul poate monitoriza tra cul s ,i implementa
politici de securitate. Sdn virtualizeaz a componente hardware s ,i servicii care ^ nainte erau
realizate de componente hardware dedicate rezult^ and ^ n mai put ,ine dispozitive zice s ,i un cost
operat ,ional mai sc azut.
2.4 OpenFlow
OpenFlow (OF) este considerat unul dintre primele standarde de ret ,ea (SDN) de nite de
software. Acesta a de nit init ,ial protocolul de comunicat ,ie ^ n mediile SDN care permite
controller-ului SDN s a interact ,ioneze direct cu planul de redirect ,ionare a dispozitivelor de ret ,ea,
cum ar switch-urile s ,i ruterele, at^ at zice, c^ at s ,i virtuale (bazate pe hypervisor), pentru a
se adapta mai bine cerint ,elor de afaceri ^ n schimbare. Pentru a lucra ^ ntr-un mediu OF, orice
dispozitiv care dores ,te s a comunice cu un controler SDN trebuie s a accepte protocolul Open-
Flow. Prin intermediul acestei interfet ,e, controlerul SDN ^ mpinge modi c arile la tabela de
ux
a switch-ului / ruterului, permit ,^ and administratorilor de ret ,ea s a partit ,ioneze tra cul, s a con-
troleze
uxurile pentru o performant , a optim a s ,i s a ^ nceap a testarea unor con gurat ,ii s ,i aplicat ,ii
noi. OpenFlow este un protocol de comunicare standard. Acesta permite accesul la planul de
expediere a unui switch sau router, facilit^ and un management mai so sticat al tra cului, ^ n spe-
cial pentru mediile de virtualizare s ,i cloud. Acest protocol nu speci c a un mecanism particular
de tunelare, ^ n schimb, permite extensii pentru realizarea oric arui protocol de tunelare dorit.
^Intr-un ruter sau switch clasic, planul de date s ,i cel de control se a
 a pe aparat. OpenFlow
permite diferitelor platforme din ret ,ea, de diferite tipuri, s a comunice cu un plan de control co-
mun, numit controller a
at pe un server extern. Tradit ,ional planul de control se ocup a doar de
procesele de rutare s ,i direct ,ionare. Avantajul real al utiliz arii OpenFlow const a ^ n potent ,ialele

7
aplicat ,ii pe care le poate activa. Forme noi ale aplicat ,iilor tradit ,ionale pentru securitate s ,i,
chiar aplicat ,ii noi, ce pot realizate cu ajutorul acestor controllere Deciziile planului de con-
trol pentru
uxuri sunt stabilite de controller, iar celelalte decizii s ,i controlul datelor este, ^ n
continuare, decis de router.
2.5 Quality of Service
2.5.1 Descriere
Quality of service a devenit necesar ^ n aplicat ,iile moderne de internet. Majoritatea solut ,iilor
QoS sunt realizate la nivelului 3 din stiva OSI (network). Pentru a putea realiza o transmisie
end-to-end QoS folses ,te s ,i nivelul 2. Calitatea serviciilor ofer a prioritate ^ n funct ,ie de aplicat ,ia
dorit a de utilizator,
uxuri de date. ^In plus, garanteaz a un anumit nivel de performant , a. Cel
mai frecvent domeniu pentru QoS este la comunicat ,iile de voce s ,i video. Furnizeaz a datele
cu o vitez a mic a, reduce bruiajele, ameliorarea pierderilor pachetelor. Quality of service (QoS
sau ^ n limba rom^ an a calitatea serviciilor) reprezint a performant ,a unei ret ,ele telefonice sau de
calculatoare, ^ n particular performant ,a v azut a de utilizatorul acelei ret ,ele.
Figura 2.3: Aplicarea politicilor QoS asupra tra cului din ret ,ea
2.5.2 Tipuri de erori
Pentru a putea efectua m asur atori ale calit at ,ii serviciilor de ret ,ea trebuie s a lu am ^ n calcul mai
multe tipuri de eroare ce pot ap area frecvent ^ n topologie.
Erori date de rata de transmisie Band a Throughput ^Int^ arzierea transmisiuni Jitter
Erorile date de rata de transmisie pot ap area datorit a ratei de transfer a bit ,ilor sau a
compresiei de date. O alt a cauz a a acestei erori poate dat a s ,i de aparatele ce realizeaz a
conexiunea. De exemplu, un aparat este nou s ,i are o vitez a de transfer foarte mare, iar altul are
o vitez a mic a. Apare o problem a de transfer. Aceasta se rezolv a prin aducerea aparatului rapid
la o vitez a suportat a de cel lent. Banda de internet este de nit a ca ind spat ,iul de frecvent ,e
alocat comunicat ,iilor pentru internet. Aceast a band a este mare, dar doar o port ,iune din aceasta
este utilizabil a. Aceast a port ,iune se numes ,te throughput. ^Int^ arzierea transmisiunii reprezint a
timpul necesar pentru a trimite pachetele de bit ,i de la surs a la destinat ,ie. Cu alte cuvinte
este ^ nt^ arzierea cauzat a de rata de date a ret ,elei. Aceasta nu are leg atur a cu distant ,a dintre
dou a noduri. Acest tip de ^ nt^ arziere este proport ,ional cu lungimea pachetelor de bit ,i ce trebuie

8
transmis ,i. Jitter-reprezint a variat ,ii ale ^ nt^ arzierii transmisiunii. De obicei, are o referint , a de
ceas pentru a putea m asurat. Jitter-ul este foarte periculos ^ n ret ,ea deoarece variaz a s ,i este
di cil de realizat o predict ,ie a acestuia. Spre deosebire de ^ nt^ arzierea transmisiunii, care este
us,or de determinat. Transferul de date random se refer a la posibilitatea pachetelor de a avea
trasee diferite. Dou a trasee nu sunt identice ca distant , a ,de aici putem avea mici ^ nt^ arzieri s ,i
astfel pachetele pot ajunge ^ n alt a ordine fat , a de cea ^ n care au plecat. Erorile pachetelor pot
date s ,i de pachetele corupte. Aceast a cauza este eroarea de bit. Aceste tipuri de erori sunt
produse de zgomot s ,i de alte interferent ,e. De obicei apar interferent ,e ^ n comunicat ,iile f ar a r.
La cele de cupru apar atunci c^ and lungimea rului este foarte mare. Datoria receptorului este
s a detecteze acest lucru, iar dac a pachetul se pierde receptorul poate solicita o nou a trimitere
a pachetului.
2.6 Mininet
2.6.1 Descriere
Mininet creeaz a o ret ,ea virtuala realistica, rul^ and un nucleu, switch s ,i aplicat ,ii pe o singur a
mas ,ina ( VM sau cloud) ^ n c^ ateva secunde, cu o singura comanda:
Mininet este un emulator de ret ,ea.Acesta poate rula end-host, switch-uri, ruter, link-uri
pe un singur nucleu Linux.Un host Mininet se comporta la fel ca un echipament real, te pot ,i
conecta pe el s ,i rula o suita de programe.Aceste programe vor trimite pachete prin o interfat ,a
care se comporta la fel ca interfat ,a reala Ethernet.Pachetele vor procesate de switch s ,i ruter.
Echipamentele din Mininet sunt creeate cu ajutor software s ,i ^ n ceea mai mare parte
funct ,ionarea acestora este similara cu echipamentele reale. ^In ziua de azi este destul de us ,or
sa creezi o ret ,ea Mininet care sa se asemene cu o ret ,ea reala s ,i o ret ,ea reala care sa se asemene
cu o ret ,ea Mininet s ,i ambele sa ruleze aceleas ,i aplicat ,ii.
2.6.2 Limitari Mininet
-Rularea pe un singur sistem este convenabil, dar impune limite de resurse, aceste resurse vor
trebui s a e echilibrate s ,i partajate ^ ntre host-urile virtuale s ,i switch-uri -Mininet foloses ,te
un singur nucleu Linux, acest lucru ^ nseamn a c a nu putet ,i rula software-ul care depinde de
Windows sau alte sisteme de operare. -Spre deosebire de un simulator, Mininet nu are o
not ,iune puternica de timp virtual; Aceasta ^ nseamn a c a m asur atorile de sincronizare se vor
baza pe timp real s ,i c a rezultatele mai rapide dec^ at ^ n timp real (de exemplu, ret ,elele de 100
Gbps) nu pot us ,or emulate.

9
2.6.3 FlowVisor
FlowVisor este un controler experimental de nit de ret ,ea (SDN) care permite virtualizarea
ret ,elei prin ^ mp art ,irea unei ret ,ele zice ^ n mai multe ret ,ele logice. FlowVisor asigur a c a ecare
controler atinge numai comutatoarele s ,i resursele care^ i sunt atribuite. De asemenea, ea^ mparte
resursele de l at ,ime de band a s ,i tabelul de
ux pe ecare comutator s ,i le atribuie acelor partit ,ii
controlorilor individuali.
Figura 2.4: Arhitectura generala FlowVisor
2.7 Ubuntu
Ubuntu este un sistem de operare bazat pe Linux ind folosit at^ at pentru utilizatorul de r^ and,
put^ and instalat pe orice laptop obis ,nuit, cat s ,i pentru servere ^ n marile companii.

10
Capitolul 3
Instalare si con gurare
3.1 Instalare Mininet
^Incepem cu Mininet deoarece el sta la baza a tot ce vom construi ulterior. Instalarea Mininet
se poate face ^ n 2 metode: Prima metoda presupune desc arcarea unei mas ,ini virtuale care are
instalata prede nit aplicat ,ia Mininet s ,i o suita de programe auxiliare. Aceasta se poate des-
carca de la urm atoarea adresa: https://github.com/mininet/mininet/wiki/Mininet-VM-Images
A doua metoda presupune instalarea de la sursa peste un sistem de operare existent: Pentru
^ nceput va trebui sa copiem codul sursa : git clone git://github.com/mininet/mininet Dup a
ce am copiat codul sursa comanda de instalare este urm atoarea: mininet/util/install.sh -a
^In aceasta lucrarea s-a folosit prima metoda, mas ,ina virtuala aleasa ruleaz a Mininet 2.2.2 pe
sistemul de operare Ubuntu.Versiunea Ubuntu este 14.04 LTS pe 64 bit ,i.
3.2 Instalare FlowVisor
Instalarea FlowVisor se face folosind codul sursa de la adresa:
git clone git://github.com/OPENNETWORKINGLAB/
owvisor.git Se va intra ^ n directorul

owvisor s ,i se vor da succint comenzile:
cd
owvisor
make
make install
Con gurare FlowVisor
Pentru a putea folosi FlowVisor va trebui sa se genereze un s ,ier de con gurat ,ie de ^ nceput,
acest lucru ind posibil cu urm atoarea comanda:
sudo -u mininet fvconfig generate /etc/flowvisor/config.json
Pentru a putea modi ca s ,ierul de con gurat ,ie, va trebuie pornit controller-ul FlowVi-
sor,pornirea acestuia se va face prin rularea comenzii:
sudo /etc/init.d/flowvisor start
Pentru a nu^ nt^ ampina nicio o problema^ n modi carea s ,ierului de con gurat ,ie al FlowVisor
este recomandat schimbarea permisiunilor:
sudo chmod -R 777 /usr/local/etc/flowvisor
sudo chown mininet -R /usr/local/etc/flowvisor
sudo chgrp mininet -R /usr/local/etc/flowvisor

11
3.3 Prezentarea aplicat ,iilor
Aceasta lucrare va prezenta trei cazuri pentru a exempli ca diferite metode de izolare s ,i apli-
carea a politicilor QoS.Cele trei cazuri sunt bazate pe doua topologii scrise ^ n limbajul de
programare Python. Primele doua cazuri sunt bazate pe topologia topo.py:
Figura 3.1: Topologia folosita la primele 2 cazuri
Aceasta topologie are ^ n componenta sa patru hosturi: h1, h2, h3, h4 s ,i patru switch-uri s1,
s2 ,s3, s4.Host-urilor li se va atribui IP din clasa 10.0.0.0/8 iar switch-urilor li se va atribui un
datapathid(dpid) Conexiunile host-urilor vor urm atoarele: Host-urile h1 s ,i h2 vor conectate
la s1 ^ n porturile 3, respectiv 4. Host-urile h3 s ,i h4 vor conectate la s4 ^ n porturile 3, respectiv
4. Conexiunile switch-urilor vor urm atoarele: s1 va conectat la switch-urile s2 s ,i s3 astfel:
portul 1 al s1 ^ n portul 1 al s2 s ,i portul 2 al s1 ^ n portul 1 al s3. s4 va conectat la switch-urile
s2 s ,i s3 astfel: portul 1 al s4 ^ n portul 2 al s2 s ,i portul 2 al s4 ^ n portul 2 al s3.
Cel de-al treilea caz este bazat pe topologia topo1.py:
Figura 3.2: Topologia folosita la caz 3
Aceasta topologie are ^ n componenta sa sase hosturi: h1, h2, h3, h4, h5, h6 s ,i cinci switch-
uri s1, s2 ,s3, s4, s5.Host-urilor li se va atribui IP din clasa 10.0.0.0/8 iar switch-urilor li se va
atribui un datapathid(dpid).
Conexiunile host-urilor vor urm atoarele: Host-urile h1, h2 s ,i h3 vor conectate la s1
^ n porturile 4, 5, respectiv 6. Host-urile h4, h5 s ,i h6 vor conectate la s4 ^ n porturile 4, 5
respectiv 6.. Conexiunile switch-urilor vor urm atoarele: s1 va conectat la switch-urile s2,
s3 s ,i s5 astfel: portul 1 al s1 ^ n portul 1 al s2, portul 2 al s1 ^ n portul 1 al s3 s ,i portul 3 al s1
^ n portul 1 al s5. s4 va conectat la switch-urile s2,s3 s ,i s5 astfel: portul 1 al s4 ^ n portul 2 al
s2,portul 2 al s4 ^ n portul 2 al s3 s ,i portul 3 al s4 ^ n portul 2 al s5.

12
Pentru a porni aplicat ,ia Mininet cu topologiile prezentate mai sus se dau urm atoarele co-
menzi:
sudo mn {custom /
owvisor scripts/topo.py {topo fvtopo {link tc {controller remote {mac
{arp
sudo mn {custom /
owvisor scripts/topo1.py {topo fvtopo {link tc {controller remote {mac
{arp
Parametrul custom speci ca Mininet ca se va folosi o topologie implementata de c atre
utilizator.
Parametrul {link tc seteaz a caracteristicile link-urilor din ret ,ea.(Delay aleator)
Parametrul controller remote speci ca Mininet ca se va folosi un controller la distanta ( ^ n cazul
lucr arii de fata acesta la va r aspunde la adresa ip localhost 127.0.0.1) s ,i nu va folosi controller-ul
default din suita Mininet.
Parametrul mac atribuie aleator mac address tuturor echipamentelor din ret ,ea.
3.3.1 Cazul 1. ^Imp art ,irea ret ,elei ^ n doua slice-uri: upper s ,i lower
^In acesta topologie de test se va implementa o izolare a ret ,elei dup a cum urmeaz a: 2 slice-uri
numite upper s ,i lower. Printr-un folosirea unui slice se dores ,te o ^ mp art ,irea echipamentelor din
ret ,ea ^ n part ,i mai mici de ret ,ele pentru a mai us ,or de administrat. Slice-ul upper va cont ,ine
echipamentele h1,s1,s2,s4,h3 astfel ^ nc^ at comunicarea intre h1 s ,i h3 va posibila s ,i comunicarea
cu celelalte host-uri va blocata, iar slice-ul lower va cont ,ine echipamentele h2,s1,s3,s4,h4 care
va permite comunicarea intre h2 s ,i h4 s ,i blocarea comunic arii cu celelalte host-uri.
3.3.1.1 Creare slice-uri s ,i con gurare
Comanda generica pentru a putea crea un slice este prezentata mai jos:
fvctl add-slice [numele slice-ului] [controller url] [admin-email]
Dup a cum putem observa pe l^ ang a numele slice-ului si al controller-ului care r aspunde
de acesta ^ n comanda de mai sus trebuie precizat si o adresa de email, aceasta adresa este
username-ul folosit dup a crearea slice-ului pentru administrare ^ n cazul ^ n care este o problema
cu slice-ul ulterior.
Comenzi pentru ad augarea celor 2 slice-uri prezentate:
fvctl add-slice upper tcp:localhost:10001 admin@upperslice
fvctl add-slice lower tcp:localhost:10002 admin@lowerslice
Putem veri ca dac a aceste slice-uri au fost create corect,se vor a s ,a toate slice-urile cu
comanda urm atoare:
fvctl list-slices
Figura 3.3: Slice-urile upper s ,i lower

13
3.3.1.2 Ad augare
owspace upper
^In continuare se vor adaug a
owspace-urile. Flowspace este un set de regulile dup a care se
realizeaz a transmiterea
ow-urilor ^ n ret ,ea. Comanda generala pentru a adaug a un
owspace:
fvctl add-
owspace [
owspace-name] [dpid] [priority] [match] [slice-permission]
Se va adaug a o regula ^ n
owspace cu numele dpid1-port1 care permite tra cului sa treac a
prin portul 1 al switch-ului 1 cu prioritate 1.
fvctl add-
owspace dpid1-port1 1 1 in port=1 upper=7
Adaug am o regula ^ n
owspace cu numele dpid1-port3 care permite tra cului sa treac a prin
portul 3 al switch-ului 1 cu prioritate 1.
fvctl add-
owspace dpid1-port3 1 1 in port=3 upper=7
Figura 3.4: Con gurare switch 1 pentru slice-ul upper

14
Adaug am o regula ^ n
owspace cu numele dpid2 care permite tra cului sa treac a prin toate
porturile switch-ului fvctl add-
owspace dpid2 2 1 any upper=7
Adaug am o regula ^ n
owspace cu numele dpid4-port1 care permite tra cului sa treac a prin
portul 1 al switch-ului 4 cu prioritate 1.
fvctl add-
owspace dpid4-port1 4 1 in port=1 upper=7
Figura 3.5: Con gurare switch 2
Adaug am o regula ^ n
owspace cu numele dpid4-port3 care permite tra cului sa treac a prin
portul 3 al switch-ului 4 cu prioritate 1.
fvctl add-flowspace dpid4-port3 4 1 in_port=3 upper=7
Figura 3.6: Con gurare switch 4
3.3.1.3 Ad augare
owspace lower
Se adaug a regula ^ n
owspace cu numele dpid1-port2 care permite tra cului sa treac a prin
portul 2 al switch-ului 1 cu prioritate 1.
fvctl add-flowspace dpid1-port2 1 1 in_port=2 lower=7
Se adaug a regula ^ n
owspace cu numele dpid1-port4 care permite tra cului sa treac a prin
portul 4 al switch-ului 1 cu prioritate 1.

15
Figura 3.7: Con gurare switch 1 pentru slice-ul lower
fvctl add-flowspace dpid1-port4 1 1 in_port=4 lower=7
Se adaug a o regula ^ n
owspace cu numele dpid3 care permite tra cul pe toate porturile
switch-ului 3.
fvctl add-flowspace dpid 3 3 1 any lower=7
Se adaug a o regula ^ n
owspace cu numele dpid4-port2 care permite tra cul pe portul 2 al
switch-ului 4 cu prioritate 1
fvctl add-flowspace dpid4-port2 4 1 in_port=2 lower=7
Figura 3.8: Con gurare switch 3
Se adaug a o regula ^ n
owspace cu numele dpid4-port4 care permite tra cul pe portul 4 al
switch 4 cu prioritate 1.
fvctl add-flowspace dpid4-port4 4 1 in_port=4 lower=7
3.3.2 Cazul 2. Separarea tra cului video de restul tra cului din
ret ,ea
^In acest caz se va implementa o topologie ^ n care tra cul video va separat de c atre restul
tra cului din ret ,ea.Pentru a putea putea face aceasta izolare se vor crea doua slice-uri numite

16
Figura 3.9: Con gurare switch 4 pentru slice-ul lower
generic: video s ,i non-video.Cele doua slice-uri vor avea caracteristici diferite, tra cul din slice-ul
video va avea la dispozit ,ie o l argime de banda de 10Mb/s, iar restul tra cului din ret ,ea va avea
la dispozit ,ie o l argime de banda de 1Mb/s.
3.3.2.1 Creare slice-uri s ,i con gurare
La fel ca s ,i ^ n cazul anterior se vor crea cele doua slice-uri cu comanda:
fvctl add-slice video tcp:localhost:10001 admin@videoslice
fvctl add-slice non-video tcp:localhost:10002 admin@nonvideoslice
Se va veri ca dac a aceste slice-uri au fost create
fvctl list-slices
3.3.2.2 Ad augare
owspace
^In cazul acesta ad augarea de
owspace va avea un grad de di cultate mai ridicat deoarece
switch-urile care sunt conectate la host vor trebuie s a separe tra cul ^ n funct ,ie de tipul acestuia.
Acest lucru va posibil set^ and priorit at ,i diferite astfel: slice-ul video va avea o prioritate
ridicata, valoarea setata ind 100, iar slice-ul non-video va avea o prioritate sc azuta, valoarea
setata ind 1. Slice-ul video va administra tra cul care va avea ca sursa sau destinat ,ie portul
9999, iar slice-ul non-video va administra tra cul de pe toate celelalte porturi. Se va ^ ncepe prin
a realiza conexiunea intre switch-uri s ,i host-uri.Se vor adaug a
owspace-urile pentru a realiza
conexiunea intre s1 s ,i h1 cu urm atoarele comenzi.
fvctl add-flowspace dpid1-port3-video-src 1 100
in_port=3,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port3-video-dst 1 100
in_port=3,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port3-non-video 1 1 in_port=3 non-video=7
Aceste comenzi permit tra cului sa treac a prin portul 3 al s1 c atre h1.Se adaug a doua

owspace pentru slice-ul video numite astfel dpid1-port3-video-src respectiv dpid1-port3-video-
dst,care vor avea prioritatea 100. Aceste doua
owspace-uri vor permite trecerea tra cului mai
departe dac a acesta va veni de la portul 9999 sau spre portul 9999.Parametrii dl type=0x0800
s,i nw proto=6 fac parte din standardul OpenFlow s ,i trebuie speci cat ,i pentru ca controller-ul

17
Figura 3.10: Imaginea de ansamblu a topologiei
Figura 3.11: Slice-uri video s ,i non-video
sa s ,tie ca se va realiza o conexiune TCP. Se adaug a
owspace-ul dpid1-port3-non-video cu
prioritate 1, care va permite ca restul tra cului sa treac a ^ n portul 3 al s1.
Similar se vor adaug a
owspace-uri pentru a realiza conexiunea intre s1 s ,i h2:
fvctl add-flowspace dpid1-port4-video-src 1 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port4-video-dst 1 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port4-non-video 1 1 in_port=4 non-video=7

18
Figura 3.12: Con gurarea switch 1 si host-uri
Se va realiza conexiunea intre s4 si h3:
fvctl add-flowspace dpid4-port3-video-src 4 100
in_port=3,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port3-video-dst 4 100
in_port=3,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port3-non-video 4 1 in_port=3 non-video=7
Se va realiza conexiunea intre s4 s ,i h4:
fvctl add-flowspace dpid4-port4-video-src 4 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port4-video-dst 4 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port4-non-video 4 1 in_port=4 non-video=7

19
Figura 3.13: Con gurarea switch 4 si host-uri
Conexiunea intre switch-uri.
Se va realiza conexiunea intre s1,s3 s ,i s4. Se va adaug a un
owspace numit dpid1-port2-
video, cu prioritate 100 care va permite tra cului ^ n portul 2 al s1 sa treac a doar dac a este de
tip video cu urm atoarea comanda:
fvctl add-flowspace dpid1-port2-video 1 100 in_port=2 video=7
Similar se va adaug a un
owspace numit dpid4-port2-video cu prioritate 100, care va permite
tra cului sa treac a ^ n portul 2 al s4 doar dac a este de tip video:
fvctl add-flowspace dpid4-port2-video 4 100 in_port=2 video=7
Pentru s3 se va adaug a un
owspace dpid3-video care va permite tra cului sa treac a pe
toate porturile sale dac a acesta este de tip video.
fvctl add-flowspace dpid3-video 3 100 any video=7

20
Figura 3.14: Con gurarea slice video
Se va adaug a un
owspace numit dpid1-port1-non-video, cu prioritate 1 care va permite
tra cului ^ n portul 1 al s1 sa treac a cu urm atoarea comanda:
fvctl add-flowspace dpid1-port1-non-video 1 1 in_port=1 non-video=7
Se va adaug a un
owspace numit dpid4-port1-non-video, cu prioritate 1 care va permite
tra cului ^ n portul 1 al s4 sa treac a cu urm atoarea comanda:
fvctl add-flowspace dpid4-port1-non-video 4 1 in_port=1 non-video=7
Pentru s2 se va adaug a un
owspace dpid2-non-video care va permite tra cului sa treac a
pe toate porturile sale cu urm atoarea comanda:
fvctl add-flowspace dpid2-non-video 2 1 any non-video=7
Figura 3.15: Con gurarea slice non-video

21
Figura 3.16: Imaginea de ansamblu a topologiei in cazul 2
3.3.3 Cazul 3. Separarea tra cului ^ n trei categorii
^In acest caz se va implementa o topologie ^ n care tra cul din ret ,ea va separat ^ n trei cate-
gorii.Pentru a putea putea face aceasta izolare se vor crea trei slice-uri numite generic: video,
non-video s ,i game.Cele trei slice-uri vor avea caracteristici diferite, tra cul din slice-ul video
va avea la dispozit ,ie o l argime de banda de 10Mb/s, tra cul din slice-ul non-video va avea la
dispozit ,ie o l argime de banda de 1Mb/s, iar tra cul din slice-ul game va avea avea la dispozit ,ie
o l argime de banda de 5Mb/s.

22
3.3.3.1 Creare slice-uri s ,i con gurare
La fel ca s ,i ^ n cazul anterior se vor crea cele trei slice-uri cu comanda:
fvctl add-slice video tcp:localhost:10001 admin@videoslice fvctl add-slice non-video tcp:localhost:10002
admin@nonvideoslice fvctl add-slice game tcp:localhost:10003: admin@gameslice
Figura 3.17: Slice-urile video, non-video, game
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 4 al s1:
fvctl add-flowspace dpid1-port4-video-src 1 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port4-video-dst 1 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port4-non-video 1 1 in_port=4 non-video=7
fvctl add-flowspace dpid1-port4-game-src 1 50
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port4-game-dst 1 50
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 5 al s1:
fvctl add-flowspace dpid1-port5-video-src 1 100
in_port=5,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port5-video-dst 1 100
in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port5-non-video 1 1 in_port=5 non-video=7
fvctl add-flowspace dpid1-port5-game-src 1 50
in_port=5,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port5-game-dst 1 50
in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 6 al s1:
fvctl add-flowspace dpid1-port6-video-src 1 100
in_port=6,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7

23
fvctl add-flowspace dpid1-port6-video-dst 1 100
in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port6-non-video 1 1 in_port=6 non-video=7
fvctl add-flowspace dpid1-port6-game-src 1 50
in_port=6,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port6-game-dst 1 50
in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Figura 3.18: Con gurare switch 1 s ,i hosturi

24
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 4 al s4:
fvctl add-flowspace dpid4-port4-video-src 4 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port4-video-dst 4 100
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port4-non-video 4 1 in_port=4 non-video=7
fvctl add-flowspace dpid4-port4-game-src 4 50
in_port=4,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port4-game-dst 4 50
in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 5 al s4:
fvctl add-flowspace dpid4-port5-video-src 4 100
in_port=5,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port5-video-dst 4 100
in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port5-non-video 4 1 in_port=6 non-video=7
fvctl add-flowspace dpid4-port5-game-src 4 50
in_port=5,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port5-game-dst 4 50
in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Se vor adaug a
owspace-urile care vor permite tra cului sa treac a prin portul 6 al s4:
fvctl add-flowspace dpid4-port6-video-src 4 100
in_port=6,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port6-video-dst 4 100
in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port6-non-video 4 1 in_port=6 non-video=7
fvctl add-flowspace dpid4-port6-game-src 4 50
in_port=6,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port6-game-dst 4 50
in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 2 al s1:
fvctl add-flowspace dpid1-port2-video 1 100 in_port=2 video=7
Se vor adaug a
owspace-ul care va permite tra cului sa treac a prin toate porturile s3:
fvctl add-flowspace dpid3-video 3 100 any video=7
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 2 al s4:
fvctl add-flowspace dpid4-port2-video 4 100 in_port=2 video=7

25
Figura 3.19: Con gurare switch 4 s ,i hosturi
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 1 al s1:
fvctl add-flowspace dpid1-port1-non-video
1 in_port=1 non-video=7
Se vor adaug a
owspace-ul care va permite tra cului sa treac a prin toate porturile s2:
fvctl add-flowspace dpid2-non-video 2 1 any non-video=7
fvctl add-
owspace dpid2-non-video 2 1 any non-video=7
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 1 al s4:
fvctl add-flowspace dpid4-port1-non-video 4 1 in_port=1 non-video=7

26
Figura 3.20: Con gurare slice video
Figura 3.21: Con gurare slice non-video
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 3 al s1:
fvctl add-flowspace dpid1-port3-game 1 50 in_port=3 game=7
Se vor adaug a
owspace-ul care va permite tra cului sa treac a prin toate porturile s5:
fvctl add-flowspace dpid5-game 5 50 any game=7
Se va adaug a
owspace-ul care va permite tra cului sa treac a prin portul 3 al s4:
fvctl add-flowspace dpid4-port3-game 4 50 in_port=3 game=7

27
Figura 3.22: Con gurare slice game
Figura 3.23: Imaginea de ansamblu a topologiei ^ n cazul 3

28
Capitolul 4
Testare s ,i veri care
4.0.1 Testare s ,i veri care caz 1
^In cazul unu s-a urm arit izolarea ret ,elei ^ n 2 slice-uri: upper si lower astfel ^ nc^ at pe slice-ul
upper sa existe conectivitate doar intre h1 si h3, iar pe slice-ul lower sa existe conectivitate
intre h2 si h4. Pentru a veri ca conexiunea trebuie sa vedem dac a avem switch-urile conectate
la Flowvisor.Acest lucru se face cu urm atoarea comanda
fvctl list-datapaths
Rezultatul acestei comenzi:
Figura 4.1: Switch-urile conectate ^ n ret ,ea ^ n cazul 1
^In continuare se va testa conectivitatea intre h1 si h3. Se vor trimite 3 ping-uri intre host-
uri.Ping-ul trimite mesaje ICMP de tip echo request si as ,teapt a de la destinatar mesaje ICMP
de tip echo reply. Dac a echo reply nu soses ,te la emit , ator comunicarea intre cele doua host-uri
are probleme sau este blocata. Pentru a testa conectivitatea se va da urm atoarea comanda din
CLI Mininet: h1 ping -c3 h3 S ,i ca rezultat vom avea :
Figura 4.2: Test conectivitate
^In imaginea de sus se observ a ca rata de transmisie a mesajelor a fost de 100% cu o medie
de timp de 13.989 ms. Pentru a testa conectivitatea cu h2 si h4: h1 ping -c3 h2 h1 ping -c3 h4
^In imaginea de mai sus se observ a ca rata de transmisie este 0%, comunicarea ind total
blocata.

29
Figura 4.3: Test conectivitate
Figura 4.4: Test conectivitate
Se va testa s ,i conectivitatea ^ ntre h2 s ,i h4 : h2 ping -c3 h4
^In imaginea de mai sus se poatea observa ca rata de transmisie este 100% cu o medie de
timp de 27.832 ms. Similar se va ^ ncerca si conectivitatea ^ ntre h2 s ,i h1,h3 h2 ping -c3 h1 h2
ping -c3 h3
Figura 4.5: Test conectivitate
4.0.2 Testare s ,i veri care caz 2
^In al doilea caz s-a urm arit izolarea ret ,elei ^ n doua slice-uri, dup a tipul de tra c din ret ,ea.Au
fost create doua slice-uri: video s ,i non-video, care delimitau tra cul video de restul tra cului
din ret ,ea.Totodat a slice-ul video va avea la dispozit ,ie o l at ,ime de banda de 10Mb/s, ^ n timp
ce tra cul alocat administrat de slice-ul non-video va avea la dispozit ,ie o l at ,ime de banda de
1Mb/s.
Ca s ,i ^ n cazul anterior vom veri ca dac a switch-urile sunt conectate la FlowVisor.
fvctl list-datapaths

30
Figura 4.6: Switch-urile conectate ^ n ret ,ea ^ n cazul 2
Vom testa conectivitatea intre host-uri.Din CLI Mininet se va da comanda: pingall Rezul-
tatul ind:
Figura 4.7: Switch-urile conectate ^ n ret ,ea ^ n cazul 2
Se observa ca am avem conectivitate intre host-uri.Se va testa dac a tra cul comunica la
viteza la care a fost setat: Pentru a putea veri ca viteza tra cului vom folosi tool-ul iperf.Iperf
este un tool care m asoar a viteza maxima pe care o poate obt ,ine un link^ n ret ,ele IP. Se va veri ca
dac a tra cul video comunica la viteza de 10Mb/s. Se va seta ca server h2 prin comanda: iperf
-s -p 9999
Figura 4.8: M asurarea vitezei video pe server ^ n cazul 2
iar h4 se va seta ca s ,i client cu urm atoarea comanda: iperf {c 10.0.0.2 {p 9999 {t 10 {i 2
Din pozele de mai sus se observa ca serverul comunica cu o viteza medie de 9.56Mb/s iar
clientul are valori apropiate de valoarea de 10Mb/s.
Pentru a m asura viteza tra cului non-video vom seta ca server h1 cu urm atoarea comanda:
iperf {s {p 3242
iar host 3 va setat ca s ,i client cu urm atoarea comanda: iperf {c 10.0.0.2 {p 7676 {t 10 {i
2
Din rezultatul testelor se observa ca viteza serverului nu dep as ,es,te valoarea de 1Mb/s iar
cea a clientului este ^ n jurul valorii de 1Mb/s.

31
Figura 4.9: M asurarea vitezei video pe client ^ n cazul 2
Figura 4.10: M asurarea vitezei non-video pe server ^ n cazul 2
4.0.3 Testare s ,i veri care caz 3
^In al treilea caz s-a urm arit izolarea ret ,elei ^ n trei slice-uri, dup a tipul de tra c din ret ,ea.Au
fost create trei slice-uri: video, non-video s ,i game, care avea ca scop segregarea tra cului ^ n
tra c video, tra c de gaming, s ,i restul tra cului numit generic la fel ca ^ n exemplul anterior
non-video.Totodat a slice-ul video va avea la dispozit ,ie o l at ,ime de banda de 10Mb/s, slice-ul
game va avea la dispozit ,ie o l argime de banda de 5Mb/s,^ n timp ce tra cul administrat de
slice-ul non-video va avea la dispozit ,ie o l at ,ime de banda de 1Mb/s.
Pentru m asurarea vitezei^ n slice-ul non-video s-a setat ca server h2 cu urm atoarea comanda:
iperf -s -p 5747
iar h3 a fost setat ca s ,i client cu urm atoarea comanda: iperf -c 10.0.0.3 -p 5747 -t 10 -i 2
Pentru m asurarea vitezei ^ n slice-ul game a fost setat ca server h1 iperf -s -p 5555
iar h3 ca s ,i client prin comanda: iperf -c 10.0.0.1 -p 5555 -t 10 -i 2
Pentru m asurarea vitezei ^ n slice-ul video s-a setat h2 ca server prin comanda: iperf -s -p
9999
iar h4 ca s ,i client: iperf -c 10.0.0.2 -p 9999 -t 10 -i 2

32
Figura 4.11: M asurarea vitezei non-video pe client ^ n cazul 2
Figura 4.12: M asurarea vitezei non-video pe server ^ n cazul 3
Figura 4.13: M asurarea vitezei non-video pe client ^ n cazul 3
Figura 4.14: M asurarea vitezei game pe server ^ n cazul 3

33
Figura 4.15: M asurarea vitezei game pe client ^ n cazul 3
Figura 4.16: M asurarea vitezei video pe server ^ n cazul 3
Figura 4.17: M asurarea vitezei video pe client ^ n cazul 3

34
Capitolul 5
Concluzii
Aceasta lucrare a avut ca scop prezentarea conceptelor de SDN,QoS dar s ,i implementarea di-
feritelor modalit at ,i de delimitare a tra cului. Ret ,elele actuale de calculatoare sunt complexe
s,i di cil de administrat. Unul din motive ^ l constituie faptul c a planurile de control s ,i de date
sunt integrate zic ^ n acelas ,i dispozitiv s ,i sunt speci ce ec arui furnizor de echipamente. De
asemenea, implementarea unui nou serviciu la nivelul ^ ntregii ret ,ele presupune con gurarea
ec arui echipament al acesteia pentru a suporta serviciul respectiv. Aceasta lucrare a prezen-
tat avantajele folosiri unei retele virtuale dar s ,i limit arile sale. ^In primul r^ and s-a demonstrat
ca putem crea o ret ,ea virtuala cu funct ,ionalitatea unei ret ,ele reala, f ar a a folosi echipamente
speci ce. ^In al doilea r^ and s-au prezentat diferite modalit at ,i de delimitarea a tra cului, de la
separarea propriu-zisa descrisa ^ n cazul1, pana la segregarea tra cului ^ n funct ,ie de tipul aces-
tuia, descrisa ^ n cazurile 2 s ,i 3.Totodat a ^ n aceste cazuri s-a prezentat faptul ca se poate decide
l argimea de banda cu care va funct ,iona ret ,eaua ^ n funct ,ie de tipul de tra c. Implementarea
unei astfel de topologii permite prioritizarea tra cului ^ n funct ,ii de aplicat ,iile lui, de exemplu
tra cul pentru o conferint ,a video primes ,te o ruta separata de tra cul pentru mesageria interna
a unei companii. Totodat a acest mod de ^ mp art ,ire a rutelor ^ n funct ,ie de cantitatea de date
asigura s ,i o separare a datelor transmise, ceea ce implica funct ,ionarea unei aplicat ,ii de tip
mesagerie chiar dac a video conferint ,ele au c azut.

35
Bibliogra e
[1]

36
Anexa A
Cod topo.py
#!/usr/bin/python
from mininet.topo import Topo
class FVTopo(Topo):
def __init__(self):
# Initialize topology
Topo.__init__(self)
# Create template host, switch, and link
hconfig = {'inNamespace':True}
http_config = {'bw': 1}
video_config = {'bw': 10}
host_config = {}
# Create switch nodes
for i in range(4):
sconfig = {'dpid': "%016x" % (i+1)}
self.addSwitch('s%d' % (i+1), **sconfig)
# Create host nodes
for i in range(4):
self.addHost('h%d' % (i+1), **hconfig)
# Add switch links
self.addLink('s1', 's2', **http_config)
self.addLink('s2', 's4', **http_config)
self.addLink('s1', 's3', **video_config)
self.addLink('s3', 's4', **video_config)
# Add host links
self.addLink('h1', 's1', **host_config)
self.addLink('h2', 's1', **host_config)
self.addLink('h3', 's4', **host_config)
self.addLink('h4', 's4', **host_config)
topos = { 'fvtopo': ( lambda: FVTopo() ) }

37

38
Anexa B
Cod topo1.py
#!/usr/bin/python
from mininet.topo import Topo
class FVTopo(Topo):
def __init__(self):
# Initialize topology
Topo.__init__(self)
# Create template host, switch, and link
hconfig = {'inNamespace':True}
http_config = {'bw': 1}
game_config={'bw': 5}
video_config = {'bw': 10}
host_config = {}
# Create switch nodes
for i in range(5):
sconfig = {'dpid': "%016x" % (i+1)}
self.addSwitch('s%d' % (i+1), **sconfig)
# Create host nodes
for i in range(6):
self.addHost('h%d' % (i+1), **hconfig)
# Add switch links
self.addLink('s1', 's2', **http_config)
self.addLink('s2', 's4', **http_config)
self.addLink('s1', 's3', **video_config)
self.addLink('s3', 's4', **video_config)
self.addLink('s1', 's5', **game_config)
self.addLink('s4', 's5', **game_config)
# Add host links
self.addLink('h1', 's1', **host_config)
self.addLink('h2', 's1', **host_config)
self.addLink('h5', 's1', **host_config)
self.addLink('h3', 's4', **host_config)
self.addLink('h4', 's4', **host_config)

39
self.addLink('h6', 's4', **host_config)
topos = { 'fvtopo': ( lambda: FVTopo() ) }

40
Anexa C
Cod Flowspace complet caz 3
fvctl add-flowspace dpid1-port4-video-src 1 100 in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port4-video-dst 1 100 in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port4-non-video 1 1 in_port=4 non-video=7
fvctl add-flowspace dpid1-port4-game-src 1 50 in_port=4,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port4-game-dst 1 50 in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid1-port5-video-src 1 100 in_port=5,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port5-video-dst 1 100 in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port5-non-video 1 1 in_port=6 non-video=7
fvctl add-flowspace dpid1-port5-game-src 1 50 in_port=5,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port5-game-dst 1 50 in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid1-port6-video-src 1 100 in_port=6,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid1-port6-video-dst 1 100 in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid1-port6-non-video 1 1 in_port=6 non-video=7
fvctl add-flowspace dpid1-port6-game-src 1 50 in_port=6,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid1-port6-game-dst 1 50 in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid4-port4-video-src 4 100 in_port=4,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port4-video-dst 4 100 in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port4-non-video 4 1 in_port=4 non-video=7
fvctl add-flowspace dpid4-port4-game-src 4 50 in_port=4,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port4-game-dst 4 50 in_port=4,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid4-port5-video-src 4 100 in_port=5,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port5-video-dst 4 100 in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port5-non-video 4 1 in_port=6 non-video=7
fvctl add-flowspace dpid4-port5-game-src 4 50 in_port=5,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port5-game-dst 4 50 in_port=5,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid4-port6-video-src 4 100 in_port=6,dl_type=0x0800,nw_proto=6,tp_src=9999 video=7
fvctl add-flowspace dpid4-port6-video-dst 4 100 in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=9999 video=7
fvctl add-flowspace dpid4-port6-non-video 4 1 in_port=6 non-video=7
fvctl add-flowspace dpid4-port6-game-src 4 50 in_port=6,dl_type=0x0800,nw_proto=6,tp_src=5555 game=7
fvctl add-flowspace dpid4-port6-game-dst 4 50 in_port=6,dl_type=0x0800,nw_proto=6,tp_dst=5555 game=7
fvctl add-flowspace dpid1-port2-video 1 100 in_port=2 video=7
fvctl add-flowspace dpid3-video 3 100 any video=7
fvctl add-flowspace dpid4-port2-video 4 100 in_port=2 video=7
fvctl add-flowspace dpid1-port1-non-video
1 in_port=1 non-video=7
fvctl add-flowspace dpid2-non-video 2 1 any non-video=7
fvctl add-flowspace dpid4-port1-non-video 4 1 in_port=1 non-video=7
fvctl add-flowspace dpid1-port3-game 1 50 in_port=3 game=7
fvctl add-flowspace dpid5-game 5 50 any game=7
fvctl add-flowspace dpid4-port3-game 4 50 in_port=3 game

41

Similar Posts