لب عملی: پیکربندی Class-Based Weighted Fair Queuing (CBWFQ)

این لب عملی CBWFQ را با سه کلاس ترافیک که تخصیص‌های پهنای‌باند حداقل تضمین‌شده دریافت می‌کنند پیکربندی می‌کند، و تأیید می‌کند هر کلاس حداقل سهم پیکربندی‌شده‌اش را در طول ازدحام دریافت می‌کند در حالی که یک صف class-default ترافیک طبقه‌بندی‌نشده را جذب می‌کند.

تضمین پهنای‌باند در CBWFQتخصیص چند کلاس ترافیکرفتار صف Class-Default

~4 min read · Updated Sep 26, 2026

هدف لب

پیکربندی CBWFQ با سه کلاس نام‌دار، هرکدام با یک درصد پهنای‌باند حداقل خاص تضمین‌شده، اعمال سیاست روی یک اینترفیس خروجی ازدحامی، و تأیید اینکه هر کلاس حداقل تخصیص پیکربندی‌شده‌اش را در طول ازدحام پایدار از همه کلاس‌ها هم‌زمان دریافت می‌کند.

هدف لب (چرا مهم است)

لب QoS قبلی صف‌بندی اولویت سخت‌گیرانه را به‌طور خاص برای صدا پیکربندی کرد، و لب‌های shaping/policing به محدودسازی نرخ پرداختند، اما هیچ‌کدام به نیاز رایج تضمین سهم پهنای‌باند حداقل در سراسر چند نوع ترافیک غیر-صوتی که برای همان لینک رقابت می‌کنند نپرداختند — CBWFQ این را با تخصیص یک تضمین پهنای‌باند حداقل به هر کلاس تعریف‌شده حل می‌کند.

توپولوژی لب

R1 ---- Gi0/1 (لینک 100 Mbps، ازدحامی توسط
               ترافیک هم‌زمان از هر سه کلاس)

کلاس‌های ترافیک:
CRITICAL-DATA (باید حداقل 40٪ بگیرد)
BULK-DATA (باید حداقل 20٪ بگیرد)
ترافیک DEFAULT (باقی‌مانده، class-default)

وظیفه ۱: ساخت Class-Map برای هر نوع ترافیک

class-map هایی که CRITICAL-DATA (با DSCP AF41) و BULK-DATA (با DSCP AF11) را تطبیق می‌دهند تعریف کن.

وظیفه ۲: پیکربندی Policy-Map در CBWFQ

تضمین‌های درصد پهنای‌باند برای هر کلاس، به‌علاوه مدیریت fair-queue برای class-default پیکربندی کن.

وظیفه ۳: اعمال سیاست خروجی

سیاست CBWFQ را روی اینترفیس ازدحامی اعمال کن.

وظیفه ۴: تولید ترافیک هم‌زمان از همه کلاس‌ها فراتر از ظرفیت لینک

ترافیک کافی از هر سه دسته ترکیب‌شده برای فراتررفتن از ظرفیت 100 Mbps لینک تولید کن.

وظیفه ۵: تأیید دریافت حداقل پهنای‌باند تضمین‌شده توسط هر کلاس

تأیید کن CRITICAL-DATA و BULK-DATA هرکدام حداقل سهم پیکربندی‌شده‌شان را در طول دوره ازدحام دریافت می‌کنند.

راه‌حل و تأیید

R1(config)# class-map match-all CRITICAL-DATA
R1(config-cmap)# match dscp af41
R1(config-cmap)# exit
R1(config)# class-map match-all BULK-DATA
R1(config-cmap)# match dscp af11

R1(config)# policy-map CBWFQ-POLICY
R1(config-pmap)# class CRITICAL-DATA
R1(config-pmap-c)# bandwidth percent 40
R1(config-pmap)# class BULK-DATA
R1(config-pmap-c)# bandwidth percent 20
R1(config-pmap)# class class-default
R1(config-pmap-c)# fair-queue

-- 40٪ + 20٪ = 60٪ صراحتاً رزرو شده، و 40٪ را
-- برای class-default و هر سربار ترافیک صفحه-
-- کنترل پروتکل باقی می‌گذارد -- CBWFQ به‌طور
-- پیش‌فرض هرگز اجازه نمی‌دهد کل رزروها از 75٪
-- پهنای‌باند اینترفیس فراتر رود، و در برابر
-- بیش‌اشتراک‌گذاری محافظت می‌کند

R1(config)# interface gigabitethernet0/1
R1(config-if)# service-policy output CBWFQ-POLICY

TrafficGen> [50 Mbps CRITICAL-DATA، 40 Mbps
             BULK-DATA، و 30 Mbps ترافیک
             پیش‌فرض علامت‌گذاری‌نشده تولید
             می‌کند -- 120 Mbps ترکیب‌شده
             به‌سمت یک لینک 100 Mbps، و ازدحام
             پایدار را تضمین می‌کند]

R1# show policy-map interface gigabitethernet0/1

  Service-policy output: CBWFQ-POLICY

    Class-map: CRITICAL-DATA
      Bandwidth 40% (40000 kbps)
      Queueing
      (queue depth/total drops/no-buffer drops) 3/128/0
      (pkts output/bytes output) 284213/...

    Class-map: BULK-DATA
      Bandwidth 20% (20000 kbps)
      Queueing
      (queue depth/total drops/no-buffer drops) 8/512/0
      (pkts output/bytes output) 142106/...

    Class-map: class-default
      Flow Based Fair Queueing
      (queue depth/total drops/no-buffer drops) 15/890/0
      (pkts output/bytes output) 71053/...
