Home

QoS Congestion Management on Cisco Switch

Leave a comment

Harus nya ini dulu nih…baru praktek (posting sebelumnya) haha

Congestion Management ada 2:

  1. Scheduling: mekanisme untuk memprioritaskan tipe traffic tertentu untuk keluar dari interface (egress), contohnya: Queuing dan Round-Robin mechanism(FIFO dan kawan-kawan)
  2. Avoidance: mekanisme untuk mendeteksi bottleneck di interface tempat data masuk (ingress), contohnya: RED (Random Early Detection)

Pertama2 kita harus liat dulu seberapa sanggupkah interface yang mo kita kasi QoS bisa nampung Queue (antrian data)

Penjelasan:

  • Kita liat QoS scheduling, ternyata untuk ini interface untuk receive traffic (rx) ga bisa di konfig queuing nya
  • Tetapi untuk transfer (tx) bisa…dan tulisannya 4q3t, apaan nih?
  • XpXqXt, dimana p = priority queuing, q = normal queuing, t = threshold per queue
  • Jadi tulisan 4q3t maksudnya adalah ini interface punya 4 “jalur” queuing/antrian data, dan tiap jalur bisa nampung 3 data dalam satu waktu
  • Klo lo ketemu kek misalkan 1q3p4t artinya selain itu interface punya 3 jalur dan kapasitas tampungnya 4 data per jalur, dia juga punya 1 jalur “express” alias jalan tol
  • Trus dari sini kita bisa tau…ada 2 threshold yang kita bisa otak-atik, dan 1 lagi engga (fix 100%, klo pake threshold ini ga akan di drop walaupun kepenuhan)

Untuk lebih jelasnya gw ambil screenshot dari catalyst 6500

Maksudnya apa nih? Gw gambar yah (contoh 2q4t untuk ingress dan 1p3q4t untuk egress)…

Ketika ada data pertama masuk (di ingress), dia akan ditempatkan di Q1

Setelah penuh itu threshold (4t = 4 threshold), data selanjutnya akan ditempatkan di Q2

Harusnya sih seperti itu…tapi bisa kita mapping kok…”packet ini ke Q2…packet itu ke Q1″

Nah, pas uda penuh itu Q1 dan Q2..dikeluarin deh satu-satu…ganti2an, kecuali yang Priority Queueing (always first)

Ada mekanisme-nya ga untuk bisa ganti2an?!?

Ada…default-nya Round-Robin (data pertama dikeluarin dari Q1, trus data pertama dari Q2, trus data kedua dari Q1, trus Q2 lagi…and so-on)

Nah kita bisa modifikasi “aturan main”nya dengan Weighted Round Robin/WRR ato pake Shaped/Shared Round Robin alias SRR

Kita bisa ngeliat round-robin yang dipake sebuah interface dengan cara show queueing interface [nomor]

Kita pake screenshot dari Cat6500 yah

Disini kita bisa liat…antrian ke-3 (Q3) lebih diprioritaskan dari Q1 dan Q2 (value/prioritasnya 200)

Katanya 1p4q3t?…itu Cuma 3 queue yang ditampilkan diatas…yang 1 queuing lagi mana?!?

Priority Queuing PASTI lebih diprioritaskan dari antrian manapun….jadi ga ditampilkan

Klo di Cat3560…pake show mls qos int fa0/1 queueing (tapi gw ga nemu/ngerti cara liat threshold ratio nya)

Nah…tadi kita bahas tentang queueing, sekarang kita bahas tentang threshold

Klo misalkan ada interface dengan QoS 1q3t…artinya dia hanya punya 1 jalur dan ada 3 level threshold

threshold

Nah, mekanisme untuk mencegah threshold “kepenuhan” alias bottleneck disebut Congestion Avoidance, tools nya adalah RED (random early detection), WRED (weighted RED), dan Tail Drop (default)

Klo di Cat3560…pake show mls qos interface [nomor] buffer

Disini kita bisa liat port fa0/1 dimapping ke Queuing-Set 1 (qset: 1, default….dipaling bawah ntar gw jelasin maksud “qset“) dengan 4 queuing…masing2 queueing “dijamin” ga akan di drop selama kurang dari 15%, 25%, 40%, dan 20% dari bandwidth yang tersedia (15+25+40+20 = 100%)

Aslinya 25 25 25 25 (fair share)…soalnya gw pake AutoQoS tadi

Maksud lo Queueing-set 1 tuh kita bisa bikin threshold sendiri untuk masing2 queuing?!? Yak betul…

Klo di Cat6500…kita bisa pake yang tadi (show queueing interface [nomor]) untuk liat ambang batas threshold

Trus kita mo liat…ni paket dengan CoS 5 “dianterin” kemana? Ke antrian nomor berapa? Threshold level berapa??

