Virtuelne mreže – Deo II

U ovom delu su opisani koraci koje je neophodno uraditi u VirtualBox-u. Jednom konfigurisan VirtualBox je pogodan za rešavanje većeg broja zadataka. U ovaj korak spadaju:

  1. Kreiranje osnovne VM u VirtualBox-u. Osnovna VM će biti korišćena za kloniranje (kreiranje) čvorova virtuelne mreže.
  2. Instaliranje i konfigurisanje Ubuntu-a u osnovnoj VM. Konfiguracija će biti uradjena tako da se, posle kloniranja, podešavanje kloniranih VM svede na minimum.
  3. Priprema osnovne VM za kloniranje. Pravljenje snimka (snapshot) koji će da se koristi za kreiranje čvorova.

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.

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.

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

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. 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 eth1. 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 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. 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 zadataka dati primeri topologije mreže i način njihove izrade.