کنترل و رزرو پهنای باند
در یکی از پستهای قبلی به محدودکردن پهنای باند توسط MQC پرداختیم. پرسشی که بسیاری از دوستان مطرح کردند، به روش کنترل پهنای باند برای مصارف گوناگون نظیر رزرو عدد مشخصی برای ترافیک Voice یا یک سرور خاص بر میگشت. در این پست به اختصاص پهنای باند گارانتی برای سرویس خاص می پردازیم.
این روش نیز از MQC یا Modular QoS Command Line استفاده میکند. یعنی ترافیک مورد نظر را با کمک یک ACL یا NBAR یا هر روشی ابتدا برای سیسکو درون یک Class-Map تعریف میکنیم… سپس درون یک Policy-Map یک سیاست نظیر محدودکردن، گارانتی، Shape و غیره را روی آن ترافیک اعمال میکنیم. اما کار به اینجا تمام نمی شود چون باید Policy به یک Interface ربط داده تا ترافیک ورودی یا خروجی (یا هردو) را کنترل کند. پس دید ما در پیاده سازی MQC بصورت Interface ی است: ترافیک ورودی / خروجی پورت (یا پورت ها). ترافیک ورودی را Inbound و خروجی را با Outbound مشخص میکنیم.
نکته:
برخی از دستورات نظیر گارانتی پهنای باند که با دستور Bandwidth اعمال میگردند تنها در زمان Congenstion (کمبود پهنای باند) عمل میکنند. یعنی وقتی پهنای باند پر شد این دستور شروع به کار میکند و برای مصرف خاصی که در Class-map مشخص کرده اید حداقل پهنای باندی را رزرو میکند. اما سیسکو از کجا پهنای باند کل پورت را تشخیص میدهد تا Congestion را Detect کند؟ از روی پهنای باند کل Interface یعنی روی Interface Fast Ethernet که سرعت آن 100Mbps است وقتی مصرف به 96-98 مگ رسید Congestion تشخیص داده شده و دستور Bandwidth شروع به کار میکند که این برای بعضی کاربران مناسب نیست… زیرا که سرویس دهنده تنها 2 مگابیت به آنها اختصاص داده و Congestion باید روی سقف 2 Mbps تشخیص داده شود نه پهنای باند کل Interface.
برای این کار باید خودمان ترافیک خروجی خودمان را محدود کنیم. و درون این محدودیت (که با دستور Shape یا Policy انجام میشود) مقداری پهنای باند برای سرویس خاصی تخصیص دهیم.
در مثال زیر سرویس Voice ما از IP 10.0.0.10 استفاده میکند و میخواهیم روی پهنای باند 1mbps خود، 128kbps برای ترافیک Voice اختصاص دهیم:
!
ip access-list standard Voice
permit 10.0.0.10
!
class-map match-all Voice
match access-group name Voice
!
policy-map Voice
class Voice
bandwidth 128
!
policy-map Parent
class class-default
shape average 1000000
service-policy Voice
!
interface Ethernet0/0
ip address 172.16.35.5 255.255.255.0
service-policy output Parent
!
توجه داشته باشید که Interface ما Ethernet است یعنی پهنای باندی تا 10mbps را پشتیبانی میکند اگر بدون Policy Parent تنها Voice Policy را اعمال میکردیم وقتی پهنای باند 10 مگ پرمیشد تازه کار رزرو صورت میگرفت که زیاد به درد ما نمیخورد! چون پهنای باند ما هیچ وقت اجازه ندارد به این اندازه برسد… توسط سرویس دهنده محدود شده است. به این روش پیاده سازی Nested Model یا مدل تودرتو اجرای MQC میگویند. یک Policy کل پهنای باند خروجی را محدود میکند و Policy دیگر درون آن محدودیت، قانون دیگری وضع میکند…
R5#sh policy-map interface e0/0
Ethernet0/0
Service-policy output: Parent
Class-map: class-default (match-any)
9 packets, 828 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment
Rate Limit bits/int bits/int (ms) (bytes)
1000000/1000000 6250 25000 25000 25 3125
Adapt Queue Packets Bytes Packets Bytes Shaping
Active Depth Delayed Delayed Active
- 0 9 828 0 0 no
Service-policy : Voice
Class-map: Voice (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group name Voice
Queueing
Output Queue: Conversation 73
Bandwidth 128 (kbps)Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
9 packets, 828 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any












با تشکر از این پست، آیا می تونیم این solution رو اینطوری تفسیر کنیم که هیچ ترافیکی بیش از 1MB در ثانیه نمی تواند بگیرد و در کنار آن 128K هم برای voice همیشه محفوظ می ماند؟
ضمنآ آیا نباید بررسی کنیم که نوع ترافیک شبکه ما برای یک ترافیک خاص ممکن است به بیش از این مقدار shaping نیاز داشته باشد؟
حسین عزیز،
کل ترافیک خروجی ما به اینترنت به 1 مگابیت محدود شده (سرویس دهنده نیز نظیر همین محدودیت را برای ما در سمت خود قرارداده) از این بین اگر ترافیک Voice نباشد تمام 1 مگابیت برای همه مصارف قابل استفاده خواهد بود اما اگر ترافیک Voice در شبکه و پهنای باند به مرز خود رسیده باشد 128 کیلو بیت آن را به Voice داده و بقیه 768 کیلوبیت در اختیار انواع باقی ترافیک قرار میگیرد…
سلام
با تشکر از پست بسیار مفید
من فقط برای اجراش مشکل دارم!
همه command ها رو زدم فقط وقتی به این بخش میرسم
shape average 1000000
service-policy Voice
اصلا command اش نیست
دستگاه من 3550 هست با سیستم عامل
IOS ™ C3550 Software (C3550-I5Q3L2-M), Version 12.1(22)EA9, RELEASE SOFTWARE
(fc1)
اگر ممکن راهنمایی بفرمایید
بجای Shape مجبور خواهید بود از Police استفاده کنید. در ضمن 3550 ویژگی دستور Bandwidth برای رزرو کردن را پشتیبانی نمیکند. ضمن اینکه بسیاری از دیگر دستورات QOS برای سوییج لایه سه در Inbound اعمال میشود تا Outbound.
Cisco 3550 Marking & Policing
Understanding Cisco 3550 Queues
Cisco 3550 QoS Configuration Guide
آیا اگر هردو policy-map را یک کنیم نتیجه تفاوتی می کند؟ یعنی
policy-map x
class voice
band 128
class class-default
…shape
نه دو کلاس متفاوت در یک Policy با یک Policy بصورت Nested فرق بسیار دارد در مثال شما ترافیک Voice رزرو میشود و بقیه ترافیک محدود. از آنجا که Voice درست محدود نشده، روی پهنای باند کل Interface رزرو خواهد شد.
سلام
اگر ممکن است راجع به دستور rate limit و کاربردهای آن هم توضیح دهید. با تشکر
دستور Rate-limit فرم قدیمی Police است که به آن CAR میگوییم.
Committed Access Rate
http://www.cisco.com/en/US/docs/ios/11_1/feature/guide/CAR.html
با تشکر از راهنمایی خوبتون
حلا شما از 1mb 128kb رو به voice دادید.اگر بخواهیم 256kb رو به اتوماسیون یا اینترنت بدیم چی؟ایا همیشه این 128 تا برای voice رزرو میشه یا زمان ترافیک؟
ممنون
اگر به Comment دوم توجه کنید، ترافیک رزرو شده تنها در موقع لزوم مورد استفاده قرار میگیرد و در مواقعی که مصرفی ندارد کل پهنای باند برای بقیه مصارف قابل استفاده است. برای اتوماسیون یا هر مورد دیگری طبق مثال Class ساخته و درون Policy-map Voice آنرا مثل Voice صدا زده و با دستور Bandwidth میزان مورد علاقه خود را اختصاص دهید از نظر تعداد کلاس محدودیتی ندارید.
خیلی ممنونم اقای زندی
1-ایامن باید هر دو سمت روی روترم روی ماژول ATM دستور output رو بذارم.?یعنی config هر دو سمتم یکجوره؟
2-منظورتون از 1000000 در shape averege 1000000 چیه؟میشه در این مورد و parent توضیح بدید
خیلی خیلی ممنون
1. این شما هستی که باید ببینی در دوسمت لازم است یا خیر عموما در هرسمت استفاده میشود و ممکن است با پهنای باند و سیاست متفاوت.
2. 1000000 بیت برابر است با حدودا 1 مگابیت در ثانیه، Parent تنها یک اسم است… هر Policy نیاز به نام دارد.
سلام مهندس.خیلی شرمنده ام
در این قسمت از config شما یک policy تعریف کردید اونو در یک class کگذاشتید.اما میشه در مورد خط 3 و 4 توضیح بدید؟اگه 1مگابیت رو به این policy دادید پس 128 تای voice چی میشه؟
policy-map Parent
class class-default
shape average 1000000
service-policy Voice
ایا در این 4 خط شما یک policy جدید دادید؟
یک مگابیت کل Policy
کلاس Voice بخشی از این Policy است که در خط آخری که شما Paste کردید آمده است.
اگر متوجه موضوع نمیشوید ایرادی به شما وارد نیست… مباحث QoS عموما بعد از CCNP آموزش داده میشوند… به پیشنیاز آموزشی برای درک کامل آن نیاز دارید.
قدم به قدم…
خیلی خیلی شرمنده ام
پس میشه ببینید config که من نوشتم درسته یا نه
policy-map Voice
class Voice
bandwidth 512
!
policy-map internet
class internet
bandwidth 512
!
shape average 1000000
service-policy Voice
service-policy Voice
اگه درست نیست میشه راهنمایی کنید؟
خیلی ممنون
با سلام خدمت استاد گرامی
من یک شبکه Ptmp دارم که در نقطه مرکزی روتر 2800 با کارت E1 CHANELIZE است ودر هرشعبه هم روتر 1841 با مودم TELLABS با پهنای باند64K دارم که برای ارتباط VOICE و DATA بطور همزمان استفاده میشود. در هر مرکز 1عدد ipphone قرار دارد و در مرکز از سرور Asterisk با پروتکل sip استفاده میگردد و همچنین از کدک G729 استفاده میشود . برای تنظیم Qos و اینکه در زمان برقراری voip پهنای مورد نیاز آن حدود 20k گارانتی گردد من تنظیمات زیر را در روتر هر شعبه انجام دادم :آیا تنظیمات درست است؟
class-map match-all Voice
match access-group 105
!
policy-map Voice
class Voice
bandwidth 20
!
policy-map Parent
class class-default
shape average 64000
service-policy Voice تو در تو
!
interface Ethernet0/0
service-policy output Parent
interface s0/0
service-policy output Parent
access-list 105 permit udp any any eq 5060
access-list 105 permit udp any any range 16384 32767
1- آیا در روتر مرکزی تنظیماتی روی اترنت یا subinterfaceها نیاز میباشد؟ یا با این تنظیمات در روترهای شعبات کافی میباشد؟
2-آیا در سوییچهای داخل شبکه هر مرکز هم نیاز به تنظیماتی برای qos میباشد؟
با تشکر
محمد علی عزیز
کاملا صحیح است با دستور show policy-map interface میتوانید در هر لحظه نحوه عملکرد QOS را بررسی کنید.
با سلام
من یک شبکه اینترنت دارم با یه اکسس سرور5300 و تعدادی مشترک وایرلس. میخوام پهتای باند مصرفی وایرلسها رو محدود کنم .لطفا راهنمایی کنید. ممنون
Bandwidth Limit
با سلام خدمت استاد عزیز
من در ارتباط با کانفیگ ذیل چند سووال داشتم:
access-list 117 remark VOIP (SIP/IAX/IAX2) signaling gets ensured bandwidth (16)
access-list 117 permit udp any any eq 4569
access-list 117 permit udp any any eq 5036
access-list 117 permit udp any any eq 5060
access-list 118 remark VOIP (RTP) traffic gets top priority (5)
access-list 118 permit udp any any range 16384 32767
class-map match-all voice-traffic
match access-group 118
class-map match-all voice-signaling
match access-group 117
policy-map qos-voice
class voice-traffic
priority 240
class voice-signaling
bandwidth 16
policy-map qos-parent
class class-default
shape average 2000000
service-policy qos-voice
interface FastEthernet0/0.1
service-policy output qos-parent
1- چرا 2 تا class-map برای signalling , traffic ایجاد شده و جدا هستند
2- چرا برای voice-traffic از priority استفاده شده ولی برای voice-signalling از bandwith
و فرق بین priority و Bandwith چیست؟
با تشکر
دو کلاس ایجاد شده چون سیاست QOS برای ترافیک سیگنالینگ و ترافیک حامل Voice متفاوت است. به ترافیک Voice باید اولویت بیشتری داد تا بدون تاخیر ارسال شود (Priority) در حالیکه به ترافیک سیگنالینگ اولویت نداده تنها پهنای باند مشخصی را برای آن در زمان Congestion رزرو میکنیم.
با تشکر
آیا همیشه باید ترافیک voice را نسبت به سیگنالینگ اولویت بدیم حتی زمانی که ترافیک دیتا هم داریم و اینکه عدد 240 برای priority بر چه اساس انتخاب میشود؟
همیشه Voice به Voice Signalling اولویت باید داشته باشد. عدد مقابل آن میزان پهنای باندی است برای آن در نظر گرفته اید و به آن اولیت داده اید.
با تشکر از شما
آیا کانفیگ فوق برای گارانتی کردن voice در ارتباط همزمان دیتا و voice در روتر کافی میباشد؟
و اینکه در شبکه داخلی روی سوییچ ها هم نیاز به تنظیمی میباشد یا همین تنظیمات در روترها کافی است؟
بله کافی است. تنظیم QOS روی سوییچ مصارف خاصی دارد و در مورد شما، نیاز به این کار نیست.
استاد گرامی
رنج عددی که برای priority بکار میرود چه مقدار است و چگونه مشخص میگردد مثلا در این کانفیگ 240 در نظر گرفته شده است.
با تشکر
دو سوال بالاتر همین را پرسیدید و پاسخ دادم.
مشخص کننده پهنای باند مورد نیاز جهت اولویت است و پهنای باند Voice شما را مشخص میکند.
با تشکر از لطف و توجه شما
پس فرق priority با bandwith در این است که priority همزمان هم اولویت میدهد و هم پهنای باند را مشخص میکند
حال اگر ما بخواهیم بین چند ترافیک (voice وvideo ودیتاوسیگنالینگ) اولویت های مختلف بدهیم باز هم این روش قابل استفاده میباشد؟
منظورم از این سووال این است که چگونه برای priority درجه بندی برای اولویت دادن بدهیم.
با تشکر
دستور Bandwidth برای رزرو و دستور Priority برای اولویت دادن، دستور Police و Shape برای محدود کردن ترافیکی است که درون Class-map مشخص شده اند. اگر ترافیک بیشتر از حد نرخ مشخص شده باشد در دو مورد اول مورد اولویت یا رزرو (برای عیور سریع) قرار نمیگیرد و در موارد Police و Shape ترافیک مازاد ارسال نمیشود (یا با تاخیر ارسال میگردد)
با تشکر
آیااستفاده از دستور ip tcp header-compression iphc-format در اینترفیس سریال میتواند مفید باشد؟
با سلام خدمت استاد گرامی
آیا در قسمت class class-default نیاز به دستور fair-queue میباشد؟
با تشکر
با سلام خدمت استاد گرامی
شما در توضیحات روش MQC فرموده اید در روش تودر تو پهنای باند رزرو میگردد و کل پهنای باند پر نمیشود ولی زمانی که من تعاریف را انجام دادم و فایلی را روی دانلود گذاشتم کل پهنای باند پر شد SEND و RECIVE در اینترفیس سریال روتر به کل پهنای باند موجود رسید و پهنای باند رزرو شده ای برای VOICE کنار نگذاشت در صورت امکان راهنمایی فرمایید
با تشکر
این راهنما برای این کار کافی است و درست عمل میکند
بیشتر وقت بگزارید بیشتر تلاش کنید