-- با وجود اینکه ترافیک بسیار بیشتری از آنچه
-- لینک می‌تواند حمل کند ارائه شد، throughput
-- واقعی CRITICAL-DATA حدود 40 Mbps تضمین‌شده‌اش
-- و BULK-DATA حدود 20 Mbps تضمین‌شده‌اش را
-- تقریب می‌زند -- هر دو سهم حداقلشان را حتی
-- تحت بیش‌اشتراک‌گذاری پایدار حفظ کردند، با
-- اضافی که به‌طور مناسب دور ریخته شد به‌جای
-- اینکه اجازه دهد تضمین‌ها گرسنه بمانند

R1# show policy-map interface gigabitethernet0/1 | include Bandwidth

Bandwidth 40% (40000 kbps)
Bandwidth 20% (20000 kbps)
-- تأیید می‌کند تضمین‌های پیکربندی‌شده در
-- سراسر دوره ازدحام فعال و اعمال‌شده باقی می‌مانند

نکته کلیدی

دستور bandwidth percent در CBWFQ یک حداقل تضمین‌شده برقرار می‌کند، نه یک حداکثر سخت — یک کلاس همچنان می‌تواند بیشتر از درصد پیکربندی‌شده‌اش دریافت کند اگر ظرفیت مازاد وجود داشته باشد، اما در طول ازدحام واقعی (همان‌طور که اینجا با ترافیک فراتر از ظرفیت کل لینک نشان داده شد)، هر کلاس در برابر گرسنه‌ماندن زیر تضمین پیکربندی‌شده‌اش محافظت می‌شود، که دقیقاً مسئله‌ای است که صف‌بندی FIFO ساده یا fair-queuing بدون‌وزن به‌تنهایی نمی‌تواند وقتی چند نوع ترافیک مهم برای همان لینک ازدحامی رقابت می‌کنند حل کند.

Written & researched by Dr. Shahin Siami

Related Articles

لب عملی: چالش عیب‌یابی جامع نهایی CCNP (یکپارچگی BGP، DMVPN، و QoS)

این لب عملی یک شکست پیچیده چندلایه در سراسر یک توپولوژی یکپارچه BGP-روی-DMVPN ترکیب‌شده با علامت‌گذاری QoS ارائه می‌دهد، و نیازمند تشخیص سیستماتیک یک پیکربندی نادرست route reflector، یک شکست ثبت NHRP، و یک سیاست QoS نادرست‌اعمال‌شده که هم‌زمان روی همان شبکه تأثیر می‌گذارند است.

Continue

لب عملی: پیکربندی BGP روی DMVPN

این لب عملی iBGP را به‌عنوان پروتکل مسیریابی در سراسر همان توپولوژی hub-and-spoke DMVPN استفاده‌شده در دو لب قبلی اجرا می‌کند، hub را به‌عنوان یک route reflector BGP پیکربندی می‌کند طوری‌که spoke ها مسیرهای یکدیگر را بدون یک mesh کامل iBGP یاد بگیرند، و دو مفهوم قبلاً جداگانه را در یک طراحی یکپارچه ترکیب می‌کند.

Continue

لب عملی: پیکربندی OSPF روی DMVPN

این لب عملی OSPF را به‌عنوان پروتکل مسیریابی پویا در سراسر همان توپولوژی hub-and-spoke DMVPN اجرا می‌کند، و اینترفیس تونل را به‌عنوان یک نوع شبکه OSPF point-to-multipoint پیکربندی می‌کند تا الگوی همسایگی hub-and-spoke را به‌درستی بدون نیاز به انتخاب DR/BDR نوع شبکه broadcast مدیریت کند.

Continue

لب عملی: پیکربندی EIGRP روی DMVPN

این لب عملی EIGRP را به‌عنوان پروتکل مسیریابی پویا در سراسر توپولوژی hub-and-spoke DMVPN ساخته‌شده در لب‌های قبلی اجرا می‌کند، و تأیید می‌کند روابط همسایه به‌درستی در سراسر تونل چندنقطه‌ای شکل می‌گیرند و مسیرها بدون نیاز به پیکربندی ایستای هر-spoke روی hub منتشر می‌شوند.

Continue

لب عملی: پیکربندی احراز هویت MD5 در HSRP

این لب عملی احراز هویت MD5 را روی یک گروه HSRP پیکربندی می‌کند، و تأیید می‌کند دو روتر با رشته‌های احراز هویت منطبق یک رابطه active/standby معمولی تشکیل می‌دهند در حالی که یک روتر با رشته نامنطبق کاملاً از گروه مستثنی می‌شود.

Continue

لب عملی: پیکربندی امنیت DNS به‌سبک-Cisco Umbrella از طریق تغییرمسیر Forwarding DNS

این لب عملی یک روتر را برای رهگیری هر پرس‌وجوی DNS کلاینت و تغییرمسیر آن به‌سمت یک resolver DNS امنیت-محور با استفاده از رهگیری forwarding DNS پیکربندی می‌کند، و اعمال امنیت DNS تحویل‌شده-با-ابر را بدون نیاز به تغییرات پیکربندی به‌ازای-هر-کلاینت تقریب می‌زند.

Continue