تقدم و کیفیت خدمات در شبکه‌های سیسکو

مفهوم تقدم (Precedence) در شبکه‌های سیسکو

در دنیای پویای شبکه‌های کامپیوتری، مدیریت صحیح ترافیک برای تضمین عملکرد بهینه و ارائه تجربه کاربری مطلوب ضروری است. یکی از مفاهیم کلیدی در این زمینه، تقدم (Precedence) است که به اولویت‌بندی بسته‌های داده در شبکه اشاره دارد. این اولویت‌بندی به سیستم‌های شبکه این امکان را می‌دهد تا بسته‌های داده با اهمیت بیشتر را سریع‌تر پردازش و ارسال کنند و در نتیجه، از تأخیر (latency) و از دست دادن بسته (packet loss) برای سرویس‌های حساس جلوگیری شود.

در شبکه‌های سیسکو، مفهوم تقدم به صورت خاص در پروتکل IP و در فیلد "Type of Service" (ToS) پیاده‌سازی می‌شود. فیلد ToS که در هدر IP قرار دارد، شامل 8 بیت است که از این 8 بیت، سه بیت اول برای تعیین تقدم بسته‌ها (IP Precedence) استفاده می‌شود. مقادیر این سه بیت می‌توانند از 0 تا 7 باشند که هرچه عدد بالاتر باشد، به معنای تقدم و اولویت بیشتری برای آن بسته داده است.

به عنوان مثال، ترافیک صوتی (Voice over IP - VoIP) و ویدیو کنفرانس به دلیل حساسیت بالا به تأخیر، نیاز به اولویت‌بندی بالاتری دارند. با استفاده از IP Precedence، می‌توان این نوع ترافیک‌ها را با مقادیر بالاتر (مانند 5 برای ترافیک صدا) علامت‌گذاری کرد تا روترها و سوئیچ‌ها آن‌ها را با اولویت بیشتری پردازش کنند. این قابلیت، نقشی حیاتی در تضمین کیفیت خدمات (QoS) برای برنامه‌های بلادرنگ (real-time applications) ایفا می‌کند.

---

مفاهیم CoS، ToS و QoS: تفاوت‌ها و ارتباطات

در شبکه‌های کامپیوتری، مدیریت ترافیک و کیفیت خدمات از اهمیت بالایی برخوردار است. سه مفهوم کلیدی در این زمینه که اغلب با یکدیگر اشتباه گرفته می‌شوند، عبارتند از: Class of Service (CoS)، Type of Service (ToS) و Quality of Service (QoS). در ادامه به توضیح هر یک از آن‌ها و ارتباطشان می‌پردازیم:

در واقع، CoS و ToS/DSCP ابزارهایی هستند که به ما کمک می‌کنند ترافیک را برچسب‌گذاری (mark) کنیم تا سیاست‌های QoS بتوانند بر اساس آن ترافیک را مدیریت و اولویت‌بندی کنند. QoS یک مفهوم کلی‌تر است که شامل تمام فرآیندهای لازم برای تضمین عملکرد شبکه برای انواع مختلف ترافیک می‌شود.

---

مقادیر Precedence، ToS و CoS در قالب لیست

برای درک بهتر مقادیر Precedence و ارتباط آن‌ها با CoS و ToS، اطلاعات زیر را در قالب لیست مشاهده کنید:

مقادیر IP Precedence

این لیست مقادیر IP Precedence و کاربرد متداول آن‌ها را نشان می‌دهد. سه بیت اول فیلد ToS در هدر IP برای این مقادیر استفاده می‌شود. هر "1" نشان‌دهنده بیت روشن و هر "0" نشان‌دهنده بیت خاموش است.

مقادیر Class of Service (CoS) در اترنت

این لیست مقادیر CoS را که در هدر 802.1Q (VLAN Tag) در لایه 2 اترنت استفاده می‌شود، نشان می‌دهد. هر "1" نشان‌دهنده بیت روشن و هر "0" نشان‌دهنده بیت خاموش است.

---

آموزش گام به گام تنظیمات QoS در روترهای سیسکو

