یک کاربر دانلود سنگینی شروع میکند و تماسهای صوتی کل سازمان قطع و وصل میشود؛ یا ISP به شما ۲۰ مگابیت فروخته اما پورت اترنت ۱ گیگ است و باید سرعت هر مشترک را محدود کنید. کنترل پهنای باند در روترها و سوئیچهای سیسکو با دو ابزار اصلی انجام میشود: Policing و Shaping. هر دو ترافیک را به یک نرخ مشخص محدود میکنند، اما رفتارشان با ترافیک اضافه کاملاً متفاوت است.
در این مطلب تفاوت این دو، الگوریتم Token Bucket ، کانفیگ مدرن با MQC (Modular QoS CLI) ، محدود کردن سرعت یک شبکه یا کاربر، ترکیب با اولویتدهی صدا، و تفاوتهای سوئیچهای Catalyst را بر پایه سند رسمی Comparing Traffic Policing and Traffic Shaping مرور میکنیم.

کنترل پهنای باند در یک نگاه
| Policing | ترافیک اضافه را drop یا remark میکند؛ ورودی و خروجی؛ بدون تأخیر |
| Shaping | ترافیک اضافه را در صف نگه میدارد و بعداً میفرستد؛ فقط خروجی؛ نرمتر برای TCP |
| ابزار پیکربندی | MQC : class-map ، policy-map و service-policy |
| روش توصیهشده سیسکو | Class-Based Policing و Class-Based Shaping |
| روشهای منسوخ | rate-limit (CAR) و traffic-shape (GTS) |
| اولویت صدا | LLQ با دستور priority |
فهرست مطالب
Policing یا Shaping؟

شکل بالا از سند رسمی سیسکو تفاوت را نشان میدهد: Policer قلههای ترافیک را میبُرد؛ Shaper همان قلهها را صاف میکند و در زمانهای بعدی پخش میکند.
| ویژگی | Policing | Shaping |
|---|---|---|
| جهت | ورودی و خروجی | فقط خروجی |
| ترافیک اضافه | drop یا علامتگذاری مجدد (remark) | در صف بافر میشود |
| تأخیر | اضافه نمیکند | اضافه میکند (صف) |
| اثر روی TCP | drop باعث کاهش پنجره TCP و گاهی سرعت کمتر از حد تعیینشده میشود | نرمتر؛ TCP به نرخ واقعی نزدیکتر میشود |
| مصرف منابع | کم | حافظه و پردازش بیشتر برای صف |
| کاربرد رایج | ISP برای محدود کردن ورودی مشترک؛ محدود کردن ترافیک مزاحم | سمت مشتری روی لینک WAN تا ISP ترافیک را drop نکند |
طبق سند سیسکو، صف مفهومی خروجی است؛ پس «فقط Policing روی ترافیک ورودی یک اینترفیس قابل اعمال است». قاعده سرانگشتی: سمت فرستنده Shape کنید، سمت گیرنده Police.
Token Bucket به زبان ساده
هر دو ابزار از الگوریتم Token Bucket استفاده میکنند. یک سطل را تصور کنید که با سرعت ثابت (نرخ تعیینشده، CIR) پر از «ژتون» میشود؛ هر بایتی که ارسال میشود یک ژتون مصرف میکند. اندازه سطل (Burst یا Bc) تعیین میکند چقدر ترافیک میتواند یکباره و پشتسرهم عبور کند. اگر ژتون کافی نباشد، Policer بسته را drop میکند و Shaper آن را در صف نگه میدارد تا ژتون برسد.

