Portál AbcLinuxu, 4. května 2025 15:46
Jak vytvořit malou domácí síť ze dvou počítačů. Snadno srozumitelný návod podle vlastních zkušeností.
Určitě jste se -- stejně jako já -- alespoň jednou dostali do situace, kdy jste zjistili, že počet počítačů v domácnosti značně pokulhává za počtem uživatelů, kteří právě teď potřebují pracovat, případně musí nutně odpovědět na e-mail. Dlouho jsem se bránil myšlence koupit další počítač, ale když jsem zjistil, že cena starého Pentia 200 i s kvalitním monitorem zdaleka nepřesáhne 3000 korun, spočítal jsem si, že tyto investované peníze se mi rychle vrátí. Byl jsem si ovšem vědom závažnější skutečnosti: nevím, jak postavit síť (i když má pouze dva počítače), a už vůbec nevím, jak se to dělá v Linuxu. Dnes už to vím, a protože mě to stálo dost času, chci poradit i čtenářům AbcLinuxu. Proto také prosím odborníky o shovívavost a korekci nepřesností, protože všechno, o čem budu psát, jsem se naučil sám, takže některé věci možná budou nepřesné. Ale výsledek funguje!
Hned na začátek tohoto miniseriálu vám chci sdělit, co že to vlastně budeme budovat, k čemu vám to bude a co tím vším získáte. Podle těchto návodů byste měli být schopní postavit si domácí síť běžící na Linuxu. Síť bude mít dva počítače (server, terminál), ale neměl by být problém rozšířit ji o další stanice. Na (každé) stanici bude možné spouštět aplikace ve vašem grafickém prostředí, které je nainstalované na serveru (např. KDE 3.x); problém nebude činit ani tisk. Vytvoříte komfortní pracovní prostředí, které by mělo být pro každého uživatele na kterémkoliv počítači v síti totožné (myšleno pro srovnání strojů, ne uživatelů).
Na začátek si řekněme, co je k vytvoření domácí sítě (síťky) potřeba.
Vycházím pochopitelně ze své situace, ale pokusím se abstrahovat . Síť
postavíme na bázi klient-server. Na serveru poběží všechny procesy, které
budou poskytovány klientovi na žádost. Na klientovi spustíme pouze procesy
nutné pro jeho správu a pro síťové spojení. Co všechno tedy
potřebujeme?
Předpokládám, že server máte; snad i klienta. Pokud máte jen jeden počítač a koupíte druhý, jako server by měl sloužit ten rychlejší. (Ale to je snad jasné...) Pokud budete pořizovat klienta, pak vězte (kdo se neorientujete), že zmíněné Pentium 200 v konfiguraci 32 MB RAM/1.2 GB harddisk/disketová mechanika/grafická karta 1--4MB RAM stojí cca 1500 Kč. Součástí asi nebude CD-ROM, ale to nevadí, naopak si myslím, že je zbytečná. Kvalitní digitální monitor se značkovou elektronikou ("vnitřkem") přijde na cca 1500 Kč. Síťovou kartu koupíte v bazaru za 50--100 korun, jedná se o "krabicové" zboží (jsou naházené v krabici někde v rohu a obsluhu otravuje už to, že vám kvůli tomu musí vypsat paragon). Může se stát, že síťovka nebude funkční, proto je vhodné koupit raději novou (cca 200 Kč/kus); záleží na vás. Relativně velký problém nastává při koupi kabelu. V prodejnách VELICE neradi stříhají kabel na míru, protože celá práce neodpovídá ceně kabelu (10 Kč/m); proto počítejte s tím, že největší položkou v ceně kabelu bude práce. Není vhodné natahovat kabel venkovním prostředím, hrozí nejen zničení počítačů, ale dokonce i vyhoření domu/bytu (blesk si vybírá to nejlepší místo). Také není vhodné instalovat kabel delší než 50 metrů -- není pro to určen (elektromagnetické pole, ztrátovost při přenosu). Optimální délka kabelu by tedy neměla přesáhnout 20 metrů (z místnosti do místnosti podél zdi to vyjde na cca 10--15 metrů).
Velice důležitým faktorem je typ kabelu. Požadujte
křížený kabel pro 10/100 MBit ethernet. Je to velmi
důležité (jeden z vodičů -- bílý? -- kříží na jednom konci ostatní). Pokud
si tímto nejste jisti, z problémů se nedostanete. Cena kabelu by neměla
přesáhnout 200-300 korun. Celkové náklady se tedy pohybují kolem
3000-3500 Kč (nepočítám v to cenu operačního systému, který je zadarmo ).
První zásadní věcí je pochopitelně natažení kabelu po bytě. Zmiňuji se o tom pouze proto, že vám to zabere určitou dobu. Kabel veďte tak, aby nebyl na žádném místě "skřípnutý" (např. pod prahem dveří), neměl by být ohnutý násilím. Do zdířky síťové karty by měl být zacvaknutý pod přirozeným úhlem. Všechny takové kritické body jsou potenciálním zdrojem nepříjemností.
Pojmenujme si pro naše účely oba počítače jmény Server a Stanice.
Nainstalujte síťovou kartu (fyzicky) do počítače a ujistěte se v setupu, že
používá jedinečné IRQ a adresu. Do setupu se dostanete při startu počítače
v okamžiku, kdy se "počítá" paměť nejčastěji stiskem klávesy
Del
nebo podobné (měla by být zobrazena na monitoru). U
starších počítačů (se kterými pracujeme) nemáte možnost nastavovat takové
"citlivé" hodnoty, stačí když víte, která IRQ jsou volná. Pokud dvě IRQ kolidují, počítač stoprocentně "tuhne", a to nejen
ve Windows. Na tomto místě je nutné poznamenat, že síťová karta má vlastní
paměť, kde tyto informace uchovává. Lze je nastavit programem, který
získáte na webových stránkách výrobce. Tyto utility běží obvykle v DOSu,
pokud nemáte starý MSDOS, použijte kupř. DR-DOS. Vytvořte si bootovací disketu spolu
s uvedenou rutinou a kartu řádně nastavte (na hodnoty, které si poznačíte).
Jako způsob spojení nastavte 10/100Mbitový ethernet. Obvykle se není
vhodné zadávat zde způsob konfigurace PlugAndPlay, nastavte hodnoty "natvrdo".
Tuto fázi se nevyplácí podceňovat, měli byste ji provést každopádně.
Pokud jste kartu nastavili a jste přesvědčeni, že nebude kolidovat s jinými zařízeními, je hardwarová příprava Stanice u konce. Zasuňte konektor kabelu do síťové karty a přesuňte se k Serveru.
Nainstalujte na Serveru síťovou kartu stejným způsobem jako na Stanici. Spusťte Linux. Sledujte výpisy jádra, jestli se objeví (přibližný) název síťové karty. Pokud ano (měl by), je vše v pořádku (alespoň z 50%). Přihlaste se jako root a zadejte
dmesg | less
Tento příkaz vám znovu zobrazí informace jádra, které se produkují při startu systému. Zkontrolujte, zda údaje o síťové kartě (IRQ, adresa) odpovídají těm údajům, které jste nastavili dosovou utilitou. Výpis může vypadat např. takto:
...
PCI: Found IRQ 11 for device 00:03.0
PCI: Sharing IRQ 11 with 00:07.2
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
00:03.0: 3Com PCI 3c590 Vortex 10Mbps at 0x1040. Vers LK1.1.16
00:03.0: Overriding PCI latency timer (CFLT) setting of 64, new value is 248.
...
Kromě stránky, kde lze najít novou verzi ovladačů této síťové karty, jsme se dozvěděli, že se jedná o kartu 3com, model 3c590, která má IRQ nastavené na 11, adresu na 0x1040 hexadecimálně a způsob komunikace na 10Mbps. Modul pro ovládání karty se tedy v pořádku načetl.
Pokud ve výpisu informace o kartě nenajdete, je nutné načíst modul ručně. Pokud znáte název karty nebo chipsetu, zadejte:
modprobe -l | grep nazev_karty_nebo_chipsetu
Pokuste se odhadnout nebo určit, který modul je ten pravý. Vložte jej
příkazem modprobe nazev_modulu
. Pokud na vás nevystřelí
množství chybových hlášení, našli jste jej; přesvědčte se příkazem
lsmod
. Pokud se chybová hlášení objeví, nastává čas natáhnout
Google a hledat. Je to velice
nepravděpodobné, proto hodně štěstí .
Modul je načten, nastává čas nastavit síťové služby. Způsob nastavení se v každé distribuci nepatrně liší. Ať už to provedete prostřednictvím nějaké utility, nebo ručně, výsledek musí být stejný. Proto přímo popíšu nastavení konfiguračních souborů; jejich umístění v adresářové struktuře se v jednotlivých distribucích může lišit. Předpokládám, že váš systém přišel na svět standardní instalací se síťovou podporou, proto zde tento proces neřeším.
První věcí, kterou nastavíme, jsou síťové adresy Serveru a Stanice.
Existuje způsob, jak adresu stanicím přidělovat dynamicky, ale v případě
jedné stanice to nemá význam. Adresy všech stanic v síti (tedy i Serveru!)
jsou uloženy v souboru /etc/hosts
:
# hosts
# This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#
# By the way, Arnt Gulbrandsen
# should NEVER be named with the name of the machine. It causes problems
# for some (stupid) programs, irc and reputedly talk. :^)
#
# For loopbacking.
127.0.0.1 localhost
192.168.1.20 stanice.byt stanice
192.168.1.10 server.byt server
# End of hosts.
Tento soubor, zde konkrétně pocházející z mého Slackwaru 9.0, poskytuje základní informace o tom, jak zadávat údaje do souboru. Dočteme se, že na malých systémech je tento soubor vhodnější než nameserver (který v podstatě totéž dělá na velkých systémech). Je také nevhodné pojmenovávat loopback adresu jménem počítače. (Tento pomyslný klient slouží k testování funkčnosti sítě; počítač vlastně komunikuje sám se sebou, ale přes síťovou kartu.) Formát údajů je následující:
sitova_adresa nazev_pocitace.nazev_site aliasy
Položka localhost
s adresou 127.0.0.1
je
"téměř" povinná. Setkal jsem se názorem, že by měla být uvedena jako první.
Něco o tom, jakou adresu vybrat, se dočtete v Networking HOWTO.
Adresní prostor pro soukromé sítě nepřipojené do Internetu
začíná právě na hodnotě 192.168.1.0.
Nyní přiřadíme síťovou adresu vlastní kartě. Ve Slackwaru se jedná o
soubor /etc/rc.d/rc.inet1
(výřez):
IPADDR="192.168.1.10" # REPLACE with YOUR IP address!
NETMASK="255.255.255.0" # REPLACE with YOUR netmask!
GATEWAY="" #REPLACE with YOUR gateway!
BROADCAST=`/bin/ipmask $NETMASK $IPADDR | cut -f 1 -d ' '`
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
Tento soubor používá z důvodu flexibility proměnné, nastavení ale můžeme
provést pomocí přímých hodnot. Bránu (gateway) není nutné nastavovat. K
podrobnostem vizte výše zmíněné HOWTO. Kontrolu nastavení provedeme
příkazem ifconfig
. Výpis by měl vypadat nějak takto:
/etc/rc.d: ifconfig
eth0 Link encap:Ethernet HWaddr 00:A0:24:CC:A7:34
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8143 errors:0 dropped:0 overruns:0 frame:0
TX packets:7321 errors:0 dropped:0 overruns:0 carrier:0
collisions:118 txqueuelen:100
RX bytes:4289868 (4.0 Mb) TX bytes:2572950 (2.4 Mb)
Interrupt:11 Base address:0x1040
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:80 errors:0 dropped:0 overruns:0 frame:0
TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5632 (5.5 Kb) TX bytes:5632 (5.5 Kb)
Další fází je spuštění požadovaných služeb. Opět zde platí, že každá
distribuce poskytuje jiné nástroje pro jejich nastavení. Zásadní program se
jmenuje portmapper a spouští se (ve startovacích skriptech v adresáři
/etc/rc.d/
) příkazem rpc.portmap
. Zprostředkovává
základní komunikaci mezi počítači. Pokud neběží, spusťte jej a přesvědčte
se příkazem rpcinfo
, výpis by měl být následující:
rpcinfo -p
program verz proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
Tento díl ukončíme testem, zda je síťová komunikace na serveru funkční.
Zadejte příkaz ping server
a sledujte výpis (musíte jej sami
ukončit klávesami Ctrl-C). Pokud vypadá nějak takto,
ping server
PING server.byt (192.168.1.10): 56 octets data
--- server.byt ping statistics ---
324 packets transmitted, 0 packets received, 100% packet loss
tak není síť nastavená správně. Hledejte v archívu diskuzí na AbcLinuxu, je to častý dotaz. Bezchybný výpis je např. ten následující:
ping server
PING server.byt (192.168.1.10): 56 octets data
64 octets from 192.168.1.10: icmp_seq=0 ttl=64 time=0.3 ms
64 octets from 192.168.1.10: icmp_seq=1 ttl=64 time=0.1 ms
64 octets from 192.168.1.10: icmp_seq=2 ttl=64 time=0.1 ms
--- server.byt ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.3 ms
Pokud všechno funguje, máme Server téměř připravený pro síťovou instalaci Linuxu na Stanici. O té bude pojednávat druhý díl našeho vašeho seriálu. Zatím uvažujte o tom, jakou distribuci nainstalujete na Stanici. Už máte kabel?
Petře, router je hezká věc, ale jen do té doby, pokud Vám stačí pouhé připojení k netu. Nelze na něm provozovat poštovní služby, databáze, xserver a podobně.
Já kupříkladu serveru, který běží na nejvyšší polici ve spíži, často využívám k připojení skrze ssh a třeba čtení pošty a nebo i rychlé údržbě na serverech zákazníků, pokud se mi nechce na krátkou dobu zapínat můj hlavní a mnohonásobně výkonější počítač s velkým monitorem, mnohem větší spotřebou atd... U serveru mám jen 12" černobílý monitor, ale má krásně ostrý obraz.
BTW: Co se spotřeby týče, myslím, že už jsme o tom diskutovali na rootu a taky doporučuju krátký článeček na mcu.cz, dozvíte se konkrétní čísla. První pravidlo je vybavit router kvalitními zpomalenými ventilátoru = déle vydrží v provozu a budou mnohem tišší při zachování rozumné účinnosti, budou taky pomaleji a méně nasávat prach. Druhé pravidlo, mírně podtaktovat FSB, CPU i RAM, možná i VGA, snížit napájecí napětí (nutno experimentovat a testovat), vypnout externí cache (interní jsou větší žrout, ale bez nich se CPU zpomalí příliš mnoho), nastavit power management a pod. prostě to co BIOS umí - opět je dobré volit kompromis. Třetí pravidlo, nepoužívat nejvýkonnější hardware z té konkrétní vývojové řady, např. Intel Pentium 166MMX je lepší volba než 233MMX, ale 200MMX je nejlepší, protože se dá podtaktovat na 166MHz a má ještě nižší spotřebu a bude stabilnější než 166MMX. pak se dostanete třeba i na poloviční spotřebu proti obvyklému stavu. Obecně platí, že CPU AMD (a nedejbože Cyrix) se zahřívají více. Je dobré volit grafické karty typu PCI (na serveru máte stejnak jen textovou konzoli, ne?), protože mají pomalejší sběrnice a při stejné technologii i nižší spotřebu. HDD do serveru? Raději pomalé, pokud nebude fungovat jako hodně zatížený fileserver, ale i tak by mohlo těch 5 - 10MB/s (obvyklé u 5400ot/min) na domácí použití stačit, pomalejší disky se taky míň hřejou, hlučné bývají bohužel stejně, nebo víc. Zdroje mám raději ATX PFC, je dobré zdroj lehce předimenzovat, jednak bude mírně odolnější proti rušení a jednak se bude míň zahřívat a zvláště to je v uzavřených prostorách důležité, taky bude mít delší životnost.
Fakt si s tím lze vyhrát, zkoušel jsem v praxi.
A cena? Nepříliš zajímavé, zvláště když router postavím z vlastního dávno nepoužívaného PC.
Srandovní je, že pomocí broadcastu lze odlišit stroje s Windows od Linuxových, tedy - většinou.
V práci mám na síti dva počítače s Windows, tři s Linuxem a síťovou tiskárnu. Pingnu li na x.x.x.255 -b, tedy na všechny, ozývá se vše, kromě PC s Linuxem a CPU 486 (ten se ozývá jen někdy a se spožděním) a strojů s Windows. Jejich odezvy jsou prostě příliš pomalé. Zkoušel jsem to i jinde a opravdu to tak často funguje.
Mno sice je super jak je to tu vše popsané a možná se projevim jakou natvrdlo, ale než tohle všechno nebylo by lepší koupit za 1000,- router a domácí síť je prakticky hotovka
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.