Softverski definirane mreže
July 4, 2016 | Author: Niko Konjuh | Category: N/A
Short Description
mrežice...
Description
Tehnički fakultet u Rijeci Preddiplomski sveučilišni studij računarstva
Izborni projekt – Programsko inženjerstvo 2013./2014.
Softverski definirane mreže
Student Niko Konjuh Profesor mentor doc. dr. sc. Tihana Galinac Grbac
Rijeka, 19.2.2014. 1
Sadržaj 1. Uvod - što su softverski definirane mreže? ................................................................................. 3 2. Arhitektura softverski definiranih mreža..................................................................................... 4 3. Openflow kontroler....................................................................................................................... 7 4. Eksperiment i testiranje Openflow-a............................................................................................. 8 4.1 Postavljanje virtualne mašine................................................................................................... 8 4.2/4.3 Pretvoriti čvorište u Ethernet preklop/ Modificirati preklop da „pusha“ tok podataka...... 9 4.4 Dodati podršku za više prekidača............................................................................................. 10 4.5/4.6 Pokrenuti prekidač na pravoj mreži/Modifcirati prekidač da obrađuje IP proslijeđivanje... 10 4.7 Postavljanje vatrozida na prekidač............................................................................................. 11 5. Openstack networking – Neutron ill Quantum................................................................................ 12 Zaključak....................................................................................................................................... Literatura.......................................................................................................................................
2
1. Uvod - što su softverski definirane mreže? Razvijene ne tako davne 2008. godine na američkim univerzitetima Berkeley i Stanford, softverski definirane mreže danas su nezamjenjiva mrežna arhitektura u mnogim softverskim poduzećima. Najjednostavnije, softverski definirane mreže možemo opisati kao pristup u umrežavanju računala koji omogućuje mrežnim administratorima da upravljaju mrežnim uslugama kroz apstrakciju nižih nivoa funkcionalnosti.
Slika 1.1
Sama potreba za softverski definiranim mrežama dolazi zbog nepodobnosti tradicionalnih mrežnih arhitektura da zadovolje zahtjeve današnjih poduzeća, nositelja mreža te krajnjih korisnika. Zahvaljujući širokom i upornom industrijskom nastojanju predvođenom Otvorenom mrežnom zakladom (Open Networking Foundation - ONF), softverski definirane mreže (Software Defined Networking ili kraće SDN) su postale promjenjiva mrežna arhitektura. SDN radi na principu odvajanja sustava koji donosi odluke o tome gdje će promet podataka biti poslan (the control plane - upravljačka površina) iz podložnih sustava koji proslijeđuju promet do odabrane destinacije (data plane - podatkovna površina) što na kraju pojednostavljuje umrežavanje. SDN je korak unaprijed u evoluciji programabilnog i aktivnog umrežavanja. Omogućuje mrežnim administratorima da imaju glavnu kontrolu mrežnog prometa preko kontrolera bez potrebe za fizičkom adresom na mrežnim sklopkama.
3
2. Arhitektura softverski definiranih mreža
Tri ključna elementa softverski definiranih mreža:
Sposobnost upravljanja prosljeđivanjem paketa i politika primjene istih; Sposobnost obavljanja gore navedenog u dinamičnom okruženju; Mogućnost programiranja mreža
SDN arhitektura mora biti u mogućnosti da manipulira tokom paketa i sklopovlja kroz mrežu u velikim razmjerima u programiranom modu. Hardverski cijevovod SDN-a obično će biti dizajniran kao konvergirana (sposobana prenositi sve vrste podataka uključujući željene oblike skladištenja prometa) isprepletenost velikih cijevi nižih vremena čekanja (lower latency) uobičajenog naziva fabric („tkanina“). Sama SDN arhitektura će zauzvrat pružiti širokomrežni pogled i mogućnost centralnog upravljanja mreža i mrežnih tokova. Ova arhitektura je postignuta odvajanjem upravljačke površine od podatkovne površine uređaja i pruža sučelje koje se može programirati za tu odvojenu upravljačku površinu. Podatkovna površina uređaja prima pravila proslijeđivanja od odvojene upravljačke površine i primjenjuje ta pravila u hardveru ASIC-sa. Ti ASIC-i mogu biti ASIC-i za razmjenu dobara ili prilagođeni silikonski ovisno o funkcionalnosti i preformansama potrebnih aspekata.
Sljedeći dijagram prikazuje taj odnos:
Slika 2.1 U ovom modelu, SDN kontroler daje upravljačku površinu, a podatkovna površina se sastoji od hardverski sklopnih uređaja. Ti uređaji mogu biti potpuno novi hardverski uređaji ili postojeći uređaji sa specijaliziranim ugrađenim softverom (firmware-om)
4
Kako je tema softverski definiranih mreža jako popularna tema u mrežnoj industriji, stručnjaci su još uvijek podvojeni oko najboljeg načina implementacije te načina na koji će utjecati na inžinjere i administratore. No jedna je činjenica neosporna: SDN je donio novu pažnju i inovaciju u umrežavanju. Kako bi dobili uvid u različite pristupe SDN-a sljedeće su nabrojene i opisane neke od najvećih/najvažnijih SDN tehnologija od različitih prodavača. I
Big Switch Networks Open SDN
Slika 2.2
Big Switch Networks' Open SDN platforma nudi Openflow fabric prekidač koji se može izvoditi na golim metalnim sklopkama i hipervizor virtualnim sklopkama, te omogućuje širok izbor SDN mrežnih aplikacija uključujući podatkovni centar za mrežnu virtualizaciju i nadzor mreže. II Cisco eXtensible Network Controller (XNC) Cisco XNC je Java OSGi bazirana aplikacija izgrađena za potporu nadogradivosti, proširivosti i modularnosti potrebnih za brzi razvoj poduzetnih IT arhitektura. III IBM SDN VE
5
IBM Software Defined Network for Virtual Environments stvara virtualnu mrežu za virtualne uređaje. Ova virtualna mreža je odvojena i izolirana od fizičke mreže slično kao što je virtualni uređaj odvojen i izoliran od hardvera domaćina poslužitelja (host server hardware). IV Midokura MidoNet Midokura's MidoNet je raspoređen decentraliziran mrežno-virtualizacijski projekt koji je osmišljen u svrhu Infrastructure-as-a-Service (IaaS) oblaka (cloud) kao na primjer OpenStack i CloudStack. Midonet dopušta krajnjim korisnicima da izgrađuju proizvoljne, kompleksne mrežne topologije u svojim cloud okružjima, ne trebajući ništa više od IP povezivosti od fizičke mreže. V Juniper Networks Contrail
Slika 2.4
Juniper Networks Contrail je virtualni overlay sustav za mrežne virtualizacije i inteligencije. Kroz RESTful API-je Contrail radi sa CloudStack i OpenStack arhitekturama kako bi zajedno osigurali zalihe mrežnih,računalnih i memorijskih resursa. Contrail-ov SDN kontroler virtualizira mrežu kako bi omogućila automatizaciju i izvođenje hibridnih cloud okruženja, elastičnih usluga ulančavanja mreža i sigurnosnih usluga te BDI („Big Data for Infrastructure“) analitičkih mašina koje pružaju „real-time“ pogled u cijelu mrežu.
6
3. OpenFlow
Mnogi stručnjaci smatraju da je Openflow kontroler kao protokol krucijalan za rast i širenje ukupnog SDN-a. OpenFlow je otvoreni standard koji omogućuje istraživačima da pokreću eksperimentalne protokole na mrežama koje se svakodnevno koriste. OpenFlow je dodan kao svojstvo komercijalnim Ethernet preklopnicima, usmjerivačima i bežičnim pristupnim točkama i pruža istraživačima mogućnost izvođenja eksperimenata, bez potrebe da prodavači otkrivaju unutarnje procese svojih mrežnih uređaja. Trenutačno, OpenFlow se provodi od strane velikih proizvođača. U klasičnim usmjerivačima (routerima) brzo proslijeđivanje paketa (put podataka) i odluke usmjerivača visokog stupnja pojavljaju se na istom uređaju. Openflow razdvaja te dvije funkcije. Put podataka je još uvijek na prekidaču, dok su odluke usmjerivača prebačene na odvojeni kontroler, obično server. Openflow i Kontroler komuniciraju preko Openflow protokola, koji definira poruke tipa: prihvaćeni podaci (packet-received), poslani paketi (sent-packet-out), mijenjaj proslijeđivanja (modify-forwarding-table) i get statistike. Svrha samog Openflow-a jest jednostavno implementiranje inovativnog usmjeravanja i prebacivanja protokola u mreži. Koristi se kod aplikacija kao što su virtualne mašine, mrežama visoke sigurnosti te mobilnim IP mrežama nove (sljedeće generacije). Openflow sadrži mnoge prednosti u odnosu na ostale SDN standrade:
Centralizirana kontrola okruženja sa više dobavljača
Smanjena složenost kroz automatizaciju
Viša stopa inovacije
Povećana mrežna sigurnost i pouzdanost
Preciznije kontrole mreže
Bolje korisničko iskustvo
Nažalost, jako je mala zainteresiranost velikih korporacija i sveučilišta oko implemetnacije Openflowa u studentski i/ili poslovni program učenja. Glavni mrežni arhitekt Sveučilišta u Indiani (Indiana University) i izvršni upravitelj InCNTRE-a Matt Davy je rekao: „Trenutno je ogroman interes oko Openflow-a, a jedino Sveučilište u Indiani (IU) uči svoje studente toj tehnologiji. Kao svjetski lider u unapređenju SDN-a i Openflow-a, Sveučilište u Indiani je dobro opremljeno za pružanje obuke i edukacijskih programa za ostale programere koji se žele u tome okušati.“ 7
4. Eksperiment i testiranje Openflow-a
Modifcirati prekidač da obrađuje IP proslijeđivanje
Postavljanje virtualne mašine
Modificirati preklop da „pusha“ tok podataka
Pretvoriti čvorište u Ethernet preklop
Dodati podršku za više prekidača
Pokrenuti prekidač na pravoj mreži
Postavljanje vatrozida na prekidač
Slika 4.1 Shema eksperimentalnog rada sa Openflow-om
4.1 Postavljanje virtualne mašine Instalacija 3 potrebna besplatna software-a za pokretanje virtualne mašine i u konačnici Openflow-a:
VirtualBox – virtualizacijski software
Putty – ssh konzola/terminal
Xming – X server
Te image za virtualnu mašinu sa Openflow službene stranice.
8
Nakon instalacije potrebnih software-a pokrenuo sam VirtualBox i „prispojio“ odgovarajući image na nj. Nakon toga sam provjerio rad mreža 'host' i NAT na virtualnoj mašini Ubuntu. Host mreža eth0 je pokazivala moju lokalnu IP adresu 192.168.XX.XXX dok je NAT mreža eth1 pokazivala adresu 10.0.2.15, što mi je bio dovoljan dokaz da su mreže dobro prispojene. Nakon toga sam pokrenuo Xming i putty. U putty sam unio eth0 adresu i omogućio sam X11 proslijeđivanje za SSH. Sada sam kreirao mrežu 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 utrošenog na metode pokušaja i pogreške, uspio sam iztestirati i promjeniti sve krive podatke u virtualnoj mreži pomoću komanda ping i dpctl. Pomoću pre-built software-a Wireshark unutar VM iztestirao sam rad kontrolera i to je izgledalo ovako:
Slika 4.2 Prikaz podataka unutar Wireshark-a koristeći filter of
Slika 4.3 Prikaz podataka unutar Wireshark-a koristeći filter of && (of.type != 3) && (of.type !=2) (kako bi Wireshark ignorirao echo-zahtjeve i odgovorporuke)
4.2/4.3 Pretvoriti čvorište 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 ponašanje čvorišta sa komandom tcpdump
9
Poslije toga, Kreirao sam „referentnu točku“ čvorišta 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). Zaključno, još sam jednom pokrenuo komandu tcpdump na svakom virtualnom hostu kako bi verficirao sve izmjene i dodavanja. Kada preklopnik više nije imao ponašanje čvorišta, trudio sam se spuštati tok sa poznatim izvornim i destinacijskim portovima.
4.4 Dodati podršku za više prekidača Pošto sam radio sa POX kontrolerom, nije bilo potrebe raditi dodatne testove za podršku više prekidača jer kod kreira jednu instancu po prekidaču a svaka instanca održava svoju MAC tablu.
4.5/4.6 Pokrenuti prekidač na pravoj mreži / Modifcirati prekidač da obrađuje IP proslijeđivanje Kako bi uopće mogu pokrenuti prekidač trebala mi je mreža koja se sastojala od 3 OpenFlow prekidača, poslužitelja i wireless klijenta. Cijela struktura: 1. 2. 3. 4. 5.
3 OpenFlow pristupne točke FlowVisor (za virtualizirati mrežu) 1 kontroler 1 Webserver 1 bežični uređaj (iPhone)
10
Da bi bio u mogućnosti komunicirati sa FlowVisorom, koristio sam proslijeđivanje portova od strane putty-a. Nakon konfiguracije lokalne mašine, bežičnog uređaja 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 poslužitelja.
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 poslužitelju kako bi se blokirao bilokakav pristup podacima na ovom specifičnom portu.
11
5. Openstack networking – Neutron ili Quantum
Neutron predstavlja OpenStack projekt koji osigurava „networking as a service“ između sučelja uređaja kojima upravljaju drugi OpenStack servisi (npr. nova). Neutron daje „cloud stanarima“ (cloud tenants) API (Application Proggraming Interface) za izgradnju bogatih mrežnih topologija i konfiguriranje složenijih mreža unutar cloud-a (npr kreiranje multi rangirane web tehnološke topologije). Također, omogućuje inovativne dodatke (otvorenog i zatvorenog koda) koji nas upoznaju sa složenim mrežnim mogućnostima (npr. L2-u-L3 tuneliranje radi izbjegavanja VLAN ograničenja, daje kraj-nakraj QoS garancije, korištene u protokolima za nadgledanje kao NetFlow) te dopušta svakome da izgradi svoje složene mrežne servise koji se spajaju u Openstack stanarske mreže (npr. : LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS, data-center-interconnect-aaS).
12
6. Zaključak
Trendovi poput korisničke mobilnosti, server virtualizacije, IT-as-a-Service i potrebe da se brzo odgovori na promjenjive uvjete poslovanja daju značajne zahtjeve i teret mrežama - zahtjeve koje današnje konvencionalne mrežne arhitekture nemogu podnijeti. Softverski definirane mreže daju novu, dinamičnu mrežnu arhitekturu koja transformira tradicionalne mrežne okosnice u bogate servicedelivery platforme.
Moramo biti svjesni kako budućnost umrežavanja će se sve više i više oslanjati na software, koji će ubrzati tempo novih inovacija za mreže kao što je ubrzao tempo u računarstvu i skladištenju domena. SDN obećava promjeniti današnje statične mreže u fleksibilne, programabilne platforme sa inteligencijom da dinamično alocira resurse, veličinu da podržava ogromna središta podataka i virtualizaciju potrebnu da podržava dinamična, visokoautomatizrana i sigurna cloud okruženja. Sa mnogim prednostima i nevjerojatnim industrijskim momentom, SDN je na putu da postane nova norma za cijelokupnim mrežni sustav.
13
7. Literatura
https://wiki.engr.illinois.edu/download/attachments/197298167/CloudFlow3rd.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-sdnnewnorm.pdf http://archive.openflow.org/wp/learnmore/ http://en.wikipedia.org/wiki/Software-defined_networking
14
View more...
Comments