Kita bisa pake show mls qos map cos-output

Kita liat untuk packet voice dengan CoS default 5…dimasukin ke Q1 dengan threshold level 3

Trus coba kita liat untuk packet dengan CoS 2 akan masuk ke jalur nomor 2 (Q2) dengan level threshold 1, klo threshold level satu penuh berarti masuk ke threshold level 2, karena itu packet “pangkat”nya hanya level 1…dia ga bisa masuk level 2, yang artinya di drop…semakin tinggi threshold…semakin kecil kemungkinannya packet itu di drop (kecuali emang uda penuh itu threshold nya)

Bisa ga kita rubah mapping nya?! Klo paket dengan CoS 5 masuknya ke Q3 threshold 1?? ato DSCP dengan value 46 masuk ke Q4 threshold 1?!?

Bisa…dengan ngerubah Round-Robin nya

—————————————

QoS Round-Robin

ada 3 Round Robin:

  • WRR (Weighted Round Robin)
  • SRR (Shaped Round Robin)
  • SRR *loh* (tapi ini SHARED Round Robin)

contoh kita pake SRR (karena pake Cat3560)

  • kita mau mapping CoS value 1 ke Queuing nomor 1 dengan threshold 2

mls qos srr-queue input cos-map queue 1 threshold 2 1

  • kita mau mapping CoS value 0 ke Queuing nomor 1 dengan threshold 3

mls qos srr-queue input cos-map queue 1 threshold 3 0

  • kita mau mapping DSCP value 46 (voice) ke Queuing nomor 4 (priority queuing) dengan threshold 3

mls qos srr-queue input dscp-map queue 4 threshold 3 46

WRR tipically ada di Cat3550, selebihnya kita bisa pake Shaped/Shared Round Robin

WRR keyword-nya di 3550 ya wrr-queue

interface FastEthernet 0/1
wrr-queue bandwidth 10 20 30 40

SW#show mls qos interface queueing
FastEthernet0/1
Egress expedite queue: disabled
wrr bandwidth weights:
qid-weights
1 – 10
2 – 20
3 – 30
4 – 40

disini artinya Q1 ngeluarin packet 10, abis itu Q2 ngeluarin paket 20, abis itu Q3 ngeluairn paket 30, dan Q4 ngeluarin paket 40 (ganti2an per Queue)

nah, kita bisa bikin Q1 jadi priority dengan cara ngetik priority-queuing out (klo egress expedite queue-nya disabled tandanya priority-queuingnya ga jalan/belum diketik)

eh…bisa ga kita kasih limit bandwidth ke Q1 Q2 Q3 dst?!? bisa…pake Shaped RR

contoh: link kita punya 100mbps…kita pengen bikin Q1 pake 10 mbps, Q2 pake 20mbps, Q3 pake 30mbps, dan Q4 pake 50mbps

10+20+30+50 = 100mbps

 SRR-Shape

ini dinamakan SHAPED Round-robin (liat aja keywordnya…shaped), jeleknya adalah…klo Q4 (50%) ini ga kepake…Q1, Q2, dan Q3 ga bisa pake itu free bandwidth dan juga hanya bisa untuk egress queue (round-robin mechanism untuk interface tempat keluarnya data)

klo kita ketik priority-queue out…Q1 akan otomatis jadi priority dan ignore shaping SRR

oleh karena itu kita pake SHARE Round-robin

SRR-Share

artinya disini Q1, Q2, dan Q3 pake 1/4 bandwidth…dan Q4 pake full bandwidth (1/1)

dan bisa kita gabung loh…shape dan share

show int fa queuing

disini Q1 akan dapet 1/4 dari 10mbps = 2,5 mbps, Q2 = 2,5 mbps, Q3 = 2,5 mbps…dan Q4 akan dapet 1/1 dari total bandwidth alias 50mbps

apaan tu qset 1?? queuing-set (bisa bikin max. 2 set), ini semacam “template” qos untuk setting buffer dan threshold per-queue, jadi di interfacefa0/1 kita bisa bikin Q1 threshold-nya segini…Q2 thresholdnya segini (queue-set 1)

nah, di interface fa0/2 kita bisa bikin beda lagi (queue-set 2)

contoh:

di interface fa0/1 (trunk) kita mau implement queue-set 1 dan di interface fa0/2 (access) kita mau implement queue-set 2

interface fa0/1
switchport mode trunk
queue-set 1

interface fa0/2
switchport mode access
queue-set 2

trus bikin deh queue-set untuk masing2 interface-nya

