مفهوم تقدم (Precedence) در شبکههای سیسکو
تقدم یا Precedence در شبکههای کامپیوتری به اولویتبندی بستههای داده در شبکه اشاره دارد. این اولویتبندی کمک میکند تا بستههای داده با اهمیت بیشتر سریعتر پردازش و ارسال شوند. در شبکههای سیسکو، تقدم به صورت خاص در پروتکل IP و در فیلد "Type of Service" (ToS) پیادهسازی میشود. فیلد ToS شامل ۸ بیت است که سه بیت اول آن برای تعیین تقدم بستهها استفاده میشود.
مقادیر این سه بیت میتوانند از 0 تا 7 باشند که هرچه عدد بالاتر باشد، تقدم بیشتر است. این تقدم به روترها و سوئیچها کمک میکند تا بستههای مهمتر را با اولویت بیشتری پردازش کنند، که این امر برای سرویسهایی مانند VoIP و ویدیو کنفرانس حیاتی است.
مفاهیم CoS، ToS و QoS
در شبکههای کامپیوتری، مدیریت ترافیک و کیفیت خدمات از اهمیت بالایی برخوردار است. سه مفهوم کلیدی در این زمینه عبارتند از:
- Class of Service (CoS): CoS مکانیزمی برای طبقهبندی ترافیک در شبکههای اترنت است. این مکانیزم بر اساس اولویتهای مختلف بستهها را دستهبندی و پردازش میکند.
- Type of Service (ToS): ToS یک فیلد در هدر پروتکل IP است که برای تعیین اولویت بستهها و کیفیت خدمات استفاده میشود. این فیلد به هشت بیت تقسیم میشود که سه بیت اول آن برای تعیین تقدم بستهها استفاده میشود.
- Quality of Service (QoS): QoS مجموعهای از تکنیکها و ابزارها برای مدیریت ترافیک شبکه و اطمینان از ارائه کیفیت مناسب برای سرویسهای حساس مانند صدا و ویدیو است.
مثال کدنویسی تنظیم CoS، ToS و QoS در روترهای سیسکو
! Configuration example for setting CoS, ToS and QoS on a Cisco router
enable
configure terminal
! Define a class-map for voice traffic (CoS)
class-map match-all VOICE
match ip dscp ef
! Define a policy-map and assign the class-map to it (QoS)
policy-map PRIORITY
class VOICE
priority percent 70
class class-default
fair-queue
! Apply the policy-map to an interface (QoS)
interface GigabitEthernet0/0
service-policy output PRIORITY
! Configure ToS for a specific IP address
access-list 101 permit ip any any
class-map match-all TOS
match access-group 101
policy-map TOS-POLICY
class TOS
set ip precedence 5
interface GigabitEthernet0/1
service-policy input TOS-POLICY
end
write memory
توضیح دستور کد
در این بخش، کد نمونهای برای تنظیم CoS، ToS و QoS در روترهای سیسکو آورده شده است. بیایید هر بخش را با جزئیات توضیح دهیم:
! ورود به حالت enable
Router> enable
! ورود به حالت پیکربندی جهانی
Router# configure terminal
! تعریف یک کلاس نقشه (class-map) به نام VOICE که تمام بستههای داده با DSCP برابر EF (Expedited Forwarding) را تطبیق میدهد (CoS)
Router(config)# class-map match-all VOICE
Router(config-cmap)# match ip dscp ef
! تعریف یک سیاست نقشه (policy-map) به نام PRIORITY که دارای دو کلاس است: کلاس VOICE و کلاس پیشفرض (QoS)
Router(config)# policy-map PRIORITY
Router(config-pmap)# class VOICE
Router(config-pmap-c)# priority percent 70
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# fair-queue
Router(config-pmap-c)# exit
! اعمال سیاست نقشه PRIORITY به اینترفیس GigabitEthernet0/0 برای خروجی بستهها (QoS)
Router(config)# interface GigabitEthernet0/0
Router(config-if)# service-policy output PRIORITY
Router(config-if)# exit
! پیکربندی ToS برای یک آدرس IP خاص
Router(config)# access-list 101 permit ip any any
Router(config)# class-map match-all TOS
Router(config-cmap)# match access-group 101
! تعریف یک سیاست نقشه (policy-map) به نام TOS-POLICY که شامل کلاس TOS است (ToS)
Router(config)# policy-map TOS-POLICY
Router(config-pmap)# class TOS
Router(config-pmap-c)# set ip precedence 5
Router(config-pmap-c)# exit
! اعمال سیاست نقشه TOS-POLICY به اینترفیس GigabitEthernet0/1 برای ورودی بستهها (ToS)
Router(config)# interface GigabitEthernet0/1
Router(config-if)# service-policy input TOS-POLICY
Router(config-if)# exit
! خروج از حالت پیکربندی
Router(config)# end
Router# write memory
Router> enable: این دستور روتر را به حالت enable میبرد که دسترسی به دستورات مدیریتی و پیکربندی را فراهم میکند.
Router# configure terminal: این دستور روتر را به حالت پیکربندی جهانی میبرد تا بتوان دستورات پیکربندی را وارد کرد.
Router(config)# class-map match-all VOICE: این دستور یک کلاس نقشه به نام "VOICE" ایجاد میکند که تمام بستههای دادهای که DSCP آنها برابر EF است را تطبیق میدهد (CoS).
Router(config-cmap)# match ip dscp ef: این دستور بستههای دادهای که DSCP آنها برابر EF است را تطبیق میدهد.
Router(config)# policy-map PRIORITY: این دستور یک سیاست نقشه به نام "PRIORITY" ایجاد میکند که دو کلاس را شامل میشود: کلاس "VOICE" و کلاس پیشفرض (QoS).
Router(config-pmap)# class VOICE: این دستور کلاس "VOICE" را به سیاست نقشه "PRIORITY" اضافه میکند.
Router(config-pmap-c)# priority percent 70: این دستور مشخص میکند که ۷۰ درصد از پهنای باند برای ترافیک کلاس "VOICE" اختصاص داده شود و این ترافیک با اولویت بالاتری پردازش شود.
Router(config-pmap)# class class-default: این دستور کلاس پیشفرض را به سیاست نقشه "PRIORITY" اضافه میکند.
Router(config-pmap-c)# fair-queue: این دستور برای کلاس پیشفرض (تمام ترافیکهایی که در کلاسهای دیگر نیستند) صفبندی منصفانه را اعمال میکند.
Router(config)# interface GigabitEthernet0/0: این دستور وارد حالت پیکربندی اینترفیس "GigabitEthernet0/0" میشود.
Router(config-if)# service-policy output PRIORITY: این دستور سیاست نقشه "PRIORITY" را به اینترفیس "GigabitEthernet0/0" برای خروجی بستهها اعمال میکند.
Router(config)# access-list 101 permit ip any any: این دستور یک لیست دسترسی (access list) ایجاد میکند که تمام بستههای IP را مجاز میشمارد.
Router(config)# class-map match-all TOS: این دستور یک کلاس نقشه به نام "TOS" ایجاد میکند که تمام بستههای دادهای که با لیست دسترسی ۱۰۱ تطبیق میدهند را تطبیق میدهد.
Router(config-cmap)# match access-group 101: این دستور بستههای دادهای که با لیست دسترسی ۱۰۱ تطبیق دارند را تطبیق میدهد.
Router(config)# policy-map TOS-POLICY: این دستور یک سیاست نقشه به نام "TOS-POLICY" ایجاد میکند که شامل کلاس "TOS" است (ToS).
Router(config-pmap)# class TOS: این دستور کلاس "TOS" را به سیاست نقشه "TOS-POLICY" اضافه میکند.
Router(config-pmap-c)# set ip precedence 5: این دستور تقدم IP را برای کلاس "TOS" به مقدار ۵ تنظیم میکند.
Router(config)# interface GigabitEthernet0/1: این دستور وارد حالت پیکربندی اینترفیس "GigabitEthernet0/1" میشود.
Router(config-if)# service-policy input TOS-POLICY: این دستور سیاست نقشه "TOS-POLICY" را به اینترفیس "GigabitEthernet0/1" برای ورودی بستهها اعمال میکند.
Router(config)# end: این دستور از حالت پیکربندی خارج میشود و روتر به حالت اجرایی برمیگردد.
Router# write memory: این دستور تنظیمات فعلی را در حافظه دائمی روتر ذخیره میکند تا پس از ریبوت نیز اعمال شوند.