76
C rs 13 Curs 13 P h WSGI Python WSGI 13 ianuaire 2010 Mihai Maruseac Mihai Maruseac

RL curs13 CC.ppt - andrei.clubcisco.roandrei.clubcisco.ro/cursuri/3rl/razvan/RL_curs13_CC.pdf · Detalii tehnice • SVG a fost creat ca un protocol standard pentru a descrie modele

Embed Size (px)

Citation preview

C rs 13Curs 13

P h WSGIPython WSGI

13 ianuaire 2010Mihai MaruseacMihai Maruseac

2

Common Gateway Interface

• CGI: delegare creare pagini web către alte aplicații

• CGI script

• 1993 RFC 3875• 1993, RFC 3875

• Ex: un wiki

• Probleme:erori de coding → code injec onproces nou

• Alternative:FastCGIFastCGIModule Apache, IIS ISAPI pluginsWSGI

3

Python Web Server Gateway Interface

• Low‐level față de CGI

S l ă i l ă î dii lti ltith d• Scalează și lucrează în medii multiproces sau multithread

• strat între aplicație și web server• strat între aplicație și web server

• Nu server web

mod_wsgi, Paste, CherryPy, wisgiref.simpleserver

• Nu web framework

Django,  Pylons, etc

4

WSGI – Introducere 

• 2003, PEP 333 (Python Enhancement Proposal)

• Interfața standard între aplicații web în Python și servere b (J l t )web (Java servlets)

• 2 componente obligatorii:• 2 componente obligatorii: 

server/gateway/g y

framework/ aplicație

• opțional componente middleware

• tip nou de dezvoltare aplicații web: componente middleware cuplate între elemiddleware cuplate între ele

5

WSGI – PEP 333 (1) 

• Application side: doar un obiect callable

• 2 argumente; apeluri multiple

E l 1 H ll W ld• Exemplu1: Hello World

• environ: toată informația despre request informații de la• environ: toată informația despre request, informații de la alte layere

• start_response: antete de răspuns

• return: neapărat un iterator (răspuns în bucăți)

6

WSGI – PEP 333 (2) 

• Server side: apelează un callable object oferit de aplicație ( bi t t dă ll )(obiect ce are o metodă __call__)

• Nu se specifică cum va fi oferit acest obiect• Nu se specifică cum va fi oferit acest obiect

• Exemple de obiecte callable: funcții, metode sau instanțe p ț , țale unor clase ce conțin metoda __call__

• Se invocă obiectul pentru fiecare cerere HTTP

E l 2 fi i• Exemplu2: server fișiere

7

WSGI – PEP 333 (3) 

• Middleware: componente ce joacă ambele roluri

• rutare, load‐balancing, autentificare, error handling etchandling, etc

• Prezență transparentă celorlalte componente

• Pot fi înlănțuiteț

• Exemplu 3: jurnalizare evenimente

8

WSGI – PEP 333 (4) 

• Pentru eficiență s‐ar folosi buffering

• Se întoarce un singur element, iterabil

• Transmisie în blocuri

• Fara intarzieri

U i d HTTP l ă → i i WSGI• Unicode: HTTP nu‐l suportă → nici WSGI

• Python are Unicode• Python are Unicode

9

Integrare cu un server web

• WrappersWrappers

• IIS: isapi‐wsgip g

• Apache: mod_wsgi, mod_python

• mod_python: din ce în ce mai puțin dezvoltat, nerecomandatnerecomandat

• wsgiref: zeroconf server (simple server)wsgiref: zeroconf server (simple_server)

10

Demo Bonus

• Avem o aplicație sub forma unui applet javaAvem o aplicație sub forma unui applet java

• Vrem să ascundem sursele

• Blocăm listarea conținutului directorului

• Sursele pot fi descărcate

• Nu le putem face unreadable şi nici nu putem face director• Nu le putem face unreadable şi nici nu putem face director ne‐executabil (nu ne va mai rula aplicația)

• Solutia: nu dăm link‐ul direct către applet, mini dispatcher WSGI

11

Bibliografie

• http://en.wikipedia.org/wiki/Common_Gateway_Interface

• http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface

• http://pythonpaste org/do‐it‐yourself‐framework htmlhttp://pythonpaste.org/do it yourself framework.html

• http://groovie.org/2005/10/06/wsgi‐and‐wsgi‐middleware‐is‐easy

• http://www.python.org/dev/peps/pep‐0333/

• http://lucumr pocoo org/2007/5/21/getting‐started‐with‐wsgihttp://lucumr.pocoo.org/2007/5/21/getting started with wsgi

• http://www.xml.com/pub/a/2006/09/27/introducing‐wsgi‐pythons‐secret‐web‐weapon htmlweapon.html

• http://webpython.codepoint.net/web_python_tutorial

• http://grep.ro/quickpub/rtt‐wsgi

