softver telekomunikacionih sistema - project-benefit · 2019. 12. 23. · veliki logički svič....
TRANSCRIPT
Softver telekomunikacionih sistema
Univerzitet u Novom SaduFakultet tehničkih naukaDepartman za energetiku, elektroniku i
telekomunikacije
Katedra za telekomunikacije i obradu signala
Softverski definisano umrežavanje(eng. Software Defined Networking - SDN)
Sadržaj
• Trenutno stanje u oblasti networking-a
• Arhitektura softverski definisanih mreža
• Protokoli u softverski definisanim mrežama
• Open vSwitch
• SDN primena
• Zaključak
Nedostaci u tradicionalnim mrežama• Kompleksnost upravljanja mrežom sastavljenom od
uređaja različitih proizvođača– Rešenja različitih proizvođača nisu interoperabilna
– Grafički interfejs za upravljanje mrežom nije standardizovan
• Veliki broj funkcionalnosti definisanih u hardveru– Skupa realizacija
– Nedovoljno fleksibilna rešenja da odgovore na zahteve korisnika
– Dugotrajan proces standardizacije protokola
• Ograničena mogućnost za ne-telekom operatere da dobiju ono što žele
Motivi za razvoj nove tehnologije umrežavanja• Smanjenje kompleksnosti računarskih mreža:
– Implementacija hardvera sa jedinstvenim softverskim interfejsom, u cilju lake i jednostavne administracije.
– Standardizacija upravljanja mrežom nezavisno od proizvođača opreme kroz realizaciju adekvatnog grafičkog interfejsa.
• Smanjenje latencije u mreži: – Optimalna podela poslova između hardvera i softvera.
– Hardverski podržan softverski switching (prenos dela poslova sa procesora na hardver).
• Viši stepen pouzdanosti i elastičnosti u mreži:– Mobilnost korisnika.
– Dinamička alokacija resursa.
– Prilagođavanje potrebama korisnika.
– Brza i jednostavna realizacija novih servisa.
Kakva treba da izgleda nova arhitektura mreže?
• Nova mrežna arhitektura mora da razdvoji funkciju upravljanja od funkcije prosleđivanja paketa:
– Pojednostavljuje programabilnost u mrežama
– Omogućuje softversko upravljanje hardverom sa udaljene lokacije.
Kakva treba da izgleda nova arhitektura mreže?
• Nova mrežna arhitektura mora da razdvoji funkciju upravljanja od funkcije prosleđivanja paketa:– Uvodi programabilnost u mrežu– Omogućuje softversko upravljanje
hardverom sa udaljene lokacije.
• Logička centralizacija inteligencije u softverski zasnovanom kontroleru:– Kontroler održava globalnu sliku o mreži,
čime je proces donošenja odluka pojednostavljen i zasnovan na celokupnoj mreži, a ne na pojedinim elementima.
– Za aplikacije cela mreža deluje kao jedan veliki logički svič.
Logički centralizovana kontrola
API za infrastrukurni slojOpenFlow
Pametan, spor
Switch-evi
Brz, nije inteligentan
Karakteristike nove arhitekture mreže• Razdvajanje mrežnog softvera na slojeve:
– Sloj upravljanja (eng. management plane)
– Sloj servisa (eng. services plane)
– Sloj kontrole (eng. control plane)
– Sloj prosleđivanja paketa (eng. forwarding plane).
• Programabilnost
– Dinamičko (softversko) upravljanje SDN mrežom
– Primena otvorenih API-a, radi primene aplikacija za dinamičku i automatizovanu konfiguraciju i optimizaciju mrežnih resursa (nezavisno od proizvođača opreme).
• Apstrakcija na osnovu flow tabele
– Korisničke aplikacije izdvojene od mrežnih elemenata, a mrežni uređaji apstrahovani u odnosu na upravljački sloj
– Odvajanje kontrole ravni od prosleđivanja omogućava dinamičku alokacija resursa prema potrebama korisnika.
Arhitektura SDN mreže
SDN алат за оркестрацију
Aplikacioni sloj
Poslovne aplikacije
npr. OpenStack, CloudStack
Kontrolni sloj
SDN kontroler
Mrežni
servisi
Programabilni API
Infrastrukturni sloj
Мрежни
уређај
Мрежни
уређајMrežni uređaj Mrežni uređaj Mrežni uređaj
Interfejs između kontrolnog i sloja
Infrastrukture (npr. OpenFlow)
SD
N a
rhite
ktu
ra
Slojevi SDN mreže
• Slojevi SDN arhitekture:
– Aplikativni sloj (korisničke aplikacije, koje koriste SDN komunikacione servise)
– Kontrolni sloj (centralizovana kontrola i nadzor prosleđivanja saobraćaja u mrežu kroz OpenFlow protokol za komunikaciju sa infrastrukturnim slojem)
– Infrastrukturni sloj (mrežni elementi (fizički i virtuelni) sa implementiranim OpenFlow protokolom za primenu pravila prosleđivanje saobraćaja).
• API za komunikaciju između:
– Southbound (interfejs između kontrolnog i infrastrukturnog sloja)
– Northbound (interfejs između kontrolnog i aplikativnog sloja).
Kako se implementira SDN arhitektura mreže?
• SDN mreža se gradi na postojećoj fizičkoj infrastrukturi tako što se:– Postojeći uređaji menjaju virtuelnim koji
rade sa OpenFlow protokolom, ili
– Gradi overlay mreža u kojoj SDN kontroler komunicira sa tradicionalnom infrastrukturom preko BGP i SNMP protokola.
• SDN mreža spolja izgleda kao jedan veliki logički svič.
• SDN se može realizovati primenom open-source ili komercijalnih rešenja (HP, Brocade, Cisco, NEC, Juniper,…)
NFV i SDN
• NFV i SDN su komplementarni ali ne postoji međusobna zavisnost (NFV se može primeniti bez SDN i obrnuto).
Open Innovation
SoftwareDefined
Networking
NetworkFunctions
Virtualisation
Šta je uloga southbound interfejsa?
• Obezbeđuje komunikaciju između SDN kontrolera i mrežnih uređaja na sloju infrastrukture
– Implementiran je u otvorenom standradu
– Nezavisan je od proizvođača opreme
– Garantuje punu interoperabilnostopreme različitih proizvođača.
OpenFlow protokol
• OpenFlow protokol je prvi i jedini standardizovan interfejs između upravljačkog i infrastrukturnog sloja koji omogućava prosleđivanja saobraćaja u SDN.
– Koristi koncept tokova podataka (eng. flow) za prepoznavanje saobraćaja na osnovu predefinisanih pravila, koja su statički ili dinamički definisana u upravljačkom softveru
– Može se primeniti u postojećim fizičkim i virtuelnim mrežama, a zbog svoje fleksibilnosti i u multi-vendor mrežama
– Za razliku od tradicionalnih IP mreža, koristi istu putanju za pakete kroz mrežu, a upravljanje karakteriše granularnost na nivou aplikacije, korisnika i sesije.
Priroda OpenFlow komunikacije
• SDN kontroler (negde se naziva i OpenFlow kontroler) sa svičevima komunicira preko OpenFlow protokola.
• Komunikacija između kontrolera i mrežnih uređaja je enkriptovana iodvija se preko SSL-a.
Šta je to OpenFlow logički switch?
• OpenFlow logički switch je mrežni uređaj koji objedinjuje funkcije različitih uređaja:
– Ruter
Uparuje: najduži destinacioni IP prefiks
Akcija: prosleđuje sa linka
– Switch Uparuje : destinacionu MAC adresu
Akcija: prosleđuje ili flood-uje pakete
– Firewall Uparuje : IP adrese i TCP/UDP broj porta
Akcija : dozvoljava ili zabranjuje
– NAT uređaj Uparuje : IP adresu i port
Akcija : prepravlja IP adresu i port.
Šta čini OpenFlow logički switch?
• OpenFlow logički svič čini:
– Jedna ili više flow tabela i grouptabelu na osnovu kojih se vrši prosleđivanje saobraćaja
– Meter tabele u kojoj je broj tokova, paketa, bajta i trajanje konekcija
– Jedan ili više OpenFlow kanala ka eksternom kontroleru
• Kontroler korišćenjem OpenFlow protokola menja zapise o tokovima podataka u flow tabelama.
Kako OpenFlow upravlja paketima?
• OpenFlow definiše sledeća pravila za upravljanje paketima:
– Obrazac: mečuje bitove u zaglavlju paketa
– Akcije: odbacivanje, prosleđivanje, modifikovanje, slanje kontroleru
– Prioritet: nedvosmisleno preklapanje obrazaca
– Brojači: brojač bajtova i brojač paketa.
OpenFlow tabela
• OpenFlow tabela sadrži niz instrukcija na osnovu kojih se vrši prosleđivanje saobraćaja.
Kako se prosleđuju paketi?
• Podaci dolaze do switch-a koji radi lookup
• Kako ključ za lookup se koriste polja iz zaglavlja paketa
• Ako ne postoji zapis u flow tabeli, switch šalje prvi paket na kontroler
• Kontroler analizira paket i „programira“ flow tabelu switch-a
• Forwarding engine vrši prosleđivanje paketa.
Višestruki lookup
Улазни
порт
Извор.
MAC
адреса
Дестин.
MAC
адреса
Ethernet
ТипVLAN ID
VLAN
Приори-
тет
IP
Извор.
адреса
IP
Дестин.
адреса
IP
Прото-
кол
IP
TOS
TCP/UDP
Изворни
порт
TCP/UDP
Дестин.
порт
MPLS
Лабела
MPLS
Класа
саобра-
ћаја
OF model višestrukog lookup-a
Flow
Tabela 0Flow
Tabela 1
Flow
Tabela n... Izvršavanje skupa
akcija
Ulazni port
Paket ulazi
Skup akcija {} Skup akcija
Skup akcija
Paket izlazi
Paket+
Ulazni port+
MetadataPaket
OpenFlow aplikacije
• Dinamička kontrola pristupa bez postojanja posebnog uređaja:– Provera prvog paketa u svakoj konekciji
– Kontrola pristupa (provera kršenja prava pristupa u realnom vremenu)
– Pravila za blokiranje i rutiranje saobraćaja (provera petlji, suboptimalno rutiranje).
• Neograničena mobilnost– Host se prepoznaje, a saobraćaj šalje na
novu lokaciju hosta.
– Modifikuju se pravila da bi se saobraćaj efikasno prerutirao
• Balansiranje opterećenja po tokovima.
OpenFlow protokol -standardi• OpenFlow v1.0 – inicijalni standard
• OpenFlow v1.1 – Podržava višestruke flow tabele– MPLS podrška– Dva načina rada – Pure OpenFlow i Hybrid
• OpenFlow v1.2– IPv6 podrška
• OpenFlow v1.3– Flow meter (policing) podrška– Podrška za GRE (Generic Route Encaptulation) tunele– Podrška za IPv6 extended header
• OpenFlow v1.4– Podrška za optičke portove– Promenjen TCP port (6653).
Open vSwitch
• Open vSwitch je nastao iz OpenFlow projekta Stenford univerziteta, a dizajniran je da podrži upravljanje switch-evima i ruterima preko OpenFlow softvera.
– Open vSwitch podržava različite tehnologije virtuelizacije, kao što su Xen, KVM i VirtualBox.
• Implementira se pomoću hipervizora, da bi virtuelne mašine međusobno, ali i sa spoljnim svetom razmenjivale saobraćaj.
• Cilj je realizacija okruženja sa:
– Dinamičkim krajnjim tačkama (eng. end points)
– Permanentnom logičkom apstrakcijom
– Izmeštanjem pojedinih funkcija hardvera switch-eva.
Na čemu se zasniva koncept Open vSwitch-a?
• Prosleđivanje paketa u skladu sa pravilima OpenFlow protokola.
• Obezbeđuje komunikaciju između virtuelnih mašina, ali i virtuelnih mašina sa „fizičkim interfejsima“.
• Podržava ethernet tehnologiju i primenu VLAN-ova i omogućava integraciju virtuelnih okruženja
Eksterni interfejsi
Slow path Fast path
Fizički interfejs Fizički interfejs
Virtuelni
interfejs
Virtuelni
interfejs
Virtuelna mašina Virtuelna mašina
Virtuelni interfejs
Motivi za implementaciju
• Kontrola nad mrežom:– Proizvoljne topologije dozvoljavaju bilo kakvu (razumnu)
konfiguraciju
– Sopstveni kontroler omogućava finu, granularnu kontrolu mreže
– Jednostavna apstrakcija “velikog sviča” ili “seta virtuelnih mašina”
• Skalabilnost:– Podrška za veliki broj virtuelnih mašina
– Mogućnost smanjenja mreže na fizičkom nivou
• Efikasnost:– Mali porast kašnjenja pri prolasku kroz mrežu
– Mala potrošnja resursa na sloju virtuelizacije.
Funkcionalnosti Open vSwitch-a• Port bonding
• LACP
• Podrška za 802.1Q VLAN-ove i trunking
• Monitoring saobraćaja virtuelnih mašina (sFlow, NetFlow, SPAN, RSPAN)
• Fina granulacija saobraćaja (Access liste i polise za QoS)
• Centralizovana kontrola kroz OpenFlow
• Rad u Linux hipervizorima: Xen, XenServer, KVM, VirtualBox
• Kernel i userspace implementacija switch-a
• Tunneling
• Puna funkcionalnost L2 switch-a.
Arhitektura Open vSwitch-a
• Open vSwitch je softverski svič smešten unutar hipervizora ili domena za menadžment (npr. Dom0 u Xen).
• Fleksibilan kontroler za User space i Datapath u kernelu.
Open vSwitch Controller
Open vSwitch Datapath
Server
Monitoring saobraćaja
• sFlow je standard za eksportovanje podataka sa L2 sloja koji koristi dve vrste uzorkovanja za postizanje skalabilnosti:– Slučajno uzorkovanje paketa
– Time-based uzorkovanje brojača
• Pogodan je za primenu u mrežama velikih brzina (Gb/s i veće) gde se uzorkovani podaci sšalju kao UDP paketi na određeni host i port 6343.
• Ako se uzorci brojača izgube, nove vrednosti se šalju u sledećem intervalu, a efektivna brzina uzorkovanja će biti blago smanjena.
Upravljanje tokovima paketa
• Prvi paket je spor, dok se naredni paketi brzo prosleđuju.
• Prvi paket iz toka šalje se na kontroler koji paket može da:
– Prosledi na drugi port ili portove (mirror)
– Enkapsulira i prosledi na drugi kontroler
– Odbaci
– Vrati paket na datapath
• Ostali paketi se šalju direktno na datapath.
OVS instanca
• OVS instanca obuhvata:– Server baze podataka (ovsdb-server) – Open vSwitch daemon (OVS-vswitchd) – Modul koji obavlja brzo prosleđivanje (fast
forwarding path).
• OVS instanca može da podrži više logičkih datapath-ova koje se nazivaju bridge– Postoji najmanje jedan kontroler za svaki OpenFlow
bridge.
• Klaster za upravljanje i kontrolu sastoji se od određenog broja menadžera i kontrolera: – Menadžeri koriste OVSDB protokol da upravljaju OVS
instancama. – Kontroleri koriste OpenFlow za instaliranje stanja
tokova u OpenFlow switch-evima.
OVSDB klijent
• OVSDB klijent može da zada neku od komandi:– list-dbs server (preuzima listu podataka i ispisuje
jednu po liniji)– get-schema server database (povezuje se na server,
pronalazi šemu za bazu podataka i prikazuje je u JSON formatu)
– get-schema-version server database (vezuje se na server, pronalazi šemu za bazu podataka, i štampa broj verzije)
– list-tables server database (povezuje se na server, pronalazi šemu za bazu podataka i ispisuje tabelu sa spiskom imena svake)
– list-columns server database [table] (povezuje se na server, pronalazi šemu za bazu podataka i ispisuje tabelu sa spiskom imena i tipom svake kolone)
– transact server transaction (povezuje se na server, šalje zahtev za transakciju (JSON niz) sa jednom ili više OVSDB operacija i prikazuje dobijeni odgovor).
ovs-switchd modul
• ovs-vswitchd modul omogućava da svič komunicira sa kernel modulom preko netlink protokola
ovs-vswitchd modul
• Glavna komponenta sistema, koja:
– Komunicira sa spoljašnjim svetom preko OpenFlow-a
– Komunicira sa ovsdb serverom preko OVSDB protokola
– Komunicira sa kernel modulom preko netlink-a
– Komunicira sa sistemom kroz netdev abstract interfejs.
• Podržava više nezavisnih datapath-ova, klasifikuje pakete i podržava efikasan lookup za tokove koristeći wildcard masku za brzo rutiranje
• Implementira mirroring, bonding i VLAN-ove kroz modifikaciju flow tabele.
Ostale komponente
• ovs-vswitchd: daemon koji implementira svič zajedno sa Linuks kernel modulom za svičing tokova (flow based switching)
• ovsdb-server: lightweight server baze podataka koji odgovara na upite ovs-vswitchd
• ovs-vsctl: programski modul za upite i konfiguraciju ovs-vswitchd
• ovs-dpctl: tool za konfiguraciju i monitoring svič kernel modula
• ovs-appctl: programski modul koji šalje komande za izvršavanje daemon procesa
• ovs-contorller: Open Flow kontroler
• brocompat.ko: Linuks bridž modul
• openvswitch.ko: Open vSwitch datapath
GRE i Open vSwitch
• OVS može da koristi GRE tunele između hostova za enkapsulaciju saobraćaja i kreiranje overlay mreža.
• Ovaj proces se sastoji iz tri koraka:– Kreiraju se posebni tuneli (izolovani bridž za
konektivnost virtulenih mašina)
– Kreiraju se krajnje tačke GRE tunela na svakom hipervizoru
– Dodaje se GRE interfejs i uspostavlja GRE tunel.
Floodlight
• Floodlight je open-source OpenFlow kontroler
• Napisan u Javi
• Jednostavni se instalira
• Može se primeniti u kombinovanim mrežama (kombinacija OpenFlow i non-OpenFlow mreža)
• Veliki broj komercijalnih svičeva(Brocade, Dell, HP,…) je kompatibilan sa ovim kontrolerom.
Koje funkcionalnosti se realizuju u SDN-u?• SDN aplikacije implementiraju kontrolnu logiku, koja se
preko niza komandi izvršava u okviru sloja prenosa podataka
• Mogu se realizovati različite funkcionalnosti:
– Rutiranje
– Traffic engineering
– Load balancing
– Performance management
– Security
– QoS
– …
Gde se primenjuje SDN?
• Naučno-istraživački centri
• Enterprise okruženje
• Data centri
• Servis provajderi
• Cloud okruženje
• …
SDN u campus okruženju
• SDN u campus okruženju donosi sledeće prednosti:– Brza primena novih servisa bez uticaja na
druge logičke mreže zahvaljujući virtuelizaciji
– Povećanje dostupnosti servisa zbog mogućnosti postojanje predefinisanih alternativnih putanja, što znatno smanjuje vreme konvergencije u poređenju sa tradicionalnim mrežama
– Izolacija saobraćaja logičkih mreža na L2i L3 slojevima
– Optimalno korišćenje resursa pošto su upravljanje, kao i servisi i aplikacije, virtuelizovani kako bi se optimalno koristili prostor i napajanje.
SDN u mobilnim mrežama
• Mobilni operatori mogu primeniti SDN u cilju kontrolisanja saobraćaja.
• OpenFlow kontroler komunicira sa ANDSF modulom (Access network discovery and selection function), koji pruža informacije o konektivnosti korisničkih uređaja i mobilnim mrežama, kako bi realizovao prebacivanje korisnika sa jednu na drugu mobilnu, pa čak i na Wi-Fi mrežu.
SDN u mrežama servis provajdera
• Servis provajderi mogu koristiti SDN za realizaciju različitih servisa, kao što je Bandwidth on Demand.
SDN u mrežama servis provajdera
• Servis provajderi mogu koristiti SDN za realizacijurazličitih servisa, kao što je QoS
SDN u mrežama servis provajdera
• Servis provajderi mogu koristiti SDN za realizaciju managed servisa umesto tradicionalnih managed servisa koji zahtevaju postojanje skupe opreme.
SDN tehnologija i Google
• Google primenjuje SDN za WAN mrežu od 2011. godine.
pubs/archive/41761.pdf
Zaključak
• Novi mrežnih servisi i aplikacije postavljaju visoke zahteve u pogledu skalabilnosti, dostupnosti i fleksibilnosti, koje tradicionalne računarske mreže sve teže ispunjavaju.
• Novi trend u projektovanju mrežne infrastrukture je okrenut ka uvođenju programabilnosti odnosno primeni softverski definisanih mreža.
• Izazovi:– Dizajn svičeva
– Izbor kontrolera i merenje performansi
– Broj i pozicija kontrolera umreži
– Problem single-point-of-failure i uvođenje više kontrolera
– Integracija sa postojećom mrežnom infrastrukturom
– …