queue-set 1…kita mo bikin untuk Q2 masing2 thresholdnya bisa nampung 138, 138, 92, 400 packet dan di Q3 masing2 threshold-nya bisa nampung 36, 77, 100, 318 packet
mls qos queue-set output 1 threshold 2 138 138 92 400
mls qos queue-set output 1 threshold 3 36 77 100 318

untuk queue-set 2 yang kita mo kasih di access switchport (fa0/2)
mls qos queue-set output 2 threshold 1 149 149 100 149
mls qos queue-set output 2 threshold 2 118 118 100 235

trus kita create buffer untuk masing2 queue dimasing2 queue-set

qset 1 (Q1 buffer 10%, Q2 buffer 10%, Q3 buffer 26%, Q4 buffer 54% = 100% buffer)
qset 2 (Q1 buffer 16%, Q2 buffer 6%, Q3 buffer 17%, Q4 buffer 61% = 100% buffer)
mls qos queue-set output 1 buffers 10 10 26 54
mls qos queue-set output 2 buffers 16 6 17 61

depends on hardware, buffer untuk Q2 itu include CPU buffer (apaan lagi inih?!? maap…gw juga ga tau)setting berapa banyak Q1 sampe Q? dan threshold ?,?,…,? tergantung dari capabilitas interface-nya

 

Implementing QoS on Cisco Switch

Leave a comment

(note: gw pake Cisco Catalyst 3560, Catalyst 6500 banyak lagi commandnya @_@)

Briefing singkat tentang QoS dulu yah

Setiap device bisa bikin CoS (Class of Service, di layer 2) sendiri, gunanya untuk bilang ke ke alat lain “ini paket penting lohhh, tolong paket gw duluan yahh

Value CoS itu 3 bit yang dikirim oleh trunk interface, dimana masing2 bit menandakan:

Contohnya IP Phone akan menandai datanya (marking) dengan default CoS 5

eh…itu kan trunk…klo access gimana? ya setting CoS nya (bisa manual/otomatis), ato itu interface ga usa “baca” CoS…baca L3 QoS aja

Tapi bisa aja sebuah aplikasi bikin CoS sendiri untuk “menyuap” hakim alias switch untuk nganterin paket nya duluan

Dan switch bisa aja ga percaya….oleh karena itu kita define trust boundary-nya

Nah, First…setting trust boundary

Important mention: yang kita percaya hanya CoS yang dikirim oleh switchport yang terhubung dengan IP Phone dan switchport yang terhubung dengan distribution layer (switch lain), dengan catatan…switch lainnya juga harus trust ama switch tadi (contohnya access layer switch)

Dalam QoS, interface fisiknya yang kita trust…bukan port-channel ato interface virtual

Penjelasan:

  • mls = multi layer switching
  • klo kita ketik mls qos trust cos artinya kita percaya cos yang dikirimkan kedalam port fa0/1
  • begitu pula dengan dscp dan ip-presedence (nanti dibawah kita bahas apa itu dscp dan ip precedence)
  • by default…semua switchport itu untrusted

kita juga bisa “percaya” ama tipe device nya

Eh, yang kita konfig kan yang fa0/1…yang fa0/2 gimana…kan ada PC dibelakang IP Phone nya??

Nah, berarti kita extend trust boundary nya (see packet tracer picture above)

Bisa pilih, itu PC yang konek ke IP Phone mau di bener2 Trust CoS-nya ato kita override CoS-nya

*di Cisco Voice course ada juga CoS, tapi bukan buat QoS…ini semacam call restriction

Klo CoS kita maen di layer 2…dimana CoS nya bisa ganti2 (di strip) setiap hop (remember…ip source dan destination selalu sama kecuali pake NAT, sedangkan mac-address selalu ganti tiap hop…CCNA nih)

tapi ketik dulu mls qos di global config –> SW(config)#mls qos, untuk turn on QoS capabilities on switch

Sekarang kita maen di layer 3…namanya Type of Service (ToS)..besarnya 1 byte (8bit)

IP Presedence digunakan buat QoS di Layer 3 (biar ga kayak CoS-nya Layer 2)…Cuma karena besarnya 3 bit…kurang mumpuni untuk berbagai tipe data yang sangat banyak itu

ToS IP Precedence value-nya sama dengan CoS (3 bit)…tapi karena IP Precedence ga bisa differensiasi lebih dari 8 tipe traffic (0 ~ 7), dibuatlah DSCP…satu aplikasi pake AF41, satu lagi pake AF43…sama2 level tinggi “AF4”..tapi AF41 lebih di prioritaskan

Maka dibuatlah DSCP (Differentiated Service Code Point) yang besarnya 6 bit

3 bit pertama…Class Selector, 3 bit berikutnya Drop Presedence, 2 bit selanjutnya adalah ECN (explicit Congestion Notification)…bingung?? lets see the picture (maap jelek)

