This shows you the differences between two versions of the page.
saisp:labs:08:contents:06 [2014/02/08 18:23] alexandru.carp |
saisp:labs:08:contents:06 [2015/05/04 16:56] (current) alexandru.carp [06. [15p] Interconectare mașini virtuale] |
||
---|---|---|---|
Line 2: | Line 2: | ||
==== 06. [15p] Interconectare mașini virtuale ==== | ==== 06. [15p] Interconectare mașini virtuale ==== | ||
- | Creați 2 imagini de disk pornind de la imaginea de baza ''sda.qcow2'' cu numele ''sda-vm1.qcow2'' și ''sda-vm2.qcow2''. | + | Creați 2 imagini de disk pornind de la imaginea de baza ''base.qcow2'' cu numele ''sda-vm1.qcow2'' și ''sda-vm2.qcow2''. |
<solution -hidden> | <solution -hidden> | ||
<code bash> | <code bash> | ||
- | root@saisp:~# qemu-img create -f qcow2 -b sda.qcow2 sda-vm1.qcow2 | + | root@saisp:~# qemu-img create -f qcow2 -b base.qcow2 sda-vm1.qcow2 |
- | root@saisp:~# qemu-img create -f qcow2 -b sda.qcow2 sda-vm2.qcow2 | + | root@saisp:~# qemu-img create -f qcow2 -b base.qcow2 sda-vm2.qcow2 |
</code> | </code> | ||
</solution> | </solution> | ||
Line 38: | Line 38: | ||
Logați-vă din nou ca ''root'' pentru a se modifica prompt-ul. | Logați-vă din nou ca ''root'' pentru a se modifica prompt-ul. | ||
- | În acest moment am creat 2 legături virtuale între instanțele KVM și mașina fizică. În mod uzual se dorește ca mașinile virtuale și mașina fizică să aparțină aceleași rețele. Pentru acest lucru avem nevoie de un //switch virtual// în care să conectăm legăturile create anterior (''tap-vm1'' și ''tap-vm2'') împreună cu mașina fizică. //Switch-ul virtual// poate fi emulat folosind conceptul de //bridge// din kernelul de Linux. Vom crea bridge-ul/switch-ul virtual uzual denumit ''brX'', unde ''X'' va fi ''0'' (//br// urmat de un index):<code bash> | + | În acest moment am creat 2 legături virtuale între instanțele KVM și mașina fizică. În mod uzual se dorește ca mașinile virtuale și mașina fizică să aparțină aceleiași rețele. Pentru acest lucru avem nevoie de un //switch virtual// în care să conectăm legăturile create anterior (''tap-vm1'' și ''tap-vm2'') împreună cu mașina fizică. //Switch-ul virtual// poate fi emulat folosind conceptul de //bridge// din kernelul de Linux. |
+ | |||
+ | Vom crea bridge-ul/switch-ul virtual denumit ''brX'', unde ''X'' va fi ''0'' (//br// urmat de un index):<code bash> | ||
root@saisp:~# brctl addbr br0 | root@saisp:~# brctl addbr br0 | ||
root@saisp:~# ip link set dev br0 up | root@saisp:~# ip link set dev br0 up | ||
</code> | </code> | ||
<note important>Întotdeauna, nu uitați să ridicați nivelul 2 al bridge-ului</note> | <note important>Întotdeauna, nu uitați să ridicați nivelul 2 al bridge-ului</note> | ||
- | Vom conecta cele două interfețe virtuale ''tap-vm1'' și ''tap-vm2'':<code bash> | + | Vom conecta cele două interfețe virtuale ''tap-vm1'' și ''tap-vm2'' in bridge:<code bash> |
root@saisp:~# brctl addif br0 tap-vm1 | root@saisp:~# brctl addif br0 tap-vm1 | ||
root@saisp:~# brctl addif br0 tap-vm2 | root@saisp:~# brctl addif br0 tap-vm2 | ||
</code> | </code> | ||
- | Configurați pe interfața ''br0'' adresa IP ''192.168.1.1/24'', iar pe mașinile virtuale adresa IP ''192.168.1.2/24'', respectiv ''192.168.1.3/24''. Verificați conectivitatea între cele 3 adrese IP folosind comanda ''ping''. | + | Configurați pe interfața ''br0'' adresa IP ''192.168.1.1/24'', iar pe mașinile virtuale adresele IP ''192.168.1.2/24'', respectiv ''192.168.1.3/24''. Verificați conectivitatea între cele 3 adrese IP folosind comanda ''ping''. |
<solution -hidden> | <solution -hidden> | ||
<code bash> | <code bash> | ||
Line 64: | Line 66: | ||
În acest moment avem conectivitate între toate cele host-uri (''saisp'', ''VM1'', ''VM2''). Pentru a asigura conectivitatea la Internet trebuie să activăm rutarea și translatarea de adrese (NAT) pe mașina fizică:<code bash> | În acest moment avem conectivitate între toate cele host-uri (''saisp'', ''VM1'', ''VM2''). Pentru a asigura conectivitatea la Internet trebuie să activăm rutarea și translatarea de adrese (NAT) pe mașina fizică:<code bash> | ||
root@saisp:~# echo 1 > /proc/sys/net/ipv4/ip_forward | root@saisp:~# echo 1 > /proc/sys/net/ipv4/ip_forward | ||
- | root@saisp:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | root@saisp:~# iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE |
</code> | </code> | ||
+ | unde ''ethX'' este placa de retea de pe masina fizica. | ||
Ne mai rămâne să configurăm ruta implicită și serverul de DNS pe mașinile virtuale. Conectați-vă folosind SSH la mașinile virtuale și adăugați ca rută implicită adresa ''192.168.1.1'' (mașina fizică) și ca server de DNS ''8.8.8.8''. Verificați cu ajutorul comenzii ''ping'' că site-ul ''www.google.ro'' răspunde la cereri. | Ne mai rămâne să configurăm ruta implicită și serverul de DNS pe mașinile virtuale. Conectați-vă folosind SSH la mașinile virtuale și adăugați ca rută implicită adresa ''192.168.1.1'' (mașina fizică) și ca server de DNS ''8.8.8.8''. Verificați cu ajutorul comenzii ''ping'' că site-ul ''www.google.ro'' răspunde la cereri. | ||
Line 72: | Line 75: | ||
root@saisp:~# ssh root@192.168.1.2 | root@saisp:~# ssh root@192.168.1.2 | ||
root@VM1:~# ip route add default via 192.168.1.1 | root@VM1:~# ip route add default via 192.168.1.1 | ||
- | root@VM1:~# echo nameserver 8.8.8.8 > /etc/resolv.conf | + | root@VM1:~# echo "nameserver 8.8.8.8" > /etc/resolv.conf |
root@VM1:~# ping www.google.ro | root@VM1:~# ping www.google.ro | ||
</code> | </code> |