مفهوم QOS
QOS یا Quality Of Service ویژگی است که با آن می توان یک سری مدییریت ها و محدودیت هایی روی ترافیک عبوری از روتر اعمال کرد به طوری که اگر ترافیکی در شرایط از قبل مشخص شده تطابق پیدا کرد سیاست تعیین شده مربوط به آن روی آن ترافیک اعمال گردد . این سیاست ها توسط مدیر شبکه و با توجه به نیاز های شبکه تعیین می شود .در روتر سودار شما می توانید با استفاده از QOS محدودیت در پهنای بند استفاده شده برای کاربران و یاشبکه های خاص اعمال کنید .
آموزش راه اندازی QOS در سودار
مثال : فرض کنید قصد داریم که ترافیک 2.1.1.10 به مقصد 1.1.1.10 را به پهنای باند 2Mb/s محدود کنیم :
ابتدا باید یک class-map ایجاد کنیم که در آن مشخص شود چه ترافیک هایی را می خواهیم محدود کنیم و سپس سیاستی را که روی آن ترافیک قرار است اعمال شود مشخص کرده و در نهایت آن را در اینترفیس مورد نظر اعمال کنیم .
ایجاد class-map
با class-map ترافیک هدف خود را انتخاب می کنیم . می توانید از destination address یا source address یا access-list و یا ترکیبی از همه این ها استفاده کنید .در اینجا ما از source address , destination address استفاده کرده ایم :
soodar2(config)# class-map cmap
soodar2(config-cmap)# match destination-address 1.1.1.10/32
soodar2(config-cmap)# match source-address 2.1.1.10/32
نکته
دقت شود که class-map را می توان در دو حالت match-all و match-any ایجاد کرد . در حالت اول اگر تمامی رول های اضافه شده در class-map به طور همزمان در بسته ورودی تطبیق پیدا کند سیاست مورد نظر در آن اعمال می شود اما در حالت دوم کافی است یکی از رول های تعریف شده در class-map در بسته تطبیق پیدا کند (match شود) تا سیاست مورد نظر در آن اعمال گردد . حالت پیش فرض match-all می باشد .
اگر در یک policy ما دو یا چند کلاس داشته باشیم که رول های آن ها همپوشانی باشد policer آخرین کلاسی که ترافیک در آن match شود اعمال می شود
ایجاد policy
Traffic policing
در این بخش باید یک policy-map ایجاد کنیم در آن class-map که در مرحله قبل ایجاد شده را ، اضافه کنیم .سپس یک policy ایجاد کنیم که در آن حداکثر پهنای باند را مشخص می کنیم .
soodar2(config)# policy-map pmap
soodar2(config-pmap)# class cmap
soodar2(config-pmap-c)# police 2M conform-action transmit exceed-action drop
در این دستور مشخص می شود که ترافیک تا 2M بدون مشکل انتقال یابد.اما اجازه نمی دهد که ترافیک بیشتر از 2M شود و ترافیک مازاد drop می شود.
در یک policy-map، میتوانید ویژگیهای دیگر QoS مانند shaping، تخصیص bandwidth، priority را پیکربندی کنید. این ویژگیها را میتوان برای برآورده کردن نیازهای خاص شبکه تنظیم کرد و میتوان از آنها برای اطمینان از اولویتبندی ترافیک حیاتی نسبت به ترافیک کماهمیتتر استفاده کرد که منجر به استفاده کارآمدتر از منابع شبکه میشود.
Traffic shaping
shaping یک مکانیزم QoS است که برای کنترل نرخ انتقال دادهها در یک شبکه استفاده میشود. این مکانیزم برای روانسازی انفجارهای ترافیک و اطمینان از عدم ازدحام شبکه استفاده میشود. شکلدهی ترافیک با به تأخیر انداختن بستههایی که از نرخ مشخصی تجاوز میکنند، عمل میکند و به آنها اجازه میدهد با نرخ کمتری منتقل شوند.
دستور shape در یک policy-map برای تعریف shaping ترافیک که باید برای یک کلاس خاص انجام شود، استفاده میشود. RATE: نرخ میانگینی که ترافیک باید در آن shape شود، بر حسب بیت در ثانیه (bps). این نرخ میتواند مقداری بین ۸۰۰۰ تا ۱۰۰۰۰۰۰۰۰۰۰ (8 کیلوبیت بر ثانیه تا 10 گیگابیت بر ثانیه) باشد. میتوان آن را به شکل ۱M، ۱G و غیره وارد کرد.
shape avreage RATE
مثال:
soodar(config)# class-map cmap1
soodar(config-cmap)# match protocol http
soodar(config)# policy-map pmap1
soodar(config-pmap)# class cmap1
soodar(config-pmap-c)# shape average 10M
priority queuing
priority یک مکانیزم QoS است که برای تضمین پهنای باند و اولویتبندی انتقال انواع خاصی از ترافیک نسبت به سایرین استفاده میشود. این مکانیزم برای اطمینان از اولویت دادن به ترافیک حیاتی، مانند صدا یا تصویر، نسبت به ترافیک کماهمیتتر، مانند انتقال فایل یا بهروزرسانی نرمافزار، استفاده میشود. هنگامی که نرخ ترافیک اولویتدار خروجی از پهنای باند اختصاص داده شده بیشتر شود، ترافیک اضافی حذف میشود.
دستور priority در یک policy-map برای تعریف اقدام صفبندی اولویتدار که باید برای یک کلاس خاص انجام شود، استفاده میشود.
priority BPS
BPS: پهنای باند بر حسب بیت در ثانیه (bps) که باید به صف اولویتدار اختصاص داده شود. میتوان آن را به شکل 1M، 1G و غیره وارد کرد.
دستور درصد priority در یک policy-map برای تعریف اقدام صفبندی اولویتدار که باید برای یک کلاس خاص انجام شود، استفاده میشود.
priority percent PERCENT
PERCENT: درصد کل پهنای باندی که باید به صف اولویتدار اختصاص داده شود.
مثال:
soodar(config)# class-map cmap1
soodar(config-cmap)# match protocol icmp
soodar(config)# policy-map pmap1
soodar(config-pmap)# class cmap1
soodar(config-pmap-c)# priority 1M
این دستور ۱ مگابیت بر ثانیه پهنای باند را به صف اولویتدار پروتکل icmp اختصاص میدهد. هنگامی که نرخ ترافیک اولویتدار خروجی از ۱ مگابیت بر ثانیه بیشتر شود، ترافیک اضافی حذف میشود.
bandwidth
تخصیص پهنای باند یک مکانیزم QoS است که برای اختصاص مقدار مشخصی از پهنای باند به یک کلاس خاص از ترافیک استفاده میشود. این مکانیزم برای اطمینان از دریافت پهنای باند لازم توسط ترافیک در طول ازدحام برای عملکرد صحیح استفاده میشود. SoodarOS از الگوریتم صفبندی عادلانه وزندار (WFQ) برای تخصیص پهنای باند برای کلاسهای مختلف ترافیک استفاده میکند. هنگامی که هیچ ازدحامی وجود ندارد، نرخ ترافیک محدود نمیشود.
دستور پهنای باند در یک policy-map برای تعریف bandwidth که باید برای یک کلاس خاص انجام شود، استفاده میشود.
bandwidth BPS
BPS: پهنای باند بر حسب بیت در ثانیه (bps) که باید به کلاس اختصاص داده شود. میتوان آن را به شکل 1M، 1G و غیره وارد کرد.
دستور درصد پهنای باند در یک policy-map برای تعریفbandwidth که باید برای یک کلاس خاص انجام شود، استفاده میشود.
bandwidth percent PERCENT
PERCENT: درصد کل پهنای باند که باید به کلاس اختصاص داده شود.
مثال:
soodar(config)# class-map cmap1
soodar(config-cmap)# match protocol udp
soodar(config)# policy-map pmap1
soodar(config-pmap)# class cmap1
soodar(config-pmap-c)# bandwidth 1M
این دستور در زمان ازدحام، پهنای باند ۱ مگابیت بر ثانیه را به پروتکل کلاس udp اختصاص میدهد.
policy |
Guaranteed bandwidth |
Maximum bandwidth |
Exceed action |
Priority |
---|---|---|---|---|
policing |
0 |
User Defined |
Drop or mark |
No |
shaping |
0 |
User Defined |
Queue |
No |
priority |
User Defined |
User Defined |
Drop |
Yes |
bandwidth |
User Defined |
Infinite |
Queue |
No |
اعمال policy در اینترفیس
سیاست ها تا زمانی که در اینترفیس اعمال نشوند روی ترافیک تاثیری ندارند . با وارد شدن به تنظیمات اینترفیس و انتخاب policy ایجاد شده (pmap) می توانید به شکل زیر سیاست مورد نظر را در اینترفیس اعمال کنید :
soodar2(config-pmap)# int ge2
soodar2(config-if)# service-policy pmap in
بررسی عملکرد QOS
برای نمونه ftpserver را در 2.1.1.10 اجرا کرده و فایل را از 1.1.1.10 دانلود میکنیم .
باید سرعت دریافت فایل حدود 2Mb/s باشد .
با حذف policy سرعت دانلود فایل به حالت عادی برگردد با دستور :
soodar2(config-if)# service-policy pmap in
مشاهده policy ها در روتر
با استفاده از دستور زیر لیست تمامی policy های موجود در روتر را می توانید مشا هده کنید . اگر نام یک policy خاص را در انتهای دستور وارد کنید می توانید تنها همان policy را مشادهد کنید :
soodar2# sh policy-map
Policy Map pamp
Class cmap
Police CIR 2097152 (bps) CB 524288 (byte) EB 734003 (byte)
Conform Action : Transmit
Exceed Action : Drop
فعال کردن log های qos
با دستور زیر می توانید Log های مربوط به qos را فعال کنید:
soodar1# debug qos event