برای پیاده‌سازی QoS در روترهای سیسکو و استفاده از مفاهیم CoS، ToS و DSCP، مراحل زیر را دنبال کنید. این آموزش بر اساس سناریوی مثال قبلی و با رویکردی گام به گام و با توضیحات کامل ارائه می‌شود. فرض بر این است که شما به کنسول روتر سیسکو دسترسی دارید.

سناریوی مثال:

در این مثال، قصد داریم دو نوع ترافیک را مدیریت کنیم:

  1. ترافیک صوتی (VoIP): این ترافیک باید بالاترین اولویت را داشته باشد و 70% از پهنای باند را به خود اختصاص دهد. این ترافیک با DSCP EF (Expedited Forwarding) علامت‌گذاری می‌شود.
  2. ترافیک حیاتی با IP Precedence: ترافیک شناسایی شده توسط یک Access List با IP Precedence 5 علامت‌گذاری شود.

! Configuration example for setting CoS, ToS and QoS on a Cisco router

enable
configure terminal

! Step 1: Define a class-map for voice traffic (DSCP EF for QoS classification)
class-map match-all VOICE_TRAFFIC
  match ip dscp ef

! Step 2: Define a policy-map for priority queuing and fair queuing (QoS policy)
policy-map HIGH_PRIORITY_POLICY
  class VOICE_TRAFFIC
    priority percent 70  ! Allocate 70% bandwidth with strict priority for voice traffic
  class class-default
    fair-queue          ! Apply fair queuing for all other traffic

! Step 3: Apply the policy-map to an interface (QoS enforcement for output)
interface GigabitEthernet0/0
  service-policy output HIGH_PRIORITY_POLICY

! Step 4: Define an access-list for specific traffic to be marked with IP Precedence
! This example uses 'any any' for simplicity; in production, define specific sources/destinations.
access-list 101 permit ip any any

! Step 5: Define a class-map to classify traffic based on the access-list
class-map match-all CRITICAL_DATA_CLASSIFICATION
  match access-group 101

! Step 6: Define a policy-map for marking IP Precedence
policy-map IP_PRECEDENCE_MARKING_POLICY
  class CRITICAL_DATA_CLASSIFICATION
    set ip precedence 5  ! Set IP Precedence to 5 (Critical)

! Step 7: Apply the IP Precedence marking policy to an interface (QoS enforcement for input)
interface GigabitEthernet0/1
  service-policy input IP_PRECEDENCE_MARKING_POLICY

! Step 8: Exit configuration mode and save settings
end
write memory
            

