مفهوم تقدم (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). در ادامه به توضیح هر یک از آنها و ارتباطشان میپردازیم:
-
Class of Service (CoS):
CoS یک مکانیزم لایه 2 (لایه پیوند داده) برای طبقهبندی و اولویتبندی ترافیک در شبکههای اترنت است. این مکانیزم از سه بیت در فیلد Priority Code Point (PCP) در هدر فریم اترنت (IEEE 802.1p) استفاده میکند که میتواند 8 سطح اولویت (0 تا 7) را فراهم کند. CoS به سوئیچها اجازه میدهد تا فریمها را بر اساس اولویتهای مختلف دستهبندی و پردازش کنند، اما تأثیری بر مسیریابی بستهها در لایه 3 (IP) ندارد.
-
Type of Service (ToS):
ToS یک فیلد در هدر پروتکل IP (لایه 3) است که برای تعیین اولویت بستهها و درخواست کیفیت خدمات استفاده میشود. این فیلد در ابتدا برای تعیین نوع سرویس مورد نظر (مانند تأخیر کم، توان عملیاتی بالا، قابلیت اطمینان بالا) طراحی شده بود. امروزه، بخش عمدهای از این فیلد توسط DSCP (Differentiated Services Code Point) جایگزین شده است که 6 بیت از فیلد ToS را برای طبقهبندی ترافیک استفاده میکند. IP Precedence که در بخش قبل توضیح داده شد، سه بیت اول از فیلد ToS را شامل میشود.
-
Quality of Service (QoS):
QoS یک مجموعه جامع از تکنیکها و ابزارها برای مدیریت ترافیک شبکه و اطمینان از ارائه کیفیت مناسب برای سرویسهای حساس مانند صدا، ویدیو و برنامههای تجاری حیاتی است. QoS شامل طیف وسیعی از مکانیزمها از جمله طبقهبندی (classification)، علامتگذاری (marking)، صفبندی (queuing)، شکلدهی ترافیک (traffic shaping) و اجتناب از ازدحام (congestion avoidance) است. هدف اصلی QoS، تضمین پهنای باند کافی، تأخیر کم، لرزش کم (low jitter) و از دست ندادن بسته برای ترافیکهای اولویتدار است. هر دو CoS و ToS/DSCP میتوانند به عنوان مکانیزمهای علامتگذاری (marking) در پیادهسازی QoS مورد استفاده قرار گیرند.
در واقع، CoS و ToS/DSCP ابزارهایی هستند که به ما کمک میکنند ترافیک را برچسبگذاری (mark) کنیم تا سیاستهای QoS بتوانند بر اساس آن ترافیک را مدیریت و اولویتبندی کنند. QoS یک مفهوم کلیتر است که شامل تمام فرآیندهای لازم برای تضمین عملکرد شبکه برای انواع مختلف ترافیک میشود.
---مقادیر Precedence، ToS و CoS در قالب لیست
برای درک بهتر مقادیر Precedence و ارتباط آنها با CoS و ToS، اطلاعات زیر را در قالب لیست مشاهده کنید:
مقادیر IP Precedence
این لیست مقادیر IP Precedence و کاربرد متداول آنها را نشان میدهد. سه بیت اول فیلد ToS در هدر IP برای این مقادیر استفاده میشود. هر "1" نشاندهنده بیت روشن و هر "0" نشاندهنده بیت خاموش است.
- Precedence 0 (000 - Routine):
- بیتهای روشن: 0
- بیتهای خاموش: 3
- کاربرد متداول: ترافیک عادی، بهترین تلاش (Best Effort)
- Precedence 1 (001 - Priority):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- کاربرد متداول: ترافیک با اولویت پایین (مثلاً دادههای پسزمینه)
- Precedence 2 (010 - Immediate):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- کاربرد متداول: ترافیک با اولویت متوسط
- Precedence 3 (011 - Flash):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- کاربرد متداول: ترافیک حساس به زمان (مثلاً تراکنشهای مهم)
- Precedence 4 (100 - Flash-Override):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- کاربرد متداول: ترافیک با اهمیت بالا (مثلاً کنترل ویدیو کنفرانس)
- Precedence 5 (101 - Critical):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- کاربرد متداول: ترافیک حیاتی (مثلاً ترافیک صوتی VoIP، کنترل شبکه)
- Precedence 6 (110 - Internetwork Control):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- کاربرد متداول: ترافیک کنترلی بینشبکهای (مثلاً پروتکلهای مسیریابی)
- Precedence 7 (111 - Network Control):
- بیتهای روشن: 3
- بیتهای خاموش: 0
- کاربرد متداول: ترافیک کنترلی شبکه (مثلاً نگهداری شبکه، بالاترین اولویت)
مقادیر Class of Service (CoS) در اترنت
این لیست مقادیر CoS را که در هدر 802.1Q (VLAN Tag) در لایه 2 اترنت استفاده میشود، نشان میدهد. هر "1" نشاندهنده بیت روشن و هر "0" نشاندهنده بیت خاموش است.
- CoS 0 (000 - Best Effort):
- بیتهای روشن: 0
- بیتهای خاموش: 3
- اولویت: Best Effort
- کاربرد متداول: ترافیک پیشفرض، بهترین تلاش
- CoS 1 (001 - Background):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- اولویت: Background
- کاربرد متداول: ترافیک پسزمینه (مثلاً بکاپ)
- CoS 2 (010 - Spare):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- اولویت: Spare
- کاربرد متداول: رزرو شده
- CoS 3 (011 - Excellent Effort):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- اولویت: Excellent Effort
- کاربرد متداول: ترافیک کسبوکار با کیفیت بالا
- CoS 4 (100 - Controlled Load):
- بیتهای روشن: 1
- بیتهای خاموش: 2
- اولویت: Controlled Load
- کاربرد متداول: ترافیک کنترل شده (مثلاً جریانهای ویدیویی)
- CoS 5 (101 - Video):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- اولویت: Video
- کاربرد متداول: ترافیک ویدیویی (تأخیر < 100ms)
- CoS 6 (110 - Voice):
- بیتهای روشن: 2
- بیتهای خاموش: 1
- اولویت: Voice
- کاربرد متداول: ترافیک صوتی (تأخیر < 10ms)
- CoS 7 (111 - Network Control):
- بیتهای روشن: 3
- بیتهای خاموش: 0
- اولویت: Network Control
- کاربرد متداول: ترافیک کنترلی شبکه (بالاترین اولویت)
آموزش گام به گام تنظیمات QoS در روترهای سیسکو
برای پیادهسازی QoS در روترهای سیسکو و استفاده از مفاهیم CoS، ToS و DSCP، مراحل زیر را دنبال کنید. این آموزش بر اساس سناریوی مثال قبلی و با رویکردی گام به گام و با توضیحات کامل ارائه میشود. فرض بر این است که شما به کنسول روتر سیسکو دسترسی دارید.
سناریوی مثال:
در این مثال، قصد داریم دو نوع ترافیک را مدیریت کنیم:
- ترافیک صوتی (VoIP): این ترافیک باید بالاترین اولویت را داشته باشد و 70% از پهنای باند را به خود اختصاص دهد. این ترافیک با DSCP EF (Expedited Forwarding) علامتگذاری میشود.
- ترافیک حیاتی با 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
توضیحات دقیق مراحل تنظیمات:
-
ورود به حالت Privileged EXEC:
اولین گام برای انجام هرگونه تغییر پیکربندی در روتر سیسکو، ورود به حالت Privileged EXEC است. این حالت با علامت # در خط فرمان مشخص میشود و امکان اجرای دستورات مدیریتی و دسترسی به حالتهای پیکربندی بالاتر را فراهم میکند.
Router> enable Router# -
ورود به حالت پیکربندی سراسری (Global Configuration Mode):
برای شروع پیکربندی تنظیمات QoS، باید وارد حالت Global Configuration Mode شوید. در این حالت میتوانید Class-Mapها، Policy-Mapها و سایر تنظیمات سراسری را تعریف کنید.
Router# configure terminal Router(config)# -
تعریف 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)# -
تعریف 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)# -
اعمال اولویت سختگیرانه به ترافیک صوتی در 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)# -
تعیین رفتار برای ترافیک پیشفرض (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)# -
اعمال 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)# -
تعریف 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)# -
تعریف 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)# -
تعریف 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)# -
تنظیم 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)# -
اعمال 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)# -
خروج از حالت پیکربندی:
برای بازگشت از حالت پیکربندی سراسری به حالت Privileged EXEC، از دستور end استفاده کنید.
Router(config)# end Router# -
ذخیره پیکربندی:
برای اینکه تمام تغییراتی که انجام دادهاید پس از راهاندازی مجدد روتر نیز حفظ شوند، باید آنها را در حافظه غیرفرار (NVRAM) روتر ذخیره کنید. این کار با دستور write memory (یا copy running-config startup-config) انجام میشود.
Router# write memory Building configuration... [OK] Router#
نتیجهگیری و اهمیت عملی
درک و پیادهسازی مفاهیم Precedence، CoS، ToS و QoS برای هر متخصص شبکه، به خصوص در محیطهای سازمانی که به عملکرد بالای شبکه و کیفیت خدمات برای برنامههای حساس نیاز دارند، بسیار حیاتی است. با استفاده از این مکانیزمها، میتوان ترافیک شبکه را به طور مؤثر مدیریت کرد، از ازدحام جلوگیری نمود و اطمینان حاصل کرد که سرویسهای حیاتی مانند VoIP، ویدیو کنفرانس و برنامههای کسبوکار بدون وقفه و با بهترین کیفیت ارائه میشوند.
این رویکرد نه تنها به بهبود تجربه کاربری کمک میکند، بلکه باعث بهینهسازی استفاده از منابع شبکه و افزایش پایداری کلی زیرساخت شبکه میشود. تخصص در این حوزه، از جمله توانایی طراحی و پیادهسازی QoS، یکی از مهارتهای کلیدی برای مهندسان شبکه و امنیت سایبری است. همانطور که میرعلی شهیدی، متخصص ارشد در حوزه مدیریت اطلاعات و امنیت شبکه، بیان کردهاند، این دانش پایه و اساس محکمی برای فعالیت در حوزه فناوری اطلاعات و امنیت سایبری فراهم میکند.