Abychom mohli vytvořit síť, budeme potřebovat minimálně dva počítače vybavené síťovou kartou s konektorem RJ45. Tyto karty obvykle mívají dvě indikační diody. První z nich signalizuje spojení s jiným aktivním prvkem (případně i rychlost), druhá pak přenos dat přes dané rozhraní. Existují však karty, které indikační diody nemají, popřípadě u nich mají jiný význam, než jsem uvedl. Samotné propojení mezi dvěma počítači bez použití switche se vždy provádí kříženým kabelem, který jsme si koupili nebo vyrobili podle návodu v prvním díle seriálu.
Jestliže jste to již nevydrželi a síťové karty propojili kabelem, přesuneme se k druhé části, což je softwarové nastavení karet. Nevadí, pokud zrovna na obou počítačích nemáte nainstalovaný operační systém Linux. Problém vyřeší stažení, vypálení a nabootování některé z live distribucí. Osobně doporučuji například distribuci SLAX, která má poměrně slušnou podporu rozličného hardwaru.
Prvním příkazem, který si vyzkoušíme, je ifconfig. Program ifconfig se v Linuxu stará o konfiguraci síťových rozhraních. Protože jde o poměrně „mocný“ program, jsou pro jeho spuštění vyžadována práva roota. Uživatele live distribuce SLAX to nebude trápit, protože tady jiný uživatel než root neexistuje, ostatní budou muset pouštět program ifconfig přes sudo. Při jeho spuštění ho ale doplníme o parametr -a, jenž nám zviditelní všechna zařízení – i ta, která nejsou zrovna aktivní. Přibližný výsledek můžete vidět na následujícím výpisu:
root@slax:~# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:02:3F:0F:B4:37 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b Interrupt:9 Base address:0x4000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:62 errors:0 dropped:0 overruns:0 frame:0 TX packets:62 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8525 (8.3 KiB) TX bytes:8525 (8.3 KiB)
Ve výpisu vidíme dvě zařízení. První z nich je eth0. Zkratka eth0 znamená, že jde o první ethernetové zařízení. Lo je takzvaný loopback, což je speciální zařízení, které je schopno posílat pakety samo sobě. Často se setkáte i s jinými zkratkami, jako jsou například (u bezdrátových karet) wlan, wifi, ath. Existuje ale i spousta dalších, případně si můžete nějakou zkratku sami nadefinovat.
MTU je zkratka pojmu Maximum Transmission Unit a identifikuje maximální velikost paketu, kterou je prvek v daném prostředí schopen přenášet. Pokud dorazí na směrovač paket o velikosti větší, než kterou je přenosová trasa schopna, musí směrovač zajistit tzv. fragmentaci, neboli rozebrání paketu na menší části, a cílový uzel musí zajistit opětovné složení neboli defragmentaci.
Speciálním případem jsou virtuální rozhraní, které nám umožňují na jednom fyzickém rozhraní provozovat například několik různých IP adres. Ty mívají obvykle stejný zápis, jen na konci navíc obsahují dvojtečku a číslo virtuálního interfacu.
Kromě samotných zkratek zařízení nám ifconfig vypisuje několik velice důležitých údajů. Na prvním řádku to je MAC adresa, na druhém MTU s metrikou, na třetím a čtvrtém řádku počet vyslaných a přijatých paketů. Na posledním řádku nalezneme počet přijatých a odeslaných bajtů.
MAC adresa (zkratka z Media Access Control) je jedinečný identifikátor síťového zařízení, který používají různé protokoly druhé (spojové) vrstvy OSI. Je přiřazována síťové kartě NIC bezprostředně při její výrobě (u starších karet je přímo uložena do EEPROM paměti), nicméně ji lze dnes u moderních karet dodatečně změnit. Ethernetová MAC adresa se skládá ze 48 bitů a podle standardu by se měla zapisovat jako tři skupiny čtyř hexadecimálních čísel (např. 0123.4567.89ab), mnohem častěji se ale píše jako šestice dvojciferných hexadecimálních čísel oddělených pomlčkami nebo dvojtečkami (např. 01-23-45-67-89-ab nebo 01:23:45:67:89:ab).
NIC, z anglického Network interface card. Síťový adaptér (hardware) instalovaný v pracovní stanici nebo serveru umožňující komunikaci po síti (též network interface board, network adapter nebo network controller).
V případě, že jste zadali příkaz ifconfig -a a ve výpisu se objevilo pouze zařízení lo, znamená to, že ve vašem jádře není zkompilovaná podpora pro danou síťovou kartu. Pokud budete mít štěstí, bude podpora alespoň ve formě jaderného modulu. Nejprve zjistěte, jaký má vaše karta čip. Asi nejjednodušší cestou jak to zjistit, je spustit příkaz lspci, který vypíše všechny informace o zařízeních na sběrnici. Mezi spoustou informací najdete přibližně následující:
02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
To znamená, že můj počítač obsahuje ethernetovou kartu založenou na čipsetu Realtek 8139 rev10. Po prostudování dokumentace ke kernelu (nebo s pomocí internetu, pozn. red.) zjistíte, že pro tento čip existuje modul tg3. V případě, že tento modul máte na vašem disku zkompilovaný, zkuste ho zavést do jádra pomocí příkazu modprobe tg3. Po provedení příkazu by měla být karta ve výpisu ifconfig –a vidět.
V okamžiku, kdy zprovozníme obě síťové karty, začneme s přiřazováním IP adres. IP adresu lze rozhraní přiřadit opět příkazem ifconfig. Syntaxe je jednoduchá.
Ifconfig název zařízení ip_adresa maska broadcast [up,down]
Chceme-li na zařízení eth1 nahodit IP adresu 192.168.1.1 s maskou 255.255.255.0, napíšeme:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
Stejnou operaci provedeme na druhém počítači, pouze s jinou IP adresou.
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 up
Více informací o IP adresách a adresování sítě naleznete v jednom z dalších dílů našeho seriálu.
Skalní fanoušci namítnou, že stejnou práci za ifconfig provede jeho mladší bráška – program IP. Ten však bohužel doposud není standardně zcela ve všech distribucích.
Aktuálně tedy máme počítače na stejné síti a můžeme provést první test spojení. Pro tento účel se používá program ping, jenž vyšle ICMP dotaz a čeká na odpověď. Zadejte tedy do terminálu na prvním počítači ping 192.168.1.2 a odentrujte. Jestliže odpověď bude
root@slax:~# ping 192.168.1.2 PING 192.168.1.222 (192.168.1.2) 56(84) bytes of data. From 192.168.1.2 icmp_seq=1 Destination Host Unreachable From 192.168.1.2 icmp_seq=2 Destination Host Unreachable From 192.168.1.2 icmp_seq=3 Destination Host Unreachable …
máte bohužel problém. Vzdálený počítač vám neodpověděl, což znamená, že je někde chyba ve spojení. Zkontrolujte proto znovu nastavení IP adres, typ kabelu a jeho správné zasunutí. V okamžiku, kdy ve výpisu namísto hlášky „Destination Host Unreachable“ (cílový hostitel je nedostupný) uvidíte následující text, máte vyhráno.
… 64 bytes from localhost (192.168.1.2): icmp_seq=1 ttl=64 time=0.039 ms 64 bytes from localhost (192.168.1.2): icmp_seq=2 ttl=64 time=0.031 ms 64 bytes from localhost (192.168.1.2): icmp_seq=3 ttl=64 time=0.030 ms 64 bytes from localhost (192.168.1.2): icmp_seq=4 ttl=64 time=0.030 ms 64 bytes from localhost (192.168.1.2): icmp_seq=5 ttl=64 time=0.031 ms --- 192.168.1.2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.030/0.032/0.039/0.005 ms root@slax:~#
Z obrazovky lze opět zjistit několik velice důležitých informací. Začátek řádku označuje, jak velký ping vysíláte a odkud přišel. V Linuxu je u pingu délka paketu defaultně 64 bajtů (ve Windows XP je to 32 bajtů). Tento parametr lze změnit přepínačem -s. Z další části výpisu se dozvíte, kolikátý ping právě proběhl. Standardně se ping provádí, dokud ho neukončíte současným stiskem kláves [Ctrl-c]. Pakliže vám stačí vidět například pouze první čtyři pingy, zadejte za ping ještě přepínač -c a počet pingů, které požadujete. Program se automaticky ukončí, jakmile dosáhne vámi zadané hodnoty. V posledním sloupci naleznete jeden z nejdůležitějších údajů – rychlost odpovědi v milisekundách.
Při ukončení programu se za výpis automaticky přidají ještě tři řádky se statistikami. Z prvního řádku zjistíte, kterého pingu se statistiky týkají, na druhém naleznete, kolik pingů jste vyslali, kolik přijali, jaká je jejich průměrná ztráta a jak dlouhou dobu ping probíhal. Na posledním řádku se dozvíte o tom, který z pingů byl nejmenší, jaká byla jeho průměrná hodnota, který byl největší a jaká byla jeho střední odchylka.
Jaký je správný parametr pro ping a jaké odezvy by měl dosahovat? Na tuto otázku je těžké odpovědět. Ping o standardní velikosti požíváme pouze v okamžiku, kdy nás nezajímá kvalita sítě – například při ověřování změn v DNS a podobně. V ostatních případech se snažte odesílat několik desítek pingů alespoň o velikosti MTU (tj. 1500). Bohužel některá zařízení nepropouštějí „velké“ pingy a jiná vám neodpoví na ping vůbec. Nejlepšího pingu dosáhnete na optických a metalických kabelech, o něco hůře na tom bývají optická pojítka a nejvíce problematická bývají bezdrátové access pointy. Zde nebývá výjimkou, že jediné zařízení je schopno prodloužit ping i o desítky milisekund. Pokud vás zajímá, jaká, že je správná odezva pingu, pak vás asi zklamu. Zatím tuto hranici nikdo nedefinoval. Mezi on-line hráči her, kteří potřebují mít rychlé odezvy serverů, se za dobrou hranici považuje hodnota do 20 milisekund s nulovou ztrátovostí.
Pro dnešek je to vše. Můžu vám pouze slíbit, že v dalším díle si ukážeme, jak propojit tři počítače za použití aktivního prvku. Nezapomeneme si také ukázat další důležité linuxové utility, jako je arping, mii-tool či ethtool.
Poznámky převzaty z Wikipedie, cs.wikipedia.org.