This is an old revision of the document!


Basics

Pentru a începe acest tutorial trebuie să vă asigurați că sunteți în directorul potrivit. Rulați comanda cd ~/uso.git/labs/08-net/support/basics/.

1. Interfețe de rețea

ip este o comandă de Linux folosită pentru a afișa interfețele de rețea disponibile pe sistemul curent de operare. De aici putem afla informații esențiale legate de conectivitatea la internet.

student@uso:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:49:1d:cd brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:b1:36:c8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.4/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s8
       valid_lft 666sec preferred_lft 666sec
    inet6 fe80::9927:3d0d:77b5:8ca9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Parametrii a și s sunt prescurtările de la address și show. Astfel, semnificația comenzii ip a s se traduce în ip address show.

Interfața loopback este o interfață virtuală (nu una fizică). Scopul acestei interfețe este de a întoarce pachetele trimise către ea.

student@uso:~$ ip a s lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

La câmpul inet, putem observa adresa IP 127.0.0.1. De obicei, aceasta este adresa interfaței de loopback. (De aici și glumele de pe internet cu There's no place like 127.0.0.1. Pentru că fiecare sistem are propria interfață virtuală loopback, pe care o numim “acasă”).

Dacă dorim să afișăm informațiile unei singure interfețe de rețea, adăugăm după utilitarul ip a s, numele acesteia. Putem observa mai sus interfața lo ce succede ip a s.

Conectivitatea la internet

Putem verifica conectivitatea la internet folosind utilitarul ping. Acesta transmite pachete către o anumită adresa (dată ca parametru). Acest utilitar ne arată dacă pachetele trimise ajung la destinație și în cât timp. O adresă pe care o putem folosi întotdeauna este 8.8.8.8 (Google).

student@uso:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=121 time=17.324 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=121 time=18.513 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 17.324/17.919/18.513/0.594 ms

Putem observa ca pachetele noastre au ajuns la destinație în 17ms. De aici putem trage concluzia că avem o conexiune la internet funcțională.

[1a] Aflați adresa IP de pe mașina virtuală și dați un ping in ea. Vă răspunde?

[1b] Aflați adresele IP ale colegilor (minim 2) și dați ping in ele. Vă răspund?

2. Urmărirea pachetelor

Atunci când apelăm utilitarul ping cu o anumită adresă din internet, se trimit pachete până la aceasta. Dacă acestea nu ajung la destinație, ce concluzie putem trage? Că nu avem interfața configurată corespunzător? Dar dacă providerul de internet (să spunem RDS) are o problemă sau nu ne-am plătit factura la internet? Trebuie să putem afla unde este problema. Care este punctul în care pachetele noastre se pierd. Putem afla această informație folosind utilitarul traceroute

student@uso:~$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
 1  danubiu12.lan (192.168.255.1)  3.677 ms  0.870 ms  0.808 ms
 2  10.0.0.1 (10.0.0.1)  1.991 ms  2.075 ms  1.908 ms
 3  10.30.1.209 (10.30.1.209)  3.720 ms  2.215 ms  1.959 ms
 4  10.220.137.28 (10.220.137.28)  21.973 ms
    10.220.137.30 (10.220.137.30)  15.755 ms
    10.220.128.72 (10.220.128.72)  15.574 ms
 5  213-154-130-234.rdsnet.ro (213.154.130.234)  17.572 ms  16.963 ms  18.208 ms
 6  74.125.242.241 (74.125.242.241)  17.910 ms  18.196 ms  16.700 ms
 7  108.170.238.135 (108.170.238.135)  15.377 ms
    108.170.225.23 (108.170.225.23)  18.141 ms
    209.85.142.19 (209.85.142.19)  19.790 ms
 8  google-public-dns-a.google.com (8.8.8.8)  16.774 ms  16.613 ms  15.950 ms

Putem observa calea pachetelor de la routerul unde suntem conectați până la serverele Google. Putem apela același utilitar și cu o adresa http:

student@uso:~$ traceroute google.com
traceroute to google.com (216.58.209.174), 64 hops max, 52 byte packets
 1  danubiu12.lan (192.168.255.1)  1.115 ms  0.817 ms  0.835 ms
 2  10.0.0.1 (10.0.0.1)  2.068 ms  2.027 ms  1.991 ms
 3  10.30.1.209 (10.30.1.209)  2.134 ms  3.027 ms  2.515 ms
 4  10.220.132.8 (10.220.132.8)  16.611 ms
    10.220.128.66 (10.220.128.66)  14.901 ms
    10.220.128.62 (10.220.128.62)  16.787 ms
 5  213-154-130-234.rdsnet.ro (213.154.130.234)  17.705 ms  16.165 ms  17.994 ms
 6  74.125.242.241 (74.125.242.241)  16.531 ms  18.200 ms  17.689 ms
 7  66.249.94.123 (66.249.94.123)  18.622 ms
    66.249.94.163 (66.249.94.163)  17.212 ms  16.840 ms
 8  bud02s21-in-f14.1e100.net (216.58.209.174)  15.921 ms  16.906 ms  16.412 ms

Ieșirea comenzii afișează și adresa publică a site-ului google.com.

[2a] Afișați calea urmată de mașina virtuală către un site ales de voi. Prin care interfață ies pachetele?

3. Default gateway

Atunci când pachetele pleacă către Internet, sistemul trebuie să știe cui ii va trimite pachetele în mod implicit. Această configurare se poate vedea folosind utilitarul ip cu opțiunea route.

student@uso:~$ ip route
default via 10.0.2.1 dev enp0s8 proto dhcp metric 100 
10.0.2.0/24 dev enp0s8 proto kernel scope link src 10.0.2.4 metric 100 
169.254.0.0/16 dev enp0s8 scope link metric 1000 

Putem observa că implicit pachetele se duc către adresa IP 10.0.2.1.

[3a] Afișați ruta implicită de pe mașina virtuală.

4. DNS

Destinațiile din internet sunt întotdeauna IP-uri. Pentru ca ne este greu sa reținem aceste adrese, se face o mapare între un nume și o adresă IP. Putem apela utilitarul traceroute cu adresa IP afișată mai sus (google.com).

student@uso:~$ traceroute 216.58.209.174
traceroute to 216.58.209.174 (216.58.209.174), 64 hops max, 52 byte packets
 1  danubiu12.lan (192.168.255.1)  1.147 ms  4.124 ms  0.814 ms
 2  10.0.0.1 (10.0.0.1)  2.040 ms  2.579 ms  2.006 ms
 3  10.30.1.209 (10.30.1.209)  2.768 ms  2.651 ms  2.097 ms
 4  10.220.137.34 (10.220.137.34)  15.924 ms
    10.220.128.56 (10.220.128.56)  17.283 ms
    10.220.132.14 (10.220.132.14)  19.323 ms
 5  213-154-130-234.rdsnet.ro (213.154.130.234)  23.228 ms  15.458 ms  17.341 ms
 6  74.125.242.225 (74.125.242.225)  16.377 ms  16.215 ms  40.340 ms
 7  66.249.94.163 (66.249.94.163)  15.995 ms  16.073 ms
    66.249.94.123 (66.249.94.123)  16.880 ms
 8  bud02s21-in-f174.1e100.net (216.58.209.174)  16.500 ms  16.222 ms  17.468 ms

Această translatare se face cu ajutorul DNS (Domain Name Service). Dacă destinația este un nume, se face o cerere DNS pentru a afla adresa IP. La fel pentru fiecare hop din traceroute. Dacă folosim parametrul -n, această translatare nu se mai face, deci comanda se va executa mai repede.

student@uso:~$ traceroute -n google.com
traceroute to google.com (172.217.20.14), 64 hops max, 52 byte packets
 1  192.168.255.1  1.192 ms  0.790 ms  0.758 ms
 2  10.0.0.1  1.951 ms  1.943 ms  1.951 ms
 3  10.30.1.209  2.159 ms  2.082 ms  2.094 ms
 4  10.220.128.68  31.860 ms
    10.220.128.48  40.103 ms
    10.220.128.62  15.942 ms
 5  213.154.130.234  17.344 ms  16.432 ms  24.014 ms
 6  74.125.242.241  18.140 ms
    74.125.242.225  17.783 ms  18.995 ms
 7  216.239.35.251  16.408 ms
    216.239.35.185  14.143 ms  16.104 ms
 8  172.217.20.14  16.355 ms  15.526 ms  14.035 ms

Putem vedea adresa serverului DNS in /etc/resolv.conf:

student@uso:~$ cat /etc/resolv.conf | tail -n 3
#
domain lan
nameserver 192.168.255.1

Putem face interogări la serverul DNS folosind utilitarul nslookup. Interogare directă este atunci când folosind numele, obținem IP-ul, iar interogare inversă este atunci când folosind IP-ul, aflăm numele.

Direct:

student@uso:~$ nslookup www.google.com
Server:		192.168.255.1
Address:	192.168.255.1#53
 
Non-authoritative answer:
Name:	www.google.com
Address: 172.217.19.68

Invers:

student@uso:~$ nslookup 172.217.19.68
Server:		192.168.255.1
Address:	192.168.255.1#53
 
Non-authoritative answer:
68.19.217.172.in-addr.arpa	name = mil02s05-in-f68.1e100.net.
68.19.217.172.in-addr.arpa	name = ham02s17-in-f4.1e100.net.

[4a] Afișați serverul DNS de pe mașina virtuală.

[4b] Dați ping în google.com folosind numele și adresa IP.

[4c] Faceți 3 interogări DNS ale unor site-uri(ex: facebook.com, ocw.cs.pub.ro, studenti.pub.ro).

5. Conexiune SSH

Un mod semnificativ mai ușor de a folosi o mașina virtuală este următorul: având un terminal pe mașina fizică ne conectăm prin SSH la mașina virtuală. Astfel, trecerea de la mașina fizică la cea virtuală se reduce la schimbarea de tab-uri in terminal. Un alt avantaj este că putem folosi copy-paste fără probleme din terminal. Pentru a ne conecta la mașina virtuală ne trebuiesc 2 informații: user-ul cu care vrem să fim autentificați pe mașina virtuală și adresa mașinii virtuale (putem folosi ip a s pentru a afla IP). Sintaxa este de forma ssh <user>@<IP>.

student@uso:~$ ssh student@uso
The authenticity of host 'uso (127.0.1.1)' can't be established.
ECDSA key fingerprint is SHA256:EqKvzIRVrt/2T8NqzCiBZI8QkXUnqpP627KkMCqscV0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'uso' (ECDSA) to the list of known hosts.
student@uso's password: 
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-32-generic x86_64)
 
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 
 * Read about Ubuntu updates for L1 Terminal Fault Vulnerabilities
   (L1TF).
 
   - https://ubu.one/L1TF
 
 * Check out 6 great IDEs now available on Ubuntu. There may even be
   something worthwhile there for those crazy EMACS fans ;)
 
   - https://bit.ly/6-cool-IDEs
 
 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch
 