توضیحات دقیق مراحل تنظیمات:

  1. ورود به حالت Privileged EXEC:

    اولین گام برای انجام هرگونه تغییر پیکربندی در روتر سیسکو، ورود به حالت Privileged EXEC است. این حالت با علامت # در خط فرمان مشخص می‌شود و امکان اجرای دستورات مدیریتی و دسترسی به حالت‌های پیکربندی بالاتر را فراهم می‌کند.

    Router> enable
    Router#
  2. ورود به حالت پیکربندی سراسری (Global Configuration Mode):

    برای شروع پیکربندی تنظیمات QoS، باید وارد حالت Global Configuration Mode شوید. در این حالت می‌توانید Class-Mapها، Policy-Mapها و سایر تنظیمات سراسری را تعریف کنید.

    Router# configure terminal
    Router(config)#
  3. تعریف Class-Map برای ترافیک صوتی (DSCP EF - CoS/QoS Classification):

    Class-Map یک مکانیزم برای طبقه‌بندی (classification) ترافیک است. در اینجا یک Class-Map به نام VOICE_TRAFFIC ایجاد می‌کنیم. از دستور match-all استفاده می‌شود که به این معنی است که تمامی معیارهای تعریف شده در این Class-Map باید مطابقت داشته باشند تا ترافیک در این کلاس قرار گیرد (در این مثال، فقط یک معیار وجود دارد). سپس، مشخص می‌کنیم که این Class-Map، بسته‌های IP را که مقدار DSCP (Differentiated Services Code Point) آن‌ها برابر با EF (Expedited Forwarding) است، شناسایی کند. مقدار EF معمولاً برای ترافیک صوتی (VoIP) استفاده می‌شود و تضمین می‌کند که این ترافیک بالاترین اولویت را در شبکه دریافت کند.

    Router(config)# class-map match-all VOICE_TRAFFIC
    Router(config-cmap)# match ip dscp ef
    Router(config-cmap)# exit
    Router(config)#
  4. تعریف Policy-Map برای اولویت‌بندی و صف‌بندی ترافیک (QoS Policy):

    Policy-Map شامل سیاست‌ها و اقدامات (actions) مربوط به QoS است که بر روی ترافیک طبقه‌بندی شده توسط Class-Map اعمال می‌شود. در اینجا یک Policy-Map به نام HIGH_PRIORITY_POLICY ایجاد می‌کنیم.

    Router(config)# policy-map HIGH_PRIORITY_POLICY
    Router(config-pmap)#
  5. اعمال اولویت سخت‌گیرانه به ترافیک صوتی در Policy-Map:

    داخل Policy-Map، وارد کلاس VOICE_TRAFFIC می‌شویم. دستور priority percent 70 به روتر می‌گوید که 70 درصد از پهنای باند موجود در اینترفیسی که این Policy-Map بر روی آن اعمال می‌شود، به ترافیک صوتی اختصاص داده شود و این ترافیک باید با **اولویت سخت‌گیرانه (strict priority)** پردازش شود. این به معنای آن است که ترافیک صوتی همیشه قبل از سایر ترافیک‌ها پردازش و ارسال می‌شود و به این ترتیب، تأخیر و لرزش (jitter) برای آن به حداقل می‌رسد.

    Router(config-pmap)# class VOICE_TRAFFIC
    Router(config-pmap-c)# priority percent 70
    Router(config-pmap-c)# exit
    Router(config-pmap)#
  6. تعیین رفتار برای ترافیک پیش‌فرض (Other Traffic) در Policy-Map:

    دستور class class-default به Policy-Map می‌گوید که اقدامات بعدی بر روی تمام ترافیک‌هایی که در هیچ Class-Map دیگری (مانند VOICE_TRAFFIC) طبقه‌بندی نشده‌اند، اعمال شود. دستور fair-queue یک مکانیزم صف‌بندی است که اطمینان می‌دهد ترافیک‌های باقیمانده به صورت عادلانه در صف قرار گرفته و پهنای باند را به اشتراک بگذارند، تا هیچ جریانی به طور کامل از منابع محروم نشود.

    Router(config-pmap)# class class-default
    Router(config-pmap-c)# fair-queue
    Router(config-pmap-c)# exit
    Router(config-pmap)#
  7. اعمال Policy-Map به اینترفیس خروجی (QoS Enforcement for Output):

    Policy-Map تعریف شده (HIGH_PRIORITY_POLICY) را باید به یک اینترفیس خاص اعمال کنید تا QoS فعال شود. در اینجا، آن را بر روی اینترفیس GigabitEthernet0/0 در جهت خروجی (output) اعمال می‌کنیم. این بدان معناست که روتر این سیاست‌ها را بر روی ترافیکی که از این اینترفیس خارج می‌شود، اعمال خواهد کرد.

    Router(config)# interface GigabitEthernet0/0
    Router(config-if)# service-policy output HIGH_PRIORITY_POLICY
    Router(config-if)# exit
    Router(config)#
  8. تعریف Access-List برای طبقه‌بندی ترافیک (برای ToS/IP Precedence):

    برای طبقه‌بندی ترافیکی که قصد دارید IP Precedence آن را تغییر دهید، از یک Access-List استفاده می‌کنیم. در این مثال، access-list 101 permit ip any any به معنای مجاز شمردن (و در اینجا، شناسایی) تمامی ترافیک‌های IP است. در محیط‌های واقعی، شما باید یک Access-List دقیق‌تر برای شناسایی ترافیک مد نظر خود (مثلاً بر اساس آدرس‌های IP مبدأ و مقصد، پورت‌ها یا پروتکل‌ها) ایجاد کنید.

    Router(config)# access-list 101 permit ip any any
    Router(config)#
  9. تعریف Class-Map برای طبقه‌بندی ترافیک بر اساس Access-List:

    یک Class-Map جدید به نام CRITICAL_DATA_CLASSIFICATION ایجاد می‌کنیم. این Class-Map ترافیک‌هایی را که با access-group 101 (همان Access-List که قبلاً تعریف کردیم) مطابقت دارند، شناسایی می‌کند. این مرحله برای جداسازی ترافیکی که قصد علامت‌گذاری IP Precedence آن را داریم، ضروری است.

    Router(config)# class-map match-all CRITICAL_DATA_CLASSIFICATION
    Router(config-cmap)# match access-group 101
    Router(config-cmap)# exit
    Router(config)#
  10. تعریف Policy-Map برای علامت‌گذاری IP Precedence:

    یک Policy-Map جدید به نام IP_PRECEDENCE_MARKING_POLICY ایجاد می‌کنیم. این Policy-Map شامل قوانینی برای تغییر مقدار IP Precedence در هدر بسته‌های IP خواهد بود.

    Router(config)# policy-map IP_PRECEDENCE_MARKING_POLICY
    Router(config-pmap)#
  11. تنظیم IP Precedence در Policy-Map:

    وارد کلاس CRITICAL_DATA_CLASSIFICATION در این Policy-Map می‌شویم. دستور set ip precedence 5 به روتر می‌گوید که برای تمامی بسته‌هایی که در این کلاس قرار می‌گیرند، مقدار **IP Precedence** را در هدر IP به 5 (Critical) تغییر دهد. این مقدار، بسته‌ها را به عنوان ترافیک حیاتی علامت‌گذاری می‌کند.

    Router(config-pmap)# class CRITICAL_DATA_CLASSIFICATION
    Router(config-pmap-c)# set ip precedence 5
    Router(config-pmap-c)# exit
    Router(config-pmap)#
  12. اعمال Policy-Map به اینترفیس ورودی (ToS Enforcement for Input):

    Policy-Map IP_PRECEDENCE_MARKING_POLICY را به اینترفیس GigabitEthernet0/1 در جهت ورودی (input) اعمال می‌کنیم. این به معنای آن است که روتر ترافیکی را که از این اینترفیس وارد می‌شود، بازرسی کرده و بر اساس قوانین تعریف شده، IP Precedence آن را تغییر می‌دهد. علامت‌گذاری در جهت ورودی معمولاً برای اطمینان از اینکه بسته‌ها قبل از مسیریابی در شبکه داخلی با اولویت صحیح علامت‌گذاری شده‌اند، استفاده می‌شود.

    Router(config)# interface GigabitEthernet0/1
    Router(config-if)# service-policy input IP_PRECEDENCE_MARKING_POLICY
    Router(config-if)# exit
    Router(config)#
  13. خروج از حالت پیکربندی:

    برای بازگشت از حالت پیکربندی سراسری به حالت Privileged EXEC، از دستور end استفاده کنید.

    Router(config)# end
    Router#
  14. ذخیره پیکربندی:

    برای اینکه تمام تغییراتی که انجام داده‌اید پس از راه‌اندازی مجدد روتر نیز حفظ شوند، باید آن‌ها را در حافظه غیرفرار (NVRAM) روتر ذخیره کنید. این کار با دستور write memory (یا copy running-config startup-config) انجام می‌شود.

    Router# write memory
    Building configuration...
    [OK]
    Router#
---

نتیجه‌گیری و اهمیت عملی

درک و پیاده‌سازی مفاهیم Precedence، CoS، ToS و QoS برای هر متخصص شبکه، به خصوص در محیط‌های سازمانی که به عملکرد بالای شبکه و کیفیت خدمات برای برنامه‌های حساس نیاز دارند، بسیار حیاتی است. با استفاده از این مکانیزم‌ها، می‌توان ترافیک شبکه را به طور مؤثر مدیریت کرد، از ازدحام جلوگیری نمود و اطمینان حاصل کرد که سرویس‌های حیاتی مانند VoIP، ویدیو کنفرانس و برنامه‌های کسب‌وکار بدون وقفه و با بهترین کیفیت ارائه می‌شوند.

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