12

C rs 13Curs 13

SVGScalable Vector Graphics„copilul vitreg al Graficii Web”

13 ianuaire 2010Pandia GheorghePandia Gheorghe

Detalii tehnice

• SVG a fost creat ca un protocol standard pentru a descriemodele grafice 2‐dimensionale, combinând varietateafuncționalităților limbajului flash cu facilitățile oferite de HTML.

let $new-circle :=let $new-circle :=<svg:circle cx="6.5cm" cy="2cm" r="100" style="fill:orange;

stroke:black; stroke-width:0.1cm" transform "translate(140 50)"/>transform="translate(140,50)"/> for $g in doc("/circles1.svg")//svg:greturninsert node $new-circle as last into $g

Tool‐uri

• Pentru crearea imaginilor în format SVG există diferite tool‐urispecializate, cel mai popular (recomandat și pe site‐ul oficialp , p p ( ș pw3c) fiind Amaya – care editează și site‐uri nu numai imagini.

Alt tool recomandat:Alt tool recomandat:- Adobe Illustrator.

T l i fTool-uri free:- Linkscape- Nodebox- Karbon14- Scribus- Synfigy g- SK1- ZCubes

2D vs 3D

• Deși original SVG a fost scris pentru imagini 2D, posibilitatea de a adăugaanimații și folosirea de scripting pentru interpretarea de evenimente a datnaștere unui nou curent de folosire a SVG‐ului în imagini (aplicații) 3D.

• Versiunea următoare (SVG2.0) se presupune că va conține syntaxă( ) p p ț yspecifică pentru crearea imaginilor 3D la nivel de OpenGL.

De ce SVG ?

• În comparație cu aplicațiile Java (Applet‐uri) care durează mult să seîncarce, SVG + scripting oferă o soluție foarte light, downloadându‐setreptat doar scriptul și codul SVG de generare al imaginii, care e substațialmai mic decât imaginea.

Sun Labs Lively Kernel

Proiecte

SVG este într-o continuă dezvoltare și există proiecte în desfășurareă i iblități d f l i t l l i t ib i lcare crează noi posiblități de a folosi protocolul și contribuie la

îmbunătățirea și apariția noilor aplicații bazate pe SVG.• Batik (The Apache XML Graphics project)Batik (The Apache XML Graphics project).• Qt Framework PaintSystem (bineînțeles cu trecerea în java Qt

Jambi) în cadrul căreia au fost dezvolate 2 extensii.

Extensii

)

Extensii• SVG există ca extensie pentru mai multe limbaje de programare.

• java și C++: QPaintDevice, QSvgWidget și QSvgRenderer.

• Java: http://doc.trolltech.com/qtjambi‐4.4/html/com/trolltech/qt/qtjambi‐paintsystem.html

• C++: http://www.ldc.usb.ve/docs/qt/paintsystem.html

11.01.2010 18

SVG & Ruby

• Ce este Ruby ?• Ce este Ruby ?

• Ruby a fost creat ca un limbaj „prieten” al programatorilor, având o sintaxă elegantă și foarte ușor de reținut.ș oa te ușo de eț ut

puts “Hello World!”5 Ti t “H ll W ld!”

• Pentru folosirea lui SVG în limbajul ruby se include bibli t XRVG ( Xt d d R b V t G hi )

5.Times puts “Hello World!”

biblioteca XRVG (eXtended Ruby Vector Graphics).

Bibliografie• http://www.sitepoint.com/blogs/2008/12/22/svg-is-the-future-of-application-development/#

• http://www.w3.org/Graphics/SVG/About.html

• https://community.emc.com/people/irsan/blog

• http://www.w3.org/Graphics/SVG/

• http://www.justskins.com/design/free-vector-garphics-editor/1369

• http://www ldc usb ve/docs/qt/paintsystem html• http://www.ldc.usb.ve/docs/qt/paintsystem.html

• http://doc.trolltech.com/qtjambi-4.4/html/com/trolltech/qt/qtjambi-paintsystem.html

• http://texblog.net/latex-archive/maths/pgf-tikz-3d/

• http://texblog.net/latex-archive/2008/08/

• http://research.sun.com/projects/lively/

• http://xmlgraphics.apache.org/batik/p g p p g

• http://www.ldc.usb.ve/docs/qt/aboutqt.html

htt // b l / / b t/

20

• http://www.ruby-lang.org/en/about/

Vă mulțumesc!

C rs 13Curs 13

Securitatea în reţelele i lwireless

13 ianuarie 2010Andrada GeorgescuAndrada Georgescu

Ce este diferit în reţelele wireless?

D t l t t i i i i t di l l i i i l• Datele sunt trimise prin intermediul aerului, oricine le poate intercepta

• Multe breșe de securitate în cadrul protocoalelor i l i t d l d i t d t lwireless și a metodelor de criptare a datelor

