VirtualBoxi võrgud: Difference between revisions
Line 55: | Line 55: | ||
Virtuaalmasin saab oma võrguaadressi ja konfiguratsiooni privaatvõrgus DHCP serverilt, mis on integreeritud VirtualBoxi. IP aadress, mis määratakse virtuaalmasinale, on tavaliselt teises võrgus kui host. Kuna NATi kasutamiseks võib virtuaalmasinas üles seada rohkem kui ühe kaardi, siis esimene kaart on ühendatud privaatvõrguga 10.0.2.0, teine kaart võrguga 10.0.3.0 jne. | Virtuaalmasin saab oma võrguaadressi ja konfiguratsiooni privaatvõrgus DHCP serverilt, mis on integreeritud VirtualBoxi. IP aadress, mis määratakse virtuaalmasinale, on tavaliselt teises võrgus kui host. Kuna NATi kasutamiseks võib virtuaalmasinas üles seada rohkem kui ühe kaardi, siis esimene kaart on ühendatud privaatvõrguga 10.0.2.0, teine kaart võrguga 10.0.3.0 jne. | ||
====Pordi edastamine kasutades NATi==== | |||
Kui virtuaalmasin on ühendatud privaatvõrguga ning nähtamatu hosti jaoks, siis võrguteenused külalisoperatsioonisüsteemil ei ole kättesaadavad host masina jaoks või teiste arvutite jaoks samas võrgus. Siiski nagu füüsiline ruuter, ka VirtualBox saab muuta valitud teenused võimalikuks välismaailma jaoks kasutades pordi edastust. See tähendab, et VirtualBox kuulab teatud porte hostil ning saadab edasi kõik paketid (mis saabuvad külalisoperatsioonisüsteemile), samale või teisele portile. Aplikatsioonile hostil või teistele füüsilistele (või virtuaalsetele) masinatele võrgus paistab nagu kõik teenused töötaksid hostil. | Kui virtuaalmasin on ühendatud privaatvõrguga ning nähtamatu hosti jaoks, siis võrguteenused külalisoperatsioonisüsteemil ei ole kättesaadavad host masina jaoks või teiste arvutite jaoks samas võrgus. Siiski nagu füüsiline ruuter, ka VirtualBox saab muuta valitud teenused võimalikuks välismaailma jaoks kasutades pordi edastust. See tähendab, et VirtualBox kuulab teatud porte hostil ning saadab edasi kõik paketid (mis saabuvad külalisoperatsioonisüsteemile), samale või teisele portile. Aplikatsioonile hostil või teistele füüsilistele (või virtuaalsetele) masinatele võrgus paistab nagu kõik teenused töötaksid hostil. | ||
Line 84: | Line 84: | ||
====PXE bootimine NAT-iga==== | |||
NAT režiim toetab PXE bootimist. NAT DHCP server annab boot faili nime kujul “vmname.pxe”, kui kataloogis, kus hoitakse kasutaja “VirtualBox.xml” faili, eksisteerib “TFTP” kataloog. | NAT režiim toetab PXE bootimist. NAT DHCP server annab boot faili nime kujul “vmname.pxe”, kui kataloogis, kus hoitakse kasutaja “VirtualBox.xml” faili, eksisteerib “TFTP” kataloog. | ||
====NAT piirangud==== | |||
NAT režiimis on olemas neli piirangut, millest kasutajad peavad teadlikud olema: | NAT režiimis on olemas neli piirangut, millest kasutajad peavad teadlikud olema: | ||
*'''ICMP protokolli piirangud''' - Mõned sagedalt kasutatavad võrgu debuggimise (tõlge!!) tööriistad (näiteks ping või tracerouting) toetuvad sõnumite saamisel/saatmisel ICMO protokollile. Kui ICMP toetus on paranenud VirtualBox versioonil 2.1 (ping peaks nüüd töötama), mõned teised tööriistad ei pruugi töötada usaldusväärselt. | |||
*'''UDP broadcast ei ole usaldusväärne''' - Külalisoperatsioonisüsteem ei saa usaldusväärselt broadcaste, sest ressursside säästmise eesmärgil oodatakse vastust ainult teatud aja vältel peale andmete saatmist teatud pordile. Tulemusena ei tööta alati broadcastimisel põhinev nimeresolutsioon NetBios. | |||
*'''Ei toetata protokolle nagu näiteks GRE''' - Teised protokollid peale TCP ja UDP ei ole toetatud. See tähedab, et ei ole võimalik kasutada mõndasid VPN tooteid (näiteks PPTP Microsoftilt). On siiski olemas ka teisi VPN tooteid, mis kasutavad TCP ja UDP protokolle. | |||
*'''Hosti portide < 1024 edastamine on võimatu''' - Unix-põhistel hostidega (näiteks Linux, Solaris, Mac OS X) ei ole võimalik siduda porte mis on madalamaid kui 1024. Üritades seda teha keeldub VM käivitamast. | |||
Need piirangud ei mõjuta tavaliselt standartset võrgu kasutamist, kuid NAT olemasolu avaldab teatud mõju, mis võib segada ka normaalselt töötavaid protokolle. Üks näide on NFS, kus server on tihti konfigureeritud keelduma ühendustest, mis tulevad eba-priviligeeritud portide poolt. |
Revision as of 20:40, 2 May 2011
Sissejuhatus
Käesolev wiki leht on loodud eesmärgiga anda ülevaatlikku informatsiooni VirtualBoxi võrkude kohta.
Töö tegemisel on kasutatud VirtualBoxi kodulehelt võetud materjale 2. mai 2011 aasta seisuga.
Võrgud
VirtualBox virtuaalmasinatele saab ühendada virtuaalseid võrgukaarte, mille abil saavad külalisoperatsioonisüstemid peremeesoperatsioonisüsteemi kaudu hõlpsalt luua võrguühenduse internetiga.
VirtualBox võimaldab ühte virtuaalmasinasse ühendada kuni kaheksa PCI Ethernet kaarti. Igale kaardile on võimalik määrata:
- Riistvara mida virtualiseerida
- Virtualiseerimise režiimi.
Graafilises kasutajaliideses on võimalik seadistada nelja võrgukaarti. Kõigi kaheksa võrgukaardi seadistamiseks tuleb kasutada käsurea tööriista VBoxManage modifyvm.
Virtualiseeritav riistvara
VirtualBox suudab virtualiseerida kuute erinevat tüüpi võrguriistvara:
- AMD PCNet PCI II (Am79C970A)
- AMD PCNet FAST III (Am79C973, the default)
- Intel PRO/1000 MT Desktop (82540OEM)
- Intel PRO/1000 T Server (82543GC)
- Intel PRO/1000 MT Server (82545EM)
- Paravirtualized network adapter (virtio-net)
PCNet FAST III on vaikeseade, sest seda toetab enamik operatsioonisüsteeme. Samuti ka GNU GRUB boot manager. Erandina valitakse Intel PRO/1000 seeria adapterid külalisoperatsioonisüsteemidele, milles ei sisaldu draivereid PCNet kaartidele.
"Paravirtualized network adapter (virtio-net)" (paravitualiseeriutd võrguadapter) valikut kasutades ei virtualiseeri VirtualBox võrguriistvara, vaid eeldab, et selleks kasutatakse, erilist tarkvara liidest.
Võrgurežiimid
Igaüht kaheksast võrguadapterist saab konfigureerida iseseisvalt, et toimida ühes nendest režiimidest:
- Not attached (mitte ühendatud) - Selles režiimis annab VirtualBox külalisoperatsioonisüsteemile märku, et võrgukaart on olemas, kuid et puudub võrguühendus – just kui etherneti kaabel ei oleks kaarti lülitatud. Vajalik on rekonfiguratsioon.
- Network Address Translation (NAT)(Vaikeseade) - Sobilik veebis käimiseks, failide allalaadimiseks, e-kirjade lugemiseks. Tuleb tähele panna, et Windowsi failijagamise kasutamisel ilmnevad teatud piirangud. Tegemist on virtuaalmasinaga, kus sisse lülitatud NAT käitub samamoodi nagu päris arvuti, mis on ühendatud internetti läbi ruuteri. Ruuteriks on antud juhul VirtualBoxi võrgumootor (network engine).
- Bridged networking (sillatud võrk) - See on mõeldud keerulisemate võrgutegevuste jaoks, nagu näiteks võrgu simuleerimised ja serveri kasutamine külalisoperatsioonisüsteemis. Kui võimaldatud, ühendub VirtualBox ühega installeeritud võrgukaartidest ning toimub otsene võrgupakettide vahetus.
- Internal networking (sisemine võrk) - Seda režiimi võib kasutada erinevate tarkvara-põhiste võrkude loomiseks, mis on nähtavad valitud virtuaalmasinatele, kuid mitte hostil töötavatele aplikatsioonidele või välismaailmale.
- Host-only networking - Režiim on mõeldud võrgu loomiseks, mis sisaldab hosti ja komplekti virtuaalmasinaid, ilma, et oleks vajalik hosti füüsiline võrguliides. Selle asemel luuakse hostil virtuaalne võrguliides, mis tagab ühenduvuse virtuaalmasinate ja hosti seas.
- VDE (Virtual Distributed Ethernet) networking - Seda võimalust saab kasutada, et ühenduda Virtual Distributed Ethernet switchiga Linuxi või FreeBSD hostil. See on teostatav ainult kui VDE tarkvara ja VDE plugin library on installeeritud host süsteemile.
Enimkasutatavad võrgurežiimid
Network Address Translation (NAT)
Lihtsaim viis, et pääseda ligi välisele võrgule virtuaalmasina kaudu. Tavaliselt ei ole vajalik konfigureerimine host võrgul ja külalissüsteemil. Seetõttu on tegemist vaikerežiimiga VirtualBoxis. Virtuaalmasin, millel on võimaldatud NAT käitub üsna sarnaselt tõelisele arvutile, mis ühendub internetiga kasutades ruuterit. „Ruuteriks“ on sellisel juhul VirtualBoxi võrgumootor, mis kaardistab liiklust nii virtuaalmasina suunas kui ka vastupidi. NAT režiimi negatiivne külg on see, et nagu ka privaatvõrgu puhul, virtuaalmasin on välisvõrkude jaoks nähtamatu ja kättesaamatu. Serveri käivitamine on võimalik ainult pordi edastamise teel (kirjeldatud allpool). Võrgu raamistiku/struktuuri, mis saadetakse välja külalisoperatsioonisüsteemi poolt, võtab vastu VirtualBoxi NAT mootor, mis eraldab TCP/IP andmed ja saadab need uuesti kasutades hosti operatsioonisüsteemi. Hostil asuvatele aplikatsioonidele või teistele arvutitele, mis paiknevad samas võrgus nagu host, tundub, nagu andmed oleks saadetud VirtualBoxi aplikatsiooni poolt, kasutades hostile kuuluvat IP aadressi. VirtualBox ootab vastust saadetud pakettidelt ning saadab nad uuesti külalismasinale läbi privaatvõrgu. Virtuaalmasin saab oma võrguaadressi ja konfiguratsiooni privaatvõrgus DHCP serverilt, mis on integreeritud VirtualBoxi. IP aadress, mis määratakse virtuaalmasinale, on tavaliselt teises võrgus kui host. Kuna NATi kasutamiseks võib virtuaalmasinas üles seada rohkem kui ühe kaardi, siis esimene kaart on ühendatud privaatvõrguga 10.0.2.0, teine kaart võrguga 10.0.3.0 jne.
Pordi edastamine kasutades NATi
Kui virtuaalmasin on ühendatud privaatvõrguga ning nähtamatu hosti jaoks, siis võrguteenused külalisoperatsioonisüsteemil ei ole kättesaadavad host masina jaoks või teiste arvutite jaoks samas võrgus. Siiski nagu füüsiline ruuter, ka VirtualBox saab muuta valitud teenused võimalikuks välismaailma jaoks kasutades pordi edastust. See tähendab, et VirtualBox kuulab teatud porte hostil ning saadab edasi kõik paketid (mis saabuvad külalisoperatsioonisüsteemile), samale või teisele portile. Aplikatsioonile hostil või teistele füüsilistele (või virtuaalsetele) masinatele võrgus paistab nagu kõik teenused töötaksid hostil. Teenuseid on võimalik puhverdada kasutades käsurea tööriista VboxManage. On vaja teada milliseid porte külalisoperatsioonisüsteemil teenus kasutab ja otsustada milliseid porte kasutada hostil (tihti, kuid mitte alati, on mõistlik kasutada samu porte nii külalisOS-il kui hostil). Kasutada võib kõiki porte hostil, mis pole juba kasutuses mõne teenuse poolt.
Näiteks, et üles seada sissetulev NAT ühendus SSH serveriga külalisoperatsioonisüsteemis, tuleks kasutada järgmist käsklust:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
Näite kohaselt kogu TCP liiklus, mis saabub portile “2222” edastatakse portile “22” külalisOS-il. Protokolli nimi “tcp” on atribuut, mis defineerib millist protokolli kasutatakse edastamiseks (võimalik kasutada ka udp). Nimi “guestssh” on puhtalt kirjeldav ning automaatsele-genereeritav. Number peale “--natpf” tähistab võrgukaarti.
Et eemaldada edastamine, kasuta käsklust:
VBoxManage modifyvm "VM name" --natpf1 delete "guestssh"
Kui mingil põhjusel külalisoperatsioonisüsteem kasutab staatiliselt määratud IP aadressit, on oluline edastamisel täpsustada külalisOS-i IP aadress:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,10.0.2.19,22"
See näide on sarnane eelmisega, ainult et NAT mootorile on öeldud, et külalisoperatsioonisüsteemi võib leida aadressil 10.0.2.19.
Et edastada kogu sissetulev liiklus teatud hosti liideselt külalisOS-ile, täpsusta selle hosti liidese IP järgmiselt:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"
PXE bootimine NAT-iga
NAT režiim toetab PXE bootimist. NAT DHCP server annab boot faili nime kujul “vmname.pxe”, kui kataloogis, kus hoitakse kasutaja “VirtualBox.xml” faili, eksisteerib “TFTP” kataloog.
NAT piirangud
NAT režiimis on olemas neli piirangut, millest kasutajad peavad teadlikud olema:
- ICMP protokolli piirangud - Mõned sagedalt kasutatavad võrgu debuggimise (tõlge!!) tööriistad (näiteks ping või tracerouting) toetuvad sõnumite saamisel/saatmisel ICMO protokollile. Kui ICMP toetus on paranenud VirtualBox versioonil 2.1 (ping peaks nüüd töötama), mõned teised tööriistad ei pruugi töötada usaldusväärselt.
- UDP broadcast ei ole usaldusväärne - Külalisoperatsioonisüsteem ei saa usaldusväärselt broadcaste, sest ressursside säästmise eesmärgil oodatakse vastust ainult teatud aja vältel peale andmete saatmist teatud pordile. Tulemusena ei tööta alati broadcastimisel põhinev nimeresolutsioon NetBios.
- Ei toetata protokolle nagu näiteks GRE - Teised protokollid peale TCP ja UDP ei ole toetatud. See tähedab, et ei ole võimalik kasutada mõndasid VPN tooteid (näiteks PPTP Microsoftilt). On siiski olemas ka teisi VPN tooteid, mis kasutavad TCP ja UDP protokolle.
- Hosti portide < 1024 edastamine on võimatu - Unix-põhistel hostidega (näiteks Linux, Solaris, Mac OS X) ei ole võimalik siduda porte mis on madalamaid kui 1024. Üritades seda teha keeldub VM käivitamast.
Need piirangud ei mõjuta tavaliselt standartset võrgu kasutamist, kuid NAT olemasolu avaldab teatud mõju, mis võib segada ka normaalselt töötavaid protokolle. Üks näide on NFS, kus server on tihti konfigureeritud keelduma ühendustest, mis tulevad eba-priviligeeritud portide poolt.