e zavisimosti ot togo, dlya chego prednaznachena vasha set'. Dazhe esli vasha set' ne imeet svyazi s ob®e- dinennoj set'yu Internet, poluchenie unikal'nogo nomera zhelatel'no, tak kak v etom sluchae est' garantiya, chto v budushchem pri vklyuchenii v Internet ili pri podklyuchenii k seti drugoj organizacii ne vozniknet konflikta adresov. Odno iz vazhnejshih reshenij, kotoroe neobhodimo prinyat' pri ustanovke seti, zaklyuchaetsya v vybore sposoba prisvoeniya IP-adresov vashim mashinam. |tot vybor dolzhen uchityvat' perspektivu rosta seti. Inache v dal'nejshem vam pridetsya menyat' adresa. Kogda k seti podklyucheno neskol'ko soten mashin, izmenenie adresov stanovitsya pochti nevozmozhnym. Organizacii, imeyushchie nebol'shie seti s chislom uzlov do 126, dolzhny zaprashivat' setevye nomera klassa C. Organizacii s bol'shim chislom mashin mogut poluchit' neskol'ko nomerov klassa C ili nomer klassa B. Udobnym sredstvom strukturizacii setej v ramkah odnoj organizacii yavlyayutsya pod- seti. 5.6. Podseti Adresnoe prostranstvo seti internet mozhet byt' razdeleno na nepere- sekayushchiesya podprostranstva - "podseti", s kazhdoj iz kotoryh mozhno rabo- tat' kak s obychnoj set'yu TCP/IP. Takim obrazom edinaya IP-set' organiza- cii mozhet stroit'sya kak ob®edinenie podsetej. Kak pravilo, podset' soot- vetstvuet odnoj fizicheskoj seti, naprimer, odnoj seti Ethernet. Konechno, ispol'zovanie podsetej neobyazatel'no. Mozhno prosto nazna- chit' dlya kazhdoj fizicheskoj seti svoj setevoj nomer, naprimer, nomer ____________________ [2] SRI International, Room EJ210, 333 Ravenswood Avenue, Menlo Park, California 94025, USA. Tel. 1-800-235-3155. E-mail: NIC@NIC.DDN.MIL klassa C. Odnako takoe reshenie imeet dva nedostatoka. Pervyj, i menee sushchestvennyj, zaklyuchaetsya v pustoj trate setevyh nomerov. Bolee ser'ez- nyj nedostatok sostoit v tom, chto esli vasha organizaciya imeet neskol'ko setevyh nomerov, to mashiny vne ee dolzhny podderzhivat' zapisi o marshrutah dostupa k kazhdoj iz etih IP-setej. Takim obrazom, struktura IP-seti organizacii stanovitsya vidimoj dlya vsego mira. Pri kakih-libo izmeneniyah v IP-seti informaciya o nih dolzhna byt' uchtena v kazhdoj iz mashin, podder- zhivayushchih marshruty dostupa k dannoj IP-seti. Podseti pozvolyayut izbezhat' etih nedostatkov. Vasha organizaciya dolzhna poluchit' odin setevoj nomer, naprimer, nomer klassa B. Standarty TCP/IP opredelyayut strukturu IP-adresov. Dlya IP-adresov klassa B pervye dva okteta yavlyayutsya nomerom seti. Ostavshayasya chast' IP-adresa mozhet ispol'zovat'sya kak ugodno. Naprimer, vy mozhete reshit', chto tretij oktet budet opredelyat' nomer podseti, a chetveryj oktet - nomer uzla v nej. Vy dolzhny opisat' konfiguraciyu podsetej v fajlah, opredelyayushchih marshrutizaciyu IP-paketov. |to opisanie yavlyaetsya lokal'nym dlya vashej organizacii i ne vidno vne ee. Vse mashiny vne vashej organizacii vidyat odnu bol'shuyu IP- set'. Sledovatel'no, oni dolzhny podderzhivat' tol'ko marshruty dostupa k shlyuzam, soedinyayushchim vashu IP-set' s ostal'nym mirom. Izmeneniya, proisho- dyashchie v IP-seti organizacii, ne vidny vne ee. Vy legko mozhete dobavit' novuyu podset', novyj shlyuz i t.p. 5.7. Kak naznachat' nomera setej i podsetej Posle togo, kak resheno ispol'zovat' podseti ili mnozhestvo IP-setej, vy dolzhny reshit', kak naznachat' im nomera. Obychno eto dovol'no prosto. Kazhdoj fizicheskoj seti, naprimer, Ethernet ili Token Ring, naznachaetsya otdel'nyj nomer podseti ili nomer seti. V nekotoryh sluchayah imeet smysl naznachat' odnoj fizicheskoj seti neskol'ko podsetevyh nomerov. Naprimer, predpolozhim, chto imeetsya set' Ethernet, ohvatyvayushchaya tri zdaniya. YAsno, chto pri uvelichenii chisla mashin, podklyuchennyh k etoj seti, pridetsya ee razdelit' na neskol'ko otdel'nyh setej Ethernet. Dlya togo, chtoby izbe- zhat' neobhodimosti menyat' IP-adresa, kogda eto proizojdet, mozhno zaranee vydelit' dlya etoj seti tri podsetevyh nomera - po odnomu na zdanie. (|to polezno i v tom sluchae, kogda ne planiruetsya fizicheskoe delenie seti. Prosto takaya adresaciya pozvolyaet srazu opredelit', gde nahoditsya ta ili inaya mashina.) Odnako prezhde, chem vydelyat' tri razlichnyh podsetevyh nomera odnoj fizicheskoj seti, tshchatel'no prover'te, chto vse vashi programmy spo- sobny rabotat' v takoj srede. Vy takzhe dolzhny vybrat' "masku podseti". Ona ispol'zuetsya setevym programmnym obespecheniem dlya vydeleniya nomera podseti iz IP-adresov. Bity IP-adresa, opredelyayushchie nomer IP-seti, v maske podseti dolzhny byt' ravny 1, a bity, opredelyayushchie nomer uzla, v maske podseti dolzhny byt' ravny 0. Kak uzhe otmechalos', standarty TCP/IP opredelyayut kolichestvo oktetov, zadayushchih nomer seti. CHasto v IP-adresah klassa B tretij oktet ispol'zuetsya dlya zadaniya nomera podseti. |to pozvolyaet imet' 256 podse- tej, v kazhdoj iz kotoryh mozhet byt' do 254 uzlov. Maska podseti v takoj sisteme ravna 255.255.255.0. No, esli v vashej seti dolzhno byt' bol'she podsetej, a v kazhdoj podseti ne budet pri etom bolee 60 uzlov, to mozhno ispol'zovat' masku 255.255.255.192. |to pozvolyaet imet' 1024 podseti i do 62 uzlov v kazhdoj. (Napomnim, chto nomera uzlov 0 i "vse edinicy" ispol'zuyutsya osobym obrazom.) Obychno maska podseti ukazyvaetsya v fajle startovoj konfiguracii setevogo programmnogo obespecheniya. Protokoly TCP/IP pozvolyayut takzhe zap- rashivat' etu informaciyu po seti. 5.8. Imena Lyudyam udobnee nazyvat' mashiny po imenam, a ne chislami. Naprimer, u mashiny po imeni alpha mozhet byt' IP-adres 223.1.2.1. V malen'kih setyah informaciya o sootvetstvii imen IP-adresam hranitsya v fajlah "hosts" na kazhdom uzle. Konechno, nazvanie fajla zavisit ot konkretnoj realizacii. V bol'shih setyah eta informaciya hranitsya na servere i dostupna po seti. Neskol'ko strok iz fajla "hosts" mogut vyglyadet' primerno tak: 223.1.2.1 alpha 223.1.2.2 beta 223.1.2.3 gamma 223.1.2.4 delta 223.1.3.2 epsilon 223.1.4.2 iota V pervom stolbce - IP-adres, vo vtorom - nazvanie mashiny. V bol'shinstve sluchaev fajly "hosts" mogut byt' odinakovy na vseh uzlah. Zametim, chto o uzle delta v etom fajle est' vsego odna zapis', hotya on imeet tri IP-adresa (ris.11). Uzel delta dostupen po lyubomu iz etih IP-adresov. Kakoj iz nih ispol'zuetsya, ne imeet znacheniya. Kogda uzel delta poluchaet IP-paket i proveryaet IP-adres mesta naznacheniya, to on opoznaet lyuboj iz treh svoih IP-adresov. IP-seti takzhe mogut imet' imena. Esli u vas est' tri IP-seti, to fajl "networks" mozhet vyglyadet' primerno tak: 223.1.2 development 223.1.3 accounting 223.1.4 factory V pervoj kolonke - setevoj nomer, vo vtoroj - imya seti. V dannom primere alpha yavlyaetsya uzlom nomer 1 v seti development, beta yavlyaetsya uzlom nomer 2 v seti development i t.d. Pokazannyj vyshe fajl hosts udovletvoryaet potrebnosti pol'zovatelej, no dlya upravleniya set'yu internet udobnee imet' nazvaniya vseh setevyh interfejsov. Menedzher seti, vozmozhno, zamenit stroku, otnosyashchuyusya k delta: 223.1.2.4 devnetrouter delta 223.1.3.1 accnetrouter 223.1.4.1 facnetrouter |ti tri stroki fajla hosts zadayut kazhdomu IP-adresu uzla delta sim- vol'nye imena. Fakticheski, pervyj IP-adres imeet dva imeni: "dev- netrouter" i "delta", kotorye yavlyayutsya sinonimami. Na praktike imya "delta" ispol'zuetsya kak obshcheupotrebitel'noe imya mashiny, a ostal'nye tri imeni - dlya administrirovaniya seti. Fajly hosts i networks ispol'zuyutsya komandami administrirovaniya i prikladnymi programmami. Oni ne nuzhny sobstvenno dlya raboty seti inter- net, no oblegchayut ee ispol'zovanie. 5.9. IP-tablica marshrutov Kak modul' IP uznaet, kakoj imenno setevoj interfejs nuzhno ispol'zo- vat' dlya otpravleniya IP-paketa? Modul' IP osushchestvlyaet poisk v tablice marshrutov. Klyuchom poiska sluzhit nomer IP-seti, vydelennyj iz IP-adresa mesta naznacheniya IP-paketa. Tablica marshrutov soderzhit po odnoj stroke dlya kazhdogo marshruta. Osnovnymi stolbcami tablicy marshrutov yavlyayutsya nomer seti, flag pryamoj ili kosvennoj marshrutizacii, IP-adres shlyuza i nomer setevogo interfejsa. |ta tablica ispol'zuetsya modulem IP pri obrabotke kazhdogo otpravlyaemogo IP-paketa. V bol'shinstve sistem tablica marshrutov mozhet byt' izmenena s pomoshch'yu komandy "route". Soderzhanie tablicy marshrutov opredelyaetsya menedzherom seti, poskol'ku menedzher seti prisvaivaet mashinam IP-adresa. 5.10. Podrobnosti pryamoj marshrutizacii Rassmotrim bolee podrobno, kak proishodit marshrutizaciya v odnoj fizicheskoj seti. ------------- ------------- | alpha | | beta | | 223.1.2.1 | | 223.1.2.2 | | 1 | | 1 | ------------- ------------- | | ------o-----------------------o------- Ethernet 1 IP-set' "development" 223.1.2 Ris.10. Odna fizicheskaya set' Tablica marshrutov v uzle alpha vyglyadit tak: ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | development pryamaya 1 | ---------------------------------------------------------- Tabl.9. Primer tablicy marshrutov V dannom prostom primere vse uzly seti imeyut odinakovye tablicy marshru- tov. Dlya sravneniya nizhe predstavlena ta zhe tablica, no vmesto nazvaniya seti ukazan ee nomer. ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | 223.1.2 pryamaya 1 | ---------------------------------------------------------- Tabl.10. Primer tablicy marshrutov s nomerami setej 5.11. Poryadok pryamoj marshrutizacii Uzel alpha posylaet IP-paket uzlu beta. |tot paket nahoditsya v module IP uzla alpha, i IP-adres mesta naznacheniya raven IP-adresu beta (223.1.2.2). Modul' IP s pomoshch'yu maski podseti vydelyaet nomer seti iz IP-adresa i ishchet sootvetstvuyushchuyu emu stroku v tablice marshrutov. V dan- nom sluchae podhodit pervaya stroka. Ostal'naya informaciya v najdennoj stroke ukazyvaet na to, chto mashiny etoj seti dostupny napryamuyu cherez interfejs nomer 1. S pomoshch'yu ARP- tablicy vypolnyaetsya preobrazovanie IP-adresa v sootvetstvuyushchij Ethernet- adres, i cherez interfejs 1 Ethernet-kadr posylaetsya uzlu beta. Esli prikladnaya programma pytaetsya poslat' dannye po IP-adresu, kotoryj ne prinadlezhit seti development, to modul' IP ne smozhet najti sootvetstvuyushchuyu zapis' v tablice marshrutov. V etom sluchae modul' IP otb- rasyvaet IP-paket. Nekotorye realizacii protokola vozvrashchayut soobshchenie ob oshibke "Set' ne dostupna". 5.12. Podrobnosti kosvennoj marshrutizacii Teper' rassmotrim bolee slozhnyj poryadok marshrutizacii v IP-seti, izobrazhennoj na ris.11. Tablica marshrutov v uzle alpha vyglyadit tak: ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | development pryamaya 1 | | accounting kosvennaya devnetrouter 1 | | factory kosvennaya devnetrouter 1 | ---------------------------------------------------------- Tabl.11. Tablica marshrutov v uzle alpha ------------- | delta | ------------- | 223.1.2.4 | ------------- | alpha | | 223.1.4.1 | | epsilon | | 223.1.2.1 | | 223.1.3.1 | | 223.1.3.2 | | 1 | | 1 2 3 | | 1 | ------------- ------------- ------------- | | | | | ------o------------------o- | -o-----------------o--------- Ethernet 1 | Ethernet 2 IP-set' "development" | IP-set' "accounting" 223.1.2 | 223.1.3 | | ------------- | | iota | | | 223.1.4.2 | | | 1 | | ------------- | | ---o----------o------------------- Ethernet 3 IP-set' "factory" 223.1.4 Ris.11. Podrobnaya shema treh setej Ta zhe tablica s IP-adresami vmesto nazvanij. ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | 223.1.2 pryamaya 1 | | 223.1.3 kosvennaya 223.1.2.4 1 | | 223.1.4 kosvennaya 223.1.2.4 1 | ---------------------------------------------------------- Tabl.12. Tablica marshrutov v uzle alpha (s nomerami) V stolbce "shlyuz" tablicy marshrutov uzla alpha ukazyvaetsya IP-adres tochki soedineniya uzla delta s set'yu development. 5.13. Poryadok kosvennoj marshrutizacii Uzel alpha posylaet IP-paket uzlu epsilon. |tot paket nahoditsya v module IP uzla alpha, i IP-adres mesta naznacheniya raven IP-adresu uzla epsilon (223.1.3.2). Modul' IP vydelyaet setevoj nomer iz IP-adresa (223.1.3) i ishchet sootvetstvuyushchuyu emu stroku v tablice marshrutov. Soot- vetstvie nahoditsya vo vtoroj stroke. Zapis' v etoj stroke ukazyvaet na to, chto mashiny trebuemoj seti dos- tupny cherez shlyuz devnetrouter. Modul' IP v uzle alpha osushchestvlyaet poisk v ARP-tablice, s pomoshch'yu kotorogo opredelyaet Ethernet-adres, sootvetstvu- yushchij IP-adresu devnetrouter. Zatem IP-paket, soderzhashchij IP-adres mesta naznacheniya epsilon, posylaetsya cherez interfejs 1 shlyuzu devnetrouter. IP-paket prinimaetsya setevym interfejsom v uzle delta i peredaetsya modulyu IP. Proveryaetsya IP-adres mesta naznacheniya, i, poskol'ku on ne sootvetstvuet ni odnomu iz sobstvennyh IP-adresov delta, shlyuz reshaet ret- ranslirovat' IP-paket. Modul' IP v uzle delta vydelyaet setevoj nomer iz IP-adresa mesta naznacheniya IP-paketa (223.1.3) i ishchet sootvetstvuyushchuyu zapis' v tablice marshrutov. Tablica marshrutov v uzle delta vyglyadit tak: ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | development pryamaya 1 | | accounting pryamaya 3 | | factory pryamaya 2 | ---------------------------------------------------------- Tabl.13. Tablica marshrutov v uzle delta Ta zhe tablica s IP-adresami vmesto nazvanij. ---------------------------------------------------------- | set' flag vida shlyuz nomer | | marshrutizacii interfejsa | ---------------------------------------------------------- | 223.1.2 pryamaya 1 | | 223.1.3 pryamaya 3 | | 223.1.4 pryamaya 2 | ---------------------------------------------------------- Tabl.14. Tablica marshrutov v uzle delta (s nomerami) Sootvetstvie nahoditsya vo vtoroj stroke. Teper' modul' IP napryamuyu posy- laet IP-paket uzlu epsilon cherez interfejs nomer 3. Paket soderzhit IP- i Ethernet-adresa mesta naznacheniya ravnye epsilon. Uzel epsilon prinimaet IP-paket, i ego modul' IP proveryaet IP-adres mesta naznacheniya. On sootvetstvuet IP-adresu epsilon, poetomu soderzhashche- esya v IP-pakete soobshchenie peredaetsya protokol'nomu modulyu verhnego urovnya.  * 6. Ustanovka marshrutov *  Do sih por my rassmatrivali to, kak ispol'zuetsya tablica marshrutov dlya marshrutizacii IP-paketov. No otkuda beretsya informaciya v samoj tab- lice marshrutov? V dannom razdele my rassmotrim metody, pozvolyayushchie pod- derzhivat' korrektnost' tablic marshrutov. 6.1. Fiksirovannye marshruty Prostejshij sposob provedeniya marshrutizacii sostoit v ustanovke marsh- rutov pri zapuske sistemy s pomoshch'yu special'nyh komand. |tot metod mozhno primenyat' v otnositel'no malen'kih IP-setyah, v osobennosti, esli ih kon- figuracii ne chasto menyayutsya. Na praktike bol'shinstvo mashin avtomaticheski formiruet tablicy marsh- rutov. Naprimer, UNIX dobavlyaet zapisi o IP-setyah, k kotorym est' nepos- redstvennyj dostup. Startovyj fajl mozhet soderzhat' komandy ifconfig ie0 128.6.4.4 netmask 255.255.255.0 ifconfig ie1 128.6.5.35 netmask 255.255.255.0 Oni pokazyvayut, chto sushchestvuyut dva setevyh interfejsa, i ustanavlivayut ih IP-adresa. Sistema mozhet avtomaticheski sozdat' dve zapisi v tablice marshrutov: ---------------------------------------------------------- | set' flag vida shlyuz interfejs | | marshrutizacii | ---------------------------------------------------------- | 128.6.4 pryamaya ie0 | | 128.6.5 pryamaya ie1 | ---------------------------------------------------------- Tabl.15. Avtomaticheski sozdavaemye zapisi |ti zapisi opredelyayut, chto IP-pakety dlya lokal'nyh podsetej 128.6.4 i 128.6.5 dolzhny posylat'sya cherez ukazannye interfejsy. V startovom fajle mogut byt' komandy, opredelyayushchie marshruty dostupa k drugim IP-setyam. Naprimer, route add 128.6.2.0 128.6.4.1 1 route add 128.6.6.0 128.6.5.35 0 |ti komandy pokazyvayut, chto v tablicu marshrutov dolzhny byt' dobavleny dve zapisi. Pervyj adres v komandah yavlyaetsya IP-adresom seti, vtoroj adres ukazyvaet shlyuz, kotoryj dolzhen ispol'zovat'sya dlya dostupa k dannoj IP- seti, a tretij parametr yavlyaetsya metrikoj. Metrika pokazyvaet, na kakom "rasstoyanii" nahoditsya opisyvaemaya IP-set'. V dannom sluchae metrika - eto kolichestvo shlyuzov na puti mezhdu dvumya IP-setyami. Marshruty s metrikoj 1 i bolee opredelyayut pervyj shlyuz na puti k IP-seti. Marshruty s metrikoj 0 pokazyvayut, chto nikakoj shlyuz ne nuzhen - dannyj marshrut zadaet dopolni- tel'nyj setevoj nomer lokal'noj IP-seti. Takim obrazom, komandy, privedennye v primere, govoryat o tom, chto dlya dostupa k IP-seti 128.6.2 dolzhen ispol'zovat'sya shlyuz 128.6.4.1, a IP-set' 128.6.6 - eto prosto dopolnitel'nyj nomer dlya fizicheskoj seti, podklyuchennoj k interfejsu 128.6.5.35. --------------------------------------------------------- | set' flag vida shlyuz interfejs | | marshrutizacii | --------------------------------------------------------- | 128.6.2 kosvennaya 128.6.4.1 ie0 | | 128.6.6 pryamaya ie1 | --------------------------------------------------------- Tabl.16. Zapisi, dobavlyaemye v tablicu marshrutov Mozhno opredelit' marshrut po umolchaniyu, kotoryj ispol'zuetsya v teh sluchayah, kogda IP-adres mesta naznacheniya ne vstrechaetsya v tablice marshru- tov yavno. Obychno marshrut po umolchaniyu ukazyvaet IP-adres shlyuza, kotoryj imeet dostatochno informacii dlya marshrutizacii IP-paketov so vsemi vozmozh- nymi adresami naznacheniya. Esli vasha IP-set' imeet vsego odin shlyuz, togda vse, chto nuzhno sde- lat', - eto ustanovit' edinstvennuyu zapis' v tablice marshrutov, ukazav etot shlyuz kak marshrut po umolchaniyu. Posle etogo mozhno ne zabotit'sya o formirovanii marshrutov v drugih uzlah. (Konechno, sam shlyuz trebuet bol'she vnimaniya.) Sleduyushchie razdely posvyashcheny IP-setyam, gde est' neskol'ko shlyuzov. 6.2. Perenapravlenie marshrutov Bol'shinstvo ekspertov po mezhsetevomu vzaimodejstviyu rekomenduyut ostavlyat' reshenie problem marshrutizacii shlyuzam. Ploho imet' na kazhdoj mashine bol'shuyu tablicu marshrutov. Delo v tom, chto pri kakih-libo izmene- niyah v IP-seti prihoditsya menyat' informaciyu vo vseh mashinah. Naprimer, pri otklyuchenii kakogo-nibud' kanala svyazi dlya vosstanovleniya normal'noj raboty nuzhno zhdat', poka kto-to zametit eto izmenenie v konfiguracii IP- seti i vneset ispravleniya vo vse tablicy marshrutov. Prostejshij sposob podderzhaniya adekvatnosti marshrutov zaklyuchaetsya v tom, chto izmenenie tablicy marshrutov kazhdoj mashiny vypolnyaetsya po koman- dam tol'ko odnogo shlyuza. |tot shlyuz dolzhen byt' ustanovlen kak marshrut po umolchaniyu. (V OS UNIX eto delaetsya komandoj "route add default 128.6.4.27 1", gde 128.6.4.27 yavlyaetsya IP-adresom shlyuza.) Kak bylo opi- sano vyshe, kazhdaya mashina posylaet IP-paket shlyuzu po umolchaniyu v tom slu- chae, kogda ne nahodit luchshego marshruta. Odnako, kogda v IP-seti est' neskol'ko shlyuzov, etot metod rabotaet ne tak horosho. Krome togo, esli tablica marshrutov imeet tol'ko odnu zapis' o marshrute po umolchaniyu, to kak ispol'zovat' drugie shlyuzy, esli eto bolee vygodno? Otvet sostoit v tom, chto bol'shinstvo shlyuzov sposobny vypolnyat' "perenapravlenie" v teh sluchayah, kogda oni poluchayut IP-pakety, dlya kotoryh sushchestvuyut bolee vygodnye marshruty. "Perenapravlenie" yavlyaetsya special'nym tipom soobshche- niya protokola ICMP (Internet Control Message Protocol - protokol mezhsete- vyh upravlyayushchih soobshchenij). Soobshchenie o perenapravlenii soderzhit infor- maciyu, kotoruyu mozhno interpretirovat' tak: "V budushchem dlya IP-adresa XXXX ispol'zujte shlyuz YYYY, a ne menya". Korrektnye realizacii TCP/IP dolzhny ispol'zovat' soobshcheniya o perenapravlenii dlya dobavleniya zapisej v tablicu marshrutov. Predpolozhim, tablica marshrutov v nachale vyglyadit sleduyushchim obrazom: -------------------------------------------------------- | adres flag vida shlyuz interfejs | | naznacheniya marshrutizacii | -------------------------------------------------------- | 127.0.0 pryamaya lo0 | | 128.6.4 pryamaya pe0 | | default kosvennaya 128.6.4.27 pe0 | -------------------------------------------------------- Tabl.17. Tablica marshrutov v nachale raboty |ta tablica soderzhit zapis' o lokal'noj IP-seti 128.6.4 i marshrut po umolchaniyu, ukazyvayushchij shlyuz 128.6.4.27. Dopustim, chto sushchestvuet shlyuz 128.6.4.30, kotoryj yavlyaetsya luchshim putem dostupa k IP-seti 128.6.7. Kak im vospol'zovat'sya? Predpolozhim, chto nuzhno posylat' IP-pakety po IP- adresu 128.6.7.23. Pervyj IP-paket pojdet na shlyuz po umolchaniyu, tak kak eto edinstvennyj podhodyashchij marshrut, opisannyj v tablice. Odnako shlyuz 128.6.4.27 znaet, chto sushchestvuet luchshij marshrut, prohodyashchij cherez shlyuz 128.6.4.30. (Kak on uznaet ob etom, my sejchas ne rassmatrivaem. Sushchest- vuet dovol'no prostoj metod opredeleniya luchshego marshruta.) V etom sluchae shlyuz 128.6.4.27 vozvrashchaet soobshchenie perenapravleniya, gde ukazyvaet, chto IP-pakety dlya uzla 128.6.7.23 dolzhny posylat'sya cherez shlyuz 128.6.4.30. Modul' IP na mashine-otpravitele dolzhen dobavit' zapis' v tablicu marshru- tov: -------------------------------------------------------- | adres flag vida shlyuz interfejs | | naznacheniya marshrutizacii | -------------------------------------------------------- | 128.6.7.23 kosvennaya 128.6.4.30 pe0 | -------------------------------------------------------- Tabl.18. Novaya zapis' v tablice marshrutov Vse posleduyushchie IP-pakety dlya uzla 128.6.7.23 budut poslany pryamo cherez ukazannyj shlyuz. Do sih por my rassmatrivali sposoby dobavleniya marshrutov v IP- tablicu, no ne sposoby ih isklyucheniya. CHto sluchitsya, esli shlyuz budet vyk- lyuchen? Hotelos' by imet' sposob vozvrata k marshrutu po umolchaniyu posle togo, kak kakoj-libo marshrut razrushen. Odnako, esli shlyuz vyshel iz stroya ili byl vyklyuchen, to on uzhe ne mozhet poslat' soobshchenie perenapravleniya. Poetomu dolzhen sushchestvovat' metod opredeleniya rabotosposobnosti shlyuzov, s kotorymi vasha mashina svyazana neposredstvenno. Luchshij sposob obnaruzheniya nerabotayushchih shlyuzov osnovan na vyyavlenii "plohih" marshrutov. Modul' TCP podderzhivaet razlichnye tajmery, kotorye pomogayut emu opredelit' razryv soedineniya. Kogda sluchaetsya sboj, to mozhno pometit' marshrut kak "plohoj" i vernut'sya k marshrutu po umolchaniyu. Analogichnyj metod mozhet ispol'zo- vat'sya pri obrabotke oshibok shlyuza po umolchaniyu. Esli dva shlyuza otmecheny kak shlyuzy po umolchaniyu, to mashina mozhet ispol'zovat' ih po ocheredi, pereklyuchayas' mezhdu nimi pri vozniknovenii sboev. 6.3. Slezhenie za marshrutizaciej Zametim, chto soobshcheniya perenapravleniya ne mogut ispol'zovat'sya samimi shlyuzami. Perenapravlenie - eto prosto sposob opoveshcheniya obychnogo uzla o tom, chto nuzhno ispol'zovat' drugoj shlyuz. Sami shlyuzy dolzhny imet' polnuyu kartinu o polozhenii del v seti internet i umet' vychislyat' opti- mal'nye marshruty dostupa k kazhdoj podseti. Obychno oni podderzhivayut etu kartinu, obmenivayas' informaciej mezhdu soboj. Dlya etoj celi sushchestvuyut neskol'ko special'nyh protokolov marshrutizacii. Odin iz sposobov, s pomoshch'yu kotorogo uzly mogut opredelyat' dejstvuyushchie shlyuzy, sostoit v sle- zhenii za obmenom soobshcheniyami mezhdu nimi. Dlya bol'shinstva protokolov marshrutizacii sushchestvuet programmnoe obespechenie, pozvolyayushchee obychnym uzlam osushchestvlyat' takoe slezhenie. Pri etom na uzlah podderzhivaetsya pol- naya kartina polozheniya del v seti internet tochno takzhe, kak eto delaetsya v shlyuzah. Dinamicheskaya korrektirovka tablicy marshrutov pozvolyaet posylat' IP-pakety po optimal'nym marshrutam. Takim obrazom, slezhenie za marshrutizaciej v nekotorom smysle "reshaet" problemu podderzhaniya korrektnosti tablic marshrutov. Odnako sushchestvuyut neskol'ko prichin, po kotorym etot metod primenyat' ne rekomen- duetsya. Naibolee ser'eznoj problemoj yavlyaetsya to, chto protokoly marshru- tizacii poka eshche podvergayutsya chastym peresmotram i izmeneniyam. Poyavlya- yutsya novye protokoly marshrutizacii. |ti izmeneniya dolzhny uchityvat'sya v programmnom obespechenii vseh mashin. Neskol'ko bolee special'naya problema svyazana s bezdiskovymi rabochimi stanciyami. Po svoej prirode bezdiskovye mashiny sil'no zavisyat ot seti i ot fajl-serverov, s kotoryh oni osushchestvlyayut zagruzku programm, i gde raspolagaetsya ih oblast' svoppinga. Ispolnenie programm, sledyashchih za shirokoveshchatel'nymi peredachami v seti, na bezdiskovyh mashinah svyazano s bol'shimi trudnostyami. Protokoly marshrutizacii postroeny v osnovnom na shirokoveshchatel'nyh peredachah. Naprimer, vse setevye shlyuzy mogut shirokove- shchatel'no peredavat' soderzhanie svoih tablic marshrutov cherez kazhdye 30 sekund. Programmy, kotorye sledyat za takimi peredachami, dolzhny byt' zag- ruzheny na bezdiskovye stancii cherez set'. Na dostatochno zanyatoj mashine programmy, kotorye ne ispol'zuyutsya v techenie neskol'kih sekund, obychno otpravlyayutsya v oblast' svoppinga. Poetomu programmy, sledyashchie za marshru- tizaciej, bol'shuyu chast' vremeni nahodyatsya v svoppinge. Kogda oni vnov' aktiviziruyutsya, dolzhna proizvodit'sya podkachka iz svoppinga. Kak tol'ko posylaetsya shirokoveshchatel'noe soobshchenie, vse mashiny aktiviziruyut prog- rammy, sledyashchie za marshrutizaciej. |to privodit k tomu, chto mnogie bez- diskovye stancii budut vypolnyat' podkachku iz svoppinga v odno i tozhe vremya. Poetomu v seti vozniknet vremennaya peregruzka. Takim obrazom, ispolnenie programm, proslushivayushchih shirokoveshchatel'nye peredachi, na bez- diskovyh rabochih stanciyah ochen' nezhelatel'no. 6.4. Protokol ARP s predstavitelem Protokol ARP s predstavitelem yavlyaetsya al'ternativnym metodom, poz- volyayushchim shlyuzam prinimat' vse neobhodimye resheniya o marshrutizacii. On primenyaetsya v setyah s shirokoveshchatel'noj peredachej, gde dlya otobrazheniya IP-adresov v setevye adresa ispol'zuetsya protokol ARP ili emu podobnyj. Zdes' my vnov' budem predpolagat', chto imeem delo s set'yu Ethernet. Vo mnogom metod, realizuemyj protokolom ARP s predstavitelem, analo- gichen ispol'zovaniyu marshrutov po umolchaniyu i soobshchenij perenapravleniya. No protokol ARP s predstavitelem ne zatragivaet tablic marshrutov, vse delaetsya na urovne adresov Ethernet. Protokol ARP s predstavitelem mozhet ispol'zovat'sya libo dlya marshrutizacii IP-paketov ko vsem setyam, libo tol'ko v lokal'noj seti, libo v kakoj-to kombinacii podsetej. Proshche vsego prodemonstrirovat' ego ispol'zovanie pri rabote so vsemi adresami. CHtoby ispol'zovat' protokol, nuzhno nastroit' uzel tak, kak budto vse mashiny v mire podklyucheny neposredstvenno k vashej lokal'noj seti Ethernet. V OS UNIX eto delaetsya komandoj "route add default 128.6.4.2 0", gde 128.6.4.2 - IP-adres vashego uzla. Kak uzhe otmechalos', metrika 0 govorit o tom, chto vse IP-pakety, kotorym podhodit dannyj marshrut, dolzhny posy- lat'sya napryamuyu po lokal'noj seti. Kogda nuzhno poslat' IP-paket uzlu v lokal'noj seti Ethernet, vasha mashina dolzhna opredelit' Ethernet-adres etogo uzla. Dlya etogo ona ispol'zuet ARP-tablicu. Esli v ARP-tablice uzhe est' zapis', sootvetstvu- yushchaya IP-adresu mesta naznacheniya, to iz nee prosto beretsya Ethernet-adres, i kadr, soderzhashchij IP-paket, otpravlyaetsya. Esli takoj zapisi net, to posylaetsya shirokoveshchatel'nyj ARP-zapros. Uzel s iskomym IP-adresom naz- nacheniya prinimaet ego i v ARP-otvete soobshchaet svoj Ethernet-adres. |ti dejstviya sootvetstvuyut obychnomu protokolu ARP, opisannomu vyshe. Protokol ARP s predstavitelem osnovan na tom, chto shlyuzy rabotayut kak predstaviteli udalennyh uzlov. Predpolozhim, v podseti 128.6.5 imeetsya uzel 128.6.5.2 (uzel A na ris.12). On zhelaet poslat' IP-paket uzlu 128.6.4.194, kotoryj podklyuchen k drugoj seti Ethernet (uzel B v podseti 128.6.4). Sushchestvuet shlyuz s IP-adresom 128.6.5.1, soedinyayushchij dve pod- seti (shlyuz R). set' 1 set' 2 128.6.5 128.6.4 ----o----------------o--- --o---------------o-------- | | | | ------------- ------------- --------------- | 128.6.5.2 | | 128.6.5.1 | | 128.6.4.194 | | A | | 128.6.4.1 | | B | ------------- | R | --------------- ------------- Ris.12. Set', ispol'zuyushchaya protokol ARP s predstavitelem Esli v ARP-tablice uzla A net marshruta dostupa k uzlu B, to uzel A posy- laet ARP-zapros uzlu B. Fakticheski mashina A sprashivaet: "Esli kto-nibud' znaet Ethernet-adres uzla 128.6.4.194, soobshchite mne ego". Uzel B ne mozhet otvetit' na zapros samostoyatel'no. On podklyuchen k drugoj seti Eth- ernet i nikogda dazhe ne uvidit etot ARP-zapros. Odnako shlyuz R mozhet rabotat' ot ego imeni. SHlyuz R otvechaet: "YA zdes', IP-adresu 128.6.4.194 sootvetstvuet Ethernet-adres 2:7:1:0:EB:CD", gde 2:7:1:0:EB:CD v dejstvi- tel'nosti yavlyaetsya Ethernet-adresom shlyuza. |to sozdaet illyuziyu, chto uzel 128.6.4.194 podklyuchen neposredstvenno k toj zhe lokal'noj seti Ethernet, chto i uzel A, i imeet Ethernet-adres 2:7:1:0:EB:CD. Kogda uzel A zahochet poslat' novyj IP-paket uzlu B, on ispol'zuet ukazannyj Ethernet-adres. Kadr, soderzhashchij IP-paket, popadet k shlyuzu R, a on perepravit ego po naz- nacheniyu. Zametim, chto poluchennyj effekt takoj zhe, kak esli by v tablice marsh- rutov byla zapis' -------------------------------------------------------- | adres flag vida shlyuz interfejs | | naznacheniya marshrutizacii | -------------------------------------------------------- | 128.6.4.194 kosvennaya 128.6.5.1 pe0 | -------------------------------------------------------- za isklyucheniem togo, chto marshrutizaciya vypolnyaetsya na urovne modulya ARP, a ne modulya IP. Obychno rekomenduetsya ispol'zovat' tablicu marshrutov, tak kak arhi- tektura protokolov TCP/IP predusmatrivaet vypolnenie marshrutizacii na mezhsetevom urovne. Odnako inogda protokol ARP s predstavitelem ochen' polezen. On mozhet pomoch' v sleduyushchih sluchayah: 1) v IP-seti est' uzel, kotoryj ne umeet rabotat' s podsetyami; 2) v IP-seti est' uzel, kotoryj ne mozhet sootvetstvuyushchim obrazom reagi- rovat' na soobshcheniya perenapravleniya; 3) nezhelatel'no vybirat' kakoj-libo shlyuz kak marshrut po umolchaniyu; 4) programmnoe obespechenie ne sposobno vosstanavlivat'sya pri sboyah na marshrutah. Inogda protokol ARP s predstavitelem vybirayut iz-za udobstva. Delo v tom, chto on uproshchaet rabotu po nachal'noj ustanovke tablicy marshrutov. Dazhe v prostejshih IP-setyah trebuetsya ustanavlivat' marshrut po umolchaniyu, to est' ispol'zovat' komandu tipa "route add defailt ...", kak v OS UNIX. Pri izmenenii IP-adresa shlyuza etu komandu prihoditsya menyat' vo vseh uzlah. Esli zhe ispol'zovat' protokol ARP s predstavitelem, t.e. v komande ustanovki marshruta po umolchaniyu ukazat' metriku 0, to pri zamene IP-adresa shlyuza komandu nachal'noj ustanovki menyat' ne pridetsya, tak kak protokol ARP s predstavitelem ne trebuet yavnogo zadaniya IP-adresov shlyu- zov. Lyuboj shlyuz mozhet otvetit' na ARP-zapros. Dlya togo, chtoby izbavit' pol'zovatelej ot obyazatel'noj nachal'noj ustanovki marshrutov, nekotorye realizacii TCP/IP ispol'zuyut protokol ARP s predstavitelem po umolchaniyu v teh sluchayah, kogda ne nahodyat podhodyashchih zapisej v tablice marshrutov.  * 7. Protokol UDP *  Protokol UDP (User Datagram Protocol - protokol pol'zovatel'skih datagramm) yavlyaetsya odnim iz dvuh osnovnyh protokolov, raspolozhennyh neposredstvenno nad IP. On predostavlyaet prikladnym processam transport- nye uslugi, kotorye ne mnogim otlichayutsya ot uslug, predostavlyaemyh proto- kolom IP. Protokol UDP obespechivaet nenadezhnuyu dostavku datagramm i ne podderzhivaet soedinenij iz konca v konec. K zagolovku IP-paketa on dobavlyaet dva polya, odno iz kotoryh, pole "port", obespechivaet mul'tip- leksirovanie informacii mezhdu raznymi prikladnymi processami, a drugoe pole - "kontrol'naya summa" - pozvolyaet podderzhivat' celostnost' dannyh. Primerami setevyh prilozhenij, ispol'zuyushchih UDP, yavlyayutsya NFS (Net- work File System - setevaya fajlovaya sistema) i SNMP (Simple Network Management Protocol - prostoj protokol upravleniya set'yu). 7.1. Porty Vzaimodejstvie mezhdu prikladnymi processami i modulem UDP osushchestv- lyaetsya cherez UDP-porty. Porty numeruyutsya nachinaya s nulya. Prikladnoj process, predostavlyayushchij nekotorye uslugi drugim prikladnym processam (server), ozhidaet postupleniya soobshchenij v port, special'no vydelennyj dlya etih uslug. Soobshcheniya dolzhny soderzhat' zaprosy na predostavlenie uslug. Oni otpravlyayutsya processami-klientami. Naprimer, server SNMP vsegda ozhidaet postuplenij soobshchenij v port 161. Esli klient SNMP zhelaet poluchit' uslugu, on posylaet zapros v UDP- port 161 na mashinu, gde rabotaet server. V kazhdom uzle mozhet byt' tol'ko odin server SNMP, tak kak sushchestvuet tol'ko odin UDP-port 161. Dannyj nomer porta yavlyaetsya obshcheizvestnym, to est' fiksirovannym nomerom, ofici- al'no vydelennym dlya uslug SNMP. Obshcheizvestnye nomera opredelyayutsya stan- dartami Internet. Dannye, otpravlyaemye prikladnym processom cherez modul' UDP, dosti- gayut mesta naznacheniya kak edinoe celoe. Naprimer, esli process- otpravitel' proizvodit 5 zapisej v UDP-port, to process-poluchatel' dolzhen budet sdelat' 5 chtenij. Razmer kazhdogo zapisannogo soobshcheniya budet sov- padat' s razmerom kazhdogo prochitannogo. Protokol UDP sohranyaet granicy soobshchenij, opredelyaemye prikladnym processom. On nikogda ne ob®edinyaet neskol'ko soobshchenij v odno i ne delit odno soobshchenie na chasti. 7.2. Kontrol'noe summirovanie Kogda modul' UDP poluchaet datagrammu ot modulya IP, on proveryaet kontrol'nuyu summu, soderzhashchuyusya v ee zagolovke. Esli kontrol'naya summa ravna nulyu, to eto oznachaet, chto otpravitel' datagrammy ee ne podschity- val, i, sledovatel'no, ee nuzhno ignorirovat'. Esli dva modulya UDP vzai- modejstvuyut tol'ko cherez odnu set' Ethernet, to ot kontrol'nogo summiro- vaniya mozhno otkazat'sya, tak kak sredstva Ethernet obespechivayut dostatoch- nuyu stepen' nadezhnosti obnaruzheniya oshibok peredachi. |to snizhaet naklad- nye rashody, svyazannye s rabotoj UDP. Odnako rekomenduetsya vsegda vypol- nyat' kontrol'noe summirovanie, tak kak vozmozhno v kakoj-to moment izmene- niya v tablice marshrutov privedut k tomu, chto datagrammy budut posylat'sya cherez menee nadezhnuyu sredu. Esli kontrol'naya summa pravil'naya (ili ravna nulyu), to proveryaetsya port naznacheniya, ukazannyj v zagolovke datagrammy. Esli k etomu portu podklyuchen prikladnoj process, to prikladnoe soobshchenie, soderzhashcheesya v datagramme, stanovitsya v ochered' dlya prochteniya. V ostal'nyh sluchayah datagramma otbrasyvaetsya. Esli datagrammy postupayut bystree, chem ih uspevaet obrabatyvat' prikladnoj process, to pri perepolnenii ocheredi soobshchenij postupayushchie datagrammy otbrasyvayutsya modulem UDP.  * 8. Protokol TCP *  Protokol TCP predostavlyaet transportnye uslugi, otlichayushchiesya ot uslug UDP. Vmesto nenadezhnoj dostavki datagramm bez ustanovleniya soedi- nenij, on obespechivaet garantirovannuyu dostavku s ustanovleniem soedine- nij v vide bajtovyh potokov. Protokol TCP ispol'zuetsya v teh sluchayah, kogda trebuetsya nadezhnaya dostavka soobshchenij. On osvobozhdaet prikladnye processy ot neobhodimosti ispol'zovat' tajmauty i povtornye peredachi dlya obespecheniya nadezhnosti. Naibolee tipichnymi prikladnymi processami, ispol'zuyushchimi TCP, yavlyayutsya FTP (File Transfer Protocol - protokol peredachi fajlov) i TELNET. Krome togo, TCP ispol'zuyut sistema X-Window, rcp (remote copy - udalennoe kopi- rovanie) i drugie "r-komandy". Bol'shie vozmozhnosti TCP dayutsya ne besp- latno. Realizaciya TCP trebuet bol'shoj proizvoditel'nosti processora i bol'shoj propusknoj sposobnosti seti. Vnutrennyaya struktura modulya TCP gorazdo slozhnee struktury modulya UDP. Prikladnye processy vzaimodejstvuyut s modulem TCP cherez porty. Dlya otdel'nyh prilozhenij vydelyayutsya obshcheizvestnye nomera portov. Naprimer, server TELNET ispol'zuet port nomer 23. Klient TELNET mozhet poluchat' uslugi ot servera, esli ustanovit soedinenie s TCP-portom 23 na ego mashine. Kogda prikladnoj process nachinaet ispol'zovat' TCP, to modul' TCP na mashine klienta i modul' TCP na mashine servera nachinayut obshchat'sya. |ti dva okonechnyh modulya TCP podderzhivayut informaciyu o sostoyanii soedineniya, nazyvaemogo virtual'nym kanalom. |tot virtual'nyj kanal potreblyaet resursy oboih okonechnyh modulej TCP. Kanal yavlyaetsya dupleksnym; dannye mogut odnovremenno peredavat'sya v oboih napravleniyah. Odin prikladnoj process pishet dannye v TCP-port, oni prohodyat po seti, i drugoj priklad- noj process chitaet ih iz svoego TCP-porta. Protokol TCP razbivaet potok bajt na pakety; on ne sohranyaet granic mezhdu zapisyami. Naprimer, esli odin prikladnoj process delaet 5 zapisej v TCP-port, to prikladnoj process na drugom konce virtual'nogo kanala mozhet vypolnit' 10 chtenij dlya togo, chtoby poluchit' vse dannye. No etot zhe process mozhet poluchit' vse dannye srazu, sdelav tol'ko odnu operaciyu chteniya. Ne sushchestvuet zavisimosti mezhdu chis