• Tehnologia wireless încalcă prin natura ei principii• Tehnologia wireless încalcă, prin natura ei, principii fundamentale ale securității: autentificarea şi

dinerepudierea

• Dispozitive cu capacităţi de procesare lăţime de• Dispozitive cu capacităţi de procesare, lăţime de bandă mai reduse

23

... La care se adaugă

• Ignoranţa utilizatorilor

• Popularitatea reţelelor wireless

M t d l d ț l l i l d it• Metodele de spargere a rețelelor wireless au devenit din ce în ce mai sofisticate și inventive.

• Spargerea rețelelor wireless a devenit mult mai ă i ibilă d t ită lușoară și accesibilă datorită programelor ce se

găsesc gratis pe net (atât pentru Windows, cât și pentru Linux).

24

Tipuri de atacuri (1)• Asocierea accidentală

Asocierea maliţioasă• Asocierea maliţioasă– un dispozitiv poate fi păcălit să se conecteze la o rețea printr-un laptop

controlat de atacator (soft AP - rulează un soft ce îl face să pare uncontrolat de atacator (soft AP - rulează un soft ce îl face să pare un access point legitim)

R ţ l l d h• Reţelele ad-hoc– reprezintă o problemă prin bridgeul pe care îl poate oferi către alte

rețelerețele

• Reţelele netradiţionale (Bluetooth, cititoare de coduri, PDA-ţ ţ (uri)– prezintă o breșă de securitate deoarece se poate neglija securizarea

lor, accentul fiind pus pe laptopuri și AP-uri

• MAC spoofingMAC spoofing

25

Tipuri de atacuri (2)

• Man-in-the-middleatacatorul se va loga într un calculator ce funcționează ca un soft AP– atacatorul se va loga într-un calculator ce funcționează ca un soft AP, iar apoi la AP-ul real, intermediind tot traficul

• Denial of Service– de obicei, scopul unui astfel de atac este observarea modului în care

ț î i i d ă tf l d t fl b l drețeaua își revine după un astfel de atac : aflarea breșelor de securitate și exploatarea lor

• Network injection– atacatorul poate folosi AP-urile ce sunt expuse la trafic nefiltrat, în

special la trafic de broadcast (STP, OSPF, RIP, HSRP) pentru a introduce în reţea trafic de reconfigurare fals

• Caffe latte atack– prin flooding cu mesaje ARP, atacatorul se va folosi de modificările din

mesaje pentru a afla cheia WEP în mai puțin de 6 minute26

Best practices

• Diminuarea puterii de transmisie• Diminuarea puterii de transmisie

• Eliminare SSID broadcast.

• MAC filtering

• VLAN-uri– separarea reţelei după diferite privilegii de securitate

• Asigurarea securităţii fizice• Asigurarea securităţii fizice

• Parole puterniceParole puternice

• AP oprite când nu sunt utilizate

27

Criptarea traficului (1)

• WEP - Wired Equivalent Privacy– oferă autentificare şi criptare pe baza RC4– nu oferă key managementy g– există dispozitive care nu suportă metode mai avansate

de criptarede criptare– cheie statică, a fost spart

• WPA - Wi-Fi Protected Access– TKIP (Temporal Key Integrity Protocol) pentru criptareTKIP (Temporal Key Integrity Protocol) pentru criptare– Creat ca urmare a breşelor de securitate din WEP

WPA Personal (PSK pre shared key) şi WPA Enterprise– WPA Personal (PSK – pre-shared key) şi WPA Enterprise (server RADIUS)

l l i l t fi t t t i î ât i t– parolele prea simple pot fi sparte totuşi în câteva minute28

Criptarea traficului (2)

E t ii l WPA EAP• Extensii la WPA: EAP– un framework pentru autentificare– Extensible Authetication Protocol – aduce îmbunătăţiri

peste 802.1X, folosit deja pentru autentificarep , j p– foloseşte un server central

a fost modificat după descoperirea unor probleme în 2002– a fost modificat după descoperirea unor probleme în 2002– WPA suportă peste 5 tipuri de EAP pentru autentificare

• WPA2foloseşte AES pentru criptare– foloseşte AES pentru criptare

– EAP este suportat în continuare (Radius şi PSK)

29

802.11i

• Este un amendament la standardul 802.11, specificând i l d it t t ț l l i lmecanismele de securitate pentru rețelele wireless.

• WEP-ul este declarat depăşit, după ce spusese spart.WEP ul este declarat depăşit, după ce spusese spart.

• Implementarea interoperabilă a lui 802.11i a Wi-Fi Alliance este cunoscută ca WPA2.

• A fost introdus un nou mod de distribuţie a cheiiA fost introdus un nou mod de distribuţie a cheii.

• Oferă:– autentificare (802.1X – implicând folosirea EAP ca server)– RSN (Robust Security Network) pentru a ține evidența asocierilor– criptare pe baza AES pentru confidențialitate, integritate și

autentificarea originiif h d h k t l d t tifi– four-way handshake pentru procesul de autentificare

30

WIPS

• Wireless Intrusion Prevention System - este modul cel mai robust pentru a preveni riscurile de securitate wireless.

• WIPS este un dispozitiv de rețea ce monitorizează spectrul radio pentru determinarea prezenței unor AP-uri neautorizate sau a folosirii unor tooluri pentru atac (intrusion detection) și pot lua măsuri de împotriva atacatorului (intrusion prevention).

• Este de obicei implementat peste o intrastructură Wireless LAN existentă.

• În iulie 2009 a fost recomandat pentru automatizarea scanării wireless și a protecției pentru organizațiile mari de către PCI Security Standards Council.

• Configurarea WIPS constă din 3 componente: senzorii, serverul, consola.Configurarea WIPS constă din 3 componente: senzorii, serverul, consola.

• Atacuri ce pot fi prevenite de un WIPS bun: AP-uri rogue, AP-uri configurate greșit asocierea accidentală asocierea neautorizată MiMconfigurate greșit, asocierea accidentală, asocierea neautorizată, MiM, rețele ad-hoc, MAC spoofing, Evil Twin Atack, DoS.

31

Greşeli frecvente (1)

Folosirea parolelor implicite sau prea simple• Folosirea parolelor implicite sau prea simple

• Diminuarea puterii de transmisieDiminuarea puterii de transmisie– Atacatorul poate avea o antenă cu o arie de acoperire mai

mare așa că diminuarea puterii de transmisie nu estemare, așa că diminuarea puterii de transmisie nu este neapărat un impediment.

• Eliminare SSID broadcast– Este un mit: se pot ascunde doar beaconurile de la APEste un mit: se pot ascunde doar beaconurile de la AP. – Există alte 4 mecanisme care folosesc SSID broadcast.

S t bl t Wi Fi i– Se pot crea probleme pentru Wi-Fi roaming.– Rețele wireless devin mai puțin user friendly

32

Greşeli frecvente (2)

MAC filtering• MAC filtering– Prin interceptarea traficului se poate afla ușor o adresă

MAC validă. – Este cel mai ușor de spart. – Foarte mult efort de administrare, aproape zero avantaje.

WEP• WEP– Bazat pe RC4, poate fi spart în mai puțin de 10 minute

dacă poate fi interceptat destul trafic.

• Orice metodă de securitate este mai bună decât• Orice metodă de securitate este mai bună decât niciun fel de securitate.

33

Bibliografie

• http://compnetworking.about.com/od/wirelesssecurity/tp/wifisecurity.htmhtt // ti ll t k d / t/ i l ht• http://www.practicallynetworked.com/support/wireless_secure.htm

• http://wirelessdefence.org/Contents/Home%20Wireless%20Security%20Tips.htm0Tips.htm• http://blogs.zdnet.com/Ou/index.php?p=43• http://blogs.zdnet.com/Ou/?p=454&page=2&tag=col1;post-454

htt // k f /t / ifi f d i 9 i t k• http://www.makeuseof.com/tag/wifi-for-dummies-9-common-mistakes-setting-up-a-wireless-network/• http://en.wikipedia.org/wiki/Wireless securityhttp://en.wikipedia.org/wiki/Wireless_security• http://en.wikipedia.org/wiki/IEEE_802.11i• http://blogs.iium.edu.my/jaiz/2009/04/17/securing-wireless-network/

htt // i fi l t /t t i l / ti l h /10724 3716241 1• http://www.wi-fiplanet.com/tutorials/article.php/10724_3716241_1• http://www.wireless-nets.com/resources/tutorials/define wireless security policies.htmlnets.com/resources/tutorials/define_wireless_security_policies.html

34

C rs 13Curs 13

Dynamic DNSDynamic DNS13 ianuarie 2010Preda Alexandru EduardPreda Alexandru Eduard

36

Ce reprezintă Dynamic DNS 

• Este o metodă,un protocol sau serviciu de rețea ce ifi ă î i l DNS ă lnotifică în timp real un server DNS, că a avut loc o 

modificare a informațiilor detinute de server.

• Cel mai adesea, acest sitem este folosit pentru a it i i d d i (h t) ipermite asignarea unui nume de domeniu (host) unui 

IP alocat dinamic (eg. prin DHCP).

• RFC 2136

• RFC 2845

37

Cum funcționează(1)

• În primul rând setarea timpului maxim de caching la câteva minute

• Utilizarea conform RFC 2136 si folosirea NSUPDATE ca tilit idi ă l bl d i l t iutilitar ridică unele probleme de implementare si 

securitate.

• In general, se foloseste un client DDNS instalat pe masina locală si date de autentificare (user/parola) Inmasina locală si date de autentificare (user/parola). In acest caz update‐ul se face mai intai in baza de date a furnizorului de servicii autentificarea se face prin http sifurnizorului de servicii, autentificarea se face prin http si ulterior se va updata si inregistrarea DNS in serverul de numenume.

• Multe routere au implementează in firmware serviciul pDDNS

38

Cum funcționează(2)

Clientul DDNS verifica daca s‐a modificat adresa IP.  In caz afirmativ inștiintează serverul DNS 

39

Lista cu provideri D‐DNS

•SolidDNS - Provides Dynamic DNS services and domain registration. •ChangeIP.com - Allowing free third-level domains under a provided array of second level names,

ll id d d l l d ias well as user-provided second-level domains. •DynDNS.com - Provides DNS hosting services, free dynamic DNS, domain registration, mail services, network monitoring, and web redirection. •DynIP - Provides DDNS, allowing you to put the server for your domain name on a dial-upDynIP Provides DDNS, allowing you to put the server for your domain name on a dial up connection.• DyNS - Dynamic and static DNS service, domain registrations. Free and premium services. •Dynup.net - Dynamic DNS service, provides privacy policy, statistics, and servers listing. East ind Web and email redirection ser ices•Eastwind - Web and email redirection services

•SolidDNS - Provides Dynamic DNS services and domain registration. •StaticCling - Static hostnames for your dynamic IP. Native clients are available for almost any operating system. p g y•ThatIP.com - Dynamic DNS service allowing yourname.com or yourname.thatip.com. •Tzolkin Corporation - Features include offline webpage, signon and signoff IP address control, and new change domain and change email functions. •Virtual DNS The Virtual DNS service provides an alias for dynamic IP addresses to a static•Virtual DNS - The Virtual DNS service provides an alias for dynamic IP addresses to a static hostname. •yi.org - Gives free domain names for dynamic IP's, for dialup connections on all major operating systems. •ZA NiC - Free domains. Service policy, mailing list, and FAQ. ZoneEdit - Simple and free web-based domain manager which allows you to safely administrate DNS, mail and web forwarding.

11.01.2010 40

Pentru  serverul nostru...BIND

Serviciul DDNS poate de asemenea fi implementat si pe serverul BIND9.

1. Se creează o zona in fisierul named.conf.local:zone "my domain" {zone  my.domain  {

type master; 

allow‐transfer { 

10.0.0.0; // aici se pot pune servere slave

}; 

allow update { // directiva cheie ce permite updatarea inregistrărilor DDNSallow‐update { // directiva cheie ce permite updatarea inregistrărilor DDNS.

key mykey;  // cheie pentru securitata updatarii informatiei

}; 

file "my.home.domain.zone"; 

};

41

Pentru  serverul nostru...BIND(2)

2. Tot in fisierul Named.conf se adaugă:

key mykey { 

algorithm  HMAC‐MD5.SIG‐ALG.REG.INT; 

secret  hrCDCUNBtlY3sgF8NPnJrg==;  //  cheia secretă, generată pe clientul  ce  rulează DDNS

}; 

42

Pentru  serverul nostru...BIND(3)

Pe partea de client se creează o cheie de autentificare (TSIG p (Key (Transaction SIGnature) ):

dnskeygen ‐H 128 ‐h ‐n mykey

Rezultă2 fișiere: Kmykey.+157+00000.keyRezultă2 fișiere: Kmykey.+157+00000.key  

Kmykey.+157+00000.private

Conținutul fisierelor:  Kmykey.+157+00000.key :

mykey.  IN  KEY  513  3  157 hrCDCUNBtlY3sgF8NPnJrg== 

Kmykey.+157+00000.private :

Private‐key‐format: v1.2 

Algorithm: 157 (HMAC) 

Key: hrCDCUNBtlY3sgF8NPnJrg==Key: hrCDCUNBtlY3sgF8NPnJrg== 

43

Pentru  serverul nostru...BIND(4)

Pentru a face update pe server există 2 posibilitați.

A t t f l i d i t i h ll l C• Automat folosind scripturi shell, perl sau C

• Interactiv folosind utilitarul nslookup:• Interactiv folosind  utilitarul nslookup:

nsupdate ‐k /etc/namedb/tsig:mykeyp / / / g y y

>update add mail.my.domain. 600 IN A 127.0.0.1

Nu uitați să setați TTL la maxim câteva minute pentru a fiNu uitați să setați TTL la maxim câteva minute pentru a fi corespunde tot timpul inregistrarile DNS.

44

Worst Enemy

• IPv6

F l i l ă IP 6 d l i tilit t i i l i• Folosirea pe scara largă a IPv6 duce la inutilitatea serviciului.

45

Great friends

• Practic ceea ce ingerunează răspândirea IPv6:

‐ Birocrația

Lipsa fondurilor pentru inlocuirea vechilor tehnologii si routere‐ Lipsa fondurilor pentru inlocuirea vechilor tehnologii si routere

• ISP‐urile care nu au suficiente adrese IP publice și le asignează dinamicasignează dinamic

46

Bibliografie

• http://en.wikipedia.org/wiki/Dynamic_DNS

htt // ti it i f / i hi /2007/02/d i d i• http://www.tipit.info/romanian‐archive/2007/02/dynamic‐dns‐si‐utilitatea‐acestuia/

• http://www.oceanwave.com/technical‐resources/unix‐admin/nsupdate.html#create‐key

• http://en.wikipedia.org/wiki/TSIG

• http://www dmoz org/Computers/Internet/Protocols/DNS/DNS Providers• http://www.dmoz.org/Computers/Internet/Protocols/DNS/DNS_Providers/Dynamic_DNS/

47

C rs 13Curs 13

BGPBGP13 ianuarie 2009Carabas MihaiCarabas Mihai

BGP (Border Gateway Protocol)

• Protocol de routare folosit in nucleul Internetului

49

BGP (caracteristici)

• Menţine o tabelă cu reţele IP (sau "prefixe") care arată calea folosită pentru a ajunge la reţeaua respectivă princalea folosită pentru a ajunge la reţeaua respectivă prin diferitele sisteme autonome (AS). 

• AS = colectie de routere sub o administrare comuna

• Protocol de rutare vector‐cale

St bil t i ţi i i î t t l• Stabileşte şi menţine conexiuni între ruterele vecine folosind protocolul TCP (portul 179) p (p )

• Metrica BGPFoarte complexa– Foarte complexa

– Alcatuita din atribute• Au rolul de a marca routele BGP

50

eBGP si iBGPCâ d BGP l î i i i l i i• Când BGP este rulat în interioriul unui sistem autonom, este folosit termenul iBGP (Internal Border Gateway Protocol)

Câ d t l t î t AS i t it BGP (E t l• Când este rulat între ASuri, este numit eBGP (External Border Gateway Protocol). Conexiunea BGP poate fi stabilită doar dacă ruterele sunt direct conectate.

51

Tipuri de mesaje BGP

• Open– Mesaje initiale, folosite pentru stabilirea conexiunii intre routereMesaje initiale, folosite pentru stabilirea conexiunii intre routere

K li• Keepalive– Mesaje de 19 octeti trimise periodic pentru mentinerea conexiunii deschise

• Updatep– Contin cai catre diverse retele, impreuna cu atributele corespunzatoare– Initial, routerele BGP isi trimit reciproc intreaga tabela de routare– Dupa actualizarea initiala, se transmit actualizari incrementale, pe masura de 

topologia retelei se schimba

• Notification– Raporteaza eventualele erori aparute in comunicatie

52

Masina de stare a BGP

• Pentru a decide felul in care colaboreaza cu alte routere, BGP foloseste o masina de stare simpla, cu 6 stari:

53

Starea ESTABLISHED• Procesul BGP poate primi şi trimite mesaje de tip KEEPALIVE, UPDATE şi NOTIFICATION., ş

• Mesajele de tip UPDATE sunt trimise pentru a schimba• Mesajele de tip UPDATE sunt trimise pentru a schimba informaţia trimisă vecinului despre o anumită rută 

• Dacă apare o eroare într‐un mesaj UPDATE primit, ruterul trimite înapoi un mesaj NOTIFICATION, închide conexiunea şi trece în starea Inactiv. ş

• NLRI (Network Layer Reachability Information)– Descrierea unei rute – include mai multe atribute: prefixul destinaţie, lungimea prefixului, calea de sisteme 

autonome către destinaţie şi următorul hop pecum şi multe alte informaţii careautonome către destinaţie şi următorul hop, pecum şi multe alte informaţii care afectează felul cum tratează destinatarul reţeaua respectivă

54

Conectivitate si invatarea rutelor

• În tabela de rutare a ruterului sunt ţinute doar ruteleÎn tabela de rutare a ruterului sunt ţinute doar rutele optime către o destinaţie. În schimb, tabela BGP va conţine toate rutele primite prin BGP Trecerea unei ruteconţine toate rutele primite prin BGP. Trecerea unei rute din tabela BGP în tabela de rutare se face astfel:

(– pentru eBGP, rutele sunt puse automat în tabela de rutare (dacă nu este direct conectată) pentru iBGP ruta este pusă în tabela de rutare dacă sunt îndeplinite anumite– pentru iBGP, ruta este pusă în tabela de rutare dacă sunt îndeplinite anumitecondiţii ( ex: sa exista nexthop‐ul in tabela de rutare)

• Selectia rutelor pentru adaugare in tabela de rutare este realizata in functie de diferiti factori ( o parte sunt exemplificati in slide‐urile ce urmeaza)

55

Exemplu (route statice)

• Fie urmatoarea topologie:

– Ce trebuie configurat pe fiecare din routere pentru a exista conectivitate intre oricare dintre statiile din spatele routerelor?

56

Exemplu2 (BGP)• Asociem cate un AS number fiecarui router:

57

Exemplu3 (BGP)• Verificarea starii conexiunii cu un neighbor:

• Formatul tabelei BGP:

58

Metrica BGP• Se pacurge urmatoarea lista de atribute pana se gaseste o diferenta intre 2 route din tabela BGP:o diferenta intre 2 route din tabela BGP:

– Ignora routele inaccesibile

– Prefera routele cu weightmai mare

– Prefera routele cu Local Preferencemai mare

Prefera routele ce au orginine locala ( i )– Prefera routele ce au orginine locala ( i )

– Prefera routele cu cel mai mic drum AS (AS_Path)( _ )

– Prefera routele cu AS‐ul de origine cel mai mic

– Prefera routele cu cel mai mic MED (multi‐exit discriminator)

– Routele eBGP fata de cele iBGP59

Conditii minime deschidere sesiune BGP

• Detinerea propriului AS Number

• Detinerea unui bloc /24 (256 IP‐uri) agregat pe AS‐ul respectivrespectiv

• In general fiecare ISP are propria politica BGP

– Abonament minim sau banda minima garantata pentru deschiderea sesiunii (Ex: >200E|>4mbps)deschiderea sesiunii (Ex: >200E|>4mbps)

60

Aspecte comercialeC l i AS N b ?• Care este costul unui AS Number?

– Alocare: 100EAlocare: 100E

– Taxa anuala: 75E

– Este necesara detinerea a minim 2 conexiuni pentru alocare

C t t l i l d IP i?• Care este costul unei clase de IP‐uri?– Alocare 256 IP‐uri : 75E

• De unde se poate obtine?

– De la un LIR: cf. RIPE cele mai mari in Romania sunt:  ROMTelecom SA, Jump Network Services SRL, RCS & RDS SA

– RIPE = organizatie regionala ce se ocupa de alocari de resurse( AS‐uri, IP‐uri) in Europa ,Orientul Mijlociu si Asia centrala (www.ripe.net)

61

IP uri) in Europa ,Orientul Mijlociu si Asia centrala (www.ripe.net)

– LIR = Local Internet Registry 

RIPE.NET/whois (1)• Cum putem verifica detinatorul unei clase de IP‐uri si pe ce AS este agregata?p g g

– www.ripe.net/whois

62

RIPE.NET/whois (2)

63

Va multumesc!

• Bibliografie– http://ro wikipedia org/wiki/Border Gateway Protocol– http://ro.wikipedia.org/wiki/Border_Gateway_Protocol

• Implementări cu sursă deschisă ale BGP – Quagga, o suită de protocoale de rutare care include BGP4 pentruQuagga, o suită de protocoale de rutare care include BGP4  pentru 

sisteme Unix. – OpenBGPD, o implementare BGP realizată de echipa OpenBSD.p , p p p

Si l t BGP• Simulatoare BGP– BGPlay, un applet Java care prezintă o vizualizare a rutelor BGP şi a 

l ă l dactualizărilor pentru orice AS de pe Internet – C‐BGP, un simulator BGP capabil de a realiza o simulare a celor mai 

i AS i d i (ISP i Ti 1)64

mari ASuri de pe internet (ISPuri Tier‐1).

C rs 13Curs 13

RSTPRSTP Rapid Spanning Tree Protocol13 ianuarie 2009Dragoș DioșteanuDragoș Dioșteanu

Ce este redundanța și de ce avem nevoie de ea?

• Într‐un mediu în care conexiunea la rețea este crucială apare nevoia asigurarii accesului 24/24.g /

• Solutia: Redundanța (asigurarea unor căi alternative la nivelul de di t ib ți i d l )distribuție și de nucleu) 

• Probleme care apar: Bucle de nivel 2, Broadcast Storms, Cadre de p , ,unicast duplicate. 

66

Exemplu de Broadcast Storms

67

Ce putem face? 

• Soluția la problemele prezentate anterior este implementarea unuit l d ti l STP (S i T P t l 802 1D IEEE)protocol de tipul STP (Spanning Tree Protocol – 802.1D IEEE)

• Se bazează pe construirea unui arbore folosind Bridge ID și vitezaSe ba ea ă pe co st u ea u u a bo e o os d dge ș te ade operare a porturilor.

l l i l i• Etapele algoritmului:

‐ Selectarea unui root bridgeSelectarea unui root bridge

‐ Determinarea căiilor cu costuri minime

‐ Selecție în caz de egalitate

‐ Dezactivarea celorlalte porturi

68

Bridge Protocol Data Unit (BPDU)

69

RSTP

• Standardul STP a fost conceput într‐o perioadă în care timpi de ordinul unui minut erau considerați timpi buni de recuperare după o cădere a unei legături.

• RSTP (IEEE 802.1w) este o evoluție a standardului 802.1D• Păstrează facilitățile oferite de STP (“RSTP este o evoluție nu o 

revoluție”)ț )

70

STP vs RSTP

RSTP STP

OSI Layer 2 2

An apariție 1998 1985

Timp de reconvergență 3*HelloTime = 6 s 30‐50s

UplinkFast, BackboneFast Nu Nu

Compatibil 802.1D Da Da

Format BPDU IEEE 802.1D BPDU IEEE 802.1D BPDU

802.1D Timers Nu sunt necesare Da

Edge Ports Da Nu

Tranzit rapid către forwarding Da Nu

BPDU Proposals & A t ăt i i

Da NuAgreements către vecini

Grad de folosire Mare Mic

71

RSTP (1)

• Edge Port – tip de port nou introdus care nu poate fi legat la un alt dispozitiv de comutare a pachetelor. Trece imediat în stare de p pforwarding atunci când este activat. (Se salvează timp nefiind necesare etapele de ascultare şi învăţare)p ş ţ )

• Tipuri de legături : point‐to‐point şi partajată

• RSTP Proposal & Agreement: În cazul standardului IEEE 802.1D STP când un port este selectat ca find designated trebuie să aştepte de p g ş p2 ori timpul de forwarding până a trece în această stare. RSTP micşoreaza acest timp prin trecerea directă (doar pentru edge ş p p ( p gports şi legături point‐to‐point)

72

RSTP (2)

STP Stare Port RSTP Stare Port Activ in topologie Invata adrese MAC

Disabled Discarding Nu Nu

Blocking Discarding Nu Nu

Listening Discarding Da Nu

Learning Learning Da Da

Forwarding Forwarding Da Da

73

De ce este mai rapid?  

• Faster Aging: Atunci când nu se primesc BPDU de tip Hello de 3 ori consecutiv flagul de max age din cadru este considerat expiratconsecutiv flagul de max_age din cadru este considerat expirat. RSTP foloseşte trimiterea de BPDU şi ca un mecanism de tipul keep‐alive Consecinţă: Dacă o legătură fizică cedează estekeep alive. Consecinţă: Dacă o legătură fizică cedează este detectată mai repede.

• Tranziţia rapidă către starea de forwarding

• Edge Ports• Edge Ports

• Mecanisme noi de detecţie a schimbarilor în topologie: Primul care află este root bridge‐ul care trimite BPDU cu flagul TC setat

• UplinkFast: RSTP include şi o variantă a acestui protocol ce constă• UplinkFast: RSTP include şi o variantă a acestui protocol ce constă în înlocuirea rapidă a root bridge‐ului atunci când conexiunea către acesta nu mai este funcţională

74

către acesta nu mai este funcţională 

Alte variante

• PVST PVST+ (Per‐VLAN Spanning Tree) – protocoale folosite în reţele în care există multiple VLAN‐uri. Algoritmul este aplicat fiecărui VLAN în parte. Dezavantaje: Protocol dezvoltat intern de către CISCO.  

• MSTP (Multiple Spanning Tree Protocol) – definit original în• MSTP (Multiple Spanning Tree Protocol) – definit original în standardul 802.1s, este o extensie a protocolului RSTP pentru a beneficia de utilitatea folosirii de VLAN‐uri Foloseşte una beneficia de utilitatea folosirii de VLAN uri. Foloseşte un singur format pentru BPDU ceea ce îi oferă compatibilitate cu RSTP şi implicit cu STP. Permite formarea de regiuni MST ceRSTP şi implicit cu STP. Permite formarea de regiuni MST ce pot rula mai multe instanţe (MSTI). Mai multe regiuni sunt interconectate de un arbore comun.

• R‐PVST (Rapid Per‐VLAN Spanning Tree) protocol proprietate CISCO bi ă f i li ă il RSTP i PVST

75

CISCO ce combină funcţionalităţile RSTP şi PVST

Bibliografie

• http://en wikipedia org/wiki/Spanning tree protocolhttp://en.wikipedia.org/wiki/Spanning_tree_protocol

• http://www.cisco.com/en/US/tech/tk389/tk621/technologies_white_paper09186a0080094cfa shtml#topic2er09186a0080094cfa.shtml#topic2

• Reţele Locale Răzvan Rughiniş, Răzvan Deaconescu, Andrei Ciorbă, Bogdan Doinea Editura PRINTECH 2008

• http://www.daxnetworks.com/Technology/TechDost/TD‐051805.pdfp gy p

76