NET4.pdf

(219 KB) Pobierz
106293717 UNPDF
ZaawansowanyroutingIPwLinuxie
PawełKrawczyk
kravietz@echelon.pl
30czerwca2002
Spistre±ci
1Wst¦p 2
1.1Oczymjesttenartykuł?......................... 2
1.2Nowo±ciwj¡drze............................. 2
1.3Nowo±ciwiproute2............................ 2
1.4Konfiguracjaadresówinterfejsów.................... 3
2Konfiguracjaparametrówinterfejsu 4
3Komunikacjahostówwobr¦biesiecilokalnej 5
3.1Wprowadzenie............................... 5
3.2Obsługatablicys¡siadów......................... 5
4Ruting 6
4.1Wst¦p.................................... 6
4.2Obsługatablicroutingu.......................... 7
5Rutingrozszerzony 8
5.1Wst¦p................................... 8
5.2Rutingrozszerzony............................ 8
5.3Translacjaadresów............................ 9
6Optymalizacja 10
6.1Filtrowaniezapomoc¡tablicyroutingu................. 10
6.2Optymalizacjafiltrapakietów...................... 11
6.3Optymalizacjatablicyroutingu..................... 11
1
106293717.006.png
7Dodatki 11
7.1Zasi¦giadresów.............................. 11
7.2Wykorzystanietras unreachable .................... 12
7.3Znakowaniepakietów........................... 13
7.4Weryfikacjaadresów........................... 13
7.5Ograniczeniapr¦dko±ciodpowiedziICMP................ 14
1Wst¦p
1.1Oczymjesttenartykuł?
Teksttenomawiawi¦kszo±¢nowo±cidotycz¡cychobsługisieciIP,którepojawiłysi¦w
j¡drzeLinuxa2.2.Niejestto vademecum dlaosóbpocz¡tkuj¡cychaniHOWTO.Jego
zadaniemjestzapoznaniezu»ytecznymifunkcjamiosóbzajmuj¡cychsi¦ruterami
działaj¡cyminaLinuxieiposiadaj¡cychpodstawowepoj¦cieodziałaniuprotokołu
IP.
1.2Nowo±ciwj¡drze
Pocz¡tkiwielkichzmianwLinuxie,dotycz¡cychprotokołuIP,tokoniec1996roku,
kiedypojawiłasi¦wersja2.1.17.Zawierałaonapierwsz¡wersj¦przepisanegoprak-
tycznieodnowakoduobsługuj¡cegoIP.Nowo±ci¡byłazgodno±¢zRFC1812[12]
iroutingrozszerzony( policyrouting ).Dokonfiguracjinowychfunkcjisłu»yłpro-
gram iproute ,potempojawiłsi¦pakiet iproute2 ,zawieraj¡cyprogram ip .Kolejne
wersjej¡drawprowadziłytak»emechanizmysterowaniaprzepływemdanych( trac
control ),obsługiwanezapomoc¡oddzielnegoprogramu tc iopisanewosobnymarty-
kule 1 .Rozwijanietejcz¦±cij¡draLinuxaorazpakietu iproute2 toprzedewszystkim
zasługaAleksiejaN.Ku¹niecowa ¡kuznet@ms2.inr.ac.ru¿ zmoskiewskiegoInstytutu
FizykiJ¡drowej.
1.3Nowo±ciwiproute2
Obsługa iproute2 ró»nisi¦zasadniczooddotychczasstosowanychnarz¦dzi– ifconfig
i route .WprogramachtychadresIPorazmaskapodsiecibyłypodawaneoddzielnie,
przyczymtaostaniabyłatradycyjniezapisywanawpostaci aaa.bbb.ccc.ddd .Program
ip przyjmujenatomiastmask¦podsieciwformacieskróconym aaa.bbb.ccc.ddd/nn ,
gdzie nn jestktór¡okre±lasi¦jakoliczb¦bitówjedynkowychwmasce.Przykładowo,
maskasieciCzapisywanatradycyjniejako255.255.255.0ma24bityjedynkowe,pod-
sieci255.255.255.240–28itp.
1 PawełKrawczyk,„SterowanieprzepływemdanychwLinuxie2.2”
2
106293717.007.png
 