18 packages can be updated.
0 updates are security updates.
 
*** System restart required ***
Last login: Tue Aug 21 14:27:08 2018

Pentru a ne deconecta de la mașina virtuală folosim comanda exit:

student@uso:~$ exit
logout
Connection to uso closed.

[5a] Adăugați un utilizator nou pe mașina tom. Conectați-vă de pe mașina locală pe mașina tom cu noul utilizator creat.

[5b] Conectați-vă la mașina virtuală jerry de pe mașina virtuală tom.

6. wget

Utilitarul wget descarcă conținutul unei pagini web. Un exemplu de folosire este wget http://website.com/files/file.zip.

student@uso:~$ wget http://ipecho.net/plain
--2018-09-02 16:08:55--  http://ipecho.net/plain
Resolving ipecho.net (ipecho.net)... 146.255.36.1
Connecting to ipecho.net (ipecho.net)|146.255.36.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘plain.1’
 
plain.1                                    [ <=>                                                                        ]      13  --.-KB/s    in 0s      
 
2018-09-02 16:08:55 (1,48 MB/s) - ‘plain.1’ saved [13]
 
student@uso:~$ ls plain
plain
student@uso:~$ cat plain
188.26.36.205

sau

student@uso:~$ wget -qO- http://ipecho.net/plain ; echo
188.26.36.205

[6a] Descărcați arhiva folosind wget de la link-ul: wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

uso/laboratoare/new/08-net/basics.1542741181.txt.gz · Last modified: 2018/11/20 21:13 by liza_elena.babu
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