کنترل و رزرو پهنای باند

در یکی از پستهای  قبلی به محدودکردن پهنای باند توسط 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

~ توسط Shafagh در اکتبر 9, 2009.

33 پاسخ to “کنترل و رزرو پهنای باند”

  1. با تشکر از این پست، آیا می تونیم این solution رو اینطوری تفسیر کنیم که هیچ ترافیکی بیش از 1MB در ثانیه نمی تواند بگیرد و در کنار آن 128K هم برای voice همیشه محفوظ می ماند؟
    ضمنآ آیا نباید بررسی کنیم که نوع ترافیک شبکه ما برای یک ترافیک خاص ممکن است به بیش از این مقدار shaping نیاز داشته باشد؟

  2. حسین عزیز،
    کل ترافیک خروجی ما به اینترنت به 1 مگابیت محدود شده (سرویس دهنده نیز نظیر همین محدودیت را برای ما در سمت خود قرارداده) از این بین اگر ترافیک Voice نباشد تمام 1 مگابیت برای همه مصارف قابل استفاده خواهد بود اما اگر ترافیک Voice در شبکه و پهنای باند به مرز خود رسیده باشد 128 کیلو بیت آن را به Voice داده و بقیه 768 کیلوبیت در اختیار انواع باقی ترافیک قرار میگیرد…

  3. سلام
    با تشکر از پست بسیار مفید
    من فقط برای اجراش مشکل دارم!
    همه command ها رو زدم فقط وقتی به این بخش میرسم
    shape average 1000000
    service-policy Voice
    اصلا command اش نیست
    دستگاه من 3550 هست با سیستم عامل
    IOS ™ C3550 Software (C3550-I5Q3L2-M), Version 12.1(22)EA9, RELEASE SOFTWARE
    (fc1)
    اگر ممکن راهنمایی بفرمایید

  4. بجای Shape مجبور خواهید بود از Police استفاده کنید. در ضمن 3550 ویژگی دستور Bandwidth برای رزرو کردن را پشتیبانی نمیکند. ضمن اینکه بسیاری از دیگر دستورات QOS برای سوییج لایه سه در Inbound اعمال میشود تا Outbound.

    Cisco 3550 Marking & Policing

    Understanding Cisco 3550 Queues

    Cisco 3550 QoS Configuration Guide

  5. آیا اگر هردو policy-map را یک کنیم نتیجه تفاوتی می کند؟ یعنی
    policy-map x
    class voice
    band 128
    class class-default
    …shape

  6. نه دو کلاس متفاوت در یک Policy با یک Policy بصورت Nested فرق بسیار دارد در مثال شما ترافیک Voice رزرو میشود و بقیه ترافیک محدود. از آنجا که Voice درست محدود نشده، روی پهنای باند کل Interface رزرو خواهد شد.

  7. سلام
    اگر ممکن است راجع به دستور rate limit و کاربردهای آن هم توضیح دهید. با تشکر

  8. دستور Rate-limit فرم قدیمی Police است که به آن CAR میگوییم.

    Committed Access Rate
    http://www.cisco.com/en/US/docs/ios/11_1/feature/guide/CAR.html

  9. با تشکر از راهنمایی خوبتون
    حلا شما از 1mb 128kb رو به voice دادید.اگر بخواهیم 256kb رو به اتوماسیون یا اینترنت بدیم چی؟ایا همیشه این 128 تا برای voice رزرو میشه یا زمان ترافیک؟
    ممنون

  10. اگر به Comment دوم توجه کنید، ترافیک رزرو شده تنها در موقع لزوم مورد استفاده قرار میگیرد و در مواقعی که مصرفی ندارد کل پهنای باند برای بقیه مصارف قابل استفاده است. برای اتوماسیون یا هر مورد دیگری طبق مثال Class ساخته و درون Policy-map Voice آنرا مثل Voice صدا زده و با دستور Bandwidth میزان مورد علاقه خود را اختصاص دهید از نظر تعداد کلاس محدودیتی ندارید.

  11. خیلی ممنونم اقای زندی
    1-ایامن باید هر دو سمت روی روترم روی ماژول ATM دستور output رو بذارم.?یعنی config هر دو سمتم یکجوره؟
    2-منظورتون از 1000000 در shape averege 1000000 چیه؟میشه در این مورد و parent توضیح بدید
    خیلی خیلی ممنون

  12. 1. این شما هستی که باید ببینی در دوسمت لازم است یا خیر عموما در هرسمت استفاده میشود و ممکن است با پهنای باند و سیاست متفاوت.
    2. 1000000 بیت برابر است با حدودا 1 مگابیت در ثانیه، Parent تنها یک اسم است… هر Policy نیاز به نام دارد.

  13. سلام مهندس.خیلی شرمنده ام
    در این قسمت از config شما یک policy تعریف کردید اونو در یک class کگذاشتید.اما میشه در مورد خط 3 و 4 توضیح بدید؟اگه 1مگابیت رو به این policy دادید پس 128 تای voice چی میشه؟
    policy-map Parent
    class class-default
    shape average 1000000
    service-policy Voice
    ایا در این 4 خط شما یک policy جدید دادید؟

  14. یک مگابیت کل Policy
    کلاس Voice بخشی از این Policy است که در خط آخری که شما Paste کردید آمده است.
    اگر متوجه موضوع نمیشوید ایرادی به شما وارد نیست… مباحث QoS عموما بعد از CCNP آموزش داده میشوند… به پیشنیاز آموزشی برای درک کامل آن نیاز دارید.
    قدم به قدم…

  15. خیلی خیلی شرمنده ام
    پس میشه ببینید config که من نوشتم درسته یا نه

    policy-map Voice
    class Voice
    bandwidth 512
    !
    policy-map internet
    class internet
    bandwidth 512
    !

    shape average 1000000
    service-policy Voice
    service-policy Voice
    اگه درست نیست میشه راهنمایی کنید؟
    خیلی ممنون

  16. با سلام خدمت استاد گرامی
    من یک شبکه 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 میباشد؟
    با تشکر

  17. محمد علی عزیز
    کاملا صحیح است با دستور show policy-map interface میتوانید در هر لحظه نحوه عملکرد QOS را بررسی کنید.

  18. با سلام
    من یک شبکه اینترنت دارم با یه اکسس سرور5300 و تعدادی مشترک وایرلس. میخوام پهتای باند مصرفی وایرلسها رو محدود کنم .لطفا راهنمایی کنید. ممنون

  19. Bandwidth Limit

  20. با سلام خدمت استاد عزیز

    من در ارتباط با کانفیگ ذیل چند سووال داشتم:

    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 چیست؟

    با تشکر

  21. دو کلاس ایجاد شده چون سیاست QOS برای ترافیک سیگنالینگ و ترافیک حامل Voice متفاوت است. به ترافیک Voice باید اولویت بیشتری داد تا بدون تاخیر ارسال شود (Priority) در حالیکه به ترافیک سیگنالینگ اولویت نداده تنها پهنای باند مشخصی را برای آن در زمان Congestion رزرو میکنیم.

  22. با تشکر
    آیا همیشه باید ترافیک voice را نسبت به سیگنالینگ اولویت بدیم حتی زمانی که ترافیک دیتا هم داریم و اینکه عدد 240 برای priority بر چه اساس انتخاب میشود؟

  23. همیشه Voice به Voice Signalling اولویت باید داشته باشد. عدد مقابل آن میزان پهنای باندی است برای آن در نظر گرفته اید و به آن اولیت داده اید.

  24. با تشکر از شما
    آیا کانفیگ فوق برای گارانتی کردن voice در ارتباط همزمان دیتا و voice در روتر کافی میباشد؟
    و اینکه در شبکه داخلی روی سوییچ ها هم نیاز به تنظیمی میباشد یا همین تنظیمات در روترها کافی است؟

  25. بله کافی است. تنظیم QOS روی سوییچ مصارف خاصی دارد و در مورد شما، نیاز به این کار نیست.

  26. استاد گرامی
    رنج عددی که برای priority بکار میرود چه مقدار است و چگونه مشخص میگردد مثلا در این کانفیگ 240 در نظر گرفته شده است.
    با تشکر

  27. دو سوال بالاتر همین را پرسیدید و پاسخ دادم.
    مشخص کننده پهنای باند مورد نیاز جهت اولویت است و پهنای باند Voice شما را مشخص میکند.

  28. با تشکر از لطف و توجه شما
    پس فرق priority با bandwith در این است که priority همزمان هم اولویت میدهد و هم پهنای باند را مشخص میکند
    حال اگر ما بخواهیم بین چند ترافیک (voice وvideo ودیتاوسیگنالینگ) اولویت های مختلف بدهیم باز هم این روش قابل استفاده میباشد؟
    منظورم از این سووال این است که چگونه برای priority درجه بندی برای اولویت دادن بدهیم.
    با تشکر

  29. دستور Bandwidth برای رزرو و دستور Priority برای اولویت دادن، دستور Police و Shape برای محدود کردن ترافیکی است که درون Class-map مشخص شده اند. اگر ترافیک بیشتر از حد نرخ مشخص شده باشد در دو مورد اول مورد اولویت یا رزرو (برای عیور سریع) قرار نمیگیرد و در موارد Police و Shape ترافیک مازاد ارسال نمیشود (یا با تاخیر ارسال میگردد)

  30. با تشکر
    آیااستفاده از دستور ip tcp header-compression iphc-format در اینترفیس سریال میتواند مفید باشد؟

  31. با سلام خدمت استاد گرامی
    آیا در قسمت class class-default نیاز به دستور fair-queue میباشد؟
    با تشکر

  32. با سلام خدمت استاد گرامی
    شما در توضیحات روش MQC فرموده اید در روش تودر تو پهنای باند رزرو میگردد و کل پهنای باند پر نمیشود ولی زمانی که من تعاریف را انجام دادم و فایلی را روی دانلود گذاشتم کل پهنای باند پر شد SEND و RECIVE در اینترفیس سریال روتر به کل پهنای باند موجود رسید و پهنای باند رزرو شده ای برای VOICE کنار نگذاشت در صورت امکان راهنمایی فرمایید
    با تشکر

  33. این راهنما برای این کار کافی است و درست عمل میکند
    بیشتر وقت بگزارید بیشتر تلاش کنید

پاسخی بگذارید