ECN

Jadi klo ada data dengan marking AF4 akan lebih di prioritaskan daripada AF3…

AF41 (kelas AF4 dengan drop value 1 alias low) akan lebih di prioritaskan daripada AF43 (kelas AF4 dengan drop high)

EF biasanya ga pake drop precedence…

ECN itu apa? ini buat “membantu” congestion avoidance method seperti WRED

klo WRED sibuk nge-drop packet biar ga penuh threshold-nya SECARA RANDOM, ECN ini dipake buat ngasi tau router/switch klo threshold uda mau penuh…paket yang di mark ECN ini lah yang di prioritaskan untuk di drop

besarnya 2 bit, jadi klo ga 00, 01, 10, ato 11 binary-nya…dimana 00 artinya ga ada ECN, 01 ato 10 artinya ini packet mendeteksi adanya congesti di threshold, dan 11 artinya DE (Discard Eligible)

Trus gimana cara ini value ToS masuk ke konfig?!?

Nah,Second…Mapping the Traffic

Gw bilang sih ini “nangkep” traffic…pake ACL, tapi sebelumnya…kita harus define dulu mo mapping apaan nih??

Contoh kita mau mapping traffic FTP

Penjelasan:

  • untuk nangkep traffic FTP, berarti kita harus buat dulu ACL khusus FTP
  • kita tangkep (permit tcp, FTP kan TCP) untuk protocol FTP itu sendiri dan data connection FTP (ftp-data)
  • lalu bikin deh class-map untuk “nampung” hasil filteran ACL itu
  • trus di-match-in dengan nama ACL nya

Third…Policing and Marking the Traffic

Sesudah datanya ditangkep trus “ditampung” di class-map, maka…

Langkah selanjutnya kita harus define..”mau kita apaain ini traffic?!?”

Penjelasan:

  • kita bikin policy-map dengan nama ManualQoS
  • kita set policy class-FTP yang kita buat tadi, kita set bandwidth yang bisa dipake berapa
  • default bandwidth dalam bit, klo kita tulis “k”, “m”, atau “g” dibelakang angka artinya kilo, mega, gigabit
  • trus setting burst rate nya (kelebihan data yang dapat di tolerir, default dalam byte), disini gw set 10000 bytes
  • trus apa “action”-nya klo burst rate…bisa di drop…ato diganti DSCP-nya biar device selanjutnya yang mikir mo diapain ini traffic
  • dalam 1 policy map bisa banyak class yang bisa kita masukin (contoh gw buat class-Voice)
  • di dalam policy map juga kita bisa set dscp value (marking) dari traffic yang udah kita tangkep itu (disini gw set voice traffic DSCP-nya EF…default alias sami mawon hahaha)

bro…klo gw set policy tiap class sama bandwidthnya…masa gw ketik terus2an…mampus gw

kita bisa pake namanya aggregate-policer…contoh:

Tanpa aggregate-policer

Dengan aggregate policer

Tapi kita mapping manual gini pasti ada default mapping-nya dong?? Ada

show map cos-descp

Nah makanya default untuk voice itu pasti CoS = 5, ToS DSCP = EF

ah masa?? coba kita balik…show mls qos map dscp-cos

show map dscp

bedeeuh…hahaha…DSCP 46 artinya kolom ke-4 baris ke-5 value nya 05…

DAN TERAKHIR…Apply the Policy into the Interface

Penjelasan:

  • hanya bisa 1 policy (user-defined manual QoS) dalam 1 interface…entah itu input atau output
  • catalyst switch hanya bisa input
  • dan best practice kita taro di interface yang deket trust boundary
  • karena kita setting QoS per-module/per-class/per-traffic…kita berarti pake metode MQC (Modular QoS CLI)

bro…ribet bener dah bikin QoS…ada yang versi otomatis ga?

Ada..pake Cisco Auto QoS, QoS berdasarkan rekomendasi Cisco

*@#$nk
!! uda cape2 gw bikin…ada auto nya

Penjelasan:

  • lo bisa bikin AutoQoS buat untrusted devices (keyword auto qos classify police)
  • ato lo mau trust (percaya buta aja) ama CoS/DSCP
  • lo juga bisa bikin autoQoS khusus voice dan video (gambar dibawah)

Ini configurasi fa0/1 yang gw bikin

Penjelasan:

  • srr-queue dan priority-queue entah darimana dateng nya…hahah (mungkin dari autoQoS)
  • gw bisa gabung manual QoS ama sama auto QoS
  • untuk router bisa pake auto qos voip di interface subconfiguration

WOKEH SEGITU DULU…GW PUSING JUGA INI…MUMET MET MET

Nanti Queuing nya dah….

Older Entries