Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:labs:06 [2019/11/05 05:54]
octavian.grigorescu [Pregătire infrastructură de laborator]
rl:labs:06 [2023/11/10 17:11] (current)
laura.ruse [Pregătire infrastructură de laborator]
Line 1: Line 1:
 +~~SHOWSOLUTION~~
 ~~NOTOC~~ ~~NOTOC~~
  
-====== Laborator 6. Amazon Web Services ​======+====== Laborator 6. Adresare IP și rutare în Linux ======
  
 ===== Cunoștințe și abilități ce vor fi dobândite ===== ===== Cunoștințe și abilități ce vor fi dobândite =====
  
-  * Administrarea resurselor cloud folosind consola grafică. +  * Configurare de adrese IP în Linux 
-  * Securitate ​în cloud. +  * Configurarea rutării în Linux 
-  * Configurarea rutării în cloud. +  * Depanarea problemelor ​de configurare a rețelei în Linux
-  * Accesarea serviciilor ​de transfer de fișiere (FTP).+
  
-===== Pregătire infrastructură de laborator ​=====+===== Cheat sheet =====
  
-  * Vom crea o infrastructură de rețea ​ în cloud-ul Amazon. +  * {{:rl:​rl_cheatsheet.pdf|Cheat Sheet}}
-  * Fiecare student va folosi [[https://rl-aws.root.sx|aplicația laboratorului]]. Pentru a vă loga, veți primi parola laboratorului din partea asistentului și veți avea astfel acces la credențialele pentru cloud.+
  
-<note warning>​ +===== Pregătire infrastructură de laborator =====
-Fiecare student își va denumi resursele astfel //​student<​X>//​_[nume_resursa]. De exemplu //​student1_//​VPC. +
-</​note>​+
  
-{{ :rl:labs:nume_resurse.png?​400 ​|}}+  * Avem nevoie de o mașină virtuală a laboratorului. Vă rugăm urmăriți [[:rl:info:resurse:​vm-laborator|pagina aceasta pentru instrucțiuni]],​ apoi reveniți. 
 +  * **Atenție:​** puteți accesa mașina virtuală (din spațiul ''​10.9.0.0/​16''​) doar prin intermediul serverului fep!
  
-<hidden>https://docs.google.com/document/d/1Gz-u4l68eCdQ0fKbZJB0Z3G4l0cGn-QYx6RT7PnRe2o/edit</hidden> +  * **Sfat util pentru toate laboratoarele:​** pentru a vă autentifica pe ''​fep.grid.pub.ro''​ fără să vă ceară autentificare web și two-factor, se recomandă generatul și instalatul unei perechi de chei publice/​private după pașii de mai jos (pe un sistem Linux): ​<code bash> 
-===== Prezentare concepte =====+# pe sistemul gazdă (e.g., laptop / PC): 
 +ssh-keygen # fără argumente, folosim setările implicite 
 +# ne-a generat fișierele ~/.ssh/id_rsa și ~/.ssh/id_rsa.pub 
 +cat ~/.ssh/id_rsa.pub 
 +# copiem tot (inclusiv id-rsa ... până la final) în clipboard 
 +# ne autentificăm la fep, clasic (încă nu merge fără parolă că n-am terminat configurarea):​ 
 +ssh username@fep.grid.pub.ro 
 +# odată conectați pe fep: 
 +mkdir -p ~/.ssh 
 +vim ~/​.ssh/​authorized_keys ​ # sau nano, dacă nu vă place vim :(  
 +# și dați paste la cheia voastră publică aici (dacă sunteți prin vim, nu uitați să intrați în INSERT) 
 +# ieșiți și apoi vă reconectați la fep, nu ar trebui să vă mai ceară parolă :D 
 +ssh username@fep.grid.pub.ro ​ # doamne-ajută! 
 +</code>
  
-Servicii ​de cloud existente: Amazon Web ServicesGoogle Cloud Platform și Microsoft Azure. +<​note>​ 
- +Pentru utilizatorii ​de Windowsar trebui să existe utilitarul ssh-keygen ​în consola clasică sau PowerShell. 
-Mai departe discutăm despre AWS; serviciile pe care le vom folosi ​în cadrul laboratorului:​ +Dacă folosiți Puttydin păcatepașii sunt mult mai laborioși (folosește ​alt format ​pentru ​chei publice ​și va trebui ​să faceți conversia), deci nu vom lista pașii necesari aici (hint: use Google ​sau folosițssh-ul nativ de pe Windows 10e mai OK).
-  * Compute: EC2 +
-  * Networking and Content Delivery: VPC +
- +
-Alte servicii în cloud-ul Amazon: +
-  * Storage - Amazon Simple Storage Service (Amazon S3) +
-  * Database +
-  * Machine Learning +
-  * Analytics +
-  * AR&VR +
-  * Mobile +
- +
-**EC2 (Amazon Elastic Compute Cloud)** oferă capacitate dinamică computațională în cloudDe asemenea, pentru a dezvolta și lansa aplicații nu mai ai nevoie să îți achiziționezi hardware-ulacest serviciu punându-ți la dispoziție:​ servere virtuale, configurarea securității și networkingajustarea spațiului de stocare. +
- +
-{{:​rl:​labs:​virtual_private_cloud.png?​200 | }} \\   +
- +
-**Virtual Private Cloud** te ajută să pornești resursele Amazon într-o rețea virtuală definită de tine. Această rețea seamănă cu o rețea tradițională unde poți configura spații de adrese, tabele de rutare, gateways ​și setări de securitate, dar are în plus beneficiile utilizării unui infrastructuri scalabile precum AWS. Fiecare VPC creat este izolat logic de oricare ​alt VPC din cloud. +
- +
-Fiecare cont Amazon vine cu un VPC prestabilit ​pentru ​a putea să folosești resursele Amazon fără ​să îți construiești infrastructura de la zero. O diagrama simplă pentru un VPC avem în alăturată. +
- +
-Două sau mai multe VPC-uri pot comunica atâta timp cât se află în aceeașregiune. În plus VPC-urile ale căror blocuri ​de adrese IP se suprapun nu pot comunica. \\  \\   +
- +
-3 tipuri de adrese IP: +
-  * adrese IP private +
-  * adrese IP publice. O adresă publică ce a fost atribuită unei instanțe ​pe care am închis-o va reveni în pool-ul inițial de adrese. Când vom reporni instanțaaceasta va avea o altă adresă IP publică. +
-  * adrese IP publice statice sunt adrese IP publice care rămân asociate contului tău Amazon până în momentul în care alegi să renunți la ele. +
- +
-<note tip> +
-Care este diferența între adrese IP private și adresele IP publice?+
 </​note>​ </​note>​
  
-**Subnet** ​interval ​de adrese IP într-un VPC. Poți să lansezi resursele Amazon într-un subnet ​pe care îl creezi, la alegere.+  ​Pentru a pregăti configurația de laborator, pe mașina virtuală (stația ''​host''​) folosiți comenzile următoare din contul utilizatorului ''​root''​ de pe stația ''​host''​ (puteți da copy/paste la comenzi în terminal):<​code bash> 
 +# ATENȚIE: update_lab nu funcționează de pe root, folosiți student inițial 
 +student@host:​~#​ update_lab --force 
 +student@host:​~#​ start_lab ip 
 +</​code>​ 
 +  ​Deschideți trei noi tab-uri în terminal (folosiți combinația ​de taste ''​Ctrl+Shift+t''​),​ și conectați-vă, din nou, la mașina virtuală folosind comanda ''​ssh''​ de mai sus. 
 +    * De pe cele trei noi tab-uriconectați-vă ​la cele trei containere (''​red'',​ ''​green''​ și ''​blue''​). 
 +    * Pentru o conectare mai ușoară puteți folosi aliasul ''​go''​ (ex''​go red''​)
  
-În Amazon avem două tipuri de **subnets**:​ +<​note>​ 
-  * **Publice** (atunci când resursele trebuie să aibă acces direct în Internet, de exemplu serverele web). Un subnet este făcut public atunci când există o rută în tabela de rutare care trimite traficul în Internet printr-un Internet Gateway. +Pentru a vedea cum accesați stațiile ''​red''​''​green'' ​și ''​blue''​ (containere Docker configurate peste mașina virtuală VMware ​stația ''​host''​urmăriți indicațiile din [[:​rl:​info:​resurse:​vm-laborator#​instructiuni_de_utilizare|pagina cu instrucțiuni ​de utilizare a mașinii virtuale]].
-  * **Private** (atunci când resursele nu trebuie să aibă acces direct în Internet, de exemplu bazele de date) +
- +
-<​note ​important+
-În fiecare subnetprimele 4 adrese IP și ultima adresă IP nu pot fi folosite de utilizatori:​ +
-  * Prima este adresă de rețea +
-  * A doua este rezervată pentru ruter-ul VPC-ului +
-  * A treia este rezervată de AWS pentru serverul DNS (în general adresa de rețea a subnet-ului plus doi) +
-  * A patra este rezervată de AWS pentru viitoare utilizări +
-  * Ultima este adresa ​de broadcast+
 </​note>​ </​note>​
  
-**Internet Gateway**. IGW este o componentă a VPC-ului care permite comunicarea între instanțele din VPC și Internet. Pentru a comunica cu o instanță din subnet-ul public, este necesar ca instanța să aibă alocată o adresă IP publică statică. \\  +<​note>​ 
- +Conturile de acces la mașina virtuală (stația ''​host''​) sunt (''​username:​parola''​):​ 
-<note warning>​ +  * ''​root:​student''​ 
-Poți crea un singur obiect IGW per VPC.+  * ''​student:​student''​
 </​note>​ </​note>​
  
-**Tabela de rutare**. Fiecare subnet dintr-un VPC trebuie să aibă asociată o tabelă de rutare. Un subnet poate fi asociat numai cu o singură tabelă de rutare la un moment dat, dar o tabelă de rutare poate fi asociată cu mai multe subnet-uri. +<​note>​ 
- +În mod implicit ​folosiți ​contul ''​root'' ​pentru ​conectare pe toate stațiile. ​Aveți nevoie ​de drepturi privilegiate ​pentru ​configurareFolosiți contul ''​student''​ doar unde vi se cere explicit.
-{{:​rl:​labs:​nat_device.png?​200 |}} +
- +
-Pentru ca instanțele create într-un subnet privat să acceseze Internetul (dar să nu fie accesate din Internet) putem folosi ​un obiect AWS numit NAT Device (Network Address Translation Device). +
-(exemplu: web serverul este în subnet-ul public și baza de date în subnet-ul privat. Baza de date s-ar putea să aibă nevoie de conexiune la Internet) +
- +
-**NAT Gateway** - serviciu AWS de management al traficului. Folosim un NAT Gateway pentru a permite instanțelor dintr-un subnet privat să aibă acces la Internet sau la alte servicii AWS șîn același timp pentru ​a fi inițiate conexiuni din Internet către ​stațiile ​din acel subnet. +
- +
-{{:​rl:​labs:​security_group.png?​100 |}} +
- +
-Un **Security Group** acționează ca un firewall virtual care controlează traficul pentru una sau mai multe instanțe. Putem adăuga reguli pentru fiecare Security Group care să permită traficul către/de la instanțele asociate. +
- +
-Prestabilit,​ fiecare Security Groups permite tot traficul de ieșire. Regulile unui Security Group sunt întotdeauna permisive (nu putem adăuga o regulă de „deny”);​ Un Security Group este stateful (dacă o instanță face o cerere, răspunsul va ajunge la instanță indiferent de regulile de intrare din Security Group). +
-Modificările făcute asupra regulilor dintr-un Security Group se aplică în timp real. +
- +
-Un **Network ACL** (Access Control List) oferă un nivel opțional de securitate pentru VPC șacționează ca un firewall pentru controlul traficului ​de intrare și de ieșire ​pentru ​unul sau mai multe subnet-uri +
- +
- +
-<note tip>​Pentru mai multe detalii despre funcționarea VPC-urilor șresursele AWS, urmăriți [[https://​www.youtube.com/​watch?​v=fpxDGU2KdkA|tutorialul]].  +
- +
-Documentație AWS: +
- +
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​VPC_Networking.html|VPC Networking Components]] \\  +
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​VPC_Subnets.html|VPC and Subnets]] \\  +
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​vpc-eips.html|Elastic IP Addresses]] \\  +
-[[https://​docs.aws.amazon.com/​AWSEC2/​latest/​UserGuide/​concepts.html|Amazon EC2]]+
 </​note>​ </​note>​
- 
- 
 ===== Topologie ===== ===== Topologie =====
  
-{{ :rl:labs:​topologie.png?600 |}} +{{ :​rl:​topologie.png |}}
  
 ===== Navigare ===== ===== Navigare =====
Line 120: Line 73:
 ===== Exerciții ===== ===== Exerciții =====
  
-Dorim să ne creăm propriul VPC și să obținem o rețea funcțională conform topologiei de mai sus. Următoarele ​exerciții constituie pașii ​de parcurgere pentru ca la final să putem folosi ​rețeaua. +În cadrul ​exercițiilor din laboratoarele ​de Linux vom folosi ​[[:rl:labs:06#​topologie|topologia ​de mai sus]].
- +
-<note important>​ +
-Deși fiecare student primește câte un username separat, organizația AWS folosită (sponsorizată de către Bitdefender) este numai una, iar aceasta definește namespace-ul tuturor resurselor. De aici rezultă **principala limitare**, faptul că **o să puteți vedea și interacționa cu TOATE obiectele create de către fiecare student** (i.e., resursele sunt partajate între utilizatori). +
- +
-Mai mult, veți putea vedea și niște resurse prefixate cu ''​admin_''​. Acestea sunt folosite pentru găzduirea aplicației de gestiune a conturilor, încercați să nu vă atingeți de ele (deși am implementat restricții de acces, dacă cineva reușește să șteargă / facă aplicația nefuncțională well... o să ne mai vedem și la toamnă / anul :P). +
- +
-Permisiuni atribuite utilizatorilor studentdoar de creare resurse, modificat unde este necesar, taguit doar cu prefixul ''​student<​X>​_'',​ fără drept de ștergere și alte acțiuni ne-necesare laboratorului. +
-</​note>​+
  
 {{namespace>:​rl:​labs:​06:​contents&​nofooter&​noeditbutton}} {{namespace>:​rl:​labs:​06:​contents&​nofooter&​noeditbutton}}
rl/labs/06.1572926049.txt.gz · Last modified: 2019/11/05 05:54 by octavian.grigorescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0