Hlavní navigace

Cooperative Linux - Síťování - TAP

Ladislav Hagara

Kdysi dávno, vlastně ještě docela nedávno, se říkávalo, že jenom jedna věc je lepší než Linux. Dnes to už zní prapodivně, vždyť Linux a počítačové sítě patří neoddělitelně k sobě, ale tenkrát se opravdu myslelo na Linux v síti. Co je tedy lepší než Cooperative Linux (coLinux)? No přece Cooperative Linux pořádně zasíťovaný.

Cooperative logo

Připojení Linuxu běžícího pod Cooperative Linuxem do počítačové sítě může být pro začínající uživatele docela tvrdým oříškem. Už se nejedná pouze o spuštění instalačního programu a bezmyšlenkové proklikání se až k tlačítku Finish. Je nutné znát základy počítačových sítí, vhodně nakonfigurovat síťové prostředí poskytované Cooperative Linuxem a odpovídajícím způsobem nastavit TCP/IP jak na straně Linuxu tak na straně Windows. Takové zasíťování a současný běh několika různých linuxových distribucí na jednom počítači, navíc pod operačním systémem Microsoft Windows, může být oříškem i pro zkušené správce.

Vývojová větev Cooperative Linuxu

Jak již bylo zmíněno, vývoj Cooperative Linuxu probíhá ve dvou větvích – stabilní 0.6.x a vývojové 0.7.x. Testovací verze obou větví lze získat ze stránek Henryho Nestlera. Aktuální testovací verze jsou stable-0.6.3-rc3 a devel-2.6.12-hn.

Vývojové verze Cooperative Linuxu je obvykle nutné instalovat ručně, tj. stáhnout několik souborů, rozbalit je do vybraného adresáře, ručně doinstalovat ovladač virtuálního síťového rozhraní atd. Verze devel-2.6.12-hn ale přichází s instalačním programem. Stačí jej jenom stáhnou, spustit a nechat se vést stejně jako u verze stabilní.

Vývojovou verzi devel-2.6.12-hn lze tak doporučit i k prvnímu seznámení se s Cooperative Linuxem. Také proto bude dále i tento seriál věnován více vývojové verzi Cooperative Linuxu.

Samozřejmě lze namítat, že některé z popisovaných vlastností nelze ve stabilní verzi využít. Zcela jistě se ale z dnešní vývojové větve jednou stane větev stabilní a informace zde publikované se tak budou možná hodit také uživatelům současné stabilní verze.

Cooperative 1
Cooperative 2

Jediným problémem při instalaci Cooperative Linuxu může být kliknutí na tlačítko „Ukončit instalaci“ při instalaci ovladače pro virtuální síťové rozhraní TAP-Win32, poněvadž ovladač není digitálně podepsán. Řešení je nasnadě. Opět spustit instalační program a v závěru klikat o něco pomaleji. ;-)

Cooperative 3

Virtuální síťové rozhraní

Po nainstalování Cooperative Linuxu, přesněji řečeno po nainstalování virtuálního síťového ovladače „coLinux Virtual Ethernet Driver (TAP-Win32)“ se ve Windows objeví další síťové rozhraní. Uživatel je na jeho přítomnost upozorněn zobrazením ikonky na „Hlavním panelu“. Ikonka informuje, že „Síťový kabel byl odpojen“.

Cooperative 4

Přítomnost nového rozhraní lze ověřit také proklikáním se do Síťových připojení (Start/Ovládací panely/Síťová připojení) nebo spuštěním příkazu „netsh interface show interface“ v „Příkazovém řádku“.

Cooperative 5
Cooperative 6

Standardní název nového rozhraní je „Připojení k místní síti N“, kde N je pořadové číslo síťového rozhraní. Pokud je v počítači obsažena pouze jediná síťová karta, ponese první virtuální síťové rozhraní název „Připojení k místní sítí 2“. Také to ale může být klidně „Připojení k místní sítí 8“, pokud se uživatel Cooperative Linuxu už nějaký čas věnoval.

Konfigurace síťového prostředí

