ol'zovat' setevye prilozheniya na avtonomnom hoste. Posle dobavleniya vysheupomyanutyh strok k rc.inet1 i proverki, chto oba rc.inet skripta zapuskayutsya iz /etc/rc, Vy mozhete perezagruzit' vashu mashinu i popytat'sya ispol'zovat' razlichnye prilozheniya. Naprimer, "telnet localhost" dolzhen ustanovit' telnet soedinenie s vashem hostom. Odnako, interfejs loopback polezen ne tol'ko kak primer v knigah o setyah , ili kak sistema otladki, no fakticheski ispol'zuetsya nekotorymi prilozheniyami v techenie normal'noj raboty. Poetomu, Vy vsegda dolzhny konfigurirovat' ego, nezavisimo ot togo prisoedinena li vasha mashina k seti ili net. 6.7.2. Ethernet interfejsy Konfigurirovanie interfejsa Ethernet, idet pochti takzhe kak i interfejsa loopback, on tol'ko trebuet bol'she parametrov kogda Vy ispol'zuete podseti. V Virtual'noj Pivovarne, my razbivali na podseti IP set', kotoraya byla pervonachal'no klass B. Pri ustanovke interfejsa dlya trebovalos' by napisat': # ifconfig eth0 vstout netmask 255.255.255.0 |ta zapis' naznachaet eth0 interfejsu IP adres vstout (191.72.1.2). Esli by my opustili netmask, ifconfig vyvel by netmask iz klassa seti, chto privelo by k netmask 255.255.0.0. Teper' bystren'ko proverim: # ifconfig eth0 eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 191.72.1.2 Bcast 191.72.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 - 88 - TX packets 0 errors 0 dropped 0 overrun 0 Vy mozhete videt' chto ifconfig avtomaticheski ustanavlivaet shirokoveshchatel'nyj adres (pole Bcast) ravnyj obychnomu znacheniyu, kotoroe yavlyaetsya nomerom seti hostov s bitami hosta ravnymi 1. Takzhe, razmer peredavaemyh soobshchenij (dlya dannogo interfejsa ustanavlivaetsya maksimal'nyj razmer Ethernet paketa) byl ustanovlen ravnym maksimal'nomu znacheniyu 1500 bajtov. Vse eti znacheniya mogut byt' ispravleny special'nymi opciyami, kotorye bylo opisany pozzhe. Takzhe kak v loopback sluchae, Vy dolzhny teper' ustanovit' marshrutizacionnuyu zapis', kotoraya soobshchaet yadru o seti, kotoraya mozhet byt' dostignuta cherez eth0. Dlya Virtual'noj Pivovarni, Vy eto sdelali by tak # route add -net 191.72.1.0 Snachala eto smotritsya kak volshebstvo, potomu chto eto dejstvitel'no ne ochevidno kak route obnaruzhivaet, kotorye seti svyazyvayutsya s pomoshch'yu kakih interfejsov. Odnako, ulovka dovol'no prosta: yadro proveryaet vse interfejsy kotorye byli otkonfigurirovany i sravnivaet adres mesta naznacheniya (v etom sluchae 191.72.1.0) s setevoj chast'yu adresa interfejsa. Edinstvennyj interfejs, kotoryj sootvetstvuet dannomu adresu, -- eth0. Teper', chto takoe -net opciya? Ona ispol'zuetsya, potomu chto route mozhet rabotat' s marshrutami k setyam i s marshrutam k otdel'nym hostam (kak Vy videli v localhost). Kogda route poluchaet adres v dotted quad standarte, on pytaetsya predpolozhit' prinadlezhit li etot adres seti ili hostu, proveryaya bity chasti hosta. Esli host chast' adresa - nol', marshrut predpolagaet, chto eto oboznachaet set', v protivnom sluchae, chto eto adres hosta. Poetomu, route reshil by, chto 191.72.1.0 - adres hosta, potomu chto on ne mozhet znat' chto my ispol'zuem podseti. Poetomu my dolzhny yavno soobshchit', chto eto adres seti, eto delaet -net flag. Konechno, vysheupomyanutaya komanda, nemnogo utomitel'na dlya nabora i - 89 - daet mnogo oshibok. Bolee udobnyj podhod -- ispol'zovanie setevyh imen, kotorye my opredelili v /etc/networks. |to delaet komandu eshche bolee udobochitaemoj; i dazhe -net flag mozhet byt' teper' opushchen, potomu chto route teper' znaet, chto 191.72.1.0 oboznachaet set'. # route add brew-net Teper', kogda vy zakonchili osnovnye shagi konfiguracii, nado udostoverit'sya chto vash Ethernet interfejs dejstvitel'no rabotaet pravil'no Vyberite host na vashem Ethernet, naprimer vlager, i naberite # ping vlager PING vlager: 64 byte packets 64 bytes from 191.72.1.1: icmp seq=0. time=11. ms 64 bytes from 191.72.1.1: icmp seq=1. time=7. ms 64 bytes from 191.72.1.1: icmp seq=2. time=12. ms 64 bytes from 191.72.1.1: icmp seq=3. time=3. ms ^C ----vstout.vbrew.com PING Statistics---- 4 packets transmitted, 4 packets received, 0% packet loss round-trip (ms) min/avg/max = 3/8/12 Esli Vy ne vidite vyvod podobnyj etomu, znachit chto-to ne tak. Esli Vy stalkivaetes' s neobychnym kolichestvom poteryannyh paketov, eto oznachaet problemu apparatnyh sredstv, tipa plohogo ili otsutstvuyushchego terminator, i t.d.. Esli Vy ne poluchaete pakety voobshche, Vy dolzhny proverit' konfiguraciyu interfejsa s pomoshch'yu netstat. Paketnaya statistika, pokazannaya ifconfig, dolzhna soobshchit' Vam byli li voobshche poslany kakie-to pakety. Esli u vas est' dostup k udalennomu hostu, Vy dolzhny shodit' k toj mashine i proveryat' tam statistiku interfejsa. Takim obrazom, Vy mozhete tochno reshit', gde propali pakety. Krome togo, Vy dolzhny posmotret' marshrutizacionnuyu informaciyu s pomoshch'yu route, chtoby vyyasnit' imeyut li oba hosta pravil'nye zapisi v tablice marshrutov. route pechataet vsyu tablicu marshrutizacii, esli ego vyzvat' bez argumentov( -n opciya ukazyvaet pechatat' vmesto adresov imena hostov): - 90 - # route -n Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.1 * 255.255.255.255 UH 1 0 112 lo 191.72.1.0 * 255.255.255.0 U 1 0 10 eth0 Detal'noe znachenie etih polej ob®yasnyaetsya nizhe v sekcii 6.9. Kolonka Flags soderzhit spisok flagov ustanavlivaemyh dlya kazhdogo interfejsa. U - vsegda ustanavlivayut dlya aktivnyh interfejsov, a H soobshchaet, chto adres mesta naznacheniya oboznachaet host. Esli H flag - ustanovlen dlya marshruta, kotoryj Vy schitaete setevym marshrutom, togda Vy dolzhny ispol'zovat' -net opciyu s komandoj route. (CHtoby proverit', ispol'zuetsya li marshrut, kotoryj Vy vveli, posmotrite na pole Use, kotoroe nahoditsya mezhdu dvum soobshcheniyami ping.) To check whether a route you have entered is used at all, check if the Use field in the second to last column increases between two invocations of ping. 6.7.3. Marshrutizaciya cherez Gateway V predydushchej sekcii, YA ohvatil tol'ko sluchaj vvedeniya hosta s edinstvennym Ethernet. Dostatochno chasto, odnako, my stalkivaetsya s setyami, soedinennymi s pomoshch'yu gateway. |tot gateway mozhet prosto svyazyvat' dva ili bol'she Ethernet, a mozhet obespechit' svyaz' s vneshnim mirom, (naprimer s Internet). CHtoby ispol'zovat' gateway servis, Vy dolzhny obespechit' setevomu urovnyu dopolnitel'nuyu informaciyu o marshrutizacii. Naprimer, Ethernet Virtual'noj Pivovarni i Virtual'noj Vinodel'ni svyazany cherez takoj gateway, a imenno host vlager. Predpolozhim, chto vlager uzhe byl otkonfigurirovan, i nam ostalos' tol'ko dobavit' novuyu zapis' v tablicu marshrutizacii vstout, kotoraya soobshchaet ego yadru chto on mozhet dostignut' vseh hostov na Seti Vinodel'ni cherez vlager. Sootvetstvuyushchee opisanie marshruta pokazyvaetsya nizhe; gw klyuchevoe slovo, kotoroe soobshchaet chto sleduyushchij argument oboznachaet gateway. # route add wine-net gw vlager Konechno, lyuboj host v seti Vinodel'ni, s kotorym vy zhelaete - 91 - pogovorit' dolzhen imet' sootvetstvuyushchuyu zapis' v tablice marshrutizacii dlya Seti Pivovarni, inache Vy byli by sposobny tol'ko poslat' dannye s vstout na vbardolino, no otveta vy ne poluchite. |tot primer opisyvaet tol'ko gateway kotoryj pereklyuchaet pakety mezhdu dvumya izolirovannymi Ethernet. Teper' predpolozhite chto vlager takzhe imeet soedinenie s Internet ( rabotayushchee cherez dopolnitel'nuyu SLIP svyaz'). Togda my hoteli by chtoby dejtagramy dlya lyuboj seti, otlichnoj ot Pivovarennoj, peredavalis' vlager. |to mozhet byt' vypolneno s pomoshch'yu ustanovki gateway po umolchaniyu dlya vstout: # route add default gw vlager Setevoe imya default(po umolchaniyu) svyazano s adresom 0.0.0.0, chto oboznachaet marshrut ustanovlennyj po umolchaniyu. Vy ne dolzhny dobavlyat' eto imya k /etc/networks, potomu chto eto postroeno v route. Esli, ispol'zuya ping, Vy obnaruzhili bol'shoj procent poteri paketov pri ih prohode cherez neskol'ko gateway, eto mozhet govorit' o ochen' bol'shoj nagruzke na set'. Poterya paketov v osnovnom proishodit ne iz-za tehnicheskim problemam, a skoree blagodarya vremennoj izbytochnoj nagruzke na napravlyayushchie hosty, kotorye iz-za etogo zaderzhivayut ili dazhe vybrasyvayut postupayushchie dejtagramy. 6.7.4. Konfigurirovanie Gateway Otkonfigurirovat' mashinu dlya peredachi paketov mezhdu dvumya Ethernet dovol'no prosto. Vernemsya k vlager, kotoryj oborudovan dvumya Ethernet platami, kazhdaya iz nih svyazanna s odnoj iz dvuh setej. Vse, chto Vy dolzhny sdelat' otkonfigurirovat' oba interfejsa otdel'no, dav im ih sootvetstvuyushchij IP adres, i eto vse. Ves'ma polezno dobavlyat' informaciyu otnositel'no dvuh interfejsov k fajlu hostov putem pokazannym nizhe, tak chtoby imet' udobnye imena dlya nih: - 92 - 191.72.1.1 vlager vlager.vbrew.com 191.72.1.1 vlager-if1 191.72.2.1 vlager-if2 Posledovatel'nost' komand dlya sozdaniya dvuh interfejsov: # ifconfig eth0 vlager-if1 # ifconfig eth1 vlager-if2 # route add brew-net # riute add wine-net 6.7.5. PLIP interfejs Pri ispol'zovanii PLIP svyazi dlya soedineniya dvuh mashin, sushchestvuyut lish' nebol'shie otlichiya ot togo, chto Vy dolzhny delat' pri ispol'zovanii Ethernet. Vysheupomyanutaya svyaz' nazyvaetsya point-to-point(tochka s tochkoj) svyaz', potomu chto ona soedinyaet tol'ko dva hosta ("tochki"), v protivopolozhnost' shirokoveshchatel'nym setyam. Kak primer, my rassmatrivaem laptop komp'yuter nekotorogo sluzhashchego v Virtual'noj Pivovarne, kotoryj svyazana s vlager cherez PLIP. Laptop neposredstvenno nazvan vlite, i imeet tol'ko odin parallel'nyj port. V o vremya zagruzki, etot port budet registrirovat'sya kak plip1. CHtoby sformirovat' svyaz', Vy dolzhny otkonfigurirovat' interfejs plip1, ispol'zuya sleduyushchie komandy: # ifconfig plip1 vlite pointopoint vlager # route add default gw vlager Pervaya komanda konfiguriruet interfejs, soobshchaya yadru, chto eto point-to-point svyaz', s udalennoj mashinoj imeyushchej adres vlager. Vtoraya ustanavlivaet marshrut po umolchaniyu, ispol'zuya vlager kak gateway. Na vlager, podobnaya komanda ifconfig neobhodima chtoby sformirovat' svyaz' i na vlager: - 93 - # ifconfig plip1 vlager pointopoint vlite Interesno, chto interfejs plip1 na vlager ne dolzhen imet' otdel'nyj IP adres, no esli hochetsya mozhete dat' emu adres 191.72.1.1. Teper', my otkonfigurirovali marshrutizaciyu ot laptop do Seti Pivovarni; chto no vse eshche otsutstvuet marshrutu ot lyubogo iz Hostov Pivovarni k vlite. Osobenno tyazhelyj put' sostoit v tom, chtoby dobavlyat' opredelennyj marshrut k tablice marshrutizacii kazhdogo hosta, kotoryj sostoit v tom chtoby ob®yavit' vlager kak gateway k vlite: # route add vlite gw vlager Gorazdo luchshe imet' delo s vremennymi marshrutami, ispol'zuya dinamicheskuyu marshrutizaciyu. Odin iz sposobov sdelat' eto sostoit v zapuske gated demona, kotoryj Vy dolzhny ustanavlivat' na kazhdom hoste v seti, chtoby on rasprostranyal informaciyu o marshrutah dinamicheski. Samyj legkij put', odnako, sostoit v tom, chtoby ispol'zovat' proxy ARP. S proxy ARP, vlager budet otvechat' na lyuboj ARP pfpros dlya vlite posylaya sobstvennyj Ethernet adres. Rezul'tat etogo to, chto vse pakety dlya vlite budut zakachivat' na vlager, kotoryj budet peredavat' ih na laptop. My budem vozvrashchat'sya k proxy ARP v sekcii 6.10. Budushchie vypuski Net-3 budut soderzhat' instrument nazvannyj plipconfig, kotoryj pozvolit Vam ustanavlivat' IRQ porta printera. Pozzhe, eto mozhet byt' zameneno bolee obshchej komandoj ifconfig. 6.7.6. SLIP i PPP Interfejsy Hotya SLIP i PPP soedineniya -- vsego lish' prostye point-to-point svyaz' podobno PLIP soedineniyam, o nih takzhe est' nekaya dopolnitel'naya informaciya. Obychno, pri ustanovke SLIP soedinenie trebuetsya dozvonitsya do udalennogo uchastka cherez vash modem, i otregulirovat' posledovatel'nuyu liniyu dlya SLIP sposoba. PPP ispol'zuetsya podobnym obrazom. Instrumenty trebuemye dlya sozdaniya SLIP ili PPP svyazi budut opisany v glavah 8. i 9. - 94 - 6.7.7. Dummy(fiktivnyj) interfejs Fiktivnyj interfejs dejstvitel'no nemnogo ekzoticheskij, no dovol'no polezen. On naibolee polezen dlya avtonomnyh hostov, i mashin, kotorye svyazany s set'yu cherez modem. Fakticheski, poslednij bol'shinstvo vremeni takzhe yavlyaetsya avtonomnym hostom. Problema avtonomnyh hostov v tom, chto oni imeyut tol'ko odno aktivnoe setevoe ustrojstvo, loopback ustrojstvo, kotoromu obychno naznachen adres 127.0.0.1. Na v nekotoryh sluchayah, Vy dolzhny poslat' dannye k "oficial'nomu" IP adresu lokal'nogo hosta. Naprimer, rassmotrite laptop vlite, kotoryj byl ot®edinen ot seti Prilozhenie na vlite mozhet zahotet' poslat' nekotorye dannye k drugomu prilozheniyu na tom zhe samom hoste. Poisk vlite v /etc/hosts vydaet IP adres 191.72.1.65, takim obrazom prilozhenie pytaetsya poslat' dannye etomu adresu. Poskol'ku interfejs loopback v nastoyashchee vremya edinstvennyj aktivnyj interfejs na mashine, yadro ne imeet nikakuyu idej otnositel'no etogo adresa! Kak sledstvie, yadro otkazyvaetsya ot dejtagramy, i vozvrashchaet prilozheniyu oshibku. V etot moment prosto neobhodimo fiktivnoe ustrojstvo. Ono reshaet etu problemu takzhe kak loopback. V sluchae vlite, Vy prosto daete emu adres 191.72.1.65 i dobavlyaete novyj marshrut ukazyvayushchij na nego. I kazhdaya dejtagrama dlya 191.72.1.65 budet rassmatrivaetsya lokal'no. Trebuemye dejstviya: # ifconfig dummy vlite # route add vlite 6.8. Vse o ifconfig Imeyutsya eshche neskol'ko parametrov dlya ifconfig, o kotoryh my ne pisali ran'she. Vot polnoe opisanie: ifconfig interface [[-net|-host] address [parameters]] interface - nazvanie interfejsa, i address - IP adres kotoryj - 95 - trebuetsya naznachit' dlya interfejsa. |to mozhet byt' ili IP adres v dotted quad formate , ili imya, kotoroe ifconfig budet iskat' v /etc/hosts i /etc/networks. -net i -host opcii vynuzhdayut ifconfig obrashchat'sya s adresom kak setevym nomerom ili adresom hosta, sootvetstvenno. Esli ifconfig ispol'zuetsya tol'ko s imenem interfejsa, on pokazyvaet konfiguraciyu etogo interfejsa. Kogda on vyzyvaetsya bez parametrov, on pokazyvaet vse interfejsy, kotorye Vy otkonfigurirovali; opciya -a vynuzhdaet ego pokazat' i bezdejstvuyushchie. Obrazec vyvoda dlya Ethernet interfejsa eth0 mozhet napominat' eto: # ifconfig eth0 eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 191.72.1.2 Bcast 191.72.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 0 RX packets 3136 errors 217 dropped 7 overrun 26 TX packets 1752 errors 25 dropped 0 overrun 0 MTU i Metric polya pokazyvayut tekushchee MTU i metricheskoe znachenie dlya etogo interfejsa. Metricheskoe znachenie tradicionno ispol'zuetsya nekotorymi operacionnymi sistemami chtoby vychislit' slozhnost' marshruta. Linux ne ispol'zuet eto znachenie, no opredelyaet ego dlya sovmestimosti. RX i TX linii pokazyvayut skol'ko paketov byli polucheny ili peredany bez oshibok, skol'ko proizoshlo oshibok, skol'ko paketov byli poteryany, veroyatno iz-za nehvatki pamyati, i skol'ko byli poteryany iz-za perepolneniya. Perepolnenie priemnika obychno sluchaetsya kogda pakety hodyat bystree chem yadro mozhet ih obsluzhit' poslednee preryvanie. Znacheniya flagov, vyvodimye ifconfig, peredayut dopolnitel'nuyu informaciyu o imeni i opciyah komandnoj stroki; oni budut ob®yasneny nizhe. Sleduyushchij spisok parametrov ispol'zuetsya ifconfig s sootvetstvuyushchimi nazvaniyami flaga, dannymi v skobkah. Opciya kotoraya prosto vklyuchaet nekotoruyu osobennost' takzhe pozvolyayut vyklyuchat' ee, esli nazvaniyu opcii predshestvuet (-). - 96 - up |ta opciya delaet interfejs dostupnym dlya IP urovnya. |ta opciya podrazumevaetsya, kogda daetsya IP adres. ( |ta opciya sootvetstvuet UP RUNNING flagam) down Ona delaet interfejs nedostupnym IP urovnyu. Ona effektivno otklyuchaet lyuboe IP dvizhenie cherez interfejs. Obratite Vnimanie, chto ona ne udalyaet vse marshrutizacionnye zapisi, kotorye ispol'zuyut etot interfejs. Esli Vy postoyanno vyklyuchaete nekij interfejs, Vy dolzhny udalit' eti zapisi predostavit', esli vozmozhno, al'ternativnye marshruty. netmask mask naznachaet masku podseti dlya ispol'zovaniya interfejsom. zdes' mozhno davat' kak lyuboj shestnadcatirichnre chislo s 32 bitami, kotoromu predshestvuet 0x, tak i dotted quad desyatichnye nomera. Pointopoint adress |ta opciya ispol'zuetsya dlya point-to-point IP soedinenij. |ta opciya neobhodima chtoby otkonfigurirovat', naprimer, SLIP ili PLIP interfejsy. (Esli point-to-point adres byl ustanovlen, ifconfig pokazyvaet POINTOPOINT flag.) broadcast address shirokoveshchatel'nyj adres obychno sozdaetsya iz setevogo nomera ustanovkoj vseh bitov chasti hosta. Nekotorye IP ispol'zuyut razlichnuyu shemu; eta opciya pomogaet prisposobit'sya k etim strannym sredam. (Esli broadcast address byl ustanovlen, ifconfig pokazyvaet BROADCAST flag.) metric number |ta opciya mozhet ispol'zovat'sya dlya naznacheniya metricheskogo znacheniya zapisi tablicy marshrutizacii sozdannoj dlya interfejsa. |ta metrika ispol'zuetsya v RIP, dlya postroeniya tablic marshrutizacii. Ustanovlennym po umolchaniyu ono ravno nulyu. Esli Vy ne ispol'zuete RIP demona, Vy ne nuzhdaetes' v etoj opcii voobshche; esli ispol'zuete, - 97 - Vy redko dolzhny budete izmenyat' eto znachenie. mtu bytes |ta opciya ustanavlivaet Maximum Transmission Unit (maksimal'nuyu dlinu peredavaemogo paketa) Dlya Ethernets, MTU po umolchaniyu 1500; dlya SLIP interfejsov 296. arp |to opciya opredelennaya dlya shirokoveshchatel'nyh setej tipa paketnogo radio ili Ethernet. Ona pozvolyaet ispol'zovat' ARP, protokola poiska adresa, ispol'zuemyj dlya opredeleniya fizicheskogo adresa hosta vklyuchennogo set'. Dlya shirokoveshchatel'nyh setej, vklyuchen po umolchaniyu. (Esli ARP ne vklyuchen, ifconfig pokazyvaet flag NOARP. ) -arp zapreshchaet ispol'zovanie ARP na etom interfejse. promisc Pomeshchaet interfejs v promiscuous sostoyanie. V shirokoveshchatel'noj seti, eto zastavlyaet interfejs poluchat' vse pakety, nezavisimo ot togo byli li oni prednaznacheny dlya drugogo hosta ili net. |to pozvolyaet , ispol'zuya fil'try paketov, analizirovat' setevoj trafik. Obychno, eto horoshaya tehnika ohoty na setevye problemy kotorye dolzhny inache intensivno pribyvat'. S drugoj storony, eto pozvolyaet vragam issledovat' dvizhenie parolej po vashej seti i delat' drugie chernye dela. Odna zashchita protiv etogo tipa napadeniya ne pozvolyat' prisoedinyatsya k vashej seti chuzhim komp'yuteram. Drugaya sposob ispol'zovat' bezopasnye opoznavatel'nye protokoly, tipa Kerberos, ili SRA login. (|ta opciya sootvetstvuet flagu PROMISC.) -promisc otkaz ot promiscuous sposoba. allmulti Multicast adresa -- nekotoryj vid shirokoveshchatel'nyh adresov pozvolyayushchih obrashchat'sya k gruppe hostov, kotorye ne obyazatel'no dolzhny - 98 - byt' na toj zhe samoj podseti. Multicast adresa eshche ne podderzhivayutsya yadrom. ( |ta opciya sootvetstvuet flagu ALLMULTI. ) -allmulti otklyuchaet Multicast adresa. 6.9. Proverka s pomoshch'yu netstat Dal'she, YA rassmotryu poleznyj instrument dlya proverki vashej setevoj konfiguracii i aktivnosti. On nazvan netstat i ,fakticheski, yavlyaetsya naborom iz neskol'kih instrumentov sobrannyh vmeste. My budem obsuzhdat' kazhduyu iz funkcij v sleduyushchih sekciyah. 6.9.1. Otobrazhenie tablicy marshrutizacii Pri vyzove netstat s -r flagom, on pokazyvaet tablicu marshrutizacii. Na vstout, on vydast: # netstat -nr Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.1 * 255.255.255.255 UH 1 0 50 lo 191.72.1.0 * 255.255.255.0 U 1 0 478 eth0 191.72.2.0 191.72.1.1 255.255.255.0 UGN 1 0 250 eth0 -n opciya zastavlyaet netstat pechatat' adresa kak dotted quad IP nomera vmesto simvolicheskih imen hostov i setej. |to osobenno polezno kogda Vy hotite izbezhat' poiskov adresa po seti (naprimer cherez DNS ili NIS server). Vtoraya kolonka vyvoda netstat pokazyvaet gateway marshrutizacionnuyu zapis'. Esli gateway ne ispol'zuetsya, pechataetsya zvezdochka. Tret'ya kolonka "obshchnost'" marshruta. Kogda daetsya IP adres, chtoby najti podhodyashchij marshrut dlya nego, yadro prosmatrivaet vse zapisi tablicy marshrutizacii, beret pobitovoe I adresa i genmask i lish' za tem sravnivaet rezul'tat s cel'yu marshruta. - 99 - CHetvertaya kolonka pokazyvaet razlichnye flagi, kotorye opisyvayut marshrut: G marshrut ispol'zuet gateway. U interfejs, kotoryj nuzhno ispol'zovat', rabotaet. H Tol'ko otdel'nyj host mozhet byt' dostignut cherez dannyj marshrut. Naprimer, dlya loopback zapisi 127.0.0.1. D ustanavlivaetsya, esli zapis' tablicy byla proizvedena po prihodu ICMP perenapravlyaemoe soobshchenie ( sm. sekciyu 3.5 ). M ustanavlivaetsya, esli zapis' tablicy byla izmenena ICMP perenapavlyaemym soobshcheniem. Ref kolonka pokazyvaet chislo ssylok na etot marshrut, to est' skol'ko drugih marshrutov (naprimer cherez gateways) polagayutsya na prisutstvie etogo marshruta. Poslednie dve kolonki pokazyvayut vremya, v techenii kotorogo ispol'zuetsya zapis' marshrutizacii, i interfejs, cherez kotoryj posylayutsya dejtagramy. 6.9.2. Otobrazhenie statistiki interfejsa Kogda vyzyvaetsya s -i flagom, netstat pokazyvaet statistiku dlya setevyh interfejsov. Esli, krome togo, daetsya -a opciya, on budet pechatat' vse interfejsy predstavlennye v yadre, a ne tol'ko te, kotorye byli otkonfigurirovany v nastoyashchee vremya. Na vstaout, vyvod ot netstat budet napominat' eto: $ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags lo 0 0 3185 0 0 0 3185 0 0 0 BLRU eth0 1500 0 972633 17 20 120 628711 217 0 0 BRU MTU i Met polya pokazyvayut tekushchij MTU i metricheskoe znachenie dlya etogo interfejsa. RX i TX kolonki pokazyvayut skol'ko paketov byli - 100 - polucheny ili peredany bez oshibok (RX-OK/TX-OK), povredilis' (RX-ERR/TXERR), skol'ko bylo poteryano (RX-DRP/TX-DRP), i skol'ko bylo poteryano iz-za perepolneniya (RX-OVR/TX-OVR). Poslednyaya kolonka pokazyvaet flagi, ustanovlennye dlya etogo interfejsa. Zdes' ispol'zuetsya odnosimvol'naya versiya flagov, kotorye pechataet ifconfig. B byl ustanovlen shirokoveshchatel'nyj adres. L |tot interfejs -- loopback ustrojstvo M interfajs poluchaet vse pakety ( promiscuous sposob ). N Trejlery izbegayutsya. O ARP vyklyuchen dlya etogo interfejsa. P |to - point-to-point soedinenie. R Interfejs rabotaet. U Interfejs aktiven. 6.9.3. Otobrazhenie soedinenij Netstat podderzhivaet mnozhestvo opcii dlya otobrazheniya aktivnyh i passivnyh gnezda. Opciya -t, -u, -w, i -x pokazyvayut aktivnye TCP, UDP, RAW , ili UNIX gnezda. Esli Vy zadadite -a flag, gnezda kotorye zhdut soedineniya (to est' slushayut) takzhe pokazyvayutsya. |to dast Vam spisok vseh serverov kotorye v nastoyashchee vremya rabotayut v vashej sisteme. Vyzov netstat -ta na vlager dast: $ netstat -ta Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (State) - 101 - tcp 0 0 *:domain *:* LISTEN tcp 0 0 *:time *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp 0 0 vlager:smtp vstout:1040 ESTABLISHED tcp 0 0 *:telnet *:* LISTEN tcp 0 0 localhost:1046 vbardolino:telnet ESTABLISHED tcp 0 0 *:chargen *:* LISTEN tcp 0 0 *:daytime *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 *:echo *:* LISTEN tcp 0 0 *:shell *:* LISTEN tcp 0 0 *:login *:* LISTEN Vidno, chto bol'she vsego serverov prosto zhdut soedineniya. Odnako, chetvertaya stroka govorit o SMTP soedinenie s vstout, a shestaya liniya soobshchaet o telnet soedinenie s vbardolino. Pri ispol'zovanii -a flaga budut otobrazhat'sya vse gnezda vseh semejstv. 6.10. Proverka ARP Tablicy V nekotoryh sluchayah, byvaet polezno prosmotret' ili dazhe izmenit' soderzhanie ARP tablicy, naprimer, kogda Vy podozrevaete, chto dvojnoj adres prichina nekotoroj setevoj neustojchivosti. arp byl sdelan dlya ispravleniya podobnyh veshchej. Arp [-v] [ -t hwtype ] -a [hostname] arp [-v] [ -t hwtype ] -s hostname hwaddr arp [-v] -d hostname [ hostname ... ] hostname argument mozhet byt' kak simvolicheskim imenem, tak i IP adresom v dotted quad standarte. Pervaya stroka otobrazhaet ARP zapis' dlya IP adresa ili ukazannogo hosta ili vseh izvestnyj hostov, esli hostname ne daetsya. Naprimer, vyzov arp na vlager mozhet vydat' - 102 - # arp -a IP address HW type HW address 191.72.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1 191.72.1.2 10Mbps Ethernet 00:00:C0:90:B3:42 191.72.2.4 10Mbps Ethernet 00:00:C0:04:69:AA chto pokazyvaet Ethernet adresa vlager, vstout i vale. Pri ispol'zovanii -t opcii Vy uvidite informaciyu tol'ko o tom tipe apparatnyh sredstv, kotoryj vy ukazhete. |to mozhet byt' ethernet, ax25net, ili pronet, stoyashchie za 10Mbps Ethernet, AMPR AX.25, i IEEE 802.5 token ring oborudovanie, sootvetstvenno. -s opciya ispol'zuetsya chtoby dobavit' Ethernet adres hosta k ARP tablicam. hwaddr argument opredelyaet adres apparatnyh sredstv, kotoryj po umolchaniyu predpolagaetsya Ethernet adresom, ukazannym kak shest' shestnadcatirichnyh bajt, razdelyaemyh dvoetochiyami. Vy mozhete takzhe ustanavlivat' adres apparatnyh sredstv dlya drugih tipov apparatnyh sredstv, takzhe, ispol'zuya -t opciyu. Odna iz problem, kotoraya mozhet potrebovat', chtoby Vy vruchnuyu dobavili IP adres k ARP tablice, kogda po nekotorym prichinam ARP voprosy dlya udalennogo hosta ne dohodyat, naprimer kogda glyuchit ARP drajver ili imeetsya drugoj host v seti kotoraya oshibochno opoznaet sebya s IP adresom togo hosta. Tverdaya ustanovka IP adresa v ARP tablice takzhe (ochen' reshitel'no) yavlyaetsya meroj zashchity sebya ot hostov na vashem Ethernet, kotorye prikidyvayutsya kem-to drugim. Vyzov arp s ispol'zovaniem klyucha -d udalyaet vse ARP zapisi kasayushchiesya dannogo hosta. |to mozhet byt' neobhodimo, chtoby vynudit' interfejs povtorno poluchit' Ethernet adres dlya dannogo IP. |to polezno kogda perekonfigurirovannaya sistema imeet nepravil'nuyu ARP informaciyu. -s opciya mozhet takzhe ispol'zovat'sya chtoby sozdat' proxy ARP. |to special'naya tehnika kogda host, skazhem gate, dejstvuet kak gateway dlya drugogo hosta nazovem ego fnord, delaya vid chto oba adresa otnosyat tomu zhe samomu hostu, a imenno gate. |to delaetsya tak: na gate sozdaetsya ARP zapis' o fnord, kotoraya ukazyvaet na ego sobstvennyj Ethernet - 103 - interfejs. Teper' kogda host posylaet ARP zapros o fnord, gate budut vozvrashchat' otvet soderzhashchij sobstvennyj Ethernet adres. Sprashivayushchij host budet togda posylat' vse dejtagramy gate, kotoryj perenapravit ih k fnord. |ti shema mozhet byt' neobhodima, naprimer, kogda Vy hotite rabotat' s fnord iz DOS mashiny s nestandartnym TCP, kotoroe ploho rabotaet s marshrutizaciej. Kogda Vy ispol'zuete proxy ARP, DOS mashine kak budet kazat'sya, chto fnord nahoditsya v lokal'noj podseti, tak chto ej ne trebuetsya chto-libo znat' otnositel'no marshrutov i gateway. Drugoe ochen' poleznoe prilozhenie proxy ARP -- kogda odin iz vashih hostov dejstvuet kak gateway k nekotoromu drugoj host tol'ko vremenno, naprimer po telefonu. V predydushchem primere, my uzhe stolknulis' s laptop vlite, kotoryj byl svyazan s vlager cherez PLIP svyaz' tol'ko v nebol'shom promezhutke vremeni. Konechno, eto budet rabotat' tol'ko, esli adres hosta dlya, kotorogo Vy hotite obespechit' proxy ARP, nahoditsya na toj zhe samoj IP podseti, chto i vash gateway. Naprimer, vstout mog by byt' proxy ARP dlya lyubogo hosta iz podseti Pivovarni (191.72.1.0), no nikogda dlya hosta iz podseti Vinodel'ni (191.72.2.0). Trebuemye dejstviya dlya obespecheniya proxy ARP dlya fnord daetsya nizhe; konechno, Ethernet adres dolzhen byt' ot gate. # arp -s fnord 00:00:c0:a1:42:e0 pub proxy ARP zapis' mozhet byt' udalena snova ispol'zuya: # arp -d fnord 6.11. Budushchee Linux vse eshche razvivaetsya. Glavnye izmeneniya v yadre prineset ochen' gibkuyu shemu konfiguracii, kotoraya pozvolit Vam konfigurirovat' setevye ustrojstva vo vremya raboty. Naprimer, komanda ifconfig budet rabotat' s argumentami, kotorye ustanavlivayut IRQ liniyu i DMA kanal. Drugoe izmenenie -- dopolnitel'nyj mtu flag dlya komandy route, - 104 - kotoraya budet ustanavlivat' Maksimal'nyj razmer paketa dlya opredelennogo marshruta. |tot marshruto-opredelennyj MTU zamenit MTU dlya interfejsa. Vy budete ispol'zovat' etu opciyu dlya marshrutov cherez gateway, gde svyaz' mezhdu gateway i hostom mesta naznacheniya trebuet ochen' nizkogo MTU. Naprimer, predpolozhite chto host wanderer svyazan s vlager cherez SLIP svyaz'. Pri posylke dannyh ot vstout do wanderer, setevoj uroven' na wanderer ispol'zoval by pakety do 1500 bajtov, potomu chto pakety posylayutsya cherez Ethernet. SLIP svyaz', s drugoj storony, ispol'zuetsya s MTU 296, tak chto setevoj uroven' na vlager byl by dolzhen razbivat' IP pakety na men'shie fragmenty, kotorye vpisyvayutsya v 296 bajtov. Esli vmesto etogo, Vy konfigurirovali by marshrut na vstout tak, chtoby srazu ispol'zovat' MTU 296, etogo otnositel'no dolgogo razbieniya mozhno izbezhat': # route add wanderer gw vlager mtu 296 Obratite Vnimanie chto mtu opciya takzhe pozvolyaet Vam vyborochno otmenit' rezul'taty "Podseti Lokal'ny" politiki (SNARL). |ta politika -- eto opciya konfiguracii yadra i opisana v glave 4. . - 105 - 7. Nazvaniya servisa i konfiguraciya reshayushchego ustrojstva. Kak uzhe obsuzhdalos' v glave 3., TCP/IP set' mozhet polagat'sya na razlichnye shemy, chtoby preobrazovat' imena v adresa. Samyj prostoj sposob, u kotorogo eshche net nikakih preimushchestv nad sposobom, gde vse prostranstvo imen bylo rasshchepleno na zony, - tablica hostov, sohranennaya v /etc/hosts. |to polezno tol'ko dlya malyh LAN, kotorye upravlyayutsya odnim edinstvennym administratorom, i ne imeyushchih nikakogo IP obshcheniya s vneshnim mirom. Format host fajlov byl uzhe opisan v glave 6. S drugoj storony, Vy mozhete ispol'zovat' BIND - Berkeley Internet Name Domain Service - dlya perevoda hostov v IP adresa. Konfiguraciya BIND mozhet byt' nastoyashchej horeej, no esli tol'ko vy sdelaete eto, to izmeneniya v setevoj topologii mogut byt' legko izmeny. Na Linux, kak i na mnogih drugih Unix-podobnyh cistemah, obsluzhivanie obespechivaetsya cherez programmu, nazyvaemuyu named. Pri zapuske, eta programma zagruzhaet mnozhestvo osnovnyh fajlov v ih sobstvennyj kesh, i zhdet zapros ot otdalennyh ili lokal'nyh pol'zovatel'skih processov. Imeyushchiesya sposoby trebuyut, chtoby Vy obyazatel'no vveli imya servera dlya kazhdogo hosta. |ta glava delaet nemnogo bol'she, chem prosto daet priblizitel'nyj eskiz togo kak rabotaet server. Esli Vy planiruete ispol'zovat' BIND v operacionnoj srede s bolee chem malymi LAN i vozmozhno Internet uplink, to Vy dolzhny priobresti horoshuyu knigu po BIND, naprimer L'yuisa Kriketa "DNS and BIND" (sm. [GETST "liu-dns"]). Vozmozhno Vy zahotite proverit' primechaniya, oni soderzhatsya v BIND istochnikah. Tam takzhe imeyutsya voprosy newsgroup dlya DNS nazyvaemye comp.protocols.tcp-ip.domains. 7.1 Biblioteka reshayushchih ustrojstv. Kogda my govorim o " reshayushchem ustrojstve ", to my ne podruzamevaem nikakogo special'nogo primeneniya, poetomu dostatochno obratitsya k biblioteke reshayushchih ustrojstv - sisteme funkcij, kotoraya mozhet byt' najdena v standarnoj biblioteke C. Central'nye programmy yavlyayutsya gethostbyname(2) i gethostbyaddr(2), kotorye ishchut vse IP adresa prinadlezhashchie hostu, i naoborot. Oni mogut byt' skonfigurirovany pri prostom prosmotre informacii v hoste, pri zaprose ryada serverov, ili pri ispol'zovanii baz dannyh hosta NIS(a) (Network Information Service). Drugoe primenenie, podobno smail, mozhet vklyuchat' razlichnye drajvery dlya - 106 - lyubogo iz vysheperechislennogo, i nuzhdaetsya v osoboj ostorozhnosti. 7.1.1 Fajl konfiguracii hosta. Central'nyj fajl, kotoryj upravlyaet vashej ustanovkoj - host.conf. On soobshchaet reshayushchemu ustrojstvu kakoj servis ispol'zovat', i v kakom poryadke. Opcii v host.conf dolzhny byt' na otdel'nyh strokah. Oblasti mogut byt' otdeleny pustym prostranstvom (spaces ili tabs). Znak (#) vvodit stroku, kotoraya prostiraetsya vplot' do sleduyushchej stroki. Dostupny sleduyushchie opcii: Order: |ta opciya opredelyaet poryadok v kotorom pereberayutsya vse dostupnye uslugi. Valid opciya - svyazyvaet zaprosa servera i poisk hostov v /etc/hosts, i nis dlya NIS poiskov. Lyubaya ili vse iz nih mogut byt' opredeleny. Poryadok, v kotorym oni poyavlyayutsya na strokah opredelyaet poryadok v kotorom budut perebirat'sya opredelennye uslugi. Multi: Ona mozhet ispol'zovat'sya kak opciya. |ta opciya opredelyaet, razresheno li hostu v /etc/hosts imet' neskol'ko IP adresov, kotorye obychno pazyvayutsya "multi - homed". |tot flag ne dejstvuet na DNS ili NIS zaprosy. Nospoof: Kak uzhe bylo ob®yasneno v predydushchej glave, DNS pozvolyaet Vam najti imya hosta prinadlezhashchego IP adresu, ispol'zuya inaddr.arpa oblast'. Popytki serverov podderzhat' lozhnoe imya hosta nazyvaetsya "spoofing".CHtoby obezopasit' sebya ot etogo, reshayushchee ustrojstvo mozhet byt' skonfigurirovano na proverku, yavlyaetsya li nastoyashchij IP adres fakticheski svyazannym s poluchennym imenem hosta. Esli net, to etomu imeni budet otkazano i budet vozvrashchen kod oshibki. |to povedenie zavisit ot togo vklyuchen li nospoof. Alert: |ta opciya mozhet ispol'zovat'sya kak argument. Esli eta opciya vklyuchena, to lyubye popytki spoof (sm. vyshe) budut - 107 - prichinami togo, chtoby reshayushchee ustrojstvo otpravilo by soobshchenie k syslog oborudovaniyu. Trim: |ta opciya beret imya oblasti kak argument, kotoroe budet udaleno iz imeni hosta pered poiskom. |to polezno dlya informacionnyh elementov, gde Vy mogli by tol'ko zhelat' tochno opredelit' imya hosta s lokal'noj oblast'yu. Pri poiski hosta s imenem lokal'noj oblasti, budet udaleno imya etoj oblasti, takim obrazom legko osushchestvit' poisk v /etc/hosts. Opciya Trim pozvolyaet rassmatrivat' Vash host lokal'nym dlya neskol'kih oblastej. Tipovoj fajl dlya vlager opisyvaetsya nizhe: # /etc/host.conf # We have named running, but no NIS (yet) order bind hosts # Allow multiple addrs multi on # Guard against spoof attempts nospoof on # Trim local dooain"(not really necessary). trim vbrew.com. 7.1.2 Parametry sredy okruzheniya reshayushchego ustrojstva. Ustanovki iz fajla host.conf mogut byt' otmeneny, ispol'zuya ryad parametrov sredy okruzheniya. Oni sleduyushchie: RESOLV HOST CONF. On opredelyaet fajl, kotoryj budet schitan vmesto /etc/host.conf. RESOLV SERV ORDER Otmenyaet order opciyu, dannuyu v host.conf. Uslugi, dannye kak hosty, bind, i nis, otdelenny probelom, zapyatoj, dvoetochiem, ili tochkoj s zapyatoj. - 108 - RESOLV SPOOF CHECK Opredelyaet kriterii, prinimaemye protiv spoofing. |ta ustanovka polnost'yu otklyuchaetsya opciej off. Znacheniya preduprezhdayut spoof proverku , no vklyuchayut i vyklyuchayut logging, sootvetsvenno. Znachenie * vklyuchaet spoof proverku, no ostavlyaet logging kak opredeleno v host.conf. RESOLV MULTI |ta sreda okruzheniya ( mozhet byt' vkl. ili vykl.), mozhet byt' ispol'zovana dlya otklyucheniya multi opcii iz tt host.conf. RESOLV OVERRIDE TRIM DOMAINS |ta sreda okruzheniya opredelyaet spisok trim oblasti, kotoryj otklyuchaet te, chto dany v host.conf. RESOLV ADD TRIM DOMAINS |ta sreda okruzheniya opredelyaet spisok trim oblasti, kotoryj dobavlyaetsya v host.conf. 7.1.3 Konfigurirovanie servera poiska --- resolv.conf Pri konfigurirovanii biblioteki reshayushchego ustrojstva, dlya togo chtoby ispol'zovat' BIND obsluzhivanie dlya poiska hostov, vy obyazatel'no dolzhny soobshchit', kakoe imya servera vy ispol'zuete. Sushchestvuet otdel'nyj fajl, prednaznachennyj special'no dlya etogo, nazyvaemyj resolv.conf. Esli etot fajl ne sushchestvuet ili pust, to reshayushchee ustrojstvo primet imya servera, opredelennogo dlya vashego lokal'nogo hosta.Esli Vy zapuskaete server na Vashem lokal'nom hoste, to Vy dolzhny ustanovit' eto imya otdel'no, kak eto sdelat', budet ob®yasneno pozzhe v sleduyushchem razdele. Esli v lokal'poj ueti est' vozmozhnost' ispol'zovat' sushchestvuyushchee imya servera, to etomu dolzhno otdavat'sya predpochtenie. Samaya vazhnaya opciya v resolv.conf - nameserver, kotoraya daet IP adres ispol'zuemogo servera. Esli Vy opredelite neskol'ko imen serverov ispol'zuya nameserver opciyu neskol'ko raz, to oni budut proveryat'sya v dannom poryadke. Poetomu Vy dolzhny pomestit' naibolee nadezhnyj server pervym. Postoyanno, mogut podderzhivat'sya ne bolee treh serverov. Esli opciya nameserver ne dana, to reshayushchee ustrojstvo popytaetsya - 109 - soedinit'sya s serverom na lokal'nom hoste. Dve drugih opcii, domain i search imeyut delo s zadannymi po umolchaniyu oblastyami, kotorye berut'sya iz imeni hosta, esli BIND ne mozhet reshit' eto s pervogo zaprosa. Opciya search opredelyaet spisok nazvanij oblastej, kotorye neobhodimo proverit'. Punkty spiska otdeleny probelom ili tabulyaciej. Esli opciya search ne dana, to zadannyj po umolchaniyu spisok poiska sozdaetsya iz lokal'nogo imeni oblasti, ispol'zuya samo nazvanie oblasti neposredstvenno, plyus vse roditel'skie oblasti vplot' do root. Lokal'noe nazvanie oblasti mozhet byt' dano pri ispol'zovanii operatora oblasti; esli ni odin iz nih ne dan, to reshayushchee ustrojstvo poluchit ego cherez getdomainname(2) sistemnyj vyzov. Esli eto uzh slishkom dlya vas, rassmotrite primer resolv.conf fajla dlya Virtual Brewery: # /etc/resolv.conf # Our domain domain vbrew.com # # We use vl