=======KREIRANJE VIRTUALNIH MREŽA=======
======Priprema VirtualBox-a za kreiranje virtualne mreže======
=====Kreiranje osnovne VM u VirtualBox-u=====
====Kreiranje nove virtualne mašine====
//VirtualBox// je instaliran i pokrenut na računaru. U tekstu je korišćena 64-bit verzija //Ubuntu servera 14.04 LTS//. Prethodno je neophodno //download//-ovati .iso fajl. Naziv fajla je //**ubuntu-14.04.2-server-amd64.iso**//. Ime fajla može da se delimično razlikuje, a moguće je koristiti i 32-bit verziju, kada se ime fajla završava sa //-i386.iso// umesto //-amd64.iso//.
U //VirtualBox//-u potrebno je kreirati novu virtualnu mašinu (//New//). Nazvaćemo je "osnovna". Dva parametra koja moraju da se podese su:
*//Memory (RAM)//: 256MB
*//Hard disk size//: 2GB
====Konfiguracija mrežnih adaptera====
Pre startovanja virtualne mašine neophodno je promeniti podešavanja mrežnih adaptera (//Settings/Network//). U //VirtualBox////-////u// je podrazumevano dostupan samo prvi adapter, ali moguće je koristiti do četiri mrežna adaptera. Sve ćemo ih omogućiti (iako možda nećemo sva četiri koristiti).
//Adapter 1// je prekonfigurisan da koristi //NAT//// ////(Network Address Translation)//// VirtualBox//-a. To omogućava VM da ima pristup internetu, ali ne da se ponaša kao server ili da ima kontakt sa ostalim VM. Tako da, ako npr. imamo tri VM **node1**, **node2** i **node3**, konfiguracija koja koristi samo //NAT// bi izgledala kao na slici.
{{:samo_nat.png?600|Topologija virtualne mreže samo sa NAT - om}}
Mi želimo da naša mreža ima čvorove koji međusobno komuniciraju. Primer toplologije mreže sa nodovima koji međusobno komuniciraju je prikazana na slici.
{{:nasa.png?600|Topologija virtualne mreže sa NAT i dve interne mreže}}
//Adapter 1// je dostupan i konfigurisan da koristi NAT. Tip adaptera (Adapter Type) može da se promeni na //Paravirtualized Network (virtio-net)//. Ova promena u izvesnoj meri poboljšava performanse mreže. Naravno, ovaj korak nije obavezan i sve bi trebalo da radi i bez promene podešavanja.
Sada je potrebno uključiti (//Enable Network Adapter//) ostale adaptere (2, 3 i 4). Za svaki adapter postaviti sledeće parametre:
*//Attached to: Internal Network//
*//Name: neta (za Adapter 2), netb (za Adapter 3) i netc (za Adapter 4)//
*//Adapter Type: Paravirtulized Network (virtio-net)// (naravno, ovo je opciono)
*//Promiscuous Mode: Deny//
*//MAC Address//: nepromenjena vrednost (treba proveriti da li se razlikuje od adaptera do adaptera)
*//Cable Connection//: uključeno za Adapter 2, isključeno za Adapter 3 i Adapter 4
{{:padapter2.png?600|Podešavanja za Adapter 2}}
Konfigurisanje sva četri mrežna adaptera na osnovnoj VM olakšava konfigurisanje nodova kloniranih od osnovne VM.
Kada se startuje VM po prvi put (//Start//), //VirtualBox// traži da se izabere disk (.iso fajl) sa koga se podiže sistem. Tada treba izabrati prethodno zapamćen //Ubuntu// iso fajl.
=====Instaliranje i konfigurisanje Ubuntu-a u osnovnoj VM =====
====Instaliranje Ubuntu-a====
Instaliranje //Ubuntu//-a je prilično lako. Većina početnih (//default//) opcija je odgovarajuća, neka podešavanja mogu biti prilagođena potrebama (jezik, tastatura, vremenska zona isl.). Ipak par opcija je neophodno promeniti. To su:
*Na prvom instalacionom meniju (crni ekran sa menijem u sredini, koji je prikazan nakon izbora jezika), pritisnuti F4 i izabrati opciju //Install a minimal virtual machine//.
{{:screen-ubuntu-install-3.png?600|Izbor odgovarajuće opcije pri instalaciji}}
*Ime hosta (//hostname//), korisničko ime (//username//) i lozinka (//password//): Trebalo bi izabrati //osnovna//, //student// i //student#pmf//, respektivno. Ovako se obezbeđuje uniformisanost. Virtualna mašina nije predviđena za korišćenje na internetu pa bi neka druga podešavanja bila izlišna.
*U meniju za izbor softvera (//Software Selection//), treba izabrati //Basic Ubuntu server//.
====Startovanje i prijava na osnovnu virtualnu mašinu====
Na kraju procesa instalacije treba izabrati opciju dalje (//Continue//) da bi se VM restartovala. Nakon ponovnog (automatskog) pokretanja VM treba uneti korisničko ime i lozinku (student, student#pmf). Ako je sve odradjeno kako treba trebalo bi da se pojavi:
student@osnovna:~$
što znači da je korisnik student uspešno prijavljen na VM osnovna i da je trenutni direktorijum home (~).
====Instaliranje i update softvera====
Kada je //Ubuntu// instaliran i pokrenut, potrebno je //update//-ovati postojeće softverske pakete i instalirati neke dodatne. Za ovaj proces koristićemo alat ''//apt-get//''.
student@osnovna:~$ sudo apt-get update
student@osnovna:~$ sudo apt-get upgrade
student@osnovna:~$ sudo apt-get install traceroute nano iptables ufw
====Konfiguracija mreže====
Osnovni sistem ima 4 mrežna interfejsa. Pri konfiguraciji mreže u //VirtualBox//-u mi smo definisali da koristimo 2 mrežna interfejsa (//Adapter 1// i// Adapter 2//):
*''eth0'' (odgovara //Adapter 1// podešavanju u //VirtualBox//-u) se koristi za pristup internetu. On je konfigurisan od strane //DHCP// servera //VirtualBox//-a. Nema potrebe da se bilo šta menja vezano za ''eth0''.
*''eth1'' (//Adapter 2//) se koristi za internu mrežu (da bi se konektovali na druge VM). Mi ćemo manuelno podesiti adresu ovog interfejsa prema našim potrebama.
*''eth2'' (//Adapter 3//) se koristi na isti način kao i ''et''''h''''1''. Ipak, inicijalno smo podesili u //VirtualBox//-u da kabal nije konektovan. Ovaj interfejs može da se koristi u drugačijim topologijama mreže.
*''eth3'' (//Adapter 4//) se koristi isto kao i ''eth2''.
Konfigurisanje interfejsa se kod Debian/Ubuntu distribucija vrši u fajlu ///etc/network/interfaces//. Da bi smo promenili podešavanja potrebno je otkucati:
student@osnovna:~$ sudo nano /etc/network/interfaces
Linije vezane za ''lo'' i ''eth0'' interfejse nije potrebno menjati. Na kraju fajla bi trebalo dodati sledeće linije:
auto eth1
iface eth1 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.11 dev eth1
pre-down route del -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.11 dev eth1
#auto eth2
#iface eth2 inet static
# address 192.168.2.2
# netmask 255.255.255.0
# network 192.168.2.0
# broadcast 192.168.2.255
# post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.2.2 dev eth2
# pre-down route del -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.2.2 dev eth2
#auto eth3
#iface eth3 inet static
# address 192.168.3.3
# netmask 255.255.255.0
# network 192.168.3.0
# broadcast 192.168.3.255
# post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.3.3 dev eth3
# pre-down route del -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.3.3 dev eth3
U fajl su dodate linije koje podešavaju ''eth1''. Linije vezane za ''eth2'' i ''eth3'' su stavljene u komentaru, trenutno nisu potrebne. Ukoliko je potrebno, moguće je ukloniti komentare i izmeniti da prate odgovarajuću topologiju mreže.
Nisu sve linije potrebne za sve interfejse. U zavisnosti od konfiguracije mreže, možda nije potrebno definisati ''post-up'' i ''pre-down'' linije. Takođe, moguće je u zavisnosti od potreba prilagoditi adrese ili maske.
Da bi promene bile vidljive potrebno je restartovati VM:
student@osnovna:~$ sudo reboot
Nakon pokretanja i prjave izvršiti komandu:
student@osnovna:~$ netstat -rn
^Kernel IP routing table ^^^^^^^^
|Destination |Gateway |Genmask |Flags |MSS |Window |irtt |Iface|
|0.0.0.0 |10.0.2.2 |0.0.0.0 |UG |0 |0 |0 |eth0 |
|10.0.2.0 |0.0.0.0 |255.255.255.0 |U |0 |0 |0 |eth0 |
|192.168.0.0 |192.168.1.11 |255.255.0.0 |UG |0 |0 |0 |eth1 |
|192.168.1.0 |0.0.0.0 |255.255.255.0 |U |0 |0 |0 |eth1 |
**Objašnjenje:** VirtualBox konfiguriše ''eth0'' tako da ip adresa pripada opsegu 10.0.2.0/24. Osnovna ruta za sve adrese je preko 10.0.2.2 (adresa //VirtualBox// rutera). Podrazumevano, virtualne mreže su definisane u podmreži 192.168.0.0/16. ''Post-up'' linija dodaje novu rutu u tabeli rutiranja, koja postaje osnovna ruta za sve adrese iz podmreže 192.168.0.0/16, tj. za sve virtualne mreže.
**Primer:** Ako se zahteva komunikacija sa adresom 64.233.160.12 (jedna od [[http://www.google.com|www.google.com]] adresa) komunikacija se ostvaruje preko //gateway//-a 10.0.2.2 (tj. preko ''eth0''). Međutim, ako želimo da komuniciramo sa adresom 192.168.1.12 onda se ide preko //gateway//-a 192.168.1.11 (tj. preko ''eth1'').
=====Priprema osnovne VM za kloniranje=====
Prethodni koraci konfigurišu osnovnu VM tako da, kada se klonira i kreiraju čvorovi, bude lako da se čvorovi konfigurišu.
Prvo je potrebno kreirati snapshot osnovne VM. Ovaj //snapshot//, koji je verzija osnovne VM u određenom trenutku, će biti kloniran.
Postupak je sledeći:
*Selektovati osnovnu VM i kliknuti na dugme //Snapshots// u desnom uglu gornjem dela prozora, a zatim kliknuti dugme //Take Snapshot//.
{{:takesnapshot.png?600|Pravljenje snapshot-a osnovne VM}}
*Dodeliti ime //snapshot//-u (npr. osnovna).
Ovim korakom je završena priprema virtualne mašine za izradu virtualne mreže. U daljem tekstu su u obliku [[virtualna_mreza_zadaci | zadataka]] dati primeri topologije mreže i način njihove izrade.