Jak jsem již psal, prostředí poskytované Cooperative Linuxem je definováno při jeho vytváření, tj. při spouštění programu colinux-daemon.exe. Linux běžící v tomto prostředí má přístup pouze k předem definovaným „hardwarovým“ zařízením. Pokud tedy má být Linuxu běžícímu pod Cooperative Linuxem umožněn přístup k počítačové síti, musí mu být především poskytnuto virtuální síťové rozhraní. Samozřejmě záleží na vlastnostech tohoto rozhraní. Pokud poskytnuté rozhraní není připojeno do počítačové sítě, nepřipojí se do počítačové sítě ani Linux běžící pod Cooperative Linuxem.

Ve vývojové verzi Cooperative Linuxu lze poskytované prostředí definovat obyčejným textovým souborem. K předání jména souboru programu colinux-daemon.exe slouží znak „@“, tj. například „colinux-daemon.exe @debian-01.txt“.

debian-01.txt

kernel=vmlinux
cobd0=debian-01
root=/dev/cobd0
eth0=tuntap 

Řádek cobd0=debian-01 v souboru debian-01.txt definuje soubor obsahující kořenový systém souborů. V dnešním díle se jedná o soubor Debian-3.0r2.ext3-mit-backports.1gb přejmenovaný na debian-01.

Síťové rozhraní lze definovat pomocí eth0=tuntap (první přiblížení). V tomto případě je linuxové rozhraní eth0 připojeno přes TAP-Win32 k Windows rozhraní „Připojení k místní síti 2“.

TAP-Win32

Z výpisů programu colinux-daemon.exe lze ověřit, zda je síťové rozhraní opravdu poskytnuto. Jak lze vidět, čeština v názvech rozhraní může dělat problémy.

Cooperative 7

Konfigurace TCP/IP

Konfiguraci IP lze v Linuxu zjistit příkazem ifconfig. Ve Windows příkazem ipconfig.

Cooperative 8
Cooperative 9

Pokud mají host a hostitel mezi sebou přímo komunikovat, musí být na stejné síti. V ukázkovém příkladu je Linux (Debian) umístěn na síti 192.168.0.0/24 a Windows na síti 169.254.0.0/16. Jedna ze stran se musí přizpůsobit. V případě Linuxu stačí spustit příkaz ifconfig se správnými argumenty nebo sáhnout do souboru /etc/network/interfaces (lze použít editor nano) a následně restartovat síťový podsystém ( /etc/init.d/networking restart). Komunikace (ping) z Linuxu do Windows ale ani po nastavení vhodné IP adresy a IP masky nefunguje.

Cooperative 10

Z Windows do Linuxu ale ping funguje.

Cooperative 11

Čím to může být? Firewallem na straně Windows. Existuje několik možnosti jak ping z Linuxu do Windows povolit. První krajní možnosti je vypnutí firewallu, tj. povolení veškeré komunikace z „Připojení k místní síti 2“. Druhou krajní možností je povolení pouze ping komunikace, tj. úprava nastavení protokolu ICMP.

Cooperative 12
Cooperative 13

Dva kohouti na jednom smetišti

Cooperative Linux umožňuje spouštění i několika různých linuxových distribucí současně. Pro začátek ale stačí rozchodit dva Debiany. První necháme běžet, zkopírujeme konfigurační soubor debian-01.txt na debian-02.txt a zkusíme jej podstrčit další instanci programu colinux-daemon.exe (colinux-daemon @debian-02.txt). Druhý Debian se ale nerozběhne. Problém je s kořenovým souborovým systémem. Soubor debian-01 je již využíván prvním Debianem.

Cooperative 14
Cooperative 15

Po zkopírování souboru debian-01 na debian-02 (pozor jedná se o soubor velikosti 1 GB) a úpravě konfiguračního souboru debian-02.txt (cobd0=debian-02) lze rozběhnout také druhý Debian. Problém je ale se síťovým rozhraním. Řádek eth0=tuntap říká, že se má použít TAP rozhraní. Ve Windows je ale zatím nainstalováno pouze jediné TAP rozhraní a to je už využíváno prvním Debianem.

Cooperative 16

Každý z Debianů potřebuje své vlastní TAP rozhraní, tj. vlastní síťovou kartu. Virtuální síťovou kartu/adaptér lze do Windows přidat stejným způsobem jako kartu fyzickou (Ovládací panely/Přidat hardware). Jenom se nenechte zmást pojmem „adapatéry“.

Cooperative 17

