Post on 04-Oct-2021
QoS,HTB,MulticoreRouterOS v6.xx
ValensRiyadi(Citraweb)info@mikrotik.co.id
AboutMeValensRiyadi,Citraweb(ID)MikroTik CertifiedEngineer(MTCNA,MTCWE,MTCRE,MTCTCE,MTCUME,MTCINE)
MikroTik CertifiedTrainersince2004MikroTik CertifiedConsultantMikroTik AcademyCoordinatorCitra.net.id WISPCEOManagerforIDNIC(IndonesiaNationalInternetRegistry)2009– May2015ITExpertonDisasterReliefProudmemberof“RoutedWorld”community
2QoS onMulticore – Mikrotik Indonesia
RecommendedResources• CCRStatusUpdate(JanisMegis – Video)
http://tiktube.com/video/GJil3aqniCGJCIqqpGnrGznrClGoJGJo=
• DynamicQoS onRouterOS v6(ValensRiyadi)http://mum.mikrotik.com/presentations/IT14/valens.pdf
• QoS onRouterOSv6(ValensRiyadi)http://mum.mikrotik.com/presentations/HR13/valens.pdf
• HTBvs PCQ(ValensRiyadi)http://mum.mikrotik.com/presentations/HU11/valens.pdf
• QoS andTrafficPriorities(JanisMegis)http://mum.mikrotik.com/presentations/CZ09/QoS_Megis.pdf
• HTBQoS (ValensRiyadi)http://mum.mikrotik.com/presentations/US09/Valens-MUM2009USA.pdf
QoSonMulticore– MikrotikIndonesia 3
QoS concept
4QoS onMulticore – Mikrotik Indonesia
Fungsi untuk mengukur dan mengontrol komunikasi data(trafik,paket)pada jaringan,untuk menghindari overload,atau ada yangmemonopoli jaringan,yangberakibat padacongestiondan performa jaringan yangburuk.
QoS concept
5QoS onMulticore – Mikrotik Indonesia
Untuk apa?
QoS onRouterOS
• MikroTik RouterOS adalah salah satubandwidthmanagementpalingcanggih,jikadibandingkan dengan merk lainnya.
• Mengapa?– Konfigurasi HTByangmendalam– Doublelimitation+Burst– Adabanyak pilihan dan parameterà packet-mark
QoS onMulticore – Mikrotik Indonesia 6
QoS onMulticore – Mikrotik Indonesia 7
10mbps
QoS onMulticore – Mikrotik Indonesia 8
10mbps
5mbps
5mbps name=User_Amax-limit=5M
name=User_Bmax-limit=5M
QoSonMulticore– MikrotikIndonesia 9
QoSonMulticore– MikrotikIndonesia 10
Besarnya kapasitas maksimum yangbisadicapai oleh usertertentu
Max-limit
Bagaimana jika userAtidak menggunakaninternet,userBdapatmenggunakan semuasisa bandwidthyang
tersedia?QoSonMulticore– MikrotikIndonesia 11
HTB
• Sebagian besar implementasi QoS padaRouterOS berdasarkan HierarchicalTokenBucket(HTB)
• HTBmemungkinkan kita membuat strukturqueueberjenjang dan menentukan relasiantara parentdengan child,ataupun antarsesama child.
• RouterOS v6mengenal 1virtualHTBs(global),dan satu diakhir setiap interface
QoS onMulticore – Mikrotik Indonesia 12
HTBSample
QoS onMulticore – Mikrotik Indonesia 13
D E F G H
A
Parent/innerqueue
Child=leafqueue
B C
I
HTBFeatures
• Hirarki– DirouterOS,kita bisa membuat hingga 8levelhirarki
• Grouping– Kitabisa mengelompokkan beberapa clientdidalamsatu parent
– Clientyangsatu bisa meminjam bandwidthdari clientlainnya,jika dibutuhkan dan tersedia
• Tiap leafqueuebisa memiliki settingyangberbeda.Semua leafakan dianggap sama,dihirarki palingbawah
MTCTCE- Sys-DataCom- Citraweb 14
HTBImplementationExample
MTCTCE- Sys-DataCom- Citraweb 15
QoS onMulticore – Mikrotik Indonesia 16
10mbps
5mbps
5mbpsname=User_Aparent=q_parentlimit-at=5Mmax-limit=10M
name=q_parentmax-limit=10M
name=User_Bparent=q_parentlimit-at=5Mmax-limit=10M
QoSonMulticore– MikrotikIndonesia 17
QoSonMulticore– MikrotikIndonesia 18
Besarnya kapasitas yangdijamin dapatditerima oleh usertertentu,selamabandwidthmasih tersedia
Limit-at
QoS onMulticore – Mikrotik Indonesia 19
10mbps
3mbps
3mbpsname=User_Aparent=q_parentlimit-at=3Mmax-limit=10M
name=User_Bparent=q_parentlimit-at=3Mmax-limit=10M
4mbpsname=User_VIPparent=q_parentlimit-at=4Mmax-limit=10M
QoS onMulticore – Mikrotik Indonesia 20
10mbps
3mbps
3mbpsname=User_Aparent=q_parentlimit-at=3Mmax-limit=10M
name=User_Bparent=q_parentlimit-at=3Mmax-limit=10M
4mbpsname=User_VIPparent=q_parentlimit-at=4Mmax-limit=10M
X7M?
QoS onMulticore – Mikrotik Indonesia 21
10mbps
3mbps
3mbps
name=User_Aparent=q_parentlimit-at=3Mmax-limit=10Mpriority=8
name=User_Bparent=q_parentlimit-at=3Mmax-limit=10Mpriority=8
4mbpsname=User_VIPparent=q_parentlimit-at=4Mmax-limit=10Mpriority=1
X3mbps
7mbps
QoSonMulticore– MikrotikIndonesia 22
Memberikan prioritas untuk usertertentudibanding userlainnya,jika semua limit-atsudah terpenuhi.
Priority
QueueParameter
• limit-at(CIR)• max-limit(MIR)• burst(threshold,limit,time)• queuetype(FIFO,RED,SFQ,PCQ)• parent
QoS onMulticore – Mikrotik Indonesia 23
parentmax-limit10mbpsQoS onMulticore – Mikrotik Indonesia 24
childB:limit-at=6mbpsmax-limit=8mbps
childA:limit-at=4mbpsmax-limit=8mbps
6mbps
4mbps
parentmax-limit10mbpsQoS onMulticore – Mikrotik Indonesia 25
childB:limit-at=6mbpsmax-limit=8mbps
childA
8mbps
2mbps
parentmax-limit10mbpsQoS onMulticore – Mikrotik Indonesia 26
childB:limit-at=6mbpsmax-limit=8mbps 8mbps
childA:0mbps
QoS onMulticore – Mikrotik Indonesia 27
withoutparent,with10mbpslink
childB
childA
childB
childAchildA
childB
childA
childB
Tanpa parent,parameterlimit-atdanpriorityakan diabaikan.
QoS onMulticore – Mikrotik Indonesia 28
HTBDistribution(1)
MTCTCE- Sys-DataCom - Citraweb 29
Name: AParent: interfaceMax-limit: 4mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: CParent: ALimit-at: 2mbpsMax-limit: 4mbps
2mbps 2mbps
If Child B and C use the link, they will have 2mbps each, but if child C is notusing it, child B will get 4 mbps.
4mbps
HTBDistribution(2)
Eventhemax-limitoftheparentis2mbps,butchildBandchildCwillstillget2mbpseach(totalof4mbps).IfCisnotusethelink,Bwillstillget2mbps,cannotextendto4mbps,becauselimitedbymax-limitofitsmax-limitparent.Max-limitofparentAshouldbeatleast4mbps.
MTCTCE- Sys-DataCom- Citraweb 30
Name: AParent: interfaceMax-limit: 2mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: CParent: ALimit-at: 2mbpsMax-limit: 4mbps
2mbps 2mbps
4mbps
HTBDistribution(3)
Bcanextendfrom2mbpsto3mbps,becauseparentAstillhaveremainingbandwidth,andBhavehigherprioritythanC.
MTCTCE- Sys-DataCom- Citraweb 31
Name: AParent: interfaceMax-limit: 5mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 1
Name: CParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 8
3mbps 2mbps
5mbps
HTBDistribution(4)
B,C1,andC2,willget2mbpseach,assetatlimit-at.
MTCTCE- Sys-DataCom- Citraweb 32
Name: AParent: interfaceMax-limit: 6mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: CParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: C1Parent: CLimit-at: 2mbpsMax-limit: 4mbps
Name: C2Parent: CLimit-at: 2mbpsMax-limit: 4mbps
2mbps 2mbps2mbps
4mbps
6mbps
HTBDistribution(5)
C1andC2canget2mbps(max-limit),becausetheirparent(C)haslimit-at4mbps.
MTCTCE- Sys-DataCom- Citraweb 33
Name: AParent: interfaceMax-limit: 6mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: CParent: ALimit-at: 4mbpsMax-limit: 4mbps
Name: C1Parent: CLimit-at: 1mbpsMax-limit: 2mbps
Name: C2Parent: CLimit-at: 1mbpsMax-limit: 2mbps
2mbps 2mbps2mbps
4mbps
6mbps
HTBDistribution(6)
Afteralllimit-atfulfill,remainingbandwidthwilldistributedbaseonpriority
MTCTCE- Sys-DataCom- Citraweb 34
Name: AParent: interfaceMax-limit: 8mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 1
Name: CParent: ALimit-at: 4mbpsMax-limit: 6mbps
Name: C1Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 4
Name: C2Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
4mbps 2mbps2mbps
4mbps
8mbps
HTBDistribution(7)
Onlypriorityonclient(leaf)willcount.
MTCTCE- Sys-DataCom- Citraweb 35
Name: AParent: interfaceMax-limit: 8mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 2
Name: CParent: ALimit-at: 4mbpsMax-limit: 6mbpsPriority: 1
Name: C1Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 4
Name: C2Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
4mbps 2mbps2mbps
4mbps
8mbps
HTBDistribution(8)
Allleafqueuewillget2mbps.
MTCTCE- Sys-DataCom- Citraweb 36
Name: AParent: interfaceMax-limit: 10mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbps
Name: CParent: ALimit-at: 4mbpsMax-limit: 6mbps
Name: C3Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
Name: C2Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
Name: C1Parent: CLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
Name: B2Parent: BLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
Name: B1Parent: BLimit-at: 2mbpsMax-limit: 3mbpsPriority: 8
2mbps 2mbps 2mbps 2mbps 2mbps
4mbps 6mbps
10mbps
HTBDistribution(9)
C1,C2,C3willget2mbps,becausetheyhavehigherprioritythanB1andB2
MTCTCE- Sys-DataCom- Citraweb 37
Name: AParent: interfaceMax-limit: 8mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 1
Name: CParent: ALimit-at: 3mbpsMax-limit: 6mbpsPriority: 8
Name: C3Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 4
Name: C2Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 3
Name: C1Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 2
Name: B2Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 6
Name: B1Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 5
1mbps 1mbps 2mbps 2mbps 2mbps
2mbps 6mbps
8mbps
HTBDistribution(10)
Bget4mbpsbecauseitslimit-at,andthendividedtoB1andB2(2mbpseach).C1>C2andC3becausehavehigherpriority.
MTCTCE- Sys-DataCom- Citraweb 38
Name: AParent: interfaceMax-limit: 8mbps
Name: BParent: ALimit-at: 4mbpsMax-limit: 4mbpsPriority: 8
Name: CParent: ALimit-at: 3mbpsMax-limit: 6mbpsPriority: 1
Name: C3Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 4
Name: C2Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 3
Name: C1Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 2
Name: B2Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 6
Name: B1Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 5
2mbps 2mbps 2mbps 1mbps 1mbps
4mbps 4mbps
8mbps
HTBDistribution(11)
Bandwidthdevided equaly toB1,B2,C1,C2,C3becase theyhavesamepriority.
MTCTCE- Sys-DataCom- Citraweb 39
Name: AParent: interfaceMax-limit: 8mbps
Name: BParent: ALimit-at: 2mbpsMax-limit: 4mbpsPriority: 1
Name: CParent: ALimit-at: 3mbpsMax-limit: 6mbpsPriority: 8
Name: C3Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 8
Name: C2Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 8
Name: C1Parent: CLimit-at: 1mbpsMax-limit: 2mbpsPriority: 8
Name: B2Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 8
Name: B1Parent: BLimit-at: 1mbpsMax-limit: 2mbpsPriority: 8
1,6mbps 1,6mbps 1,6mbps 1,6mbps 1,6mbps
3,2mbps 4,8mbps
8mbps
Tipe Queue
• SimpleQueue• QueueTree
QoSonMulticore– MikrotikIndonesia 40
SimpleQueue• Mudah digunakan• Untuk limitasi src-addressdan dst-address,dapatdigunakan tanpa fitur bantulainnya (mangle)
• 1ruledapat digunakan sekaligus untuk trafficuplinkdan downlink
• Dapat digunakan untuk melimit totaltraffic(downlink+uplink)
• Jika dibutuhkan,dapat memanfaatkan packet-markdanjuga parent
• Proseshanya dapat dilakukan pada interfacevirtual(global)
QoSonMulticore– MikrotikIndonesia 41
QueueTree
• Membutuhkan packet-markuntuk menandaitraffic
• Dapat digunakan dengan prioritydan parent• 1rulehanya untuk downlinkatau uplink• Prosesdapat dilakukan diinterfacefisik,ataupun diinterfacevirtual(global)
QoSonMulticore– MikrotikIndonesia 42
PacketFlow
QoSonMulticore– MikrotikIndonesia 43
MULTICORE?
QoSonMulticore– MikrotikIndonesia 44
Queue&MulticoreProcessing
• Sebagian besar waktu yang dihabiskan sebuahpaket adalah menunggu dalam queue.
• Supaya tidak memboroskan siklus CPUcoresaat menunggu,coretersebut akanmeninggalkan paket diqueue.
• Paket akandiambil secara randomdari antrianuntuk diproses pada coretertentu.
• Secara sederhana:queue akanmembagikanpaket untuk CPUCoretertentu.
QoS onMulticore – Mikrotik Indonesia 45
Perubahan PacketFlow
• Pada RouterOS v5.x,paket melalui prosesqueue beberapa kali,sehingga prosespemilihan corejuga terjadi beberapa kali.
• Untuk RouterOS v6,proses QoS dirombaksehingga proses queue hanya terjadi disuatukelompok proses,pada akhir flow.
QoS onMulticore – Mikrotik Indonesia 46
HTBinRoS v5
QoS onMulticore – Mikrotik Indonesia 47
HTBinRoS v6
QoS onMulticore – Mikrotik Indonesia 48
QueueTreeonMulticore
• Jika ditinjau dari perspektif Kernel,keseluruhan HTBtree adalah satu queue,sehingga diproses hanya oleh satu core
• Optimasi seperti yangdilakukan padasimplequeue akan jugadilakukan padaqueue tree.
• Saran:– Gunakan HTBdengan interface,danhindarimenggunakan HTBglobal.
– Gunakan simplequeue.
QoS onMulticore – Mikrotik Indonesia 49
QueueChangein6.19DiRouterOS v6.19,ada pengubahan softwareuntukmeningkatkan kinerja queue:• Sebelumnya:coreakan meninggalkan paket diqueue,
dan corelainnya akan dipilih secara randomuntukmengatur paket tersebut
• Sekarang:coretersebut tidak hanya meninggalkanpaket,tapi juga harus mengambil paket lainnya yangsudah ada diqueue.
• Jika limitdiqueuebelum tercapai,paket yangsamaakan ditinggalkan dan langsung diambil lagi oleh coreyangsama,membuat prosesini jauh lebih cepat.
QoS onMulticore – Mikrotik Indonesia 50
LabTest
2CCR1036melakukan trafficgenerator,melalui 1CCR1036,routingmode.
QoS onMulticore – Mikrotik Indonesia 51
TrafficGenerator
Setiap mesinmengirimkan10streams(masing-masing25mbps),dari 10ip addressyangberbeda,menuju 10ip addressyangberbeda.
QoS onMulticore – Mikrotik Indonesia 52
Withoutanyconfiguration
QoS onMulticore – Mikrotik Indonesia 53
Mangle
• Kitaperlu membuat firewallmangleuntuk packetmarkingjika akan menggunakan queuetree
• Korelasi antara packet-markdan cpu-load?
QoS onMulticore – Mikrotik Indonesia 54
/ip firewall mangle
add action=mark-packet chain=prerouting \new-packet-mark=packet-src-0.255 \passthrough=no src-address=172.16.0.255
add action=mark-packet chain=prerouting \new-packet-mark=packet-dst-0.255 \passthrough=no dst-address=172.16.0.255
Conn-Mark?
• Tidakkah seharusnya kita menggunakanconnection-marksebelum packet-markdifirewallmangle?
• Ya.Tapi dilab-testini kita ingin melihat seberapabanyak CCRdapat bertahan sehubungandengan jumlah packet-markLater, I test with conn-mark, almost same result.
QoS onMulticore – Mikrotik Indonesia 55
Firewall- Mangle
QoS onMulticore – Mikrotik Indonesia 56
Graphs
0
20
40
60
80
100
120
0 32 64 96 128
160
192
224
256
288
320
352
384
416
448
480
512
544
576
608
640
CPULoad
QoS onMulticore – Mikrotik Indonesia 57
CPULoad
Mangle
608Mangleà 48%CPULoad
• d
DynamicQoS– MikrotikIndonesia 58
640manglesà 100%CPUload
DynamicQoS– MikrotikIndonesia 59
Whatnext?
• Testsebelumnya hanya menggunakan packet–mark.Kitalanjutkan dengan queuetree(512rules).
• Kitagunakan 512mangles,24%CPUload.
QoS onMulticore – Mikrotik Indonesia 60
/queue tree
add max-limit=20M name=queue-src-1.1 packet-mark=packet-src-1.1 parent=global queue=default
add max-limit=20M name=queue-dst-1.1 packet-mark=packet-dst-1.1 parent=global queue=default
ss
QoS onMulticore – Mikrotik Indonesia 61
CPULoad
• Dengan 512manglestanpa queuetree,24%CPUload.
• Dengan 512mangles+512queuetree,43%CPULoad(hampir 2kalilipat).
• Tapi,onTools– Profile,loaduntuk queuemasih rendah.
QoS onMulticore – Mikrotik Indonesia 62
SimpleQueuel Algoritma pencocokan(matching)telah diubah:- berdasarkan hash- prosespencocokan lebihcepat
- QoS akan optimalpadaperangkat dengan multicorejika simplequeueteratas(parent)berjumlah minimal32,sehingga prosestersebutdapat disebar lebih merata.
QoS onMulticore – Mikrotik Indonesia 63
• Kitamembuat 512simplequeue:
Let’strySimpleQueue
QoS onMulticore – Mikrotik Indonesia 64
/queue simple add max-limit=20M/20M name=simple-queue-1.1 target=172.16.1.1/32
Dengan SimpleQueue
Hanya 1%ofCPULoaddengan SimpleQueue
QoS onMulticore – Mikrotik Indonesia 65
WhySimpleQueue?
• Jika kita gunakan simplequeue,tidak harusmenggunakan mangle(manglemembutuhkanCPUresourcesyangbesar).
• SimpleQueuediv6memiliki proseshashingyangefisien.
• Untuk layanan nondedicated,bisa menggunakanfitur burst.
• Jika kita gunakan Queuetree,queuedalam satuinterfaceparentakan diproses hanya oleh satuCPUcore.
QoS onMulticore – Mikrotik Indonesia 66
Kesimpulan
• Untuk jaringan dengan bandwidthyangtidakbesar,overloadednetwork:– kombinasi packet-mark,dengan– queuetree,HTB,dan burst
• Untuk highthroughputbackbone:– gunakan multicorerouter:
• CCR36– 72core• IntelbasequadcoreXeon(8thread)
– simplequeue(noparent)
QoS onMulticore – Mikrotik Indonesia 67
Thankyou
Commentsandsuggestions:
ValensRiyadi(info@mikrotik.co.id)@valensriyadi @mikrotik_id
QoS onMulticore – Mikrotik Indonesia 68
Thislicenseletsothersremix,tweak,andbuilduponyourworkevenforcommercialpurposes,aslongastheycredityouandlicensetheirnewcreationsundertheidenticalterms.Thislicenseisoftencomparedto“copyleft”freeandopensourcesoftwarelicenses.Allnewworksbasedonyourswillcarrythesamelicense,soanyderivativeswillalsoallowcommercialuse.