Pro koho je článek určen?
Pro správce sítí, ale nejen pro ně. Je určen pro studenty a jejich učitele, kteří mohou zkoušet chování počítačů v síti, aniž by museli fyzicky nějakou síť spravovat nebo mít k dispozici, je určen pro lidi, kteří si chtějí vyzkoušet něco nového, jiného, třeba právě před stavbou své domácí či jiné sítě. S VirtualBoxem to je snadné.
Co budeme potřebovat? VirtualBox a několik virtuálních počítačů. VirtualBox si můžete stáhnout na domovské stránce projektu (viz odkazy na konci článku). A virtuální počítače? Já sáhl po mé oblíbené distribuci Debian a rovnou po tzv. business card obrazu (to je minimální instalační obraz Debianu, má asi 36 MB). Stahovat můžete z Debian.org.
Instalace počítačů
Instalaci provedete obvyklým způsobem. Doporučuji postupovat tak, že nejprve nainstalujete zcela standardní systém (v mém případě s Debianem). Tzn. kliknutím na tlačítko Nový ve VirtualBoxu a projitím obvyklého průvodce (není potřeba vybírat žádné speciality). Po nainstalování systému máte k dispozici virtuální počítač, dál mu budu říkat třeba server.
Pokud vám, stejně jako mně, nebude vadit, že si instalaci klienta zkrátíme tak, že využijeme před chvílí instalovaný server, můžete postupovat takto. Vypněte virtuální počítač označený jako server a přejděte do adresáře ~/.VirtualBox/HardDisks. Tam byste měli vidět obraz disku serveru (soubor s příponou .vdi), ten je třeba nejprve naklonovat např. příkazem:
VBoxManage clonevdi DebianServer.vdi DebianKlient.vdi
A dál už můžete opět spustit průvodce vytvořením nového počítače, jen musíte v okně Virtuální pevný disk zvolit možnost Použít existující pevný disk...
Výběr virtuálního pevného disku
...a pomocí žlutého tlačítka se symbolem složky vpravo přejít do Správce virtuálních médií a zde nejprve pomocí tlačítka Přidat vybrat naklonovaný obraz a pak ho vybrat jako zdrojový pro nově vytvářený virtuální počítač. Odteď mu budeme říkat klient.
Výsledek pak můžete vidět na dalším obrázku. Tím jsme vytvořili dva virtuální počítače, server a klient. Pojďme se podívat jak mezi nimi natáhnout virtuální kabel.
VirtualBox s přidanými počítači
Tahání kabelu
V reálu bychom si museli rozmyslet něco jako kudy táhnout kabely, kde vyvrtat díry skrz zdi a podlahy, kam přidělat lišty a další věci, které ve výsledku vedou zpravidla k lezení po zemi nebo po žebříku s nářadím ne příliš odlišným od toho, které běžně používá demoliční četa. Nebojte se, ve virtuálním světě je život snazší.
Vyberte počítač server a klikněte na jeho nastavení. Protože jsme ho instalovali obvyklým způsobem, má tento počítač přímý přístup přes virtuální rozhraní VirtualBoxu a síťové rozhraní našeho počítače přímo na Internet. Protože se ovšem jedná o server, přidejme mu druhou síťovou kartu. V levém sloupci tedy zvolte Síť a zaškrtněte druhou síťovou kartu, ta bude místo k NAT připojena k Vnitřní síti. Její název můžete ponechat nezměněný.
Přidání druhé síťové karty na serveru
To samé provedeme i u počítače klient, pouze s tím rozdílem, že mu nebudeme kartu přidávat, ale naopak tu stávající pouze zapojíme do té sítě virtuální, pro představu můžeme uvažovat jakýsi virtuální switch s hromadou volných portů. Proto přejděte na kartu Síť a přepněte připojení Karty 1 na Vnitřní síť.
Připojení počítače klient do vnitřní sítě
V tomto okamžiku bych mohl skončit, protože je nyní virtuální počítačová síť hotová. Abych to však trochu ulehčil především začátečníkům, uvedu ještě jak ze serveru udělat to, čemu se běžně říká router a jaké nastavení je ještě třeba provést na klientovi, celé to bude vázané na mnou použitou distribuci Debian. Pokud zkoušíte jiné virtuální počítače, může se to lišit.
Nastavení klientského počítače
Protože jsme klientský počítač vytvořili klonováním serveru, budeme muset nastavit síťové rozhraní. Daemon Udev pozná, že síťová karta v počítači je jiná než ta, které přísluší nastavené rozhraní, a tak ji přejmenuje (je to stejná situace, jako když v počítači vyměníte síťovou kartu). Na klientském počítači se o tom přesvědčíte zadáním:
dmesg | grep eth
Kontrola jména síťového rozhraní
V mém případě je nové jméno eth2. Odpovídajícím způsobem musíme upravit i konfigurační soubor /etc/network/interfaces. Já tam přidal toto:
auto eth2 iface eth2 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1
Kde za slovem gateway je uvedena IP adresa brány, v mém případě to bude IP adresa vnitřního rozhraní (druhé síťové karty) serveru. DNS servery v /etc/resolv.conf měnit nemusíte, ty se nastavili na obvyklé jmenné servery poskytovatele (podle nastavení hostitelského počítače).
Pro provedení nastavení restartujte síťové rozhraní příkazem:
/etc/init.d/networking restart
Nastavení sítě můžete zkontrolovat příkazem ifconfig
.
Nastavení serveru
Podobná situace je i na serveru. Nejprve se podívejte jaké jméno přiřadil Udev druhé (vnitřní) síťové kartě, stačí obvyklé: dmesg | grep eth
. Dál upravte soubor /etc/network/interfaces. Já tam podle mého nastavení a označení síťové karty přidal toto:
auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0
Stávající rozhraní eth0 uvedené v tomto souboru bere informace z DHCP serveru virtuálního rozhraní mezi VirtualBoxem a vaším počítačem. Aby se nastavilo automaticky při restartu sítě, doporučuji do souboru ještě přidat řádek:
auto eth0
Nyní můžete restartovat síťové rozhraní podobně jako u klienta. Za odměnu budou oba počítače navzájem viditelné což odzkoušíte snadno pomocí pingu. Na klientovi zadáním: ping 192.168.0.1
a na serveru příkazem ping 192.168.0.10
.
Závěrečné nastavení
I když se počítač server na Internet dostane, počítač klient už ne. K tomu je třeba na serveru zadat následující dva příkazy, které z něj udělají to, čemu se běžně říká router.
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Ty byste pak měli (mohli) umístit do nějakého skriptu, který se často nazývá třeba local_start
a spouští se po startu počítače, to by bylo ale na úplně jiný článek. Tak ať vám virtuální síť dobře slouží.