Pokud již byla na počítači nainstalována některá z předchozích verzí Cooperative Linuxu, pravděpodobně po ní na disku zůstala starší verze TAP-Win32 ovladače. S novou vývojovou verzí Cooperative Linuxu přichází také nová verze TAP-Win32 ovladače. Verze 8.3 (8.0.0.3) přináší zvýšení rychlosti z 10 Mbit/s na 100 Mbit/s. K používání TAP rozhraní už navíc nejsou potřebná administrátor­ská práva.

Cooperative 18

Pokud má být zajištěno, že daný Debian bude používat pouze dané TAP rozhraní, je nutné název rozhraní definovat v konfiguračním souboru. Také je možné definovat vlastní hardwarovou adresu.

eth0=tuntap,"Připojení k místní síti 3",11:22:33:44:55:66
Cooperative 19

Název rozhraní je možné samozřejmě změnit (Start/Ovládací panely/Síťová připojení). Místo „Připojení k místní síti 3“ může být vhodnější používat například „debian-02“.

Za hranice hostitele

V ukázkovém příkladu byla IP adresa Linuxu 192.168.0.40 a IP adresa Windows 169.254.161.84. Jak odborníci na TCP/IP jistě vědí, jedná se o speciální IP adresy definované v RFC3330. Adresní rozsah 192.168.0.0/16 slouží pro privátní/neveřejné sítě. Adresní rozsah 169.254.0.0/16 pro autokonfiguraci DHCP klientů v případě, že DHCP server není k dispozici. Adresy tedy zajímavé, ale pro surfování po Internetu nepoužitelné.

Řadě uživatelů Cooperative Linuxu ale přístup z Linuxu do Internetu vůbec nechybí. Právě naopak. Na Linuxu například vyvíjejí webové aplikace. Běží jim tam Apache, PHP, PostgreSQL nebo MySQL. Tím, že funguje pouze lokální komunikace z Windows do Linuxu, je zajištěno, že případný útočník nemůže z vnější sítě žádnou z aplikací běžících na Linuxu nabourat.

Za hranice hostitele se lze dostat několika způsoby. Pokud nechceme sahat na Linux, tj. necháme jej na síti 192.168.0.0/24, tj. nebudeme sahat do souboru /etc/network/in­terfaces ani používat příkaz ifconfig, je nutné upravit nastavení Windows. Windows XP zvládají NAT (Network Address Translation), tj. síťová komunikace vycházející z Linuxu se na Internetu tváří, jakoby pocházela z Windows, tj. privátní IP adresa 192.168.0.40 je nahrazována adresou Windows. Nastavení je jednoduché. V Ovládací panely/Síťová připojení/Připojení k místní síti/Vlastnos­ti/Upřesnit je nutné povolit „Sdílení připojení k Internetu“ (ICS – Internet Connection Sharing) a v „Připojení k domácí síti:“ vybrat virtuální rozhraní spojující Windows s Linuxem (Připojení k místní síti 2 nebo debian-01).

Cooperative 20

Adresa vybraného rozhraní (debian-01) bude následně automaticky přenastavena na 192.168.0.1. Po­něvadž Debian má výchozí bránu (default gateway) nastavenou také na 192.168.0.1, opravdu není nutné na IP konfiguraci Linuxu sahat.

Cooperative 21

Teď síťové spojení ještě ověřit. Například stáhnutím a instalací dalších balíčků. Co takhle Midnight Commander ( apt-get update; apt-get install mc)?

Příště

Opět síťování. Další způsoby připojení Cooperative Linuxu do počítačové sítě. Místo eth0=tuntap bude v konfiguračních souborech použito eth0=pcap-bridgeeth0=slirp.

Našli jste v článku chybu?

14. 5. 2008 14:32

dood (neregistrovaný)
Zdravim, mam klasicke openVPN na XP a chtel bych ho updatovat aby mel 100Mbps sitovku virtualni... Jak by to mohlo jit? diky.

20. 12. 2005 11:56

black (neregistrovaný)
skoda ze je takovej problem rozbehat tam X server :(
Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

DigiZone.cz: Ohrozí Freedom TV přechodové sítě?

Ohrozí Freedom TV přechodové sítě?

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Měšec.cz: Exekuční poradna: ptejte se online

Exekuční poradna: ptejte se online

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky