This shows you the differences between two versions of the page.
|
systems:uso:laboratoare:laborator-08 [2012/09/20 23:46] paul.vlase |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Laborator 08 - Configurări de rețea ====== | ||
| - | ====== Descriere ====== | ||
| - | |||
| - | * adresă MAC, adresă IP, mască de rețea (subnet mask), default gateway, nameserver | ||
| - | * ifconfig, route, resolv.conf, ping | ||
| - | * configurare dinamică, DHCP, dhclient | ||
| - | * configurare statică | ||
| - | |||
| - | * configurări permanente | ||
| - | * ifup, ifdown | ||
| - | * /etc/hosts | ||
| - | |||
| - | Referințe din urmă: | ||
| - | * vim (lab 03) | ||
| - | |||
| - | |||
| - | ===== Concepte și comenzi importante ===== | ||
| - | |||
| - | **Tutorial** | ||
| - | * adresă MAC, adresă IP, mască de rețea (subnet mask), default gateway, nameserver | ||
| - | * ifconfig, route, resolv.conf, ping | ||
| - | * configurare dinamică, DHCP, dhclient | ||
| - | * configurare statică | ||
| - | |||
| - | **Hands-On** | ||
| - | * configurări permanente | ||
| - | * ifup, ifdown | ||
| - | * /etc/hosts | ||
| - | |||
| - | |||
| - | ===== Mașini virtuale ===== | ||
| - | |||
| - | Laboratorul folosește două mașini virtuale, [[http://elf.cs.pub.ro/uso/store/uso-vm-sheldon.tar.gz|sheldon]] și [[http://elf.cs.pub.ro/uso/store/uso-vm-leonard.tar.gz|leondard]]. Ambele au instalat [[http://www.debian.org|Debian GNU/Linux 5.0]]. Această distribuție nu vine cu ''sudo'' instalat. | ||
| - | * Pentru acces de ''root'', folosiți utilizatorul ''root'' și parola ''uso''. | ||
| - | * Fiecare mașină mai are și un utilzator normal, numit ''sheldon'', respectiv ''leonard'', ambele cu parola ''uso''. | ||
| - | |||
| - | |||
| - | ===== Suport laborator ===== | ||
| - | |||
| - | * [[http://books.google.com/books?id=_JFGzyRxQGcC&lpg=PA532&dq=introducere%20in%20sisteme%20de%20operare&pg=PA217#v=onepage&q&f=false|8. Configurări de rețea]] | ||
| - | * Puteți urmări tutorialul video corespunzător laboratorului făcut de [[http://itassistant.org/diverse/utilizarea-sistemelor-de-operare/utilizarea-sistemelor-de-operare-5.html|IT Assistant]]. | ||
| - | |||
| - | |||
| - | ====== Tutorial ====== | ||
| - | |||
| - | <hidden> | ||
| - | * Pe scurt, despre adrese MAC, IP, netmask, DNS, și ping. | ||
| - | * Prezentarea este o scurtă recapitulare de la curs, nu înlocuim cursul. Dacă studenții par în pom, trebuie să îi convingem să ia și să citească, nu pot înțelege conceptele în doar 5 minute. | ||
| - | * Despre comenzile și fișierele asociate: ifconfig, route, resolv.conf. | ||
| - | * Conceptul de interfață de rețea și ce înseamnă nume ca eth0, wlan0. | ||
| - | </hidden> | ||
| - | |||
| - | |||
| - | ===== 1. Configurări dinamice temporare de rețea ===== | ||
| - | |||
| - | * Configurați dinamic, temporar, interfața de rețea **''eth0''** a mașinii fizice: | ||
| - | |||
| - | <code bash> | ||
| - | dhclient eth0 | ||
| - | </code> | ||
| - | |||
| - | * Pentru că această comandă modifică parametrii de rețea, trebuie lansată cu privilegii **''root''**. | ||
| - | * Testați conectivitatea cu google.com, trimițând 5 mesaje ICMP succesive: | ||
| - | |||
| - | <code bash> | ||
| - | ping -c 5 www.google.com | ||
| - | </code> | ||
| - | |||
| - | ===== 2. Descoperirea configurărilor de rețea ===== | ||
| - | |||
| - | Inspectați configurările de rețea curente de pe mașina fizică. Afișați informațiile: | ||
| - | * de nivel 2 - legatură de date (adresa MAC) | ||
| - | * de nivel 3 - rețea (adresa IP, masca de rețea și gateway-ul implicit) | ||
| - | * de nivel 7 - aplicații (server DNS). | ||
| - | |||
| - | <note important>pentru a //schimba// configurările de rețea, trebuie să fim **''root''**. Pentru a le inspecta, în general, nu este nevoie.</note> | ||
| - | |||
| - | Folosiți **''ifconfig''** pentru a afla adresa MAC, adresa IP, și masca de rețea. Ce interfață este cea relevantă? | ||
| - | * Adresa MAC se mai numește și adresă fizică sau adresă hardware. | ||
| - | |||
| - | |||
| - | <code bash> | ||
| - | ifconfig | ||
| - | </code> | ||
| - | |||
| - | Folosiți **''route''** pentru a afla gateway-ul implicit. | ||
| - | |||
| - | |||
| - | <code bash> | ||
| - | route -n | ||
| - | </code> | ||
| - | |||
| - | * **Pentru acasă**: de ce este nevoie de parametrul **''-n''**? | ||
| - | |||
| - | Inspectați fișierul **''/etc/resolv.conf''** pentru a descoperi adresa serverului DNS. | ||
| - | |||
| - | <code bash> | ||
| - | cat /etc/resolv.conf | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ===== 3. Configurări statice temporare de rețea ===== | ||
| - | |||
| - | **Acest exercițiu se desfășoară pe mașina virtuală ''sheldon''.** | ||
| - | |||
| - | **Configurarea rețelei este o operațiune critică sistemului, deci are nevoie de privilegii de ''root''** | ||
| - | |||
| - | Configurați **static temporar** mașina virtuală cu următorii parametri: | ||
| - | * adresa IP 192.168.102.10 | ||
| - | * masca de rețea 255.255.255.0. Câți biți aparțin adresei de rețea în cazul acesta? | ||
| - | * interfața nu este pornită. Va trebui să o puneți în starea **''UP''**. | ||
| - | |||
| - | <code bash> | ||
| - | ifconfig eth0 192.168.102.10 netmask 255.255.255.0 up | ||
| - | </code> | ||
| - | |||
| - | * gateway-ul implicit va fi 192.168.102.2 | ||
| - | |||
| - | <code bash> | ||
| - | route add default gw 192.168.102.2 | ||
| - | </code> | ||
| - | |||
| - | * serverul DNS va fi 8.8.8.8. Suprascrieți orice server existent. | ||
| - | |||
| - | <code bash> | ||
| - | echo nameserver 8.8.8.8 > /etc/resolv.conf | ||
| - | </code> | ||
| - | |||
| - | Testați conectivitatea cu google.com, trimițând 5 mesaje ICMP succesive: | ||
| - | |||
| - | <code bash> | ||
| - | ping -c 5 www.google.com | ||
| - | </code> | ||
| - | |||
| - | Reporniți mașina virtuală. S-au păstrat configurările? | ||
| - | |||
| - | |||
| - | ===== 4. Descoperirea configurărilor de rețea folosind iproute2 ===== | ||
| - | |||
| - | ifconfig, route și arp sunt comenzi clasice de configurarea rețelei, dar fac parte dintr-un pachet ce nu mai este menținut în prezent. **''iproute2''** este pachetul modern ce vine să înlocuiască utilitarele clasice | ||
| - | |||
| - | Folosiți comanda **''ip''** pentru a descoperi configurațiile mașinii fizice. | ||
| - | |||
| - | Listați interfețele și IP-urilor lor folosind: | ||
| - | |||
| - | <code bash> | ||
| - | ip address show | ||
| - | </code> | ||
| - | |||
| - | Afișați tabela de rutare folosind: | ||
| - | |||
| - | <code bash> | ||
| - | ip route show | ||
| - | </code> | ||
| - | |||
| - | Comenzile precedente pot fi prescurtate astfel: | ||
| - | |||
| - | <code bash> | ||
| - | ip a s | ||
| - | ip r s | ||
| - | </code> | ||
| - | |||
| - | ===== 5. Configurări persistente de rețea ===== | ||
| - | |||
| - | Setările făcute până acum sunt temporare deoarece se pierd la repornirea sistemului. Pentru a face configurări persistente, ne folosim de fișierul '''/etc/network/interfaces'''. | ||
| - | |||
| - | Vizualizați structura fișierlui de configurări persistente de rețea: | ||
| - | |||
| - | <code bash> | ||
| - | cat /etc/network/interfaces | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ====== Hands-On ====== | ||
| - | |||
| - | ===== 1. Configurări dinamice permanente ===== | ||
| - | |||
| - | **Acest exercițiu se desfășoară pe mașina virtuală ''sheldon''.** | ||
| - | |||
| - | * Inspectați configurația de pe mașina **''sheldon''**. Este interfața **''eth0''** activă? | ||
| - | * Configurați interfața **''eth0''** astfel încât ea să fie activă la boot-are și să fie configurată prin DHCP. | ||
| - | * Ce fișier conține configurarea interfețelor de rețea? | ||
| - | * Reporniți mașina **''sheldon''**. Testați conectivitatea. | ||
| - | |||
| - | <solution> | ||
| - | <code bash> | ||
| - | $ cat /etc/network/interfaces | ||
| - | [...] | ||
| - | auto eth0 # activează interfața la boot-are | ||
| - | iface eth0 inet dhcp | ||
| - | [...] | ||
| - | </code> | ||
| - | </solution> | ||
| - | |||
| - | |||
| - | ===== 2. Configurări statice permanente ===== | ||
| - | |||
| - | **Acest exercițiu se desfășoară pe mașina virtuală ''leonard''.** | ||
| - | |||
| - | * Inspectați configurația interfeței **''eth0''**. Este interfața activă? | ||
| - | * Configurați interfața **''eth0''**: | ||
| - | * adresa 192.168.102.80 | ||
| - | * netmask 255.255.255.0 | ||
| - | * gateway 192.168.102.2 | ||
| - | * Folosiți 8.8.8.8 ca nameserver. **Atenție**: nu folosiți același fișier în care ați configurat adresa IP și gateway-ul. | ||
| - | * Porniți interfața **''eth0''** folosind **''ifup''**. Cu ce diferă **''ifup''** de **''ifconfig''**? | ||
| - | * Testați conectivitatea. | ||
| - | |||
| - | <solution> | ||
| - | <code bash> | ||
| - | $ cat /etc/network/interfaces | ||
| - | [...] | ||
| - | auto eth0 | ||
| - | iface eth0 inet static | ||
| - | address 192.168.102.80 | ||
| - | netmask 255.255.255.0 | ||
| - | gateway 192.168.102.2 | ||
| - | [...] | ||
| - | $ cat /etc/resolv.conf | ||
| - | nameserver 8.8.8.8 | ||
| - | $ ifup eth0 # ifup folosește informațiile din /etc/network/interfaces | ||
| - | </code> | ||
| - | </solution> | ||
| - | |||
| - | |||
| - | ===== 3. Vizualizarea tabelei ARP ===== | ||
| - | |||
| - | Listați pe mașina fizică tabela ARP (neighbour table) folosind două comenzi diferite (o comandă clasică și o comandă din cadru iproute2). | ||
| - | |||
| - | <solution> | ||
| - | <code bash> | ||
| - | arp | ||
| - | arp -a | ||
| - | ip neighbour show | ||
| - | ip n s | ||
| - | </code> | ||
| - | </solution> | ||
| - | |||
| - | |||
| - | ==== 4. Configurarea statică a unui nume ===== | ||
| - | |||
| - | **Acest exercițiu se desfășoară pe mașina fizică.** | ||
| - | |||
| - | * Aflați adresa serverului http://wikipedia.org/. Cel mai simplu mod este a folosi ''ping''. | ||
| - | * Adăugați o intrare în fișierul ''/etc/hosts'' astfel încât serverul Wikipedia să poată fi accesat cu numele ''wiki''. | ||
| - | * Testați conectivitatea folosind ''ping''. | ||
| - | |||
| - | <solution> | ||
| - | <code bash> | ||
| - | $ host wikipedia.org # alternativ, se putea folosi ping | ||
| - | wikipedia.org has address 208.80.152.2 | ||
| - | $ echo "208.80.152.2 wiki" >> /etc/hosts | ||
| - | $ ping wiki | ||
| - | </code> | ||
| - | </solution> | ||
| - | |||
| - | |||
| - | <note info> | ||
| - | **Nicio întrebare de examen sau test practic nu va conține noțiuni despre IPv6.** | ||
| - | </note> | ||
| - | |||
| - | ===== 5. Folosirea iproute2. Configurarea de adrese IPv6 ===== | ||
| - | |||
| - | Folosiți iproute2 (comanda corespunzătoare se numește ''ip'') pentru a configura următoarele adrese: | ||
| - | * 2000::1/64 pe interfața vmnet8 a mașinii fizice | ||
| - | * 2000::2/64 pe interfața eth0 a mașinii virtuale sheldon | ||
| - | |||
| - | Inspectați rutele din tabela de rutare IPv6 de pe fiecare mașină (folosiți tot ''ip'') și testați conectivitatea folosind comanda ''ping6''. | ||
| - | |||
| - | <note tip> | ||
| - | Pentru configurarea adreselor IPv6 în Linux, trebuie folosită suita iproute2, deoarece ifconfig nu are suport pentru adrese IPv6. | ||
| - | </note> | ||
| - | |||
| - | |||
| - | ===== 6. Nameserver Switch ===== | ||
| - | Adaugati in **''/etc/hosts''** urmatoarea intrare **''127.0.0.1 google.com''**. In acest moment comanda **''ping google.com''** va da ping la **''127.0.0.1''**. Fără a realiza alte modificări în **''/etc/hosts''**, configurati sistemul astfel incat **''ping google.com''** sa va raspunda cu adresa IP reala a google.com. | ||
| - | <note tip> | ||
| - | Cautati informatii despre nsswitch | ||
| - | </note> | ||
| - | |||
| - | |||
| - | ===== 7. Configurarea unui tunel IPv6 peste IPv4 ===== | ||
| - | |||
| - | Configurați un tunel IPv6 peste IPv4 între mașina Sheldon și Leonard. Mașina Leonard are doar o adresă IPv4 pe interfața eth0 (nu adăugați o adresă IPv6). | ||
| - | |||
| - | Tunetul se va crea între interfețele eth0 cu adresele IPv4 de pe fiecare dintre cele două mașini. Capetele celor două tunele vor avea adresele 2001::1/64, respectiv 2001::2/64. | ||
| - | |||
| - | http://tldp.org/HOWTO/Linux+IPv6-HOWTO/conf-ipv6-in-ipv4-point-to-point-tunnels.html | ||
| - | |||
| - | |||
| - | FIXME | ||