Differences

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

Link to this comparison view

uso:laboratoare:new:08-net:need-to-know [2018/11/20 19:57]
razvan.deaconescu created
uso:laboratoare:new:08-net:need-to-know [2018/11/26 09:36] (current)
liza_elena.babu
Line 1: Line 1:
 ===== Need to Know ===== ===== Need to Know =====
 +
 +Pe parcursul acestei secțiuni și a următoarelor vom folosi următoarele termene pentru a identifica sistemul pe care rulăm comenzi:
 +  * **sistemul fizic** sau **mașina fizică** sau **stația locală** se referă la sistemul din laborator
 +  * **sistemul ''​tom''​** sau **mașina virtuală ''​tom''​** se referă la mașina virtuală ''​tom''​
 +  * **sistemul ''​tom''​** sau **mașina virtuală ''​jerry''​** se referă la mașina virtuală ''​jerry''​
 +
 +==== 1. Dezactivare interfețe. DHCP ====
 +
 +Sunt situații în care am realizat o configurare greșită și vrem să dezactivăm acea configurare de pe o interfață. În mod normal, resetarea completă a configurației unei interfețe presupune doi pași:
 +  * eliberarea (//flush//) configurației acelei interfețe
 +  * dezactivarea acelei interfețe
 +
 +<note important>​
 +**Nu** rulați comenzile de mai jos pe o conexiune SSH pe mașina virtuală ''​tom''​. Vă veți dezactiva legătura fizică și veți pierde și conexiune SSH. Rulați comenzile direct în interfața CLI (alb pe negru) a aplicației VirtualBox.
 +</​note>​
 +
 +<note tip>
 +Dacă vă rămâne o conexiune SSH "​agățată"​ (nu mai primește comenzi) înseamnă că s-a pierdut conexiunea și terminalul rămâne blocat. Pentru a debloca terminalul folosiți secvența ''​%%<​Enter>​ ~ .%%'',​ adică apăsați pe rând tasta //​Enter>//​ apoi tasta //tildă// (''​%%~%%''​) apoi tasta //punct// (''​%%.%%''​)
 +
 +Vedeți și răspunsul de [[https://​askubuntu.com/​a/​29952|aici]].
 +</​note>​
 +
 +Mai jos eliberăm și dezactivăm interfața ''​enp0s8''​ de pe mașina virtuală ''​tom'':​
 +<code bash>
 +student@tom:​~$ ip a s enp0s8
 +3: enp0s8: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000
 +    link/ether 08:​00:​27:​71:​db:​21 brd ff:​ff:​ff:​ff:​ff:​ff
 +    inet 192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8
 +       ​valid_lft forever preferred_lft forever
 +    inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link
 +       ​valid_lft forever preferred_lft forever
 +student@tom:​~$ sudo ip address flush enp0s8
 +[sudo] password for student:
 +student@tom:​~$ sudo ip link set dev enp0s8 down
 +student@tom:​~$ ip a s enp0s8
 +3: enp0s8: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
 +    link/ether 08:​00:​27:​71:​db:​21 brd ff:​ff:​ff:​ff:​ff:​ff
 +</​code>​
 +
 +Mai sus am folosit:
 +  * comanda ''​ip a s enp0s8''​ ca să vedem starea interfeței. La început are adresă IP și este activată (''​state UP''​). La sfârșit nu are adresă IP și este dezactivată (''​state DOWN''​).
 +  * comanda ''​ip address flush enp0s8''​ ca să eliberăm (//flush//) configurația interfeței
 +  * comanda ''​ip link set dev enp0s8 down''​ ca să dezactivăm interfața
 +
 +**[1a]** Folosiți comanda ''​dhclient''​ pentru a reface configurația de rețea pe interfața ''​enp0s8''​ pe mașina virtuală ''​tom''​. Verificați folosind ''​ping''​ de pe sistemul fizic.
 +
 +**[1b]** Dezactivați configurația interfeței ''​enp0s8''​ de pe mașina virtuală ''​jerry''​.
 +
 +**[1c]** Folosiți comanda ''​dhclient''​ pentru a reface configurația de rețea pe interfața ''​enp0s8''​ pe mașina virtuală ''​jerry''​. Verificați folosind ''​ping''​ de pe sistemul fizic și de pe mașina virtuală ''​tom'',​
 +==== 2. SSH ====
 +
 +<​note>​
 +Această secțiune recapitulează noțiuni și comenzi din secțiunea Basics pe care vrem să le exersăm.
 +</​note>​
 +
 +Folosim protocolul SSH și comanda ''​ssh''​ pentru a ne conecta la distanță, folosind o comandă de forma:
 +<​code>​
 +ssh <​username>​@<​hostname>​
 +</​code>​
 +unde ''​%%<​username>​%%''​ este numele de utilizator iar ''​%%<​hostname>​%%''​ este numele de stație (sau adresa IP) a stației la care vrem să ne conectăm.
 +
 +**[2a]** Realizați, prin SSH, folosind comanda ''​ssh''​ toate formele de conexiune (6 în total) între sistemul fizic, mașina virtuală ''​tom''​ și mașina virtuală ''​jerry''​.
 +
 +**[2b]** Conectați-vă la sistemul unui coleg din stânga sau dreapta voastră, după ce îl întrebați de adresa sa IP.
 +
 +**[2c]** Conectați-va la sistemul ''​fep.grid.pub.ro''​ folosind numele de utilizator de pe [[http://​acs.curs.pub.ro|acs.curs.pub.ro]] și parola de acolo.
 +
 +==== 3. scp ====
 +
 +Utilitarul ''​scp''​ (secure copy) este folosit pentru a copia fișiere de pe o stație pe alta în mod sigur folosind protocolul SSH. Există și alte utilitare cu care putem face acest lucru, însă aceasta are avantajul că datele sunt transmise sigur, folosind ''​ssh''​.
 +
 +''​scp''​ are o sintaxă asemănătoare cu ''​cp'',​ și anume ''​scp sursă destinație''​. Folosind ''​scp''​ putem copia fișiere de pe mașina noastră pe o altă mașină, fie de pe o altă mașină direct în mașina noastră. Urmăriți pașii de mai jos pentru a copia un fișier de pe mașina fizică pe mașina virtuală ''​tom''​.
 +
 +Pe mașina virtuală ''​tom''​ aflăm adresa IP a interfeței ''​enp0s8''​ adresa de legătură între sistemul fizic și mașina virtuală ''​tom'':​
 +<code bash>
 +student@tom:​~$ ip a s enp0s8
 +3: enp0s8: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000
 +    link/ether 08:​00:​27:​71:​db:​21 brd ff:​ff:​ff:​ff:​ff:​ff
 +    inet 192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8
 +       ​valid_lft forever preferred_lft forever
 +    inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link
 +       ​valid_lft forever preferred_lft forever
 +</​code>​
 +
 +Folosim apoi adresa IP găsită mai sus a mașinii ''​tom''​ (în cazul de față ''​192.168.56.101''​) pe mașina fizică:
 +<code bash>
 +student@uso:​~$ echo "my first scp" > file.txt
 +student@uso:​~$ cat file.txt
 +my first scp
 +student@uso:​~$ scp file.txt student@192.168.56.101:​
 +student@192.168.56.101'​s password: ​
 +file.txt ​                                     100%   ​13 ​    ​9.1KB/​s ​  ​00:​00 ​
 +</​code>​
 +
 +<note important>​
 +După construcția ''​student@192.168.56.101''​ urmează '':''​. Așa specificăm unde pe mașina ''​tom''​ să fie copiat fișierul ''​file.txt''​. Dupa '':''​ treceți calea din sistemul de fișiere al mașinii ''​tom''​ la care vreți ca fișierul să fie copiat. În cazul exemplului de mai sus, nu avem nimic, ceea ce înseamnă că se copiază fișierul în **directorul curent** care va fi ''/​home/​student''​.
 +</​note>​
 +
 +Apoi pe stația tom verificăm existența fișierului:​
 +<code bash>
 +student@tom:​~$ ls file.txt
 +file.txt
 +student@tom:​~$ cat file.txt
 +my first scp
 +</​code>​
 +
 +**[3a]** Pe mașina virtuală ''​jerry''​ creați un fișier la calea ''/​home/​student''​. Copiați acest fișier pe mașina virtuală ''​tom''​ și verificați că a avut loc copierea.
 +
 +**[3b]** Fiind pe sistemul fizic, copiați fișierul de mai sus **de pe** mașina virtuală ''​jerry''​ în directorul ''​~/​uso.git/​labs/​08-net/''​.
 +
 +**[3c]** Fiind pe sistemul fizic, copiați același fișier de mai devreme de pe mașina fizică pe ''​fep.grid.pub.ro'',​ folosind contul vostru de pe [[http://​acs.curs.pub.ro|acs.curs.pub.ro]].
 +
 +==== 4. Comenzi prin SSH ====
 +
 +În mod obișnuit, folosirea comenzii ''​ssh''​ duce la deschiderea unui shell la distanță (//remote shell//) unde putem rula comenzi. Dacă ne interesează,​ putem însă rula direct comenzi fără a mai deschide un shell, dând un parametru comenzii ''​ssh'',​ ca în exemplele de mai jos:
 +<code bash>
 +razvan@jotunn:​~$ ssh -l student 192.168.56.101 hostname
 +student@192.168.56.101'​s password:
 +tom
 +razvan@jotunn:​~$ ssh -l student 192.168.56.101 df -h
 +student@192.168.56.101'​s password:
 +Filesystem ​     Size  Used Avail Use% Mounted on
 +udev            211M     ​0 ​ 211M   0% /dev
 +tmpfs            49M  956K   ​48M ​  2% /run
 +/​dev/​sda2 ​      ​9.8G ​ 5.0G  4.4G  54% /
 +tmpfs           ​241M ​    ​0 ​ 241M   0% /dev/shm
 +tmpfs           ​5.0M ​    ​0 ​ 5.0M   0% /run/lock
 +tmpfs           ​241M ​    ​0 ​ 241M   0% /​sys/​fs/​cgroup
 +/​dev/​loop0 ​      ​88M ​  ​88M ​    0 100% /​snap/​core/​5328
 +/​dev/​loop1 ​      ​87M ​  ​87M ​    0 100% /​snap/​core/​4917
 +/​dev/​loop2 ​      ​89M ​  ​89M ​    0 100% /​snap/​core/​5897
 +tmpfs            49M     ​0 ​  ​49M ​  0% /​run/​user/​1000
 +</​code>​
 +În cele două exemple de mai sus am rulat pe mașina virtuală **tom**, fără a deschide un shell la distanță, comanda ''​hostname''​ (care afișează numele sistemului) și comanda ''​df -h''​ (care afișează) un sumar al sistemelor de fișiere montate.
 +
 +**[4a]** Afișați informații despre utilizatorul ''​student''​ pe mașinile virtuale ''​tom''​ și ''​jerry''​ folosind comanda ''​finger''​ fără a deschide un shell la distanță.
 +
 +**[4b]** Creați pe mașina virtuală ''​jerry''​ un fișier numit ''​subzero.txt''​ având conținutul ''​saibot''​. Folosiți conexiune la distanță fără a deschide un shell, comanda ''​echo''​ și redirectare. Plasați comanda între ghilimele ca să fie transmisă complet la distanță; altfel, redirectarea va fi făcută pe sistemul local. Verificați conținutul fișierului ''​subzero.txt''​ creat la distanță folosind comanda ''​cat''​ fără a deschide un shell la distanță.
 +
 +**[4c]** Porniți câte o sesiune shell la distanță către mașina virtuală ''​tom''​ și către mașina virtuală ''​jerry''​. Apoi folosiți în acel shell comanda ''​reboot''​ pentru a reporni sistemul; este modul de repornire de la distanță.
 +
 +==== 5. Refacere configurație ====
 +
 +După repornirea celor două sisteme s-a pierdut configurația interfețelor ''​enp0s8''​ pe mașinile virtuale **tom** și **jerry**. Folosiți ''​dhclient''​ pentru a reface configurația pentru cele două interfețe. Apoi creați câte o conexiune SSH de pe sistemul fizic către fiecare dintre cele două mașini virtuale.
uso/laboratoare/new/08-net/need-to-know.1542736667.txt.gz · Last modified: 2018/11/20 19:57 by razvan.deaconescu
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