el'nyh linij. Est' modifikaciya SLIP -- CSLIP, ili szhimaemyj SLIP, kotoryj ispol'zuet szhatie IP zagolovkov chtoby optimizirovat' IP dlya otnositel'no nizkoj propusknoj sposobnosti posledovatel'noj svyazi. PPP, ili Point-to-Point protokol -- eshche odin protokol dlya posledovatel'nyh linij. PPP imeet eshche bol'shee chislo osobennostej chem SLIP, vklyuchaya stadii peregovorov o nachale svyazi. Ego glavnoe preimushchestvo po sravneniyu SLIP, to chto on ne ogranichivaetsya tol'ko transportirovkoj IP dejtagram, a prednaznachen dlya peredachi lyubogo tipa dejtagram. - 23 - 2.3.6. Protokol Kontrolya Peredachi (TCP) No konechno, posylka dejtagram ot odnogo hosta k drugomu eto ne vse esli Vy voshli na quark, Vy hotite imet' nadezhnuyu svyaz' mezhdu vashim processom rlogin na erdos i processe obolochki na quark. Takim obrazom, informaciya posylaemaya tuda i obratno dolzhna byt' razbita na pakety otpravitelem, i povtorno sobirat'sya v potok priemnikom. Hotya eto kazhetsya trivial'nym, zdes' poyavlyaetsya neskol'ko dostatochno slozhnyh zadach. Ochen' vazhno znat' ob IP, chto on ne nadezhen. Predpolozhim chto desyat' lyudej na vashem Ethernet nachali zagruzhat' samyj poslednij vypusk XFree86 s GMU FTP servera. Takaya aktivnost' mozhet okazat'sya slishkom bol'shoj dlya togo chtoby gateway perevaril ee, potomu chto on slishkom medlenen, i ogranichen kolichestvom pamyati. Teper' esli Vy poshlete paket ot quark, u sophus mozhet ne hvatit' mesta v bufere i poetomu on ne smozhet otpravit' etot paket. IP reshaet etu problemu prosto zabyvaya pro dannyj paket. Paket bezvozvratno poteryan. Takim obrazom otvetstvennost' za celostnost' dannyh perekladyvaetsya na podderzhivayushchie svyaz' hosty. |to proishodit v sootvetstvii c drugim protokolom, TCP, ili Protokolom Kontrolya Peredachi, kotoryj nadstraivaetsya nad IP dlya sozdaniya svyazi s proverkoj celostnosti dannyh. Sushchestvennyj plyus TCP to, chto on ispol'zuet IP, chto sozdaet illyuziyu prostoj svyazi mezhdu dvumya processami na vashem hoste i otdalennoj mashine, tak, chto Vy ne zabotites' o tom kak i po kotoromu marshrut vashi dannye fakticheski puteshestvuyut. A TCP sozdaet dupleksnuyu svyaz', pozvolyayushchuyu odnovremenno kak posylat' tak i poluchat' informaciyu. Predstavte telefonnuyu besedu. V TCP tochki svyazi opredelyayutsya IP adresami hostov , i nomerami tak nazyvaemyh portov na kazhdom iz hostov. Porty sluzhat dlya opredeleniya processa s kotorym ustanavlivaetsya svyaz'. Esli opyat' obratitsya k primeru s telefonom, to IP adres sootvetstvuet kodam gorodov, a nomer porta mestnomu nomeru telefona. V primere s rlogin, prilozhenie-klient (rlogin) otkryvaet port na erdos, i soedinyaetsya s portom 513 na quark, kotoryj proslushivaet rlogind server. Takim obrazom i ustanavlivaet TCP svyaz'. Ispol'zuya etu svyaz', rlogind - 24 - vypolnyaet proceduru opredeleniya prav dostupa, i zapuskaet obolochku. Standartnyj vvod/vyvod etoj obolochki perenapravlyayutsya na TCP svyaz', takim obrazom vse, nabrannoe vami v rlogin na vashej mashine budet peredano cherez TCP potok na standartnyj vvod obolochki. 2.3.7. Pol'zovatel'skij protokol dejtagram(UDP) Konechno, TCP ne edinstvennyj protokol pol'zovatelya v TCP/IP setyah. Hot' on i podhodit dlya prilozhenij podobnyh rlogin, no on izlishne nadezhen i ne nuzhen dlya prilozhenij tipa NFS. Vmesto, nego v nih ispol'zuet UDP, ili protokol pol'zovatel'skih dejtagram. Podobno TCP, UDP takzhe pozvolyaet prilozheniyu vojti v kontakt s prilozheniem, obsluzhivayushchim opredelennyj port na otdalennoj mashine, no on ne ustanavlivaet svyaz' dlya etogo. Vmesto etogo, Vy mozhete ispol'zovat' ego chtoby posylat' otdel'nye pakety k mestu naznacheniya. Predpolozhim, chto Vy ustanovili direktoriyu TeX s central'nogo NFS servera, galois, i Vy hotite prosmotret' dokument, opisyvayushchij kak ispol'zovat' LaTeX. Vy zapuskaete vash redaktor, kotoryj snachala chitaet ukazannyj fajl. Odnako, trebuetsya slishkom mnogo vremeni chtoby ustanovit' TCP svyaz' s galois, poslat' fajl , i povtoryat' eto snova. Vmesto etogo, na zapros poslannyj k galois, tot posylaet fajl v pare UDP paketov, chto proishodit gorazdo bystree. Odnako, UDP ne prisposoblen dlya bor'by s poterej paketov. |tim prihoditsya zanimat'sya NFS. 2.3.8. Dopolnitel'no o portah Porty mogut rassmatrivat'sya kak tochki prisoedineniya setevyh svyazej. Esli prilozhenie (server) hochet predlozhit' nekij setevoj servis, ono associiruet sebya s portom i zhdet klientov (eto nazyvaetsya slushat' port). Klient, kotoryj hochet ispol'zovat' etot servis poluchaet port na mestnom hoste i soedinyaetsya s portom servera na otdalennom hoste. Vazhnaya osobennost' portov to, chto poka sushchestvuet svyaz' mezhdu klientom i serverom, drugaya kopiya servera mozhet prisoedinit'sya k tomu zhe portu i zhdat' podklyucheniya drugih klientov. |to razreshaet, naprimer, - 25 - neskol'ko parallel'nyh otdalennyh vhodov na odin i tot zhe host, prichem vse ispol'zuyut odin samyj 513 port. TCP sposoben otlichat' etim svyazi drug ot druga, potomu chto oni vse pribyvayut ot razlichnyh portov ili hostov. Naprimer, esli Vy dvazhdy vojdete na quark ot erdos, togda pervyj rlogin klient budet ispol'zovat' mestnyj port 1023, a vtoroj budet ispol'zovat' port 1022. Odnako, budut soedinyat'sya s tem zhe samym portom 513 na quark. |tot primer pokazyvaet ispol'zovanie portov kak punkty, gde klient vhodit v kontakt s opredelennym portom chtoby poluchit' opredelennoe obsluzhivanie. Klientu neobhodimo znat' nadlezhashchij nomer porta, soglashenie o naznachenii etih nomerov dolzhno byt' dostignuto mezhdu administratorami obeih sistem. Dlya uslug kotorye shiroko ispol'zuyutsya, tipa rlogin, eti nomera dolzhny ustanavlivat'sya centralizovanno. |tim zanimaetsya IETF (ili Proektiruyushchaya zadachi Internet sila), kotoraya regulyarno vypuskaet RFC stat'i. Kotorye, sredi prochego, naznachayut nomera portov dlya obshcheizvestnyh uslug. Linux ispol'zuet fajl, v kotorom registriruyut nazvaniya dostupnogo drugim servesa i nomera portov, k kotorym opredelennyj serves prikreplen, nazyvaetsya on /etc/services. On opisan v sekcii 10.3. Stoit zametit', chto hotya i TCP i UDP polagayutsya na porty, eti nomera ne nahodyatsya v protivorechii. |to oznachaet chto TCP port 513, naprimer, otlichaetsya ot UDP porta 513. Fakticheski, eti porty sluzhat kak tochki dostupa dlya dvuh razlichnyh uslug, a imenno rlogin (TCP) i rwho (UDP). 2.3.9. Biblioteka gnezd(socket) V Unixoidnyh operacionnyh sistemah programmnoe obespechenie, vypolnyayushchee vse zadachi i protokoly opisannye vyshe, obychno yavlyaetsya chast'yu yadra, analogichno i v Linux. Interfejs programmirovaniya naibolee obshchij dlya mira Unix - Biblioteka Gnezd Berkeley. Svoe nazvanie ona poluchila iz-za populyarnoj analogii kotoraya rassmatrivaet porty kak gnezda(rozetki). Ona obespechivaet (bind(2)) zapros, kotoryj opredelyaet otdalennyj host, transportnyj protokol, i servis, k kotoromu programma mozhet prisoedinitsya ili slushat' (ispol'zuya connect(2), listen(2), and accept(2)). - 26 - Biblioteka gnezd odnako neskol'ko bolee obshchaya, ona obespechivaet ne tol'ko klass TCP/IPosnovannyh gnezd (AF INET gnezda), no takzhe klass, kotoryj upravlyaetsya lokal'noj svyaz'yu mashiny (AF UNIX klass). Nekotorye versii mogut takzhe upravlyat'sya drugimi klassami tipa XNS ( Sistema Organizacii Seti Kseroksa ) protokol, ili X.25. V Linux, biblioteka gnezd -- chast' standartnoj libc C biblioteki. V nastoyashchee vremya, ona podderzhivaet tol'ko AF INET i AF UNIX gnezda, no vedetsya rabota nad vklyucheniem podderzhki dlya Novell protokolov, tak, chtoby v konechnom schete odin ili bol'she klassov gnezd dlya nego byli by dobavleny. 2.4. Linux seti Buduchi rezul'tatom koncentracii usilie programmistov vsego mira, Linux ne byl by vozmozhen bez global'noj seti. Tak chto ne udivitel'no, chto uzhe na rannih stadiyah razrabotki, neskol'ko lyudej nachali rabotat' nad setevymi vozmozhnostyami. UUCP poyavilsya v Linux pochti s samogo nachala, a rabota nad tcp/ip-osnovannoj set'yu byla nachata osen'yu 1992, kogda Ross Biro i drugie sozdali to, chto teper' stalo izvestnym kak Net-1. Ross prekratil aktivnuyu razrabotku v Mae 1993, Fred van Kempen nachal rabotat' nad novoj versiej, peredelyvaya glavnye chasti koda. |to usilie izvestno kak Net-2. Pervyj obshchestvennyj reliz, Net-2d, byl sdelan letom 1992 (kak chast' 0.99.10 yadra), i s teh por podderzhivalsya i rasshiryalsya neskol'kimi lyud'mi, naibolee sil'no Alan Cox, kak Net-2Debugged. Posle tyazheloj otladki i mnogochislennyh usovershenstvovanij koda, on smenil nazvanie na Net-3. |ta versiya koda v nastoyashchee vremya vklyuchena v oficial'nye vypuski yadra. Net-3 predlagaet drajvera ustrojstv dlya raznoobraznogo Ethernet, a takzhe dlya SLIP (dlya raboty seti po posledovatel'nym liniyam), i PLIP ( dlya parallel'nyh linij). S Net-3, Linux poluchil TCP/IP prilozheniya, kotorye ochen' horosho vedut sebya v lokal'noj seti i chasto rabotayut bystree nekotoryh kommercheskih. Sushchestvuet neskol'ko proektov, razvitie kotoryh budet uvelichivat' mnogostoronnost' Linux. Drajver dlya - 27 - PPP ( protokol point-to-point, drugoj sposob raboty po posledovatel'nym liniyam), yavlyaetsya v stadii Beta versii v nastoyashchee vremya, a AX.25 drajver dlya radio - v Alpha versii. Alan Cox sozdal drajver dlya Novell's IPX protokola, no zavershayushchie usiliya dlya sozdaniya seti sovmestimoj s Novell byli otlozheny iz-za nezhelaniya Novell obespechit' neobhodimuyu dokumentaciyu. Eshche odin proekt - samba, svobodnyj NetBIOS server, napisannyj Andrew Tridgell. 2.4.1. Drugie puti razvitiya V eto vremya, prodolzhaya razrabotku, Fred predlozhil Net-2e, v kotoroj sil'no peresmotreno vsya struktura organizacii seti. Vo vremya napisaniya etoj knigi, Net-2e vse eshche Beta programmnoe obespechenie. Naibolee interesen v Net-2e - ob®edinenie DDI, Interfejsa Drajvera Ustrojstva. DDI predlagaet odnotipnyj dostup i metod konfiguracii dlya vseh ustrojstv seti i protokolov. Poka ispol'zuetsya TCP/IP set' napisannaya Matthias Urlichs, napisavshego ISDN drajver dlya Linux i FreeBSD. Dlya etogo, on vstroil BSD setevoj kod v yadro Linux. V techenie obozrimogo budushchego, Net-3 skoree vsego ostanetsya. Alan v nastoyashchee vremya rabotaet nad AX.25 protokolom, ispol'zuemogo lyubitelyami radio. Nesomnenno, skoro budet razrabotan "modul'" dlya yadra, kotoryj pozvolit Vam dobavlyat' drajvera k yadru ne pereustanavlivaya sistemu. Hotya eti razlichnye realizacii seti boryutsya za obespechenie odnogo i togo zhe servesa, osnovnye ih razlichiya nahodyatsya na urovne yadre i ustrojstv. Poetomu, Vy ne smozhete otkonfigurirovat' sistemu ispol'zuya Net-2e yadro s utilitami ot Net-2d ili Net-3, i naoborot. |to otnositsya tol'ko k komandam, kotorye imeyut delo s yadrom; prilozheniya i obshchie setevye komandy tipa rlogin ili telnet pojdut na lyubom iz nih. Odnako, vse eti razlichnye versii seti ne dolzhny volnovat' Vas. Esli Vy ne uchastvuete v aktivnoj razrabotke, Vy ne dolzhny volnovat'sya otnositel'no versii soda TCP/IP. Oficial'nye vypuski yadra budut vsegda soprovozhdat'sya naborom setevyh instrumentov, kotorye yavlyayutsya - 28 - sovmestimymi s kodom predstavlennym v yadre. 2.4.2. Gde poluchit' kod Samaya poslednyaya versiya setevogo koda mozhet byt' poluchena na razlichnyh anonimnym FTP. Oficial'nyj FTP uchastok dlya Net-3 - sunacm.swan.ac.uk, otrazhaemyj sunsite.unc.edu v system/Network/sunacm. Samyj poslednij komplekt Net-2e dostupen na ftp.aris.com. Matthias Urlichs' bsd kod mozhet byt' vzyat na ftp.ira.uka.de v /pub/system/linux/netbsd. Samye poslednie yadra mogut byt' najdeny na nic.funet.fi v /pub/OS/Linux/PEOPLE/Linus; sunsite i tsx-11.mit.edu otrazhayut etu deriktoriyu. 2.5. Podderzhka Vashej sistemy Povsyudu v etoj knige, my v osnovnom budem imet' delo s problemami konfiguracii i ustanovki. Administrirovanie, odnako, gorazdo trudnee-- posle ustanovki servesa, Vy dolzhny sohranit' ego rabotosposbnost' Dlya bol'shenstva iz nih, budet neobhodimo dostatochno malo vnimaniya, v to vremya kak nekotorye, tipa pochty i novostej, trebuyut postoyannogo vnimaniya. My budem obsuzhdat' vse eto v bolee pozdnih glavah. Absolyutnyj minimum v obsluzhivanii -- regulyarnaya proverka sistemy i prosmotr log fajlov na oshibki i neobychnye sluchai. Vy konechno zahotite sdelat' eto s pomoshch'yu napisaniya administrativnyh skriptov i periodicheski zapuskaya ih. Ishodnaya distribuciya nekotoryh osnovnyh prilozhenij, tipa smail ili C news, soderzhat takie skripty. Vy dolzhny tol'ko poprosit' ih udovletvorit' vashi potrebnosti. Rezul'tat raboty lyubogo takogo skripta dolzhen byt' otpravlena po pochte administratoru. Po umolchaniyu, bol'shenstvo prilozhenij budut posylat' soobshcheniya ob oshibkah, obychnuyu statistiku, ili rezyume logfile k root. |tot imeet smysl tol'ko esli Vy chasto vhodite v sistemu pod root; eshche luchshe, esli pochtu root perenapravlyat' na vashe imya, kak opisano v glave 15. - 29 - Odnako kak by tshchatel'no Vy ne konfigurirovali vash uchastok, po zakonu Merfi problemy obyazatel'no poyavyatsya. Poetomu, pri obsluzhivanii sistemy ot zhalob ne otvertet'sya. Obychno, lyudi ozhidayut chto administrator sistemy mozhet po krajnej mere byt' najden cherez email kak root, no imeyutsya takzhe drugie adresa, kotorye obychno ispol'zuyutsya chtoby najti lico otvetstvennoe za opredelennyj aspekt upravleniya. Naprimer, zhaloby otnositel'no sboev v konfiguracii pochty budut obychno adresovany postmaster, a problemy s sistemoj novostej mogut byt' soobshcheny newsmaster ili usenet. Obrashcheniya k hostmaster dolzhny byt' perenapravleny licu otvechayushchemu za osnovnye uslugi seti i sluzhbu imen DNS. 2.5.1. Bezopasnost' sistemy Drugoj ochen' vazhnyj aspekt administrirovaniya sistemy v seti -- zashchita sistemy i pol'zovatelej ot zloumyshlennikov, kotorye mogut vredit' vam ne tol'ko fal'shivymi soobshcheniyami, no i stiraniem dannyh ili narusheniya sekretnosti vashih pol'zovatelej. My budem ypominat' nekotorye specificheskie problemy pri obsuzhdenii sluchaev, kogda oni mogut proishodit', i predlozhim neskol'ko obshchih sposobov zashchity. Zdes' my budet obsuzhdat' neskol'ko primerov i osnovnyh metodov obespecheniya bezopasnosti sistemy. Konechno, ohvachennye temy ne mogut reshit' vseh problem bezopasnosti, s kotorymi vy stolknetes'; oni prosto sluzhat illyustraciej problem, kotorye mogut vozniknut'. Poetomu, neobhodimo prochitat' horoshuyu knigu po bezopasnosti, osobenno administratoru setevoj sistemy. Simon Garfinkel "Prakticheskaya UNIX Bezopasnost'" ( sm. [ GETST "bezopasnost'"]) -- ochen' rekomenduyu. Bezopasnost' sistemy nachinaetsya s horoshego administrirovaniya sistemy. |to vklyuchaet v sebya proverku sobstvennosti i razreshenij vseh zhizneneno vazhnyh fajlov i katalogov, kontrol' ispol'zovaniya priviligerovannyh prav, i t.d.. COPS programma, naprimer, budet proveryat' vashu fajlovuyu sistemu i obshchie fajly konfiguracii na neobychnyh razresheniya i drugie anomalii. Takzhe sleduet vvesti opredelennye pravila po sozdaniyu pol'zovatel'skih parolej, kotorye pozvolyali by umen'shit' veroyatnost' ih podbora. Naprimer, potrebovat' chtoby parol' imel po krajnej mere pyat' bukv, i soderzhal kak verhnie - 30 - tak i nizkie registry i cifry. Pri sozdanii servisa dostupnogo po seti, postarajtes' dat' emu "naimen'shie privilegii," udastovertes' chto Vy ne razreshaete emu delat' veshchi, kotorye ne trebuyutsya dlya ego raboty. Naprimer, Vy dolzhny delat' programmy s privilegii root tol'ko, kogda oni dejstvitel'no nuzhdayutsya v etom. Naprimer, esli Vy hotite razreshit' bezdiskovym hostam zagruzhat'sya ot vashej mashiny, Vy dolzhny obespechit' TFTP (trivial'nyj servis peredachi fajla) tak, chtoby oni zagruzhali osnovnye fajly konfiguracii iz diriktorii /boot. Odnako, kogda ispol'zuetsya neogranichennyj TFTP, eto pozvolyaet lyubomu prochitat' obshchedostupnye fajly s vashej mashiny. Esli eto ne to, chto Vy hotite, pochemu by ne ogranichit' TFTP servis diriktoriej /boot? Po toj zhe samoj prichine, Vy mogli by zahotet' ogranichit' dostup k opredelennym uslugam pol'zovatelyam s opredelennyh hostov. V glave 10., my predstavlyaem tcpd, kotoryj delaet eto dlya raznoobraznyh setevyh prilozhenij. Drugoj vazhnyj punkt -- izbegajte "opasnogo" programmnogo obespecheniya. Konechno, lyuboe programmnoe obespechenie, kotoroe Vy ispol'zuete mozhet byt' opasno, potomu chto programmnoe obespechenie mozhet imet' oshibki, tak chto umnye lyudi mogli by ispol'zovat' ih chtoby poluchit' dostup k vashej sisteme. Podobnye veshchi sluchayutsya i net nikakoj polnoj zashchity protiv etogo. |ta problema kasaetsya kak besplatnogo, tak i kommercheskogo programmnogo obespecheniya. Odnako, programmy, kotorye trebuyut special'nyh privilegij nesoizmerimo opasnee chem drugie, potomu chto lyubaya lazejka mozhet imet' nepopravimye posledstviya. Esli Vy ustanavlivaete setevuyu programmu budte vdvojne ostorozhny i nichego ne propuskaete v dokumentacii, chtoby sluchajno ne narushit' bezopasnost' sistemy. Vy ne mozhete isklyuchit' togo, chto vashi predostorozhnosti mogut poterpet' neudachu, nezavisimo ot togo naskol'ko ostorozhnyj Vy byli. Poetomu Vy dolzhny udostoverit'sya, chto Vy obnaruzhite zloumyshlennikov srazu zhe posle ih poyavleniya. Horoshee nachalo -- proverka log fajlov sistemy, no zloumyshlennik veroyatno umnyj chelovek, i budet udalyat' lyubye ochevidnye sledy pered uhodom. Odnako, imeyutsya instrumenty podobno tripwire, kotorye pozvolyayut Vam proveryat' zhiznenno vazhnye sistemnye fajly i registrirovat' byli li ih soderzhanie ili razresheniya - 31 - izmeneny. Tripwire vychislyaet razlichnye sil'nye kontrol'nye summy po etim fajlam i hranit ih v baze dannyh. Potom kontrol'nye summy povtorno vychislyayutsya i sravnivayutsya s sohranennymi dlya obnaruzheniya lyubyh modifikacii. 2.6. Obzor sleduyushchih glav Sleduyushchie neskol'ko glav budut imet' delo s konfigurirovaniem Linux dlya TCP/IP seti, i s upravleniem nekotorymi glavnymi prilozheniyami. Prezhde chem pachkat' nashi ruki redaktirovaniem fajlov i podobnymi veshchami my nemnogo issleduem IP v 3 glave. Esli Vy uzhe znaete otnositel'no IP marshrutizacii, i kak vypolnyaetsya address resolution, Vy mozhete propustit' etu glavu. Glava 4. Obsuzhdenie osnovnyh problem konfiguracii, tipa ustanovka yadra i vvedeniya vashej Ethernet karty. Konfiguraciya vashih posledovatel'nyh portov ohvachena v otdel'noj glave, potomu chto ih obsuzhdenie ne otnositsya tol'ko k TCP/IP seti, no i k UUCP. Glava 6. Pomogaet Vam otkonfigurirovat' vashu mashinu dlya TCP/IP. Ona takzhe opisyvaet neskol'ko poleznyh instrumentov, kotorye Vy mozhete ispol'zovat' dlya proverki i otladki vashih ustanovok Sleduyushchaya glava rasskazyvaet kak konfigurirovat' hostname resolution i ob®yasnyaet kak ustanovit' server imen. |to soprovozhdaetsya dvumya glavami pokazyvayushchimi konfigurirovanie i ispol'zovanie SLIP i PPP. Glava 8. Ob®yasnyaet kak ustanovit' SLIP svyaz' i daet detal'nye rekomendacii po zapusku programm, kotorye pozvolyayut avtomatizirovat' bol'shinstvo neobhodimyh shagov. Glava 9. ohvatyvaet PPP i pppd. Glava 10. Daet korotkoe predstavlenie o nekotoryh iz naibolee vazhnyh setevyh prilozhenij, tipa rlogin, rcp, i t.d., Ona takzhe ohvatyvaet uslugi inetd i opisyvaet kak Vy mozhete ogranichit' opredelennye uslugi dlya nabora kakih-libo hostov. Sleduyushchie dve glavy obsuzhdayut NIS, Setevuyu Informacionnuyu Sistemu, i NFS, Setevuyu Fajlovuyu Sistemu. NIS - poleznyj instrument - 32 - dlya rasprostraneniya administrativnoj informacii tipa parolej pol'zovatelya v lokal'noj seti. NFS pozvolyaet Vam raspredelit' fajly mezhdu neskol'kimi hostami v vashej seti. Glava 13. Daet Vam predstavlenie ob administrirovaniyu Taylor UUCP, besplatnogo UUCP paketa. Ostatok knigi posvyashchen detal'nomu puteshestviyu po elektronnoj pochte i Usenet Novostyam. Glava 14. predstavlyaet Vam osnovnye koncepciyam elektronnoj pochty, tipa togo kak vyglyadit adres elektronnoj pochty i kak sistema obrabotki pochty poluchaet vashe soobshchenie Glavy 15. I 16. Ohvatyvayut ustanovku smail i sendmail, dva agenta transportirovki pochty, kotoryh Vy mozhete ispol'zovat' v Linux. |ta kniga opisyvaet oba iz nih, potomu chto smail bolee legkij dlya ustanovki (dlya nachinayushchih), v to vremya kak sendmail bolee gibok. Glavy 17. I 18. Ob®yasnyayut puti upravleniya novostyami v Usenet i kak ustanovit' i ispol'zovat' C news, populyarnyj paket programm dlya upravleniya Usenet novostyami. Glava 19. Kratko ohvatyvaet zapusk NNTP daemon, chtoby obespechit' dostup k novostyam dlya vashej lokal'noj seti. Glava 20. Nakonec pokazyvaet Vam kak konfigurirovat' i obsluzhivat' razlichnye newsreader. . - 33 - 3. Problemy TCP/IP seti Teper' obratimsya k detalyam togo kak vy budete prisoedinyat' vashu Linux mashinu k seti TCP/IP, vklyuchaya rabotu s IP adresami, imenami hostov, i chut'-chut' problemy marshrutizacii. |ta glava daet Vam osnovu, kotoraya pomozhet Vam ponyat', chto trebuetsya dlya ustanovki sistemy, v to vremya kak sleduyushchie glavy budut ohvatyvat' instrumenty, s pomoshch'yu kotoryh eto dostigaetsya. 3.1. Setevoj interfejs CHtoby skryt' raznoobraznoe oborudovanie, kotoroe mozhet ispol'zovat'sya v setevoj srede, TCP/IP opredelyaet abstraktnyj interfejs, cherez kotoryj mozhno obrashchat'sya k apparatnym sredstvam |VM. |tot interfejs predlagaet nabor dejstvij kotoryj yavlyaetsya odinakovym dlya vseh tipov apparatnyh sredstv i v osnovnom imeet delo s posylkoj i polucheniem paketov. Dlya kazhdogo pereferijnogo ustrojstva, kotoroe Vy hotite ispol'zovat', v yadre dolzhen byt' predstavlen sootvetstvuyushchij interfejs Naprimer, Ethernet interfejsy v Linux nazvany eth0 i eth1, a interfejsy SLIP -- sl0, sl1, i t.d.. |ti nazvaniya interfejsa ispol'zuyutsya pri konfigurirovanii, kogda Vy hotite opredelit' yadru specificheskoe fizicheskoe ustrojstvo. Oni ne imeyut nikakogo naznacheniya krome etogo. CHtoby rabotat' v TCP/IP seti, dannomu interfejsu dolzhen byt' naznachen IP adres, kotoryj sluzhit kak identifikator pri obshchenii s ostal'nym mirom. |tot adres razlichen v zavisimosti ot nazvaniya interfejsa upominaemogo vyshe; esli Vy sravnivaete interfejs s dver'yu, togda adres podoben plastine s imenem, prikreplennoj na nej. Konechno, imeyutsya drugie parametry ustrojstva kotorye neobhodimo otregulirovat'; odin iz nih - maksimal'nyj razmer dejtagram kotoryj mozhet byt' obrabotan dannoj chast'yu apparatury, takzhe nazyvaemyj Maximum Transfer Unit, ili MTU. Drugie parametry budut predstavleny - 34 - pozzhe. 3.2. IP adresa Kak upominaetsya v predydushchej glave, adresa ponyatnye v sootvetstvii c IP -- eto 32-bitovye chisla. Kazhdaya mashine v dannoj seti dolzhen byt' naznachena unikal'nyj adres. V lokal'noj seti, kotoraya ne ispol'zuet TCP/IP dlya svyazi s drugimi setyami, Vy mozhet naznachit' eti nomera soglasno vashim personal'nym predpochteniyam. Odnako, dlya uchastkov Inetrnet, nomera naznachayutsya NIC. Dlya bolee legkogo chteniya, IP adresa razbivayut na chetyre 8 bitovyh chisla, nazvannyh octets. Naprimer, quark.physics.groucho.edu imeet IP adres 0x954C0C04, kotoryj zapisyvaetsya kak 149.76.12.4. |tot format chasto nazyvayut dotted quad notation. Drugaya prichina dlya takoj zapisi to, chto IP adresa razbivayutsya na nomer seti, kotoryj napisan v pervyh octets, i nomer hosta, kotoryj yavlyaetsya ostatkom. Pri obrashchenii k NIC za adresami, Vy ne poluchaete adres dlya kazhdogo otdel'nogo hosta, kotorye Vy planiruete postavit'. Vmesto etogo, Vam dayut setevoj nomer, i pozvolyayushchij naznachat' mashinam lyubye IP adresa iz zadannogo takim obrazom diapazona. V zavisimosti ot razmera seti, host chast' mozhem byt' men'shej ili bol'shej. V zavisimosti ot razlichnye potrebnostej imeyutsya neskol'ko klassov setej, opredelyayushchih razlichnoe razbienie IP adresov. Klass A vklyuchaet seti ot 1.0.0.0 do 127.0.0.0. Setevoj nomer soderzhitsya v pervom octet, chto predusmatrivaet 24 razryadnuyu host chast', set' priblizitel'no iz 1.6 million hostov. Klass B soderzhit seti ot 128.0.0.0 do 191.255.0.0; setevoj nomer nahoditsya v pervyh dvuh octets. |to predpolagaet 16320 setej s 65024 hostami kazhdyj. Klass C diapazon setej ot 192.0.0.0 do 223.255.255.0, s setevoj nomer - 35 - soderzhitsya v pervyh treh octets. |to predpolagaet pochti 2 milliona setej po 254 hosta. Klassy D, E, i F Adresa popadayushchie v diapazon ot 224.0.0.0 do 254.0.0.0 yavlyayutsya ili eksperimental'nym, ili sohraneny dlya budushchego ispol'zovaniya i ne opredelyayut kakuyu-libo set'. Esli my vernemsya k primeru v predydushchej glave, my uvidim chto 149.76.12.4, adres quark, otnositsya k hostu 12.4 v seti 149.76.0.0 klassa B. Vy mozhete zametit', chto v vysheupomyanutom spiske dlya kazhdogo octet v chasti hosta vozmozhny ne vse znacheniya. |to potomu chto nomera hosta so vsemi octets ravnymi 0 ili 255 sohraneny dlya special'nyh celej. Adres v kotorom vse bity host chasti -- nol' otnositsya ko vsej seti, a gde vse bity host chasti 1 nazvan broadcast (shirokoveshchatel'nym) adresom. On otnositsya ko vsem hostam iz ukazannoj seti. Takim obrazom, 149.76.255.255 ne sushchestvuyushchij adres hosta, on otnositsya ko vsem hostam seti 149.76.0.0. Imeyutsya eshche dva zarezervirovannyh adresa, 0.0.0.0 i 127.0.0.0. Pervyj nazvan default route(put' po umolchaniyu), poslednij loopback (kol'cevym) adresom. default route ispol'zuetsya pri marshrutizacii IP dejtagram, s kotorymi my budet imet' delo nizhe. Set' 127.0.0.0 sohranena dlya IP raboty vnutri hosta. Obychno, adres 127.0.0.1 budet naznachen special'nomu interfejsu na vashem hoste, tak nazyvaemomu interfejsu loopback, kotoryj dejstvuet podobno zakrytomu krugooborotu. Lyuboj IP paket peredannyj emu ot TCP ili UDP budet vozvrashchen k nim kak budto on tol'ko chto pribyl iz nekotoroj seti. |to pozvolyaet testirovat' setevoe programmnoe obespechenie bez ispol'zovaniya "real'noj" seti. Takzhe on polezen, kogda Vy hotite ispol'zovat' setevoe programmnoe obespechenie na avtonomnom hoste. Naprimer, bol'shoe kolichestvo UUCP uchastkov ne imeyut IP svyazi voobshche, no vse zhe hotyat upravlyat' INN sistemoj novostej. Odnako dlya pravil'noj raboty pod Linux, INN trebuet interfejsa loopback. 3.3. Address Resolution(poisk po adresu). - 36 - Teper', kogda vy videli kak sozdayutsya IP adresa, Vy mozhete sprosit' kak zhe oni ispol'zuyutsya v Ethernet pri adresacii razlichnyh hostov? V konce koncov Ethernet protokol opoznaet hosty po shesti bajtovomu adresu, kotoryj ne imeet absolyutno nichto obshchego s IP adresom. Imenno poetomu neobhodim mehanizm, perevodyashchij IP adresa v adresa Ethernet. |to tak nazyvaemyj Address Resolution Protocol (Protokol Resheniya Adresa), ili ARP. Fakticheski, ARP ne ogranichen Ethernet, on ispol'zuetsya i na setyah drugih tipov. Ideya, lezhashchaya v osnove ARP analogichna sposobu primenyaemomu bol'shinstvom lyudej, kogda oni hotyat najti gospodina X. Oni hodyat po tolpe i vykrikivayut ego imya. I esli on tam, on otkliknetsya. Kogda ARP hochet vyyasnyat' Ethernet adres sootvetstvuyushchij dannomu IP adres, on ispol'zuet osobennost' Ethernet izvestnuyu kak "broadcast"(shirokoveshchatel'noe), kogda dejtagramy adresovyvayutsya odnovremenno vsem stanciyam v seti. SHirokoveshchatel'naya dejtagrama poslannaya ARP soderzhit zapros s IP adresom. Kazhdyj host sravnivaet ego s sobstvennym adresom, i esli oni sovpadayut, vozvrashchaet ARP-otvet na sprashivayushchij host. Sprashivayushchij host mozhet teper' izvlech' Ethernet adres otpravitelya iz etogo otveta. Konechno Vy mogli by udivit'sya kak host mozhet znat' na kotorom iz millionov Ethernet vo vsem mire dolzhen nahodit' zhelaemyj host, i pochemu eto voobshche dolzhen byt' Ethernet. Vse eto nazyvaetsya Routing(marshrutizaciya), a imenno vyyasnenie fizicheskogo mestopolozheniya hosta v seti. |to i budet temoj sleduyushchej sekcii. Davajte poka eshche pogovorim ob ARP. Esli host obnaruzhil Ethernet adres, on sohranit ego v ARP keshe, chtoby, kogda v sleduyushchij raz potrebuetsya poslat' dejtagramu rassmatrivaemomu hostu, ne trebovalos' tratit' vremya na ego poisk. Odnako, on ne znaet sohranit' li etu informaciyu navsegda; naprimer, na udalennom hoste mogut pomenyat' Ethernet kartu, tak chto hranimaya informaciya okazhetsya ne vernoj. CHto potrebuet cherez nekotoroe vremya eshche raz polnost'yu povtorit' opisannuyu proceduru. - 37 - Inogda, takzhe neobhodimo vyyasnyat' IP adres svyazannyj s dannym Ethernet adresom. |to sluchaetsya, kogda bezdiskovaya mashina hochet zagruzitsya s servera po seti, chto yavlyaetsya ves'ma obshchej situaciej dlya lokal'nyh setej. Bezdiskovyj klient, odnako, ne imeet nikakoj informaciyu otnositel'no sebya krome Ethernet adresa! On posylaet shirokoveshchatel'noe soobshchenie soderzhashchee pros'bu k serveru soobshchit' emu ego IP adres. Dlya etogo sushchestvuet drugoj protokol, nazyvaemyj Reverse Address Resolution Protocol (Reversivnyj ARP), ili RARP. A takzhe BOOTP protokol, kotoryj sluzhit dlya opredeleniya procedury zagruzki bezdiskovyh klientov po seti. 3.4. IP marshrutizaciya 3.4.1. IP Seti <> Kogda Vy pishete pis'mo, Vy obychno pomeshchaete na konverte polnyj adres: stranu, shtat, pochtovyj indeks, i t.d.. Posle togo, kak Vy opuskaete ego v pochtovyj yashchik, pochta dostavit ego po mestu naznacheniya: ono budet poslano oboznachennoj strane, ch'ya nacional'noe pochta poshlet ego v trebuemyj shtat, i t.d.. Preimushchestvo etoj ierarhicheskoj shemy dovol'no ochevidno: Vezde, gde Vy otpravlyaete po pochte pis'mo, mestnyj nachal'nik pochtovogo otdeleniya budet tochno znat', kuda peredat' eto pis'mo, i ne dolzhen zabotit'sya, kotorym putem pis'mo budet puteshestvovat'. IP seti postroiny podobnym obrazom. Ves' Inetrnet sostoit iz nabora setej, nazvannyh avtonomnymi sistemy. Kazhdaya takaya sistema proizvodit vsyu marshrutizaciyu mezhdu svoimi chlenami tak, chto zadacha posylki dejtagram svedena k obnaruzheniyu puti k seti s trebuemym hostom. |to oznachaet, chto kak tol'ko dejtagrama vruchena lyubomu hostu kotoryj nahoditsya v toj zhe seti, obrabotka vypolnyaetsya isklyuchitel'no dannoj set'yu. 3.4.2. Podseti |ta struktura otrazhena v razbienii IP adresa na host i setevuyu chasti, kak ob®yasneno vyshe. PO umolchaniyu, set' mest naznacheniya - 38 - poluchaetsya iz setevoj chasti IP adresa. Takim obrazom, hosty s identichnymi IP adresami seti dolzhny raspolagat'sya v predelah odnoj seti, i naoborot. (2) Imeet smysl predlozhit' podobnuyu shemu takzhe i vnutri seti, tak kak ona mozhet sostoyat' iz nabora soten men'shih setej, gde samymi malen'kimi edinicami yavlyayutsya fizicheskie seti tipa Ethernets. Poetomu, IP pozvolyaet Vam podelit' IP set' na neskol'ko podsetej. Podset' prinimaet otvetstvennost' za dostavku dejtagram dlya opredelennogo diapazona IP adresov. Kak s klassami A, B, ili C, ona identificiruetsya setevoj chast'yu IP adresov. Odnako, setevaya chast' teper' rasshirena, chtoby vklyuchit' nekotorye bity ot host chasti. CHislo bitov kotorye interpritiruyutsya kak nomer v podseti zadaetsya tak nazyvaemoj subnet(podsetevoj) maskoj, ili netmask. |to - 32 razryadnoe chislo, kotoroe opredelyaet razryadnuyu masku dlya setevoj chasti IP adresa. Set' Groucho Marx Universiteta - primer takoj seti. Ona imeet klass B s setevym nomerom 149.76.0.0, i netmask poetomu raven 255.255.0.0. Vnutri, set' GMU sostoit iz neskol'kih men'shih setej, tipa lokal'nyh setej razlichnyh otdelov. Tak chto diapazon IP adresov razbit na 254 podseti, ot 149.76.1.0 do 149.76.254.0. Naprimer, otdel teoreticheskoj fiziki imeet nomer 149.76.12.0. Universitetskij optikovolokonnyj kabel' tozhe set' s sobstvennym nomerom 149.76.1.0. |ti podseti imeyut odinakovyj setevoj IP adres, v to vremya kak tret'ya octet ispol'zuetsya, chtoby razlichat' ih mezhdu soboj. Takim obrazom oni budut ispol'zovat' podsetevuyu masku 255.255.255.0. Kartinka 3.4.2 pokazyvaet kak 149.76.12.4, adres quark, interpritiruetsya po-raznomu kogda adres prinyat kak obychnyj adres seti klassa B, i kogda ispol'zuetsya s podset'yu. Stoit zametit' chto subnetting (tak nazvana tehnika sozdaniya podsetej) -- chisto vnutrennee delo seti. Podseti sozdayutsya setevym vladel'cem ( ili administratorom). CHasto, podseti sozdayutsya chtoby - 39 - otrazit' sushchestvuyushchie granicy, bud' oni fizicheskie (dva Ethernets), administrativnye (mezhdu dvumya otdelami) ili geograficheskie. Odnako, eta struktura vozdejstvuet tol'ko na vnutrennee povedenie seti, i polnost'yu nevidima dlya vneshnego mira. 3.4.3. Gateways Subnetting - ne tol'ko organizacionnaya delenie, no chasto i estestvennoe sledstvie granic apparatnyh sredstv. Znaniya hosta o stroenii dannoj fizicheskoj seti, tipa Ethernet, yavlyayutsya ochen' ogranichennymi: Edinstvennye hosty, s kotorymi oni sposobny govorit' neposredstvenno, te, chto nahodyatsya v toj zhe seti. Ko vsem drugim hostam oni mogut obrashchat'sya tol'ko cherez tak nazyvaemyj gateways. Gateway -- host kotoryj svyazan s dvumya ili bol'she fizicheskimi setyami odnovremenno i konfigurirovan tak, chtoby perekachivat' pakety mezhdu nimi. IP dostatochno legko raspoznat' nahoditsya li host na mestnoj fizicheskoj seti, razlichnye fizicheskie seti dolzhny prinadlezhat' razlichnym IP setyam. Naprimer setevoj nomer 149.76.4.0 sohranen dlya hostov v lokal'noj seti matematikov. Pri posylke dejtagram k quark, setevoe programmnoe obespechenie na erdos nemedlenno vidit po IP adresu, 149.76.12.4, chto host mesta naznacheniya nahoditsya v drugoj fizicheskoj seti, i poetomu mozhet byt' dostignut tol'ko cherez gateway (sophus po umolchaniyu). Sophus neposredstvenno svyazan s dvumya otlichnymi podsetyami: otdelom matematiki, i universitetskoj magistral'yu. Oni dostupy cherez razlichnye interfejsy (eth0 i fddi0 sootvetstvenno). No kakoj IP adres my emu naznachaem? 149.76.1.0 ili 149.76.4.0? Otvet: oba. Pri razgovore s serverom v lokal'noj seti matematikov, sophus ispol'zuet IP adres 149.76.4.1, a pri razgovore s hostom na magistral', on dolzhen ispol'zovat' 149.76.1.4. Takim obrazom, gateway poluchaet po odnomu IP adresu na kazhduyu set', k kotoroj on podklyuchen. |ti adresa (vmeste s netmask) privyazany k interfejsu cherez, kotoryj obrashchayutsya podseti. Takim obrazom, - 40 - interfejsy i adresa sophus svyazany tak: ---------------------------------------- +-------+-------------+----------------+ | Interfejs| adres | Netmask | +-------+-------------+----------------+ +-------+-------------+----------------+ | Eth0 | 149.76.4.1 | 255.255.255.0 | | fddi0 | 149.76.1.4 | 255.255.255.0 | | Lo | 127.0.0.1 | 255.0.0.0 | +-------+-------------+----------------+ +-------+-------------+----------------+ Poslednyaya zapis' opisyvaet loopback interfejs lo. Na kartinke 3.4.3 izobrazhena topologiya chasti seti Groucho Marx Universiteta (GMU). Hosty, nahodyashchiesya v dvuh podsetyah v to zhe samoe vremya pokazyvayutsya s oboimi adresami. Voobshche, Vy mozhete ne obrashchat' vnimanie na razlichiya mezhdu adresami hosta i interfejsa. Otnosites' k adresu hosta, kotoryj nahodyatsya tol'ko v odnoj seti, kak k adresu togo i drugogo, hotya strogo govorya eto Ethernet interfejs imeet IP adres. Odnako, eto razlichie oshchutimo tol'ko, kogda Vy rabotaete s gateway. 3.4.4. Tablica marshrutizacii Teper' sosredotochim nashe vnimanie na tom, kak IP vybiraet gateway pri dostavke dejtagram k opredelennoj seti. Kak my videli ran'she erdos, kogda peredaval dejtagramy dlya quark, proveril mesto naznacheniya i nashel, chto ego net v mestnoj seti. Poetomu on posylaet ee gateway, sophus, kotoryj teper' stalkivaetsya s toj zhe samoj zadachej. Sophus opredelyaet, chto quark ne nahoditsya v setyah, s kotorymi on neposredstvenno svyazan, tak chto on peredaet etu dejtagram drugomu gateway, chtoby on perenapravil ee dal'she. Pravil'nyj vybor byl by niels (gateway Otdela Fiziki). No sophus nuzhdaetsya v nekotoroj informacii chtoby opredelit' podhodyashchij gateway. - 41 - Dlya etogo ispol'zuetsya tablica IP marshrutizacii, kotoraya opredelyaet kakie seti prisoedineny s pomoshch'yu kakih gateways. Obyazatel'no dolzhen byt' ukazan marshrut po umolchaniyu (the default route), po kotoromu budut napravlyat'sya vse pakety s adresami v neizvestnyh setyah. |tot gateway svyazan s set'yu 0.0.0.0.. Na sophus, eta tablica mogla by napominat' etu: ----------------------------------------- +------------+-------------+------------+ | Set' | Gateway | Interfejs | +------------+-------------+------------+ +------------+-------------+------------+ | 149.76.1.0 | - | Fddi0 | | 149.76.2.0 | 149.76.1.2 | fddi0 | | 149.76.3.0 | 149.76.1.3 | fddi0 | | 149.76.4.0 | - | Eth0 | | 149.76.5.0 | 149.76.1.5 | fddi0 | |... | ... | ... | | 0.0.0.0 | 149.76.1.2 | fddi0 | +------------+-------------+------------+ +------------+-------------+------------+ Marshruty k setyam, s kotorymi sophus svyazan neposredstvenno oboznachayutsya "-" v stolbce gateway. Tablicy marshrutizacii mogut byt' postroeny razlichnymi sredstvami. Dlya malen'koj seti, naibolee effektivno stroit' ih vruchnuyu i peredavat' ih IP, ispol'zuya marshrutiziruyushchuyu komandu vo vremya zagruzki sistemy. (sm. glavu 6.). Dlya bol'shih setej, oni stroyatsya i reguliruyutsya vo vremya raboty marshrutiziruyushchih demonov; oni zapuskayutsya na central'nom hoste i obmenivayutsya informaciej s drugimi komp'yuterami dlya vychisleniya "optimal'nogo" marshruta mezhdu chlenami setej. V zavisimosti ot razmera seti ispol'zuyutsya razlichnye protokoly marshrutizacii. Dlya marshrutizacii v avtonomnoj sisteme (tipa universitetskogo gorodka), luchshe podhodit RIP, Routing Information Protocol (protokol marshrutnoj informacii), kotoryj predlozhen v BSD - 42 - demone. Dlya marshrutizacii mezhdu avtonomnymi sistemami ispol'zuyutsya vneshnie protokoly marshrutizacii tipa EGP (Vneshnij Gateway Protokol), ili BGP ( Pogranichnyj Gateway Protokol); oni ( a takzhe RIP) byli predlozheny v gated demone( University of Cornell's). 3.4.5. Metricheskie znacheniya Dinamicheskaya marshrutizaciya osnovannaya na RIP vybiraet samyj luchshij marshrut k nekotoromu hostu ili seti, osnovyvayas' na nabore "hops"(pereletov), to est' gateways dejtagram, rassylaemyh pered peredachej osnovnoj informacii. CHem bolee korotkij marshrut, tem luchshe RIP ego ocenivaet. Ochen' dlinnye marshruty s 16 ili bol'she pereletov rassmatrivayutsya kak nepodhodyashchie i otvergayutsya. CHtoby ispol'zovat' RIP dlya upravleniya informaciej, marshrutiziruemoj vnutri vashej seti, Vy dolzhny zapustit' gated na vseh hostah. Vo vremya zagruzki gated proveryaet vse aktivnye setevye interfejsy. Esli imeetsya bol'she chem odin aktivnyj interfejs ( ne schitaya loopback ), eto predpolagaet chto host peredaet pakety mezhdu neskol'kimi setyami, i budet aktivno obmenivat'sya marshrutnoj informaciej. Inache, on budet tol'ko passivno poluchat' RIP pakety i modernizirovat' lokal'nuyu tablicu marshrutizacii. Poluchiv informaciyu ot lokal'noj tablicy marshrutizacii, gated vychislyaet dlinu marshruta po tak nazyvaemomu metricheskomu znacheniyu svyazannomu s zapis'yu v tablice. |to metricheskoe znachenie zadaetsya administratorom sistemy pri konfigurirovanii marshruta i dolzhna otrazhat' fakticheskuyu trudoemkost' ispol'zovaniya etogo marshruta. Poetomu, razmer marshruta k podseti, s kotoroj host neposredstvenno svyazan, dolzhno vsegda byt' ustanovleno v nol', v to vremya kak ma