Softverski definirane mreže

Embed Size (px)

DESCRIPTION

mrežice

Citation preview

  • 1

    Tehniki fakultet u Rijeci

    Preddiplomski sveuilini studij raunarstva

    Izborni projekt Programsko inenjerstvo

    2013./2014.

    Softverski definirane mree

    Student Niko Konjuh

    Profesor mentor doc. dr. sc. Tihana Galinac Grbac

    Rijeka, 19.2.2014.

  • 2

    Sadraj

    1. Uvod - to su softverski definirane mree? ................................................................................. 3

    2. Arhitektura softverski definiranih mrea..................................................................................... 4

    3. Openflow kontroler....................................................................................................................... 7

    4. Eksperiment i testiranje Openflow-a............................................................................................. 8

    4.1 Postavljanje virtualne maine................................................................................................... 8

    4.2/4.3 Pretvoriti vorite u Ethernet preklop/ Modificirati preklop da pusha tok podataka...... 9

    4.4 Dodati podrku za vie prekidaa............................................................................................. 10

    4.5/4.6 Pokrenuti prekida na pravoj mrei/Modifcirati prekida da obrauje IP proslijeivanje... 10

    4.7 Postavljanje vatrozida na prekida............................................................................................. 11

    5. Openstack networking Neutron ill Quantum................................................................................ 12

    Zakljuak.......................................................................................................................................

    Literatura.......................................................................................................................................

  • 3

    Slika 1.1

    1. Uvod - to su softverski definirane mree?

    Razvijene ne tako davne 2008. godine na amerikim univerzitetima Berkeley i Stanford, softverski

    definirane mree danas su nezamjenjiva mrena arhitektura u mnogim softverskim poduzeima.

    Najjednostavnije, softverski definirane mree moemo opisati kao pristup u umreavanju raunala

    koji omoguuje mrenim administratorima da upravljaju mrenim uslugama kroz apstrakciju niih

    nivoa funkcionalnosti.

    Sama potreba za softverski definiranim mreama dolazi zbog nepodobnosti tradicionalnih mrenih

    arhitektura da zadovolje zahtjeve dananjih poduzea, nositelja mrea te krajnjih korisnika.

    Zahvaljujui irokom i upornom industrijskom nastojanju predvoenom Otvorenom mrenom

    zakladom (Open Networking Foundation - ONF), softverski definirane mree (Software Defined

    Networking ili krae SDN) su postale promjenjiva mrena arhitektura.

    SDN radi na principu odvajanja sustava koji donosi odluke o tome gdje e promet podataka biti poslan

    (the control plane - upravljaka povrina) iz podlonih sustava koji proslijeuju promet do odabrane

    destinacije (data plane - podatkovna povrina) to na kraju pojednostavljuje umreavanje.

    SDN je korak unaprijed u evoluciji programabilnog i aktivnog umreavanja. Omoguuje mrenim

    administratorima da imaju glavnu kontrolu mrenog prometa preko kontrolera bez potrebe za fizikom

    adresom na mrenim sklopkama.

  • 4

    2. Arhitektura softverski definiranih mrea

    Tri kljuna elementa softverski definiranih mrea:

    Sposobnost upravljanja prosljeivanjem paketa i politika primjene istih;

    Sposobnost obavljanja gore navedenog u dinaminom okruenju;

    Mogunost programiranja mrea

    SDN arhitektura mora biti u mogunosti da manipulira tokom paketa i sklopovlja kroz mreu u

    velikim razmjerima u programiranom modu.

    Hardverski cijevovod SDN-a obino e biti dizajniran kao konvergirana (sposobana prenositi sve vrste

    podataka ukljuujui eljene oblike skladitenja prometa) isprepletenost velikih cijevi niih vremena

    ekanja (lower latency) uobiajenog naziva fabric (tkanina). Sama SDN arhitektura e zauzvrat

    pruiti irokomreni pogled i mogunost centralnog upravljanja mrea i mrenih tokova.

    Ova arhitektura je postignuta odvajanjem upravljake povrine od podatkovne povrine ureaja i prua

    suelje koje se moe programirati za tu odvojenu upravljaku povrinu. Podatkovna povrina ureaja

    prima pravila proslijeivanja od odvojene upravljake povrine i primjenjuje ta pravila u hardveru

    ASIC-sa. Ti ASIC-i mogu biti ASIC-i za razmjenu dobara ili prilagoeni silikonski ovisno o

    funkcionalnosti i preformansama potrebnih aspekata.

    Sljedei dijagram prikazuje taj odnos:

    Slika 2.1 U ovom modelu, SDN kontroler daje upravljaku

    povrinu, a podatkovna povrina se sastoji od hardverski

    sklopnih ureaja. Ti ureaji mogu biti potpuno novi

    hardverski ureaji ili postojei ureaji sa specijaliziranim

    ugraenim softverom (firmware-om)

  • 5

    Slika 2.2

    Kako je tema softverski definiranih mrea jako popularna tema u mrenoj industriji, strunjaci su jo

    uvijek podvojeni oko najboljeg naina implementacije te naina na koji e utjecati na ininjere i

    administratore. No jedna je injenica neosporna: SDN je donio novu panju i inovaciju u umreavanju.

    Kako bi dobili uvid u razliite pristupe SDN-a sljedee su nabrojene i opisane neke od

    najveih/najvanijih SDN tehnologija od razliitih prodavaa.

    I Big Switch Networks Open SDN

    Big Switch Networks' Open SDN platforma nudi Openflow fabric prekida koji se

    moe izvoditi na golim metalnim sklopkama i hipervizor virtualnim sklopkama, te

    omoguuje irok izbor SDN mrenih aplikacija ukljuujui podatkovni centar za

    mrenu virtualizaciju i nadzor mree.

    II Cisco eXtensible Network Controller (XNC)

    Cisco XNC je Java OSGi bazirana aplikacija izgraena za potporu nadogradivosti,

    proirivosti i modularnosti potrebnih za brzi razvoj poduzetnih IT arhitektura.

    III IBM SDN VE

  • 6

    IBM Software Defined Network for Virtual Environments stvara virtualnu mreu za

    virtualne ureaje. Ova virtualna mrea je odvojena i izolirana od fizike mree slino

    kao to je virtualni ureaj odvojen i izoliran od hardvera domaina posluitelja (host

    server hardware).

    IV Midokura MidoNet

    Midokura's MidoNet je rasporeen decentraliziran mreno-virtualizacijski projekt koji

    je osmiljen u svrhu Infrastructure-as-a-Service (IaaS) oblaka (cloud) kao na primjer

    OpenStack i CloudStack. Midonet doputa krajnjim korisnicima da izgrauju

    proizvoljne, kompleksne mrene topologije u svojim cloud okrujima, ne trebajui

    nita vie od IP povezivosti od fizike mree.

    V Juniper Networks Contrail

    Juniper Networks Contrail je virtualni overlay sustav za mrene virtualizacije i

    inteligencije. Kroz RESTful API-je Contrail radi sa CloudStack i OpenStack

    arhitekturama kako bi zajedno osigurali zalihe mrenih,raunalnih i memorijskih

    resursa. Contrail-ov SDN kontroler virtualizira mreu kako bi omoguila

    automatizaciju i izvoenje hibridnih cloud okruenja, elastinih usluga ulanavanja

    mrea i sigurnosnih usluga te BDI (Big Data for Infrastructure) analitikih maina

    koje pruaju real-time pogled u cijelu mreu.

    Slika 2.3

    Slika 2.4

  • 7

    3. OpenFlow

    Mnogi strunjaci smatraju da je Openflow kontroler kao protokol krucijalan za rast i irenje ukupnog

    SDN-a.

    OpenFlow je otvoreni standard koji omoguuje istraivaima da pokreu eksperimentalne protokole

    na mreama koje se svakodnevno koriste. OpenFlow je dodan kao svojstvo komercijalnim Ethernet

    preklopnicima, usmjerivaima i beinim pristupnim tokama i prua istraivaima mogunost

    izvoenja eksperimenata, bez potrebe da prodavai otkrivaju unutarnje procese svojih mrenih

    ureaja. Trenutano, OpenFlow se provodi od strane velikih proizvoaa.

    U klasinim usmjerivaima (routerima) brzo proslijeivanje paketa (put podataka) i odluke

    usmjerivaa visokog stupnja pojavljaju se na istom ureaju. Openflow razdvaja te dvije funkcije. Put

    podataka je jo uvijek na prekidau, dok su odluke usmjerivaa prebaene na odvojeni kontroler,

    obino server. Openflow i Kontroler komuniciraju preko Openflow protokola, koji definira poruke

    tipa: prihvaeni podaci (packet-received), poslani paketi (sent-packet-out), mijenjaj proslijeivanja

    (modify-forwarding-table) i get statistike.

    Svrha samog Openflow-a jest jednostavno implementiranje inovativnog usmjeravanja i prebacivanja

    protokola u mrei. Koristi se kod aplikacija kao to su virtualne maine, mreama visoke sigurnosti te

    mobilnim IP mreama nove (sljedee generacije).

    Openflow sadri mnoge prednosti u odnosu na ostale SDN standrade:

    Centralizirana kontrola okruenja sa vie dobavljaa

    Smanjena sloenost kroz automatizaciju

    Via stopa inovacije

    Poveana mrena sigurnost i pouzdanost

    Preciznije kontrole mree

    Bolje korisniko iskustvo

    Naalost, jako je mala zainteresiranost velikih korporacija i sveuilita oko implemetnacije Openflow-

    a u studentski i/ili poslovni program uenja. Glavni mreni arhitekt Sveuilita u Indiani (Indiana

    University) i izvrni upravitelj InCNTRE-a Matt Davy je rekao: Trenutno je ogroman interes oko

    Openflow-a, a jedino Sveuilite u Indiani (IU) ui svoje studente toj tehnologiji. Kao svjetski lider u

    unapreenju SDN-a i Openflow-a, Sveuilite u Indiani je dobro opremljeno za pruanje obuke i

    edukacijskih programa za ostale programere koji se ele u tome okuati.

  • 8

    Slika 4.1 Shema eksperimentalnog rada sa

    Openflow-om

    4. Eksperiment i testiranje Openflow-a

    4.1 Postavljanje virtualne maine

    Instalacija 3 potrebna besplatna software-a za pokretanje virtualne maine i u konanici Openflow-a:

    VirtualBox virtualizacijski software

    Putty ssh konzola/terminal

    Xming X server

    Te image za virtualnu mainu sa Openflow slubene stranice.

    Postavljanje

    virtualne maine

    Pretvoriti vorite

    u Ethernet preklop

    Modificirati preklop

    da pusha tok

    podataka

    Dodati podrku

    za vie prekidaa

    Modifcirati prekida

    da obrauje IP

    proslijeivanje

    Pokrenuti prekida

    na pravoj mrei

    Postavljanje

    vatrozida na

    prekida

  • 9

    Nakon instalacije potrebnih software-a pokrenuo sam VirtualBox i prispojio odgovarajui image na

    nj. Nakon toga sam provjerio rad mrea 'host' i NAT na virtualnoj maini Ubuntu. Host mrea eth0 je

    pokazivala moju lokalnu IP adresu 192.168.XX.XXX dok je NAT mrea eth1 pokazivala adresu

    10.0.2.15, to mi je bio dovoljan dokaz da su mree dobro prispojene. Nakon toga sam pokrenuo

    Xming i putty. U putty sam unio eth0 adresu i omoguio sam X11 proslijeivanje za SSH.

    Sada sam kreirao mreu sa tri virtualna hosta te jedan OpenFlow software sa 3 porta. Povezao sam

    svakog vritualnog hosta sa virtualnim ethernet kablom i namjestio im MAC adrese na jednaku

    vrijednost njihove IP adrese. Na kraju, konfigurirao sam OpenFlow da se spaja na udaljeni kontroler.

    Poslije dosta vremena utroenog na metode pokuaja i pogreke, uspio sam iztestirati i promjeniti sve

    krive podatke u virtualnoj mrei pomou komanda ping i dpctl.

    Pomou pre-built software-a Wireshark unutar VM iztestirao sam rad kontrolera i to je izgledalo

    ovako:

    4.2/4.3 Pretvoriti vorite u Ethernet preklop / Modificirati preklop da pusha tok podataka

    Koristio sam POX kontroler zbog osobne bliskosti sa Python programskim jezikom.

    Nakon instalacije POX-a provjerio sam ponaanje vorita sa komandom tcpdump

    Slika 4.2 Prikaz podataka unutar

    Wireshark-a koristei filter of

    Slika 4.3 Prikaz podataka unutar

    Wireshark-a koristei filter of && (of.type

    != 3) && (of.type !=2) (kako bi Wireshark

    ignorirao echo-zahtjeve i odgovor-

    poruke)

  • 10

    Poslije toga, Kreirao sam referentnu toku vorita kontrolera sa komandom iperf.

    Sa POX-om sam poslao par OpenFlow poruka preko python programskog jezika kako bih iztestirao

    njegov rad (ofp_action_output class, ofp_match class, ofp_packet_out OpenFlow message).

    Zakljuno, jo sam jednom pokrenuo komandu tcpdump na svakom virtualnom hostu kako bi

    verficirao sve izmjene i dodavanja.

    Kada preklopnik vie nije imao ponaanje vorita, trudio sam se sputati tok sa poznatim izvornim i

    destinacijskim portovima.

    4.4 Dodati podrku za vie prekidaa

    Poto sam radio sa POX kontrolerom, nije bilo potrebe raditi dodatne testove za podrku vie

    prekidaa jer kod kreira jednu instancu po prekidau a svaka instanca odrava svoju MAC tablu.

    4.5/4.6 Pokrenuti prekida na pravoj mrei / Modifcirati prekida da obrauje IP proslijeivanje

    Kako bi uope mogu pokrenuti prekida trebala mi je mrea koja se sastojala od 3 OpenFlow

    prekidaa, posluitelja i wireless klijenta.

    Cijela struktura:

    1. 3 OpenFlow pristupne toke

    2. FlowVisor (za virtualizirati mreu)

    3. 1 kontroler

    4. 1 Webserver

    5. 1 beini ureaj (iPhone)

  • 11

    Da bi bio u mogunosti komunicirati sa FlowVisorom, koristio sam proslijeivanje portova od strane

    putty-a.

    Nakon konfiguracije lokalne maine, beinog ureaja i FlowVisor-a (te puno pinganja i ifconfig-a)

    pokrenuo sam kontroler iz njegovog lokalnog direktorija.

    Na kraju sam konfigurirao Webserver kako bi vidio itav tok poznatih podataka od mene kao klijenta

    do posluitelja.

    4.7 Postavljanje vatrozida na prekida

    Postavljanje vatrozida je bio najjednostavniji zadatak u ovom eksperimentu. Koristio sam komandu

    iperf p 10.0.0.2 i to na klijentu i na posluitelju kako bi se blokirao bilokakav pristup podacima na

    ovom specifinom portu.

  • 12

    5. Openstack networking Neutron ili Quantum

    Neutron predstavlja OpenStack projekt koji osigurava networking as a service izmeu suelja

    ureaja kojima upravljaju drugi OpenStack servisi (npr. nova).

    Neutron daje cloud stanarima (cloud tenants) API (Application Proggraming Interface) za izgradnju

    bogatih mrenih topologija i konfiguriranje sloenijih mrea unutar cloud-a (npr kreiranje multi

    rangirane web tehnoloke topologije).

    Takoer, omoguuje inovativne dodatke (otvorenog i zatvorenog koda) koji nas upoznaju sa sloenim

    mrenim mogunostima (npr. L2-u-L3 tuneliranje radi izbjegavanja VLAN ogranienja, daje kraj-na-

    kraj QoS garancije, koritene u protokolima za nadgledanje kao NetFlow) te doputa svakome da

    izgradi svoje sloene mrene servise koji se spajaju u Openstack stanarske mree (npr. : LB-aaS,

    VPN-aaS, firewall-aaS, IDS-aaS, data-center-interconnect-aaS).

  • 13

    6. Zakljuak

    Trendovi poput korisnike mobilnosti, server virtualizacije, IT-as-a-Service i potrebe da se brzo

    odgovori na promjenjive uvjete poslovanja daju znaajne zahtjeve i teret mreama - zahtjeve koje

    dananje konvencionalne mrene arhitekture nemogu podnijeti. Softverski definirane mree daju novu,

    dinaminu mrenu arhitekturu koja transformira tradicionalne mrene okosnice u bogate service-

    delivery platforme.

    Moramo biti svjesni kako budunost umreavanja e se sve vie i vie oslanjati na software, koji e

    ubrzati tempo novih inovacija za mree kao to je ubrzao tempo u raunarstvu i skladitenju domena.

    SDN obeava promjeniti dananje statine mree u fleksibilne, programabilne platforme sa

    inteligencijom da dinamino alocira resurse, veliinu da podrava ogromna sredita podataka i

    virtualizaciju potrebnu da podrava dinamina, visokoautomatizrana i sigurna cloud okruenja.

    Sa mnogim prednostima i nevjerojatnim industrijskim momentom, SDN je na putu da postane nova

    norma za cijelokupnim mreni sustav.

  • 14

    7. Literatura

    https://wiki.engr.illinois.edu/download/attachments/197298167/CloudFlow-

    3rd.pdf?version=6&modificationDate=1336587605000

    http://www.design-ers.net/eh-rjecnik.asp

    https://wiki.openstack.org/wiki/Quantum

    https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-

    newnorm.pdf

    http://archive.openflow.org/wp/learnmore/

    http://en.wikipedia.org/wiki/Software-defined_networking