Wi¡»esi¦ztymtak»emo»liwo±¢u»ywaniaskróconychpostaciadresówIP,gdzie
brakujacebajtys¡zast¦powanezerami.Przykładowo:
NotacjaskróconaNotacjapełna
127/8 127.0.0.0/8
192.168/16 192.168.0.0/16
0/0 0.0.0.0/0
Nale»ypodkre±li¢,»ejesttonotacjazgodnazfilozofi¡CIDR([2],[3])orazIPv6i
zalecanaprzezRFC1812([12]),gdzietradycyjn¡konstrukcj¦adresuIP(adressieci,
adrespodsieci,adreshosta)zast¦pujesi¦przezadresprefiksuiadreshosta.Wkonse-
kwencjiwy»ejopisananotacjamaskipodsieciodpowiadapoprostudługo±ciprefiksu
wbitach.
1.4Konfiguracjaadresówinterfejsów
Ka»dyinterfejsmo»eposiada¢wi¦cejni»jedenadresIP.Dodatkoweadresys¡po
prostuadresami,ró»ni¡cymisi¦odpodstawowegoadresutylkoflag¡ secondary ,a
niesamodzielnymipseudo ¯ intefejsami,jaktobyłowj¡drach2.0iwcze±niejszych.
Doustawianiaadresuintefejsusłu»ypolecenie ipaddr :
ipaddraddADRESdevINTERFEJS
[(peer|remote)P-T-P]
[(broadcast|brd)BROADCAST]
[anycastANYCAST][labelNAZWA]
[scopeZASIG]
Parametr ADRES jestadresemdodawanymdointerfejsu.Nale»yzaznaczy¢,»ew
odró»nieniuodprogramu ifconfig adresyIPv4podajesi¦razemzmask¡podsieci
jako aaa.bbb.ccc.ddd/nn .
AdresyIPv6podajesi¦standardowojako aa:bb:...:zz/nnn ,gdzie /nnn todługo±¢
prefiksu(maskipodsieci).
Wprzypadkuintefejsów point-to-point (naprzykładPPP)parametr ADRES okre-
±laadreslokalnyintefejsu,natomiastadresdrugiegoko«canale»ypoda¢poparame-
trze peer (akceptowanejestrównie»słowo remote ).
Doustawianiaadresurozgłoszeniowego( broadcast )słu»yparametr broadcast
(lubkrócej brd ).Wnowychwersjach iproute parametr + spowodujeadresuobliczo-
negoautomatycznienapodstawiedługo±ciprefiksu.
Adres anycast stosowanywIPv6ustawiasieparametrem anycast . 2
3
106293717.008.png 106293717.001.png 106293717.002.png 106293717.003.png
Zasi¦gadresu( scope )okre±lasi¦parametrem scope ,którymo»eby¢jednymze
standardowychzasi¦gów,albonazw¡(lubnumerem)zasi¦guzdefiniowanegoprzez
u»ytkownika. 3
Interfejsowimo»nanadawa¢nazwyzapomoc¡parametru label ,cojestprzydatne
wprzypadkudodawaniakolejnychadresówdointerfejsu( eth0:1,eth0:2,... ).Wten
sposóbdododatkowychadresówmo»nasi¦tak»eodwoływa¢zapomoc¡starszych
wersjipolecenia ifconfig .
2Konfiguracjaparametrówinterfejsu
Dodanieadresudointerfejsuniepowodujejegoautomatycznejaktywacji(flaga UP )
Jesttozachowanieodmienneodznanegozj¡der2.0Dokonfigurowaniatego–iinnych
–parametrówintefejsusłu»ypolecenie iplink :
iplinksetINTERFEJS[(up|down)]
[arp(on|off)]
[multicast(on|off)]
[(txqueuelen|txqlen)PKT]
[nameNAZWA]
Flagi up i down powoduj¡odpowiednioaktywacj¦lubdeaktywacj¦interfejsu.
Wmomencieaktywacjiinterfejsukerneldodajedotablicyroutingutrasykieru-
j¡cenateninterfejspakietydosiecidoniegoprzył¡czonej.Jestonaumieszczana
wspecjalnejtablicy local .Wartozauwa»y¢,»ewj¡drach2.0iwcze±niejszych
tak¡tras¦trzebabyłododa¢ explicite zapomoc¡polecenie route ,obecnienie
jesttoju»konieczne.
Opcja arp wł¡czalubwył¡czaprotokółARPdladanegointerfejsu.Oznaczato,
»einterfejsnieb¦dzieodpowiadałnapytaniaARP,nawetje±lipytaniedotyczy
jegoadresuIP. 4
Opcja multicast wł¡czalubwył¡czaobsług¦pakietów multicast nadanym
interfejsie.
Parametr txqueulen (akceptowanyjestskrót txqlen )okre±lawielko±¢kolejki
wyj±ciowejdanegointerfejsuwpakietach.Wielko±¢tajestustawianaprzezsys-
temautomatycznienapodstawiedomy±lnejwarto±ci–innejdlaka»degorodzaju
interfejsu–azale»nejodjegoprzepustowo±ci.Zregułyustawieniedomy±lnejest
3 Wi¦cejnatematzasi¦gówmo»naprzeczyta¢wDodatkuB.
4 Flag¦ NOARP maj¡ustawion¡automatycznienaprzykładintefejsytypu point-to-point (PPP,
SLIP),interfejs dummy itp.
4
106293717.004.png
wystarczaj¡ce,jegozmianamo»eby¢czasemkorzystnanaprzykładdopopra-
wieniawspółdzieleniawolnegoł¡czaPPP. 5
3Komunikacjahostówwobr¦biesiecilokalnej
3.1Wprowadzenie
WIPv4informacjaoadresiewwarstwieł¡cza( linklayeraddress )interfejsuposiada-
j¡cegodanyadresIPjestuzyskiwanazapomoc¡protokołuARP( AddressResolution
Protocol ,RFC826[1]),korzystaj¡cegozrozgłaszaniawwarstwieł¡czairó»ni¡cego
si¦implementacj¡dlaka»degorodzajusiecifizycznej(ARPdlaEtherneturó»nisi¦
odARPdlaATM).WIPv6słu»ydotegoprotokółwyszukiwaniahostóws¡siaduj¡-
cych( NeighborDiscovery ),opartyopakiety multicast idziałaj¡cynadwarstw¡IP.
Dokładnyjegoopis–orazterminologi¦–mo»naznale¹¢wRFC2461[6].
Wzwi¡zkuztym,kerneltablicas¡siednichhostów,przechowywanaprzezkernel,
jestniezale»naodprotokołuizawierainformacjeuzyskanealbozapomoc¡ARPalbo
zapomoc¡ND.Słu»yonatak»ejakobazadanychdowprowadzonegojakostandard
przezIPv6,aledziałaj¡cegotak»edlaIPv4,mechanizmuweryfikacjiosi¡galno±ciho-
sta( NeighborUnreachabilityDiscovery ).
Tablicas¡siednichhostówzawieranast¦puj¡ceinformacje:adresIPhosta,adres
hostawwarstwieł¡cza( linklayeraddress )orazaktualnystanrekordu.Dodatkowos¡
wniejprzechowywanetakieinformacjejakilo±¢odwoła«dodanegorekorduorazczas
ostatniegoodwołania.Głównestanyrekordówto: incomplete (»adenhostnieodpo-
wiedziałnapytanieodanyadres), reachable (hostjestosi¡galny)oraz stale (hostbył
osi¡galny,leczrekordjestprzeterminowany).Ponadtoistniej¡dwastanyspecjalne:
noarp (rekordniejestuaktualnianyprzezARPaniND)oraz permanent (rekord
dodanyr¦cznieprzezadministatora).Obanies¡nigdyzmienianeprzezkernel,nie
jestwstosunkudonichu»ywanyARP,NDaniNUD,arekordywstanie permanent
nies¡usuwanepodczasokresowegoczyszczeniatablicy( garbagecollecting ).
3.2Obsługatablicys¡siadów
Domanipulacjitablic¡zawieraj¡c¡informacjeoadresachfizycznychhostówiodpo-
wiadaj¡cychimadresachIPsłu»ypolecenie ipneigh :
ipneigh(add|del)
(ADRES[lladdrLLADDR]|proxyPROXY)
[nud(permanent|noarp|stale|reachable)]
devINTERFEJS
5 DlaintefejsówPPwielko±ci¡domy±ln¡jest10pakietów.AlanCoxzalecawtakimwypadku
zmniejszenietejwarto±cido3.
5
106293717.005.png
Zgłoś jeśli naruszono regulamin