This shows you the differences between two versions of the page.
|
rl:labs:06:contents:07 [2019/11/06 14:39] florin.stancu [07. [30p] Instanțe EC2] |
rl:labs:06:contents:07 [2023/11/15 11:27] (current) laura.ruse [07. [10p] Depanare problemă de conectivitate] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== 07. [30p] Instanțe EC2 ==== | + | ==== 07. [10p] Depanare problemă de conectivitate ==== |
| - | În EC2 Dashboard (in sus avem Services-> Compute -> EC2) , alegem secțiunea //Instances// și opțiunea **Launch Instance**. | + | Ne propunem să depanăm o problemă de conectivitate. |
| - | + | Pentru a "genera" problema rulați scriptul de pregătire cu noul argument ''ex7'':<code host> | |
| - | Alegem o imagine de mașină virtuală (AMI - Amazon Machine Image) din secțiunea **Choose AMI**. Folosiți imaginea **RL_AWS2**, de la My AMIs (meniul din stânga). | + | root@host:~# start_lab ip ex7 |
| - | + | </code> | |
| - | Pentru **Instance Type** alegem astfel: | + | |
| - | * Pentru instanța Frontend - t3a.xlarge ([[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html|avem nevoie de 4 interfețe de rețea]]) | + | |
| - | * Pentru Red, Green și Blue - t2.micro (permite maxim 2 interfețe de rețea, dar noi oricum folosim doar una) | + | |
| - | + | ||
| - | Prima dată creăm cele 3 instanțe Red, Green, Blue. Vom incepe cu instanta Red. În secțiunea **Configure Instance Details**: | + | |
| - | * Alegem VPC-ul //student<X>_//VPC | + | |
| - | * Alegem subnet-ul corespunzător stației Red | + | |
| - | + | ||
| - | Selectăm secțiunea //Configure Security Group// și alegem astfel: | + | |
| - | * pentru Frontend, alegem //Create a new security group//, punem un nume descriptiv (''student<X>_sec_public'') și modificăm a.î. regula de Inbound la SSH să fie permisă doar pentru IP-urile din Politehnică (''141.85.0.0/16''). Regulile e whitelist după IP sunt o practică recomandată pentru protejarea serverelor împotriva atacatorilor externi. | + | |
| - | * Pentru celelalte instanțe alegem //Select an existing security group// și selectăm grupul creat anterior. | + | |
| - | + | ||
| - | {{ :rl:labs:06:aws_security_group_whitelist.png?920 |}} | + | |
| - | + | ||
| - | Ne vom ocupa mai târziu de restul de reguli. | + | |
| - | + | ||
| - | Apăsăm **Review and Launch -> Launch**. La acest nivel nu ne interesează setările pentru Storage și Tags. | + | |
| - | + | ||
| - | Avem nevoie de o pereche de chei pentru a ne putea conecta la instanța pe care o creăm (alegem **Create a new key pair** și îi dăm numele //student<X>_//RL_lab. **Descărcați cheia privată**). | + | |
| - | + | ||
| - | Îi dăm un nume instanței nou create (am început cu Red). Continuăm cu Green și Blue într-un mod similar. | + | |
| - | <note> | + | <note tip> |
| - | Pentru următoarele instanțe alegem să folosim Security Group-ul si perechea de chei pe care le-am creat anterior. | + | Pentru depanare, primul pas recomandat este afișarea tabelei de rutare. Tabela de rutare vă va ajuta pentru depanare în cazul în care anumite intrări sunt absente sau configurate greșit. |
| </note> | </note> | ||
| - | Din Meniul din stânga, secțiunea //Network&Security//, alegem **Network interfaces**. Ne dorim ca instanța Frontend să aibă câte o interfață și în rețelele cu Red, Green, Blue. | + | Verificați conectivitatea între toate stațiile din topologie. Observați că nu există conectivitate între nici o stație și stația ''blue''. Rezolvați problemele de conectivitate la stația ''blue'' de pe stația ''host''. |
| - | Mai întâi denumim interfețele de rețea create o dată cu instanțele pentru a fi mai ușor de lucrat cu ele. | ||
| - | |||
| - | Alegem **Create Network Interface**. Adăugăm descrieri sugestive și alegem subnet-ul potrivit pentru fiecare interfață nou creată. De asemenea, alegem security group-ul creat anterior. Obținem: | ||
| - | |||
| - | {{ :rl:labs:06:contents:network_interfaces.png |}} | ||
| - | |||
| - | Ne întoarcem în secțiunea Instances. Instanței Frontend îi adăugăm cele trei interfețe de rețea create mai devreme (**Actions -> Networking -> Attach Network Interface**). | ||
| - | |||
| - | <note warning>Nu uitați să denumiți fiecare resursă nou-creată folosind prefixul student<X>_, unde X este ID-ul username-ului vostru.</note> | ||
| <note important> | <note important> | ||
| - | Fiecare instanță va avea atașată automat o interfață de rețea implicită (//Primary network interface//) cu subnet-ul pe care l-ați ales din wizard. | + | Identificați și soluționați problemele. |
| - | + | ||
| - | Din păcate, AWS nu tag-uiește numele acestei interfețe cu cel al instanței, așa că **va trebui să căutați și să dați manual numele acestei interfețe** pentru a nu le încurca între voi imediat după ce creați o instanță. Puteți s-o găsiți ușor apăsând click pe eth0 din descrierea instanței (la Instances, click pe resursă și apar jos aceste detalii). | + | |
| </note> | </note> | ||
| - | Pentru a ne putea conecta la stația Frontend, trebuie să îi alocăm o adresă IP publică statică (așa cum am învățat la începutul laboratorului) - vezi exercițiul 2. Asociem adresa IP publică statică interfeței de rețea corespunzătoare subnet-ului public. | + | <hidden> |
| + | <solution> | ||
| + | O dată, avem aceiași problemă ca la ex6 (interfața veth-blue are configurată adresa ''15.15.15.0/32''). Corectăm în felul următor: | ||
| + | <code> | ||
| + | root@host:~#ip address delete 15.15.15.0/32 dev veth-blue | ||
| + | root@host:~#ip address add 15.15.15.1/24 dev veth-blue | ||
| + | </code> | ||
| - | <note> | + | Interfața ''blue-eth0'' a stației ''blue'' este dezactivată. Acest lucru se poate vedea prin consultarea tabelei de rutare:<code bash> |
| - | Subnet-ul public are conexiune la Internet direct prin intermediul Internet Gateway-ului. | + | root@blue:~# ip route show |
| - | </note> | + | root@blue:~# |
| + | </code> | ||
| + | și prin urmărirea configurației de nivel 2:<code bash> | ||
| + | root@blue:~# ip link show dev blue-eth0 | ||
| + | 55: blue-eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 | ||
| + | link/ether 00:16:3e:32:0f:ae brd ff:ff:ff:ff:ff:ff | ||
| + | </code> | ||
| - | Ne conectăm prin ssh la instanța Frontend folosind comanda (în cazul Linux): | + | Reactivarea interfeței ''blue-eth0'' a stației ''blue'' se realizează folosind comanda:<code> |
| + | root@blue:~# ip link set dev blue-eth0 up | ||
| + | root@blue:~# ip link show dev blue-eth0 | ||
| + | 55: blue-eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 | ||
| + | link/ether 00:16:3e:32:0f:ae brd ff:ff:ff:ff:ff:ff | ||
| + | </code> | ||
| - | <code bash> | + | Observăm că adresa IP are masca ''/32''. Corectăm: |
| - | ssh -i [private_key] ec2-user@[ip_public] | + | <code> |
| + | root@blue:~# ip address delete 15.15.15.2/32 dev blue-eth0 | ||
| + | root@blue:~# ip address add 15.15.15.2/24 dev blue-eth0 | ||
| </code> | </code> | ||
| - | <note warning> | ||
| - | Schimbați permisiunile asupra cheii private (''chmod 700 RL_lab.pem'') | ||
| - | </note> | ||
| - | Pe Windows, dacă folosiți Putty, va trebui să convertiți cheia SSH într-un format acceptat urmând [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html|ghidul de aici]]. | + | În urma acestei comenzi stația ''blue'' va fi conectată la stația ''host''. |
| - | Pentru a ne putea conecta prin ssh de pe Frontend și la celelalte instanțe, va trebui să copiem cheia privată de pe stația locală pe Frontend: | + | În continuare nu există conectivitate între stația ''blue'' și stațiile ''red'' și ''green''. Afișarea tabelei de rutarea ne indică absența //default gateway//. Configurăm //default gateway// cu ajutorul comenzii:<code> |
| - | <code bash> | + | root@blue:~# ip route add default via 15.15.15.1 |
| - | # pe Linux: | + | root@blue:~# ip route show |
| - | scp -i [private_key] [private_key] ec2-user@[ip_public]:~ | + | default via 15.15.15.1 dev blue-eth0 |
| + | 15.15.15.0/24 dev blue-eth0 proto kernel scope link src 15.15.15.2 | ||
| </code> | </code> | ||
| - | (pe Windows, puteți folosi WinSCP) | ||
| - | |||
| - | Verificați conectivitatea la Internet pe cele 4 instanțe (Frontend, Red, Green, Blue). | ||
| - | |||
| - | |||
| - | |||
| + | În acest moment există conectivitate completă la nivelul topologiei. | ||
| + | </solution> | ||
| + | </hidden> | ||