Policing : محدود کردن سرعت ورودی یک مشترک
مثال: ISP میخواهد ترافیک ورودی از پورت یک مشترک را به ۲۰ مگابیت محدود کند:
policy-map LIMIT-20M-IN class class-default police cir 20000000 conform-action transmit exceed-action drop ! interface GigabitEthernet0/0/2 description Customer ACME service-policy input LIMIT-20M-IN
بهجای drop میتوانید ترافیک اضافه را با DSCP پایینتر علامت بزنید تا فقط در زمان ازدحام دور ریخته شود: exceed-action set-dscp-transmit default.
Shaping : هماهنگ شدن با سرعت لینک ISP
روتر شما با پورت گیگابیت به یک لینک ۵۰ مگابیتی وصل است. اگر ترافیک را با سرعت گیگ بفرستید، ISP مازاد را drop میکند و شما کنترلی ندارید که چه چیزی drop شود. با Shaping ، خودتان ترافیک را به ۵۰ مگابیت محدود میکنید تا صف و اولویتبندی روی روتر شما اتفاق بیفتد:
class-map match-any VOICE match dscp ef class-map match-any CRITICAL-APPS match dscp af31 ! policy-map WAN-CHILD class VOICE priority percent 20 class CRITICAL-APPS bandwidth percent 30 class class-default fair-queue ! policy-map WAN-PARENT class class-default shape average 50000000 service-policy WAN-CHILD ! interface GigabitEthernet0/0/0 description WAN to ISP 50M service-policy output WAN-PARENT
این همان ساختار Hierarchical QoS است: سیاست والد کل ترافیک را به ۵۰ مگابیت Shape میکند و سیاست فرزند داخل آن ۵۰ مگابیت، صدا را با LLQ (اولویت مطلق) و برنامههای حیاتی را با پهنای باند تضمینشده جلو میاندازد. سند سیسکو تأکید میکند در سیاستهای سلسلهمراتبی، در سطح والد باید از Shaping استفاده کرد نه Policing ، تا تضمینهای فرزند حفظ شود.
محدود کردن یک شبکه یا یک کاربر مشخص
ip access-list extended GUEST-NET permit ip 192.168.50.0 0.0.0.255 any class-map match-all GUEST match access-group name GUEST-NET ! policy-map LAN-IN class GUEST police cir 10000000 conform-action transmit exceed-action drop ! interface GigabitEthernet0/0/1 service-policy input LAN-IN
این سیاست کل شبکه مهمان را روی هم به ۱۰ مگابیت محدود میکند. اگر محدودیت برای هر کاربر جداگانه لازم است، روی روترهای IOS XE از قابلیت per-user policing ، یا در شبکه وایرلس از Rate Limit روی WLAN یا کلاینت کنترلر استفاده کنید.
روی سوئیچهای Catalyst
- سوئیچهای Catalyst 9000 هم MQC دارند: Policing روی ورودی پورتها و SVIها، و Shaping و صفبندی روی خروجی پورتها.
- سوئیچهای قدیمی مثل 2960 و 3750 از
mls qosو ساختار متفاوتی استفاده میکنند و Shaping محدودی دارند. - برای محدود کردن سیل broadcast روی پورت کاربر از
storm-controlاستفاده کنید که ابزار جداگانهای است.
دستورهای منسوخ
در آموزشهای قدیمی دستورهای rate-limit (Committed Access Rate) و traffic-shape (Generic Traffic Shaping) را میبینید. اینها روی IOS XE وجود ندارند و سیسکو صریحاً توصیه میکند هر جا پلتفرم پشتیبانی میکند از Class-Based Policing و Class-Based Shaping استفاده کنید.
بررسی
R1# show policy-map interface GigabitEthernet0/0/0
Service-policy output: WAN-PARENT
Class-map: class-default (match-any)
shape (average) cir 50000000, bc 200000, be 200000
(queue depth/total drops/no-buffer drops) 0/12/0
Service-policy : WAN-CHILD
Class-map: VOICE (match-any)
Priority: 20% (10000 kbps)
پرسشهای متداول
سرعت واقعی کاربر از عدد police کمتر است؛ چرا؟
drop Policer باعث کوچک شدن پنجره TCP میشود. Burst را بزرگتر کنید یا در سمت فرستنده Shape کنید.
میشود ترافیک ورودی از اینترنت را Shape کرد؟
نه روی اینترفیس ورودی؛ Shaping فقط خروجی است. برای ترافیک دانلود، روی اینترفیس LAN (خروجی به سمت کاربران) Shape کنید.
QoS برای صدا لازم است؟
روی لینکهای WAN که گاهی پر میشوند، بله؛ LLQ تضمین میکند صدا هیچوقت پشت دانلود منتظر نماند.
منابع رسمی
مطالب مرتبط: سیسکو NetFlow برای دیدن مصرفکنندگان پهنای باند و Control Plane Policing.
مشاوره با AKA NET
برای طراحی QoS ، کنترل پهنای باند و اولویتدهی صدا و تصویر روی شبکههای سیسکو با آکانت (AKA NET) تماس بگیرید.
تلفن: 09121308444 | ایمیل: aka@aka.ir | aka.ir