Erinevus lehekülje "Freebsd traffic shaping" redaktsioonide vahel
42. rida: | 42. rida: | ||
ftp (900Kbps, borrow) | ftp (900Kbps, borrow) | ||
− | Veel saab igale | + | Veel saab igale järjekorrale seadistada tema prioriteedi taseme. Järjekorraga millel on kõrgem propriteet tegeletakse |
− | + | kõige esimesena | |
Root Queue (2Mbps) | Root Queue (2Mbps) | ||
51. rida: | 51. rida: | ||
UserB (1Mbps, priority 1) | UserB (1Mbps, priority 1) | ||
− | Kui prioriteet on sama leveliga, nagu n2ites on userA ja userB j2rjekordadel siis tegeletakse | + | Kui prioriteet on sama leveliga, nagu n2ites on userA ja userB j2rjekordadel siis tegeletakse järjekordadega round-robin laadselt. Muide |
− | + | kui tegeletakse userA järjekorraga tegeletakse ka tema alamjärjekordadega samaaegselt. Näites hetkel on ssh järjekorral kõrgem | |
− | prioriteet ning saab eelised ftp | + | prioriteet ning saab eelised ftp üle kuid ainult antud kasutaja liikluse piires. |
PRIQ | PRIQ | ||
− | V2imaldab erinevatele | + | V2imaldab erinevatele järjekordadele seadistada erinevaid prioriteetide tasemeid. Järjekorraga mis on kõrgema |
prioriteediga tegeletakse alati esimesena ja edasi vastavalt temast madalamal olevatega. | prioriteediga tegeletakse alati esimesena ja edasi vastavalt temast madalamal olevatega. | ||
67. rida: | 67. rida: | ||
RED Random Early Detection | RED Random Early Detection | ||
− | Tegeleb pideva | + | Tegeleb pideva jälgimisega ,et järjekord ei saaks täis. Võimalik on kasutada ainult tcp liiklusel mitte udp või icmp |
Redaktsioon: 14. aprill 2008, kell 21:02
Sisukord
Sissejuhatus
FreeBSD ja ALTQ
Nagu nimi juba ütleb on ALTQ ALTernate Queueing framework BSD unixitele. Loodud on see algselt OpenBSD's kuid hiljem porditud ka NetBSD ja FreeBSDle.
ALTQ lihtsamalt öeldes pakub võrguliikluse kontrollvõimalusi ,et suurendada teatud teenuste töökindlust ja tähtsamale liiklusele tagada kõrgemaid prioriteete ja kanali suurust ning samas piirata mitmet laadi ebasobivat liiklust võrkudes ja vähendada selle ribalaiust.
Ametlik ALTQ koduleht http://www.sonycsl.co.jp/person/kjc/kjc/software.html Ning põhjalikku juttu ja näiteid leiab OpenBSD packet filteri lehelt http://www.openbsd.org/faq/pf/queueing.html
Pakette ALTQ's paigutatakse järjekordadesse (Queue). Järjekordadega tegeleb omakorda scheduler. Võimalik on kasutada kahte tüüpi schedulere
* Class Based Queueing * Priority Queueing
CBQ
Igale järjekorrale on seadistatud tema liiklus. Järjekord saab ka laenata (borrow) endale ribalaiust lisaks enda juurjärjekorrast.
Näiteks juurjärjekord 2Mbps mis jaotatakse laiali kolme alamjärjekorra vahel
Root Queue (2Mbps) Queue A (1Mbps) Queue B (500Kbps) Queue C (500Kbps)
Seda hirearhiat saab laiendada veel defineerides alamjärjekordi, näiteks
Root Queue (2Mbps) UserA (1Mbps) ssh (50Kbps) bulk (950Kbps) UserB (1Mbps) ssh (100Kbps) ftp (900Kbps, borrow)
Veel saab igale järjekorrale seadistada tema prioriteedi taseme. Järjekorraga millel on kõrgem propriteet tegeletakse kõige esimesena
Root Queue (2Mbps) UserA (1Mbps, priority 1) ssh (100Kbps, priority 5) ftp (900Kbps, priority 3) UserB (1Mbps, priority 1)
Kui prioriteet on sama leveliga, nagu n2ites on userA ja userB j2rjekordadel siis tegeletakse järjekordadega round-robin laadselt. Muide kui tegeletakse userA järjekorraga tegeletakse ka tema alamjärjekordadega samaaegselt. Näites hetkel on ssh järjekorral kõrgem prioriteet ning saab eelised ftp üle kuid ainult antud kasutaja liikluse piires.
PRIQ
V2imaldab erinevatele järjekordadele seadistada erinevaid prioriteetide tasemeid. Järjekorraga mis on kõrgema prioriteediga tegeletakse alati esimesena ja edasi vastavalt temast madalamal olevatega.
Root Queue (2Mbps) Queue A (priority 1) Queue B (priority 2) Queue C (priority 3)
RED Random Early Detection
Tegeleb pideva jälgimisega ,et järjekord ei saaks täis. Võimalik on kasutada ainult tcp liiklusel mitte udp või icmp
Neli näidet ALTQ kasutusest levinud reaalsetes olukordades
Näide 1
Daniel Hartmeier's ADSL näide - kõrgema prioriteedi andmine ACK päringutele ,et suurendada võrgu jõudlust ebasümmeetrilisel ADSL ühendusel kus upload kanal on liiga väike ning kipub ummistuma nii ,et ACK requestid kipuvad takerduma ja selletõttu kogu download kiirus omakorda hakkab ikalduma.
altq on fxp0 priq bandwidth 100Kb queue { q_pri, q_def } queue q_pri priority 7 queue q_def priority 1 priq(default) pass out on fxp0 proto tcp from $ext_if to any flags S/SA keep state queue (q_def, q_pri) pass in on fxp0 proto tcp from any to $ext_if flags S/SA keep state queue (q_def, q_pri)
http://www.benzedrine.cx/ackpri.html
Näide 2
Liikluse piiramine vastavalt liikluse tyybile teatavate protsentideni v2imaldades vaba kanali puhul siiski laenata yhendust juurde.
altq on $ext_if cbq bandwidth 640Kb queue { def, ftp, udp, http, ssh, icmp } queue def bandwidth 18% cbq(default borrow red) queue ftp bandwidth 10% cbq(borrow red) queue udp bandwidth 30% cbq(borrow red) queue http bandwidth 20% cbq(borrow red) queue ssh bandwidth 20% cbq(borrow red) { ssh_interactive, ssh_bulk } queue ssh_interactive priority 7 queue ssh_bulk priority 0 queue icmp bandwidth 2% cbq pass log quick on $ext_if proto tcp from any to any port 22 flags S/SA keep state queue (ssh_bulk, ssh_interactive) pass in quick on $ext_if proto tcp from any to any port 20 flags S/SA keep state queue ftp pass in quick on $ext_if proto tcp from any to any port 80 flags S/SA keep state queue http pass out on $ext_if proto udp all keep state queue udp pass out on $ext_if proto icmp all keep state queue icmp
Näide 3
Ebasoovitatava liiklusega tegelemine.
queue q_default cbq(default) queue q_web (...) ## kogu emaili liiklus limiteeritakse kiirusele 1Mb/sec queue q_mail bandwidth 1Mb { q_mail_windows } ## aga windowsi mail limiteeritakse kiirusele 56Kb/sec queue q_mail_windows bandwidth 56Kb pass in quick proto tcp from any os "Windows" to $ext_if port 25 keep state queue q_mail_windows pass in quick proto tcp from any to $ext_if port 25 label "smtp" keep state queue q_mail
Näide 4
Näide pf altq traffic shapingust koos tulemüüriga. Piiratakse nii download kui uploadi. Iga hosti kohta saab määrata erineva uploadi ja downloadi, samuti selle ip tähtsuse võrreldes teistega ehk leveli.
Näites on kolm klienti
192.168.1.1 192.168.1.2 192.168.1.3
Milledel downloadi piirame 512kb peale ja uploadi 256kb/s
ext_if="fxp1" int_if="fxp0" sourcetrack="keep state" set optimization aggressive 192.168.1.0/24 download altq on $int_if cbq bandwidth 100Mb queue if1 queue if1 bandwidth 100% cbq(rio ecn default) { a1, a2, a3 } queue a1 bandwidth 512Kb cbq(rio ecn) 1 queue a2 bandwidth 512Kb cbq(rio ecn) 1 queue a3 bandwidth 512Kb cbq(rio ecn) 1 192.168.1.0/24 upload altq on $ext_if cbq bandwidth 100Mb queue eif1 queue eif1 bandwidth 100% cbq(rio ecn default) { b1, b2, b3 } queue b1 bandwidth 256Kb cbq(rio ecn) 1 queue b2 bandwidth 256Kb cbq(rio ecn) 1 queue b3 bandwidth 256Kb cbq(rio ecn) 1 192.168.1.0/24-nat nat on $ext_if from 192.168.1.1 to any tag pc1 -> ($ext_if) nat on $ext_if from 192.168.1.2 to any tag pc2 -> ($ext_if) nat on $ext_if from 192.168.1.3 to any tag pc3 -> ($ext_if) block log all label "blocked" pass quick on lo0 all 192.168.1.0/24 sisemiste interfacede ip'ni piiramatul kiirusel traffic pass quick all tagged intnat keep state pass quick from 192.168.1.0/24 to $int_if keep state pass quick from $int_if to 192.168.1.0/24 keep state download pass in quick from 192.168.1.1 to any $sourcetrack queue a1 label 192_168_1_1_down pass in quick from 192.168.1.2 to any $sourcetrack queue a2 label 192_168_1_2_down pass in quick from 192.168.1.3 to any $sourcetrack queue a3 label 192_168_1_3_down upload pass out quick tagged pc1 $sourcetrack queue b1 label 192_168_1_1_up pass out quick tagged pc2 $sourcetrack queue b2 label 192_168_1_2_up pass out quick tagged pc3 $sourcetrack queue b3 label 192_168_1_3_up pass in inet proto icmp all keep state pass out inet proto icmp all keep state pass in on $ext_if proto tcp from any to $ext_if port 22 keep state pass out on $ext_if proto { tcp, udp } all keep state
Nagu näha on asi äärmiselt paindlik nii ,et saame vabalt igale kliendile määrata erinevad teistest sõltumatud upload ja download kiirused ning isegi m22rata erinevad proriteedid erinevatele kasutajatele ja nende liiklusele