dummynet.pdf
(
127 KB
)
Pobierz
425168968 UNPDF
FreeBSD/DUMMYNET
JanSzumiec
12grudnia2002
Dummynettowspaniałenarz¦dziepozwalaj¡cenam,nakształtowanieruchuwsystemieFreeBSD.Je±li
zajmujeszsi¦badaniamiwdziedziniesiecikomputerowych,napewnotenpakietprzypadniecidogustu.Równie»,
je±liposiadaszniedu»¡sie¢ichceszabyka»dyzu»ywałtylesamopasma,napewnote»tenpakietb¦dziepomocny.
0.1Instalacja
Abyzainstalowa¢
dummynet
nale»ystosownieskonfigurowa¢j¡dro.Zazwyczajwplikukonfiguracyjnymj¡dra
wystarczydoda¢tetrzyopcje:
optionsIPFIREWALL
optionsIPFIREWALL_DEFAULT_TO_ACCEPT
optionsDUMMYNET
Drugaopcjaniejestkonieczna,alegdyposiadamyinnypakiet,któryodpowiadazafirewall(naprzykład
ipfilter
),toopcjatajestpomocna,poniewa»domy±lnienieblokujenam»adnychpakietów.Nicniestoina
przeszkodzie,abyblokowaniempakietówzajmowałsi¦
ipfilter
,aprofilowaniemruchu,
ipfw/dummynet
.
Abysystempostarcieautomatycznieładowałregułki,nale»ydoda¢poni»sz¡linijk¦do
/etc/rc.conf
.Nale»y
pami¦ta¢,»eplik
/etc/ipfw.rules
ró»nisi¦niecoskładni¡,odskładnipolece«u»ytychwtymdokumencie,
mianowicie,nieposiadapolecenia
ipfw
napocz¡tkuka»dejlinijki.
firewall_enable="YES"
firewall_rules="/etc/ipfw.rules"
0.2Elementysteruj¡ceruchem
Naelementysteruj¡ceruchemskładaj¡si¦tzw.
rury
i
kolejki
,lubje±likto±woli,
potoki
.Ka»dyztych
elementówskładowychmo»eby¢skonfigurowanytak,abyautomatyczniewrzucałdotakiejkolejkilubrury
ruch,któryzostaniemuprzydzielony.Ponadto,mo»nawprowadzi¢dodatkowyelementlosowegowyborudanej
rury/kolejki.Abyzacz¡¢profilowa¢ruch,nale»ynajpierwdoda¢kolejk¦lubrur¦,apotemj¡skonfigurowa¢.
Wszystkiegodokonujemykomend¡
ipfw
.
0.3Rury
Rura,tokanałwydzielonegoruchu,którymazgóryzadan¡przepustowo±¢(
bw
),długo±¢kolejki(
queue
),
opó¹nienie(
delay
)orazlosow¡utrat¦pakietów(
plr
).Abydoda¢iskonfigurowa¢przykładow¡rur¦,wydajemy
polecenie:
ipfwaddpipe1ipfromanytoany
ipfwpipe1configbw1Mbit/splr0.9delay100ms
1
Rura,któr¡skonfigurowali±my,maszeroko±¢1megabita,losow¡utrat¦pakietów90%,orazopó¹nienie100
milisekund
1
.Przydatno±¢takiejruryjestraczejw¡tpliwa,chyba»esymulujemyjak¡±wyj¡tkowooporn¡sie¢.
Abyusun¡¢t¡rur¦,nale»ywyda¢polecenie:
ipfwpipe1delete
lub
ipfwflush
Drugakomendaczy±ciwszystkiereguły
ipfw
.Wracaj¡cdonaszejrury:czasamizachodzipotrzebazasymu-
lowaniaró»nychwarunkówtransmisjinadrodzeod-ido-hosta.Sytuacj¦tak¡mo»nałatwozaimplementowa¢
stosuj¡cnast¦puj¡cepoleceniadefiniuj¡cedwierury,jedn¡dlaruchuprzychodz¡cegoijedn¡dlawychodz¡cego:
ipfwaddpipe1ipfromanyto10.0.0.1in
ipfwaddpipe2ipfromanyto10.0.0.1out
ipfwpipe1configbw640Kbit/s
ipfwpipe2configbw128Kbit/s
Wtymwypadkusłowokluczowe
in
aplikujesi¦doadresu
10.0.0.1
,takwi¦c,parametr
bw640Kbit/s
aplikujesi¦doruchuwchodz¡cegodotegoadresu.Drugaruraobsługujeruchwychodz¡cy.Je±limamypotrzeb¦
zasymulowa¢wielo±cie»kowo±¢,wystarczyskorzysta¢zesłowakluczowego
prob
.Przykładponi»ej:
ipfwaddprob0.2pipe1ipfromanytoany
ipfwaddprob0.5pipe2ipfromanytoany
ipfwpipe1configdelay10ms
ipfwpipe2configdelay200ms
Wtymwypadku,pierwszarurajestwybieranaw20%przypadków,podczasgdydruga,w
0.5
×
0.8
czyli
40%przypadków.Rurylubkolejkimo»narównie»przypisywa¢poprotokolelubpoporcie.Robimytow
nast¦puj¡cysposób:
ipfwaddpipe1tcpfromanytoany80
ipfwaddpipe2udpfromanytoany53
ipfwaddpipe3icmpfromanytoany
ipfwpipe1configbw1Mbit/s
ipfwpipe2configbw50Kbit/s
ipfwpipe3configbw50Kbit/s
Powy»szyzestawregułpozwalanamnazagwarantowanieobustronnegopasmawprotokoleTCPnaporcie
80(www)oszeroko±cijednegomegabita,orazpo50kilobitównaDNS(UDP,53),orazICMP(ping,tracer-
oute,wiadomo±ciobł¦dachniedost¦pno±ci,etc.).Przedostatnimsłowemkluczowym,którechciałbymomówi¢
jest
queue
.Domy±lnawarto±¢tegoparametruto50.Parametrtenokre±laporcj¦danych(wpakietachlub
kilobajtach),któremaj¡zosta¢urzymanewkolejcedoprzetworzeniawdanejrurze.Je±litailo±¢zostanie
przekroczona,pakietzostajeodrzucony.Matoznaczenieprzypoł¡czeniachnaktórychpasmojestbardzo
w¡skie.Gdynatakimpoł¡czeniuustawimytenparametrprzesadniewysoko,b¦dziemysi¦musieliliczy¢z
du»ymopó¹nieniem(systemmusiprzetworzy¢natakimw¡skimł¡czuwszystkiepakietyoczekuj¡cewkole-
jce).Ustawianietegoparametruzbytnisko,b¦dziemiałoswojekonsekwencjewpostaciutraconychpakietów
(szczególnie,gdyzdanymhostemwymian¦informacjiprowadzikilkainnychhostów).
Ostatniparametrto
mask
.Pozwalaonnamnatworzeniekilkuidentycznychrur,zktórychka»dab¦dzie
obsługiwa¢ruchtegosamegorodzaju.Opcjatajestszczególnieu»yteczna,gdychcemykilkukomputerom
przydzieli¢takisamruchwsieciLAN.Tworzyonadynamiczniekilkaruroidentycznychparametrach.
1
opó¹nienienarzucaneprzezdummynet,nale»ypowi¦kszy¢ojakiekolwiekopó¹nieniepropagacji,abyotrzyma¢efektywne
opó¹nieniedladwóchmaszynpracuj¡cychwsieci.Cowi¦cej,nale»ywzi¡¢poduwag¦podwójn¡propagacj¦,poniewa»wtym
konkretnymwypadku,zarównoruchwchodz¡cyjakiwychodz¡cyjestprzepuszczanyprzezt¡sam¡reguł¦.
2
ipfwaddpipe1ipfromanyto10.0.0.0/24
ipfwpipe1configbw56Kbit/squeue10maskdst-ip0x000000ff
Powy»szakonfiguracjaograniczaruchwobiestronydoka»degokomputerado56kilobitów,zmniejsza
kolejk¦do10pakietów.Słowokluczowe
dst-ip
pokazujenamktóracz¦±¢adresuIPmaby¢„zamaskowana”
abywydzieli¢ruchynale»¡cedoinnychdynamicznietworzonychrur.Ruchmo»nadzieli¢wedługadresu
¹ródłowegoidocelowego,¹ródłowegoidocelowegoportu,orazprotokołu.Składniawygl¡danast¦puj¡co:
ipfwaddpipe1ipfromanyto10.0.0.0/24
ipfwpipe1configbw100Kbit/sprotoPROTOsrc-ip
RÓDŁOIPdst-ipCELIPsrc-portRÓDŁOPORTdst-portCELPORT
0.4Kolejki
Kolejkatoinnyelementsteruj¡cyruchem.Wznacznymuproszczeniu,kolejkapozwalanamnaprzydzielenie
odpowiedniejszeroko±cipasmau»ytkownikowi,stosowniedojegopotrzeb.Zazwyczajkolejkajestpodł¡czana
dorurywnast¦puj¡cysposób:
ipfwaddpipe2ipfromanytoany
ipfwaddqueue1ipfrom10.0.0.2to10.0.0.1
ipfwqueue1configweight5pipe2
ipfwpipe2configbw300Kbit/s
Takzdefiniowanyzestawreguł,okre±lakolejk¦wewn¡trzrurynumer2,któraposiadawag¦5(Imwy»sza
waga,tymkolejkamawy»szypriorytet).Kolejkisłu»¡zazwyczajdodynamicznegodzieleniapasmapomi¦dzy
kilkapoł¡cze«.Parametrykolejekto
pipe
czylirura,doktórejpodpi¦tajestkolejka,
weight
,czyli„priorytet”
obsługiruchu,
queue
,czylirozmiarkolejki,
plr
,czylilosowautratapakietówwkolejce,oraz
mask
,czyliopcja
słu»¡cadodynamicznegodefiniowaniakolejekwzale»no±ciodklasyfikacjiruchu.
Jakdziałaj¡„wagi”kolejek?Abyłatwiejzilustrowa¢tozagadnienie,posłu»¦si¦przykładem.Załó»my,»ew
siecimamytrzyhosty,zczegona10.0.0.1zainstalowanyjestdummynetijegokonfiguracjawygl¡danast¦puj¡co:
ipfwaddpipe1ipfromanytoany
ipfwaddqueue1ipfrom10.0.0.2to10.0.0.1
ipfwaddqueue2ipfrom10.0.0.3to10.0.0.1
ipfwqueue1configweight1pipe1
ipfwqueue1configweight99pipe1
ipfwpipe1configbw1Mbit/s
Przydrobnejzmianieopó¹nie«orazdługo±cikolejki,osi¡gprzesyłuprzykolejcepierwszejb¦dziesi¦wahał
wokolicach50kbit,podczasgdywprzypadkudrugiejkolejki,b¦dzietookoło950kbit.Kolejkioró»nych
wagachprzepuszczaj¡danewró»nychporcjach,tj.naka»dypakietprzesłanykolejk¡pierwsz¡mo»eprzypada¢
30pakietówwysyłanychkolejk¡drug¡.
Abydynamiczniepodzieli¢danenampasmoprzezliczb¦u»ytkowników,nale»yskorzysta¢zopcji
mask
.
ipfwaddqueue1allfromanyto10.0.0.0/24
ipfwqueue1configweight5pipe2buckets253maskdst-ip0x000000ff
Takakonfiguracjadynamiczniestworzynamtylekolejekilejestró»nych,aktywnychadresówIPwtej
podsieci.Opcja
buckets
mówiiletakichkolejekmo»eby¢maksymalniestworzonych.Nienale»yprzesadza¢
przypodawaniutejwielko±ci,poniewa»zbytdu»awarto±¢mo»eniepotrzebniezapełni¢buforysieciowe.
3
0.5Ciekaweprzykładyzastosowa«
Scenariusz1
Symulacjapoł¡czeniasatelitarnego.
ipfwaddpipe1allfromanytoanyin
ipfwaddpipe2allfromanytoanyout
ipfwpipe1configdelay440msbw64Kbit/squeue10
ipfwpipe2configdelay440msbw1Mbit/squeue5
Przywysokichopó¹nieniachb¦dziemyobserwowa¢stopniowe„przyspieszanie”poł¡czenia
2
.Zmianawielko±ci
kolejkiniepowinnamie¢znaczenia,chyba»emamydoczynieniaztransmisj¡dokilkukomputerów.Jestto
uwarunkowanetym,jakskonstruowanyjestprotokółTCP:naka»dypakietwysłany,musizosta¢odebrany
pakietpotwierdzaj¡cyodbiór.
Scenariusz2
Bardzozaj¦tyserwerWWW.
ipfwaddqueue1tcpfromanyto10.0.0.180
ipfwqueue1configweight5pipe1masksrc-ip0xffffffff
Przytakiejkonfiguracji,ka»dynumerIPmawydzieloneidentycznepasmodoserwerawww.Zwró¢uwag¦
namask¦
src-ip
.Zwró¢myte»uwag¦nato,»echc¡custali¢numerportumusimyokre±li¢protokółjakoTCP.
ipfwaddqueue1tcpfrom10.1.0.0/8to10.0.0.180
ipfwaddqueue2tcpfromanyto10.0.0.180
ipfwqueue1configweight90pipe1masksrc-ip0x00ffffff
ipfwqueue2configweight5pipe1masksrc-ip0xffffffff
Przytakiejkonfiguracji,serwerWWWb¦dzieobsługiwałpewn¡grup¦u»ytkownikówzwy»szympriory-
tetemni»reszt¦.Ka»demuklientowizostanieprzydzielonetosamopasmo.
ipfwaddpipe1tcpfrom10.1.0.0/8to10.0.0.180
ipfwaddpipe2tcpfronanyto10.0.0.180
ipfwqueue1configweight5pipe1masksrc-ip0x00ffffff
ipfwqueue2configweight5pipe2masksrc-ip0xffffffff
ipfwpipe1config7Mbit/s
ipfwpipe2config3Mbit/s
Przypowy»szejkonfiguracji,ł¡czenajpierwjestpodzielonedwomarurami,odpowiedniopo7i3Megabity,
apotemdzielonepomi¦dzyklientówwposzczególnychrurachtak,abyklientnale»¡cydoka»dejzrurdzielił
ruchzinnymiklientamiztejsamejrurydostaj¡crówn¡ilo±¢pasma.
Scenariusz3
Sie¢osiedlowa.
ipfwaddqueue50tcpfrom10.0.0.0/24toany80
ipfwaddqueue60tcpfrom10.0.0.0/24toany22,23,25
ipfwaddqueue70tcpfrom10.0.0.0/24toany110
ipfwaddqueue80tcpfrom10.0.0.0/24toany
ipfwaddqueue90allfrom10.0.0.0/24toany
ipfwqueueconfig50weight5pipe50buckets255masksrc-ip0x000000ff
2
Okazujesi¦,»eopo¹nieniacałkowiteponi»ej19milisekund,niemaj¡znacznegowpływunatransmisj¦danychnapełnoduplek-
sowymethernecie,poprotokoleTCP.Od20milisekund,opó¹nieniazaczynaj¡mie¢wpływnatransmisj¦,apr¦dko±¢transmisji(w
kilobajtachnasekund¦)mo»nauzyka¢znast¦puj¡cegowzoru:transfer
TCP
=
32000
delay
ms
4
ipfwqueueconfig60weight5pipe60buckets255masksrc-ip0x000000ff
ipfwqueueconfig70weight5pipe70buckets255masksrc-ip0x000000ff
ipfwqueueconfig80weight5pipe80buckets255masksrc-ip0x000000ff
ipfwpipe50configbw1Mbit/s
ipfwpipe60configbw128Kbit/s
ipfwpipe70configbw128Kbit/s
ipfwpipe80configbw1Mbit/sdelay30msqueue10
ipfwpipe90configbw384Kbit/s
Pierwszepi¦¢linijek,dzielinamruchwychodz¡cynapi¦¢kategorii;przedostatniatoruchp2p
3
,ostatniato
ruchUDP/ICMP.Kolejneczterylinijkiokre±laj¡namzasadydynamicznegotworzeniakolejekruchu,iostatnie
pi¦¢linijekokre±lanammaksymalneszeroko±cipasma,którechcemyzaalokowa¢naposzczególneklasyruchu.
0.6Nazako«czenie
Mamnadziej¦,»etendokumentpomógłcizrozumie¢zasad¦działaniapakietuDUMMYNETpodsystemem
FreeBSD.Jednocze±nie,chciałbympodkre±li¢,»edokumenttenzostałprzygotowanywoparciuodo±wiad-
czeniawłasneautoraimo»ezawiera¢bł¦dy.Autornieodpowiadazakonsekwencjewynikłezu»ytkowaniatego
dokumentu.
Je»elimaszjakie±sugestielubchceszmniepoinformowa¢obł¦dzie,zawszejestemotwartynasłowakonstruk-
tywnejkrytyki.Móje-mailto
jps@zero.iti.pk.edu.pl
.
Je»elinadalczujeszniedosytinformacji,przeczytajtendokument:
http://info.iet.unipi.it/
luigi/ipdummynet/
c2002JanSzumiec.Dokumenttenmo»eby¢rozprowadzanyipowielanypodwarunkiem,»ejegotre±¢nieulegnie
modyfikacji,oraz»ewiadomo±¢oautorzepozostaniewdokumencie.Najnowszawersjazawszedost¦pnaz
http://ftyczka.org/dummynet.pdf
3
naprzykładKazaalubGnutella
5
Plik z chomika:
djrapidpl
Inne pliki z tego folderu:
101 zabezpieczeń przed atakami w sieci komputerowej 2005.pdf
(132961 KB)
3D Studio MAX Matrix - Jak To Zrobic.pdf
(4804 KB)
802.11.pdf
(2829 KB)
8051.pdf
(712 KB)
ABC - Nagrywania płyt CD.pdf
(7698 KB)
Inne foldery tego chomika:
- - ▉ - - - FILMY CHOMIKUJ - FILMY 2021 - NOWOŚCI
Pliki dostępne do 01.06.2025
Pliki dostępne do 09.04.2026
Pliki dostępne do 19.01.2025
◄ProgDVB Professional Edition 6.81.0
Zgłoś jeśli
naruszono regulamin