Konfigurace síťových stanic Cíl kapitoly Cílem této kapitoly je porozumět správně nakonfigurovaným stanicím z hlediska připojení k datovým sítím. Studenti se seznámí se základními pojmy a principy konfigurace, které jim umožní pochopit důvody a důsledky konfigurace.
Klíčové pojmy: Alias, ARP, ARP tabulka, flag, genmask, HW type, ifconfig, metrika, PIC, Proxy ARP, přímá a nepřímá cesta, přímý zápis, rozhraní, směrovací tabulka,
Úvod Kapitola konfigurace síťových stanic předpokládá základní znalosti problematiky ISO-OSI a Linuxu. Pro pochopení činnosti při konfiguraci a jejího zdůvodnění je text podložen postupem u Linuxu, který umožňuje vysvětlit postup konfigurace. Konfigurace z velké části probíhá automaticky a tak obsah této kapitoly je potřebný zejména při hledání chyb a jejich opravách. Při správné konfiguraci se stanice hlásí již při startu výpisem, který může vypadat takto: eth0: 3C509 at 0x300 tag 1, BNC port, address 00608C51C2A9 kde
eth0
je nastavení protokolu fyzické vrstvy
3C509
typ a výrobce karty
0x300
IO adresa síťové karty (nejčastější hodnota)
BNC
typ konektoru
00608C51C2A9
Mac adresa karty
Pokud toto hlášení chybí, je chyba v konfiguraci nebo v hardwarové kolizi nebo chybě síťového adapteru.
Nastavení na fyzické vrstvě ISO-OSI Fyzická vrstva ISO-OSI určuje přenos dat z PC na kabeláž a opačně. Proto je počítač vybaven síťovou kartou, která musí odpovídat typům vnitřní sběrnice PC a požadovanému protokolu fyzického přenosu. Dále je nutné na této kartě nainstalovat ovladač karty, tedy umožnit ovládání operačnímu systému kartu pro přenosy. Předpokládáme přenos na TCP/IP protokolech.
Nastavení na linkové vrstvě ISO-OSI Na linkové vrstvě, která umožňuje komunikaci mezi sousedními uzly, je nutné nastvit typ přenosového protokolu (ethernet) jeho rychlost a dále převod IP adresy nejbližšího uzlu na MAC adresu. Toto nám umožňuje protokol ARP, který v každé stanici vytváří tabulku, která se též nazývá ARP .
Protokol ARP Pro prohlížení a nastavení tabulky ARP slouží příkaz arp(8). Jeho syntaxe vypadá následovně. arp [-vn] [-i rozhraní ] -a [IP_adresa] arp [-v] [-i rozhraní ] -d IP_adresa [pub] arp [-v] [-i rozhraní ] -s IP_adresa hw_adresa [temp| arp [-v] [-i rozhraní ] -s IP_adresa hw_adresa [netmask] pub arp [-v] [-i rozhraní ] -Ds IP_adresa iface [netmask maska] pub arp [-vnD] [-i rozhraní] -f soubor kde
-a
zobrazení
-d
výmaz
-D
bude použita hardwareová adresa rozhraní iface jako např. eth0
-s
tvorba statického záznamu ARP - přiřadí IP adrese hardwareovou adresu
pub
záznam proxy ARP (publish)
-f
adresy se získávají ze souboru (skoro vždy /etc/others)
-n
výpis adres v numerické podobě (jinak vypisuje router symbolická jména)
-v
zvětšuje rozsah vypisovaných informací
ARP tabulka ARP tabulka je vytvářena v souladu s ARP protokolem a je umístěna v každém uzlu sítě. Její obsah závisí na okolních uzlech sítě a výstupech z NIC (Network Interface Card) – síťové karty. ARP tabulka se vytváři jednak staticky, tj. ručně, a pak je záznam trvalý a jednak dynamicky podle provedených spojení. Tento záznam není trvalý a po jisté době mizí, takže nezatěžuje prohlížení tabulky systémem. Při zadání IP adresy systémem se v tabulce vyhledá patřičný řádek a z něho se přečte potřebný výstup z NIC karty a MAC adresa hledaného sousedního uzlu. Příklad výpisu ze stanice Výpis příkazem
arp -a
Address
HW type
HW address
flags mask
191.120.1.2
10Mbps Ethernet
00:60:8C:81:E6:76
C
*
191.120.1.254
10Mbps Ethernet
00:60:8C:73:A0:8D
C
*
Nebo výpis příkazem cat /proc/net/arp bude vypadat takto Address
HW type
Flags
HW address
191.120.1.2
0x1
0x2
00:60:8C:81:E6:76
*
eth0
191.120.1.254
0x1
0x2
00:60:8C:73:A0:8D
*
eth0
Kde
mask
device
HW type resp. HW type a device označují výstupní port NIC karty, Flags: C znamená úplný a platný záznam M trvalý záznam (nenastavuje se automaticky) P public
Pokud stanice neodpovídá, dá se přidat do tabulky záznam příkazem arp -s ipadr MAC adr Proxy ARP - slouží pro konfiguraci rozhraní tak , aby odpovídalo na ARP, obsahující cizí adresu. Např. pokud běží nějaká stanice dočasně pod DOS a jeho neúplným IP protokolem, neumí tato stanice spolupracovat se žádnou stanicí mimo stanic její podsítě. Proto také neodpovídá na pakety zjišťující fyzickou adresu stanice. Pak je nutné této IP adrese přiřadit MAC adresu jiné stanice - routeru. Opravu tabulky provedeme zapsáním do Arp tabulky routeru arp -s 191.120.2.1 00:60:8C:73:A0:8D pub
Pak výpis arp -a bude vypadat Address
HW type
HW address
flags mask
191.120.1.2
10Mbps Ethernet
00:60:8C:81:E6:76
C
*
191.120.1.254
10Mbps Ethernet
00:60:8C:73:A0:8D
C
*
191.120.2.1
10Mbps Ethernet
00:60:8C:73:A0:8D
CPM *
resp. po předchozí úspěšné komunikaci s uvedenou stanicí
Příkazem arp –a dostaneme Address
HW type
HW address
flags mask
191.120.1.2
10Mbps Ethernet
00:60:8C:81:E6:76
C
*
191.120.1.254
10Mbps Ethernet
00:60:8C:73:A0:8D
C
*
191.120.2.1
10Mbps Ethernet
00:60:8C:DF:29:9D
C
*
191.120.2.1
10Mbps Ethernet
00:60:8C:73:A0:8D
CPM *
ARP pro podsítě Unix může pro proxy ARP rozšířit překlad na celé bloky adres podsítě. Např. pro podsíť s maskou 255.255.255.0 lze adresy psát ve tvaru nnnn.nnnn.nnnn.0. Příkaz zní arp -s 191.120.2.0 00:60:8C:73:A0:8D netmask 255.255.255.0 pub a příslušný řádek v tabulce bude
Address
HW type
HW address
flags
mask
10Mbps Ethernet
00:60:8C:73:A0:8D
CPM
255.255.255.0
..... 191.120.2.0
Nastavení na síťové vrstvě ISO-OSI Síťová vrstva má na starosti směrování diagramů, to je umožnit doručení diagramů do cílové (destination) stanice (uzlu). Proto při konfiguraci na této vrstvě se vytváří směrovací tabulky, umožňující další směrování paketů (datagramů). Kromě toho je nutné na této vrstvě vytvořit i IP adresu zdrojové stanice a případně zajistit překlady jmenných tvarů adres na adresy v tečkové notaci. Proto je na každém uzlu (stanici, routeru) vytvářena směrovací tabulka (route table), jejíž výstupy jsou využívány v ARP tabulce.
Směrovací tabulka Pro směrování datagramů se používá směrovací tabulka. V ní jsou zaznamenány IP adresy stanic IP adresy sítí společně s dalšími údaji pro směrování, a to
gateway – pokud cílová adresa je v externí síti, pak je uvedeno číslo výstupní brány lokální síti, pak je uvedeno jako číslo brány 0.0.0.0 genmask - určuje blok adres pro daný řádek tabulky. Pomocí této masky se vypočítává cílová adresa na patřičném řádku jako bitový součin genmask a skutečné cílové adresy (skupiny adres). Nula v masce značí, že cílem může být jakákoli IP adresa. Jeden řádek (poslední) by měl obsahovat 0.0.0.0 , pro směrování výše (v tabulce) neuvedených adres. flags H host U up - cesta je funkční G nepřímá cesta ( cesta přes bránu) – cíl není sousední uzel D údaj doplněn při požadavku přesměrování (z protokolu ICMP Internet Control Message Protokol) M údaj byl změněn pomocí přesměrování ICMP metrika, která určuje délku cesty váhově a tím i prioritu cesty. Pro směrování se používá s nejmenší metrikou ref - počet referencí na danou cestu, tj. kolikrát byla použita na spojení stanic Use - udává počet datagramů odeslaných touto cestou Iface - udává síťové rozhraní jemuž se předávají datagramy k odeslání touto cestou eth1 ethernet + číslo karty (výstupu) lo look – zpětná vazba
Výpis směrovací tabulky je pomocí příkazu netstat(8) Příklad výpisu routovací tabulky příkazem
netstat -rn
Kernel routing table Destination
Gateway
Genmask
Flags Metric Ref
Use
Iface
191.120.1.0
0.0.0.0
255.255.255.0
U
0
0
4578 eth0
127.0.0.0
0.0.0.0
255.0.0.0
U
0
0
3120 lo
0.0.0.0
191.120.1.254
0.0.0.0
UG
1
0
41444 eth0
U směrovacích tabulek routerů a gatewayí a všude tam, kde jsou dvě síťové karty se rozlišuje výstupní karta pomocí iface např. eth0 (pro vnitřní) a eth1 pro vnější napojení, Při použití směrovací tabulky systém postupně vyhledává řádek, který splňuje zadání (podle cílové IP adresy) a to tak, že nejdříve prohledává řádky s nejvyšší hodnotou GENMASK, tj. výjimky a postupně bere s nižší hodnotou GENMASK, tj. obecnější případy a nakonec končí maskou 0.0.0.0 . Pokud systém najde odpovídající řádek, odskočí z tabulky a další řádky neprohledává.
Zápis do směrovací tabulky se provádí následujícími způsoby: 1. přímým zápisem - tj. statickou cestou – tedy pomocí příkazu route(8) - používá se pouze v inicializačních skriptech, které spouští init(8). Nastavuje se tak statický router, kterému se předávají všechny externí datagramy. 2. v důsledku přesměrování ICMP př.: implicitní router dostane datagram, který má být směrován jiným routerem, proto zašle odesílající stanici zprávu ICMP s žádostí o přesměrování. Tímto způsobem si stanice může opravit a doplnit tabulku. 3. prostřednictvím směrovacích protokolů (RIP, OSPF(pro více routerů),BGP (pro vnější systémy umožňující odhalit smyčky v cestě)), tedy dynamicky.
Jádro Linuxu udržuje dvě tabulky, tj. zvláštní tabulku pro údaje získané z ICMP
/proc/net/route pro body 1 a 3 /proc/net/rt_cache - dočasné pro bod 2
Zpracování paketu na úrovni síťové vrstvy Pro zopakování a pochopení činnosti routeru je dále uvedena posloupnost jeho činnosti 1. příjem paketu na linkové vrstvě
2. kontrola CRC paketu (při chybě zahození) 3. kontrola CRC hlavičky IP (při chybě zahození) 4. ověření parametrů IP ( při chybě zahození) 5. snížení hodnoty time-to-live o 1. Při 0 zahození a poslání ICMP 6. porovnání IP adresy s vlastní. Zpracování lokálně nebo pokračuje 7. vyhledání ve směrovací tabulce 8. vytvoření paketu pro linkovou vrstvu s ARP tabulky poslání rámce po linkové vrstvě
Konfigurace síťového rozhraní vlastní stanice obsahuje nastavení TCP/IP protokolu to je IP adresy, masky sítě, broadcast adresy, loopback případně adresy DHCP, jmenného serveru a proxy serveru. Konfigurace TCP/IP protokolů spočívá tedy v podstatě v konfiguraci IP. Na protokolech vyšších vrstev není prakticky co nastavovat – jsou zabudovány v systému. Konfigurovaná rozhraní nejsou považovány za soubory, protože jsou přímo v jádře systému. Rozhraní jsou lon
- zpětná smyčka
ethn - ethernetovské rozhraní sln
- sériová linka
pln
- paralelní linka
a kde n je pořadové číslo daného typu rozhraní – 0,1,2..