=======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.