Quality of Service (QoS)
در این مقاله مطالب ذیل بررسی میشود.
بررسی اجمالی
این مقاله استفاده از کیفیت خدمات (QoS) را در RouterOS بر اساس تراشههای سوئیچ Marvell Prestera DX (سوئیچهای سری CRS3xx، CRS5xx و روترهای CCR2116، CCR2216) تعریف میکند.
QoS مجموعهای از ویژگیها در سوئیچهای شبکه است که به مدیران شبکه اجازه میدهد ترافیک را اولویت بندی کنند و منابع شبکه را تخصیص دهند.
تا اطمینان حاصل شود که دادههای مهم به صورت روان و با تأخیر کم جریان دارند.
وظیفه اصلی QoS در سوئیچ های شبکه، مدیریت ترافیک شبکه به گونه ای است که نیازهای خاص انواع مختلف برنامه های کاربردی شبکه را برآورده کند.
به عنوان مثال، دادههای صوتی و تصویری به تأخیر کم و حداقل از دست دادن بسته برای اطمینان از ارتباط با کیفیت بالا نیاز دارند،
در حالی که انتقال فایل و سایر برنامههای داده میتوانند سطوح بالاتر تأخیر و از دست رفتن بستهها را تحمل کنند.
QoS با شناسایی نوع ترافیکی که از طریق سوئیچ جریان مییابد و بر اساس الزامات آن یک سطح اولویت را به آن اختصاص میدهد، کار میکند.
سپس سوئیچ میتواند از این اطلاعات برای تغییر هدر بسته ها و اولویتبندی جریان ترافیک استفاده کند و اطمینان حاصل کند که ترافیک با اولویت بالاتر نسبت به ترافیک با اولویت پایینتر رفتار ترجیحی دارد.
مراحل اجرای QoS برنامه ریزی شده:
- علامت گذاری QoS.
مطابقت نمایه QoS با هدرهای بسته ورودی، سپس تناوب هدر خروجی با توجه به پروفایل های QoS اختصاص داده شده (معرفی شده در RouterOS نسخه 7.10).
- اجرای QoS.
از ازدحام بر اساس نمایههای QoS اختصاص داده شده و شکلدهی ترافیک (که در RouterOS نسخه 7.13 برای تراشههای سوئیچ 98DX224S، 98DX226S، و 98DX3236 معرفی شدهاند، و به همه تراشههای سوئیچ توانمند که از RouterOS نسخه 7.15 شروع میشود، گسترش یافته است) اجتناب کنید.
- خط مشی QoS.
پروفایل های QoS را از طریق قوانین ACL (معرفی شده در RouterOS نسخه 7.15) اختصاص دهید.
- ویژگی های اضافی QoS: WRED
(تشخیص اولیه تصادفی وزنی)، اعلان و پردازش ECN، PFC (کنترل جریان مبتنی بر اولویت) (معرفی شده در RouterOS نسخه 7.15 برای تراشه های سوئیچ توانمند).
- شکلدهی ترافیک
(شکلدهی ترافیک در هر صف در RouterOS نسخه 7.15 معرفی شده است).
اصطلاحات QoS
این اصطلاحات در سراسر مقاله استفاده خواهند شد.
QoS – کیفیت خدمات.
ACL – لیست کنترل دسترسی، مجموعه ای از قوانین سوئیچ که برای فیلتر کردن ترافیک شبکه بر اساس معیارهای مشخص استفاده می شود.
AQM – مدیریت صف فعال.
DSCP – Differentiated Services Code Point، یک فیلد 6 بیتی در هدر IP که برای اولویت بندی ترافیک شبکه استفاده می شود.
ECN – اعلان ازدحام صریح.
PCP – Priority Code Point، یک فیلد 3 بیتی در هدر VLAN که برای اولویت بندی ترافیک در یک VLAN استفاده می شود.
PFC – کنترل جریان مبتنی بر اولویت (IEEE 802.1Qbb).
RoCE – RDMA از طریق اترنت همگرا.
WRED – تشخیص زودهنگام تصادفی وزنی.
/in/eth/sw/ یک میانبر برای /interface/ethernet/switch/. میانبر در CLI نیز کار می کند.
پشتیبانی از دستگاه QoS
Model |
Switch Chip | QoS profiles | QoS Maps | TX Managers | WREd | ECN | PFC Profile 3 | Port/Queue Usage Stats |
CRS518-16XS-2XQ |
98DX8525 | 1024 | 12 |
15 |
✔ | ✔ | 8 | Max fill |
CRS510-8XS-2XQ | 98DX4310 | 1024 |
12 |
15 |
✔ | ✔ |
8 |
Max fill |
CRS504-4XQ | 98DX4310 | 1024 | 12 |
15 |
✔ | ✔ | 8 |
Max fill |
CRS354-48G-4S+2Q+ |
98DX3257 | 1024 | 12 |
15 |
✔ | ✔ | 8 |
Unreliable |
CRS328-24P-4S+ | 98DX3236 | 128 | 1 |
8 |
– |
Current values |
||
CRS328-4C-20S-4S+ | 98DX3236 | 128 | 1 |
8 |
– |
Current values |
||
CRS326-24S+2Q+ | 98DX8332 | 1024 | 12 |
15 |
✔ | ✔ |
8 |
Unreliable |
CRS326-24G-2S+ | 98DX3236 | 128 | 1 |
8 |
– |
Current values |
||
CRS318-16P-2S+ | 98DX226S | 128 | 1 | 8 | – |
Current values |
||
CRS318-1Fi-15Fr-2S | 98DX224S | 128 | 1 | 8 | – |
Current values |
||
CRS317-1G-16S+ | 98DX8216 | 1024 | 12 | 15 | ✔ | ✔ | 8 |
Unreliable |
CRS312-4C+8XG | 98DX8212 | 1024 | 12 | 15 | ✔ | ✔ | 8 |
Unreliable |
CRS310-1G-5S-4S+ | 98DX226S | 128 | 1 | 8 | – |
Current values |
||
CRS309-1G-8S+ | 98DX8208 | 1024 | 12 | 15 | ✔ | ✔ | 8 |
Unreliable |
CRS305-1G-4S+ | 98DX3236 | 128 | 1 | 8 | – |
Current values |
||
CCR2216-1G-12XS-2XQ | 98DX8525 | 1024 | 12 | 15 | ✔ | ✔ | 8 |
Max fill 2 |
CCR2116-12G-4S+ | 98DX3255 | 1024 | 12 | 15 | ✔ | ✔ | 8 |
Unreliable 1 |
1 با توجه به محدودیتهای سختافزاری، برخی از مدلهای تراشه سوئیچ ممکن است جریان ترافیک را در حین دسترسی به دادههای استفاده از پورت/صف QoS قطع کنند.
2 دستگاه به جای نمایش مقادیر مصرف فعلی، حداکثر آمار پر شدن صف را جمع آوری می کند. برای بازنشانی این آمار از دستور reset-counters استفاده کنید.
3 دستگاه های بدون نمایه PFC از کنترل جریان مبتنی بر اولویت پشتیبانی نمی کنند.
کاربردها و مثال های استفاده
- مثال پیکربندی پایه
در این مثال، ما فقط یک سطح QoS – VoIP (IP Telephony) را در بالای کلاس استاندارد “Best Effort” تعریف می کنیم.
بیایید تصور کنیم که یک دستگاه CRS326-24G-2S+ داریم که در آن:
همه پورت ها پل شده و با استفاده از vlan-filtering.
sfp-sfpplus1 یک VLAN ترانک است که به سوییچ دیگری متصل است.
ether1-ether9 پورت های اختصاصی برای تلفن های IP هستند.
ether10-ether24 پورت های استاندارد برای اتصال میزبان هستند.
ابتدا باید پروفایل های QoS را تعریف کنیم.
مقادیر dscp و pcp تعریف شده در بسته های ارسال شده در خروجی استفاده می شود:
/interface ethernet switch qos pro
file
add
dscp
=46
name
=voip
pcp
=5
traffic-class
=5
تخصیص پروفایل QoS مبتنی بر پورت در پورت های اختصاصی تلفن های IP برای ترافیک ورودی اعمال می شود.
سایر پورتهای اترنت از نمایه پیشفرض qos استفاده میکنند (که در آن dscp=0 و pcp=0)
/interface ethernet switch qos port
set
ether1
profile
=voip
set
ether2
profile
=voip
set
ether3
profile
=voip
set
ether4
profile
=voip
set
ether5
profile
=voip
set
ether6
profile
=voip
set
ether7
profile
=voip
set
ether8
profile
=voip
set
ether9
profile
=voip
نکته :
- با شروع از RouterOS نسخه 7.13، تنظیمات پورت QoS از /interface/ethernet/switch/port به /interface/ethernet/switch/qos/port منتقل شد.
- پیشوند “qos-” از فیلدهای مربوطه حذف شده است (زیرا همه فیلدها به هر حال مربوط به qos هستند).
پورت ترانک هر دو نوع ترافیک QoS را دریافت می کند.
ما باید نگاشت اولویت VLAN را با نمایه QoS ایجاد کنیم و qos-trust-l2 را فعال کنیم تا آنها را متمایز کند:
/interface ethernet switch qos map vlan
add
pcp
=5
profile
=voip
/interface ethernet switch port
set
sfp-sfpplus1
trust-l2
=trust
در نهایت، برای شروع به کار تنظیمات بالا، بارگذاری سخت افزار QoS را فعال کنید:
/interface ethernet switch
set
switch1
qos-hw-offloading
=yes
بررسی تنظیمات QoS پورت با دستور print امکان پذیر است:
[admin@MikroTik]
/interface/ethernet/switch/qos/port
print
Columns
: NAME, SWITCH, PROFILE, MAP, TRUST-L2, TRUST-L3
# NAME SWITCH PROFILE MAP TRUST-L2 TRUST-L3 TX-MANAGER
0 ether1 switch1 voip default ignore ignore default
1 ether2 switch1 voip default ignore ignore default
2 ether3 switch1 voip default ignore ignore default
3 ether4 switch1 voip default ignore ignore default
4 ether5 switch1 voip default ignore ignore default
5 ether6 switch1 voip default ignore ignore default
6 ether7 switch1 voip default ignore ignore default
7 ether8 switch1 voip default ignore ignore default
8 ether9 switch1 voip default ignore ignore default
9 ether10 switch1 default default ignore ignore default
10 ether11 switch1 default default ignore ignore default
11 ether12 switch1 default default ignore ignore default
12 ether13 switch1 default default ignore ignore default
13 ether14 switch1 default default ignore ignore default
14 ether15 switch1 default default ignore ignore default
15 ether16 switch1 default default ignore ignore default
16 ether17 switch1 default default ignore ignore default
17 ether18 switch1 default default ignore ignore default
18 ether19 switch1 default default ignore ignore default
19 ether20 switch1 default default ignore ignore default
20 ether21 switch1 default default ignore ignore default
21 ether22 switch1 default default ignore ignore default
22 ether23 switch1 default default ignore ignore default
23 ether24 switch1 default default ignore ignore default
24 sfp-sfpplus1 switch1 default default trust ignore default
25 sfp-sfpplus2 switch1 default default ignore ignore default
26 switch1-cpu switch1
اکنون بستههای ورودی در پورتهای ether1-ether9 با مقدار نقطه کد اولویت (PCP) 5 و نقطه کد خدمات متمایز (DSCP) 46 و بستههای ورودی در پورتهای ether10-ether24 با مقادیر PCP و DSCP علامتگذاری میشوند.
0. هنگامی که بسته ها به پورت sfp-sfpplus1 وارد می شوند، هر بسته با مقدار PCP 5 یا بالاتر، مقدار PCP خود را 5 و مقدار DSCP 46 را حفظ می کند،
در حالی که همه بسته های دیگر با مقادیر PCP و DSCP 0 علامت گذاری می شوند.
Dante
از RouterOS نسخه 7.15، همه دستگاههای MikroTik QoS-Capable با Dante مطابقت دارند.
سخت افزار Dante از مقادیر اولویت DSCP / Diffserv زیر برای اولویت بندی ترافیک استفاده می کند.
Dante Priority | Usage | DSCP Label | DSCP Value |
High | Time critical PTP events | CS7 | 56 |
Low | (reserved) | CS1 | 8 |
Medium | Audio, PTP | EF | 46 |
None | Other traffic | BE | 0 |
مثال فرض میکند که سوئیچ از پیکربندی پیشفرض خود استفاده میکند،
که شامل یک رابط پیشفرض “بریج ” و تمام رابطهای اترنت اضافه شده به عنوان پورتهای بریج است، و هر یک از این رابطها میتواند برای Dante استفاده شود.
ابتدا، نمایههای QoS را برای مطابقت با کلاسهای ترافیک Dante ایجاد کنید،
از قبل یک نمایه «پیشفرض» وجود دارد که با اولویت None دانته مطابقت دارد.
/interface/ethernet/switch/qos/pro
file
add
name
=dante-ptp
dscp
=56
pcp
=7
traffic-class
=7
add
name
=dante-audio
dscp
=46
pcp
=5
traffic-class
=5
add
name
=dante-low
dscp
=8
pcp
=1
traffic-class
=0
سپس، یک نگاشت QoS برای مطابقت با پروفایل های QoS بر اساس مقادیر DSCP ایجاد کنید.
/interface/ethernet/switch/qos/map/ip
add
dscp
=56
profile
=dante-ptp
add
dscp
=46
profile
=dante-audio
add
dscp
=8
profile
=dante-low
صف های سخت افزاری را برای اعمال QoS در ترافیک Dante پیکربندی کنید.
/interface/ethernet/switch/qos/tx-manager/queue
set
[
find
where traffic-class>
=2]
schedule
=strict-priority
set
[
find
where traffic-class<2]
schedule
=low-priority-group
weight
=1
ترافیک با اولویت بالا و متوسط دانته با نظم دقیق برنامه ریزی شده است.
دستگاهها بستههای PTP حساس به زمان را تا زمانی که صف ۷ خالی شود، ارسال میکنند،
سپس صدا را ادامه میدهند (صف ۵).
ترافیک کم و سایر ترافیک تنها زمانی منتقل می شود که صف های PTP و صدا خالی باشند.
از آنجایی که دانته ترتیب اولویت را بین ترافیک Low و Other تعریف نمی کند (معمولاً CS1 اولویت کمتری نسبت به Best Effort دارد)
و کلاس Low ترافیک به هر حال برای استفاده در آینده محفوظ است، با قرار دادن هر دو در یک گروه با هر دو نوع ترافیک یکسان رفتار می کنیم.
همان وزن اگر سختافزار Dante در شبکه شما از کلاس ترافیک با اولویت پایین استفاده میکند، میتوانید زمانبندی ترافیک CS1/BE را مطابق با الزامات تغییر دهید.
مرحله بعدی فعال کردن حالت اعتماد برای بسته های Layer3 ورودی است (فیلد IP DSCP):
/interface/ethernet/switch/qos/port
set
[find]
trust-l3
=keep
در نهایت، برای شروع به کار تنظیمات بالا، بارگذاری سخت افزار QoS را فعال کنید:
/interface ethernet switch
set
switch1
qos-hw-offloading
=yes
هنگام استفاده از Dante در حالت چندپخشی، فعال کردن IGMP Snooping روی سوئیچ مفید است.
این ویژگی ترافیک را فقط به پورت های دارای دستگاه های مشترک هدایت می کند و از سیل غیر ضروری جلوگیری می کند.
علاوه بر این، فعال کردن یک درخواست IGMP (اگر قبلاً در دستگاه دیگری در همان LAN فعال نشده باشد)، تنظیم فواصل پرس و جو، و فعال کردن خروج سریع می تواند عملکرد چندپخشی را بیشتر بهینه کند.
/interface/bridge
set
[
find
name
=bridge]
igmp-snooping
=yes
multicast-querier
=yes
query-interval
=60s
/interface/bridge/port
set
[find]
fast-leave
=yes
علامت گذاری QoS
- درک محدوده نقشه
به منظور اجتناب از تعریف همه نگاشت های PCP و DSCP ممکن، RouterOS اجازه می دهد تا حداقل مقادیر PCP و DSCP را برای نقشه برداری QoS Profile تنظیم کنید.
در مثال زیر، مقادیر PCP 0-2 از نمایه QoS پیش فرض، 3-4 – (streaming)جریان، 5 – voip و 6-7 – کنترل استفاده می کنند.
/interface ethernet switch qos map vlan
add
pcp
=3
profile
=streaming
add
pcp
=5
profile
=voip
add
pcp
=6
profile
=control
از آنجایی که پارامتر pcp حداقل مقدار را مشخص می کند، همه بسته های دارای مقدار PCP بالاتر نیز مطابقت دارند.
اگر چنین رفتاری نامطلوب است، نقشه برداری را برای مقادیر بالاتر اضافه کنید.
مثال بعدی نمایه voip را فقط برای pcp=5 تنظیم می کند. بسته های با مقادیر PCP 6 یا 7 به نمایه پیش فرض بازنشانی می شوند.
/interface ethernet switch qos map vlan
add
pcp
=5
profile
=voip
add
pcp
=6
profile
=default
- درک رابطه پورت، پروفایل و نقشه
هر پورت سوئیچ دارای تنظیمات اعتماد Layer2 و Layer3 است که نحوه طبقه بندی بسته های ورودی به پروفایل های QoS و مقادیر PCP و DSCP را تغییر می دهد.
در زیر جداولی وجود دارد که تمام گزینه های ممکن را توضیح می دهد:
qos-trust-l2 | qos-trust-l3 | Behavior |
ignore | ignore | The port is considered untrusted. Both headers are ignored, and the port’s profile is forced to all ingress packets. This is the default setting. |
ignore | trust | Trust the Layer 3 header. Use the DSCP field from the IP header of ingress packets for QoS profile lookup (see /in/eth/sw/qos/map/ip). If the lookup fails (no QoS profiles are mapped to the given DSCP value), the default QoS profile is used (not the switch port’s QoS profile). The switch port’s profile field is used only for non-IP traffic. |
ignore | keep | Trust the Layer 3 header. Use the DSCP field from the IP header of ingress packets for QoS profile lookup (see /in/eth/sw/qos/map/ip). If the lookup fails, the default QoS profile is used. The switch port’s profile field is used only for non-IP traffic. If the forwarded/routed packet is VLAN-tagged, its PCP value is set from the selected QoS profile. However, the original DSCP value of the packet is kept intact. |
keep | ignore | Trust the Layer 2 header but ignore L3. If an ingress packet is VLAN-tagged, use the PCP field from the VLAN header for QoS profile lookup (see /in/eth/sw/qos/map/vlan). If the lookup fails (no QoS profiles are mapped to the given PCP value), the default QoS profile is used. The switch port’s profile field is used only for untagged traffic. If the packet is VLAN-tagged on both ingress and egress, the original PCP value is kept. |
keep | trust | Trust both headers, but Layer 3 has higher precedence. In the case of an IP packet, use the DSCP field for QoS profile lookup (see /in/eth/sw/qos/map/ip). If the DSCP-to-QoS lookup fails, use the default profile. If the packet is not an IP packet but is VLAN-tagged, use the PCP field from the VLAN header for QoS profile lookup (see /in/eth/sw/qos/map/vlan). If the VLAN-to-QoS lookup fails, use the default QoS profile. Non-IP untagged packets use the switch port’s profile. If the packet is VLAN-tagged on both ingress and egress, the original PCP value is kept. The DSCP value in forwarded/routed packets is set from the selected QoS profile. |
keep | keep | Trust both headers, but Layer 3 has higher precedence. In the case of an IP packet, use the DSCP field for QoS profile lookup (see /in/eth/sw/qos/map/ip). If the DSCP-to-QoS lookup fails, use the default profile. If the packet is not an IP packet but is VLAN-tagged, use the PCP field from the VLAN header for QoS profile lookup (see /in/eth/sw/qos/map/vlan). If the VLAN-to-QoS lookup fails, use the default QoS profile. Non-IP untagged packets use the switch port’s profile. Keep both the original PCP and/or DSCP values intact in cases of VLAN-tagged and/or IP packets, respectively. |
trust | ignore | Trust the Layer 2 header, but ignore L3. If an ingress packet is VLAN-tagged, use the PCP field from the VLAN header for QoS profile lookup (see /in/eth/sw/qos/map/vlan). If the lookup fails (no QoS profiles are mapped to the given PCP value), the default QoS profile is used. The switch port’s profile field is used only for untagged traffic. |
trust | trust | Trust both headers, but Layer 3 has higher precedence. In the case of an IP packet, use the DSCP field for QoS profile lookup (see /in/eth/sw/qos/map/ip). If the DSCP-to-QoS lookup fails, use the default profile. If the packet is not an IP packet but is VLAN-tagged, use the PCP field from the VLAN header for QoS profile lookup (see /in/eth/sw/qos/map/vlan). If the VLAN-to-QoS lookup fails, use the default QoS profile. Non-IP untagged packets use the switch port’s profile. |
Port settings |
The selected QoS profile and the source for PCP / DSCP field values in forwarded/routed packets | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
qos-trust-l2 |
qos-trust-l3 |
VLAN-Tagged IP | Untagged IP | VLAN-Tagged Non-IP | Untagged Non-IP | ||||||||
QoS Profile | PCP | DSCP | QoS Profile | PCP 1 | DSCP | QoS Profile | PCP | DSCP | QoS Profile | PCP 1 | DSCP | ||
ignore | ignore | profile | profile | profile | profile | profile | profile | profile | profile | – | profile | profile | – |
ignore | trust | map/ip | map/ip | map/ip | map/ip | map/ip | map/ip | profile | profile | – | profile | profile | – |
ignore | keep | map/ip | map/ip | original | map/ip | map/ip | original | profile | profile | – | profile | profile | – |
trust | ignore | map/vlan | map/vlan | map/vlan | profile | profile | profile | map/vlan | map/vlan | – | profile | profile | – |
trust | trust | map/ip | map/ip | map/ip | map/ip | map/ip | map/ip | map/vlan | map/vlan | – | profile | profile | – |
trust | keep | map/ip | map/ip | original | map/ip | map/ip | original | map/vlan | map/vlan | – | profile | profile | – |
keep | ignore | map/vlan | original | map/vlan | profile | profile | profile | map/vlan | original | – | profile | profile | – |
keep | trust | map/ip | original | map/ip | map/ip | profile | map/ip | map/vlan | original | – | profile | profile | – |
keep | keep | map/ip | original | original | map/ip | profile | original | map/vlan | original | – | profile | profile | – |
فقط زمانی اعمال می شود که ترافیک ورودی بدون برچسب باشد، اما خروجی باید دارای برچسب VLAN باشد.
- علامت گذاری QoS از طریق قوانین سوئیچ (ACL)
با شروع RouterOS نسخه 7.15، امکان اختصاص پروفایل های QoS از طریق قوانین سوئیچ (ACL) وجود دارد.
Sub-menu: /interface/ethernet/switch/rule
new-qos-profile (name) | The name of the QoS profile to assign to the matched packets. |
keep-qos-fields (yes | no; Default: no) | Should the original values of QoS fields (PCP, DSCP) be kept (yes), or replace them with the ones from the assigned QoS profile (no)? Relevant only if new-qos-profile is set. |
new-vlan-priority (0..7) | Deprecated and should be replaced with the respective new-qos-profile. Kept for backward compatibility. Relevant only if qos-hw-offloading=no. |
مثال زیر یک نمایه QoS را بر اساس آدرس MAC منبع اختصاص می دهد.
/interface ethernet switch rule
add
new-qos-profile
=stream
ports
=ether1,ether2
src-mac-address
=00:01:02:00:00:00/FF:FF:FF:00:00:00
switch
=switch1
add
new-qos-profile
=voip
ports
=ether1,ether2
src-mac-address
=04:05:06:00:00:00/FF:FF:FF:00:00:00
switch
=switch1
اجرای QoS
- کوئری های سخت افزاری
هر پورت سوئیچ دارای هشت صف انتقال سخت افزاری (tx) است (queue0..queue7).
هر صف مربوط به یک کلاس ترافیک (tc0..tc7) است که توسط یک نمایه QoS تنظیم شده است.
هر بسته ورودی به یک نمایه QoS اختصاص داده می شود، که به نوبه خود کلاس ترافیک را برای انتخاب صف tx در پورت خروج تعیین می کند.
صف های سخت افزار دارای اندازه متغیر هستند – توسط مدیر انتقال تنظیم می شوند.
علاوه بر این، چندین پورت و/یا صف می توانند منابع را با یکدیگر به اشتراک بگذارند (به اصطلاح بافرهای مشترک).
به عنوان مثال، دستگاهی با 25 پورت دارای حافظه (بافر) است تا در مجموع 1200 بسته را در صف قرار دهد.
اگر منابع را به طور مساوی تقسیم کنیم، هر پورت 48 بافر انحصاری با حداکثر 6 بسته در هر صف دریافت می کند (48/8) – که معمولاً برای جذب حتی یک انفجار کوتاه از ترافیک کافی نیست.
با این حال، انتخاب به اشتراک گذاری 50٪ از بافرها، هر پورت را با 24 بافر انحصاری (3 در هر صف) ترک می کند،
اما در همان زمان، یک صف می تواند تا 603 بافر (3 منحصر به فرد + 600 مشترک) افزایش یابد.
RouterOS امکان فعال/غیرفعال کردن استخر مشترک برای هر صف را به صورت جداگانه می دهد – به عنوان مثال، برای جلوگیری از مصرف ترافیک با اولویت پایین کل حافظه سخت افزاری.
علاوه بر این، محدودیتهای بافر پورت ممکن است مانع از مصرف یک پورت کم سرعت کل استخر مشترک شود.
برای جزئیات به تنظیمات QoS و مدیر انتقال مراجعه کنید.
نکته : کلاس ترافیک پیش فرض، بهترین تلاش (PCP=0، DSCP=0) 1 است، در حالی که کمترین اولویت (PCP=1) دارای کلاس ترافیک 0 است.
- منابع سخت افزاری
سخت افزار (تراشه های سوئیچ) منابع (حافظه) محدودی دارد.
دو منبع سخت افزاری اصلی مرتبط با QoS وجود دارد:
Packet descriptors – حاوی اطلاعات کنترل بسته (درگاه هدف، تناوب هدر و غیره) هستند.
Data buffers– تکه های حافظه حاوی بار واقعی. اندازه بافر به مدل تراشه سوئیچ بستگی دارد. معمولا – 256 بایت.
یک Packet descriptors ممکن است از چند بافر استفاده کند (بسته به اندازه بار).
بافرها ممکن است توسط چندین توصیف کننده به اشتراک گذاشته شوند – در موارد چندپخشی/پخشی.
اگر سخت افزار به اندازه کافی descriptor یا buffer آزاد نداشته باشد، بسته حذف می شود (tail-drop).
منابع سخت افزاری را می توان در هر نوع مقصد (multicast/unicast)، هر پورت و هر صف tx محدود کرد.
در صورت رسیدن به هر محدودیتی، هیچ بسته دیگری را نمی توان در صف ارسال قرار داد و بسته های بعدی حذف می شوند.
RouterOS اطلاعات سختافزاری سطح پایین را پنهان میکند و به شما امکان میدهد محدودیتهای منابع را بر حسب بستهها یا درصدی از مقدار کل تعیین کنید.
RouterOS به طور خودکار توصیفگر سخت افزار و تعداد بافر مورد نیاز را بر اساس محدودیت بسته مشخص شده توسط کاربر و MTU پورت محاسبه می کند.
علاوه بر این، RouterOS با منابع سخت افزاری از پیش پیکربندی شده عرضه می شود، بنابراین نیازی به پیکربندی دستی در محیط های QoS معمولی نیست.
توجه : تغییر هر پارامتر تخصیص منابع سخت افزاری در زمان اجرا منجر به توقف موقت دستگاه می شود،
زمانی که هیچ بسته ای نمی تواند در نوبت قرار گیرد یا ارسال شود.
زمانی که دستگاه در حال انتقال ترافیک است، گم شدن موقت بسته انتظار می رود.
- صرفه جویی در منابع
از آنجایی که تخصیص مجدد منابع سخت افزاری در زمان اجرا یک گزینه نیست،
RouterOS نمی تواند به طور خودکار بافرهای صف رزرو شده برای پورت های غیرفعال را آزاد کند.
آن بافرها بلااستفاده می مانند.
با این حال، اگر کاربر بداند که پورتهای خاص هرگز استفاده نخواهند شد (به عنوان مثال، از نظر فیزیکی قطع میشوند)،
منابع صف مربوطه را میتوان به صورت دستی با استفاده از tx-manager داخلی “آفلاین” با حداقل منابع آزاد کرد:
/interface/ethernet/switch/qos/port
set
[
find
where !(running
or
name~
"cpu"
)]
tx-manager
=offline
- اولویت بندی ترافیک
سخت افزار دو نوع اولویت بندی انتقال ترافیک را فراهم می کند:
اولویت دقیق – ترافیک از صف های بالاتر همیشه ابتدا منتقل می شود.
گروه های اولویت وزنی – چندین صف به طور همزمان در برنامه ریزی انتقال بسته شرکت می کنند.
صف های اولویت دقیق ساده هستند. اگر صف با اولویت بالاتر (Q7) بسته هایی داشته باشد، ابتدا آن ها ارسال می شوند.
وقتی Q7 خالی است، بسته های Q6 ارسال می شوند و غیره.
بسته ها از صف کمترین اولویت (Q0) تنها در صورتی ارسال می شوند که تمام صف های دیگر خالی باشند.
نقطه ضعف اولویت بندی دقیق افزایش تاخیر در صف های پایین تر در حالی که “اولویت بندی بیش از حد” صف های بالاتر است.
فرض کنید تاخیر قابل قبول TC5 20ms، TC3 – 50ms باشد.
ترافیکی که در Q5 ظاهر می شود به دلیل اولویت دقیق صف فوراً منتقل می شود و تاخیر اضافی به هر بسته در صف های پایین تر (Q4..Q0) اضافه می کند.
انفجار بسته در Q5 (به عنوان مثال، شروع یک تماس صوتی) ممکن است به طور موقت Q3 را “فلج” کند و تاخیرهای TC3 را بیش از 50 میلی ثانیه قابل قبول افزایش دهد (یا حتی باعث افت بسته به دلیل صف کامل شود)
در حالی که بسته های TC5 در کمتر از 1 میلی ثانیه (راهی) ارسال می شوند. (زیر حد 20 میلی ثانیه).
کمی قربانی کردن تأخیر TC5 با انتقال بسته های TC3 در بین آنها، همه را خوشحال می کند.
گروههای اولویت وزنی، ترافیک را برای ارسال از صفهای متعدد (اعضای گروه) به صورت دور برگشتی وزندار برنامهریزی میکنند.
وزن یک صف تعداد بسته های ارسال شده از صف را در هر دور تعیین می کند.
به عنوان مثال، اگر Q2، Q1 و Q0 اعضای گروه باشند و وزن آنها به ترتیب 3، 2 و 1 باشد،
زمانبندی 3 بسته از Q2، 2 – از Q1 و 1 – از Q0 ارسال می کند.
سفارش واقعی Tx “Q2، Q1، Q0، Q2، Q1، Q2” است – برای زمانبندی حتی منصفانهتر.
دو گروه سخت افزاری وجود دارد:
گروه با اولویت پایین و گروه با اولویت بالا.
یک ترتیب اولویت دقیق بین دو گروه وجود دارد:
گروه با اولویت پایین تنها زمانی مخابره می کند که تمام صف های گروه با اولویت بالا خالی باشد.
با این حال، استفاده از یک گروه برای تمام صف ها امکان پذیر است.
تنظیم صف پیشفرض RouterOS (توکار) در زیر فهرست شده است.
Q3-Q5 پهنای باند را در گروه با اولویت بالا به اشتراک می گذارد، جایی که بسته ها در حالی که Q6 و Q7 خالی هستند منتقل می شوند.
Q0-Q2 اعضای گروه با اولویت پایین هستند، جایی که بسته ها در حالی که Q3-Q7 خالی هستند منتقل می شوند.
مدیریت کوئری فعال (AQM)
- تشخیص زودهنگام تصادفی وزنی (WRED)
WRED یک مکانیسم کنترل تراکم در هر صف است که با رها کردن بستهها، رویدادهای ازدحام را به نقاط پایانی سیگنال میدهد.
WRED متکی به وجود مکانیسمهای کاهش سرعت در نقاط پایانی است که به از دست دادن بسته واکنش نشان میدهند،
مانند TCP/IP. WRED از یک الگوریتم رها کردن بسته تصادفی در تلاش برای پیشبینی رویدادهای تراکم و پاسخ به آنها با کاهش نرخ ترافیک قبل از وقوع ازدحام استفاده میکند.
ویژگی تصادفی WRED از فروپاشی توان عملیاتی مربوط به همگام سازی جهانی جریان های TCP جلوگیری می کند.
WRED را می توان در هر صف در هر Tx Manager فعال/غیرفعال کرد.
WRED را برای ترافیک بدون ضرر غیرفعال کنید!
همچنین، دلیلی برای فعال کردن WRED در پورتهای پرسرعت که در وهله اول نباید ازدحام رخ دهد وجود ندارد.
رفتار از طریق آستانه WRED کنترل می شود.
آستانه WRED فاصله تا حد بافر مشترک صف/حوضه (سرپوش) است – جایی که یک افت تصادفی بسته شروع می شود.
RouterOS به طور خودکار مقادیر آستانه واقعی WRED را با توجه به ظرفیتهای صف یا استخر مشترک انتخاب میکند.
کاربر ممکن است از طریق تنظیمات QoS، آستانهها را به یک روش دیگر تغییر دهد.
توجه: WRED به صف های Tx مربوطه نیاز دارد تا از بافرهای مشترک استفاده کنند (use-shared-buffers=yes).
انتخاب یک مقدار آستانه WRED یک مبادله بین پیش بینی تراکم و جذب انفجار است.
تنظیم آستانه WRED بالاتر ممکن است منجر به کاهش سرعت تردد زودتر و در نتیجه رفع ازدحام شود.
از طرف دیگر، یک آستانه بالا منجر به افت بسته در رگبارهای ترافیکی محدود می شود که می تواند توسط بافرهای صف جذب شود و اگر WRED وارد نشود، بدون ضرر تغییر شکل می دهد.
برای مثال، شروع اتصال پایگاه داده از راه دور معمولاً با ترافیک سنگین تر شروع می شود (” انفجار بسته”) در مرحله اولیه سازی؛ سپس، نرخ ترافیک به سطح “معقول” کاهش می یابد.
هر افت بسته در طول مرحله اولیه منجر به چیزی جز اتصال کندتر پایگاه داده به دلیل نیاز به ارسال مجدد نمی شود.
بنابراین، کاهش آستانه WRED یا غیرفعال کردن کامل WRED در چنین ترافیکی توصیه می شود.
حالت مخالف پخش ویدئو است.
تشخیص زودهنگام تراکم به انتخاب یک نرخ پخش راحت بدون از دست دادن پهنای باند بیش از حد در ارسال مجدد یا/و “بیش از حد” با قربانی کردن بیش از حد سطح کیفیت کمک می کند.
نکته : از قوانین سوئیچ (ACL) یا سایر تکنیکهای QoS Marking برای متمایز کردن ترافیک و قرار دادن بستهها در صفهایی با تنظیمات WRED مورد نظر استفاده کنید.
اسکریپت زیر فقط WRED را برای ترافیک TCP/IP با هدایت آن به queue2 اعمال می کند.
UDP و سایر بسته ها در صف 1 باقی می مانند – زیرا نقاط پایانی آنها معمولاً نمی توانند به افت های اولیه پاسخ دهند.
صف 1 و صف 2 به طور مساوی برنامه ریزی می شوند – بدون اولویت بندی یک صف بر دیگری.
/interface/ethernet/switch/qos/pro
file
add
name
=tcp-wred
traffic-class
=2
pcp
=0
dscp
=0
# move TCP traffic to queue2
/interface/ethernet/switch/rule
add
new-qos-profile
=tcp-wred
ports
=ether1,ether2,ether3,ether4
protocol
=tcp
switch
=switch1
# set the same scheduling priority (weight) between queue1 and queue2
# apply WRED only to queue2 - TCP traffic
/interface/ethernet/switch/qos/tx-manager/queue/
set
[
find
where
traffic-class
=1]
weight
=2
schedule
=low-priority-group
use-shared-buffers
=yes
shared-pool-index
=0
wred
=no
set
[
find
where
traffic-class
=2]
weight
=2
schedule
=low-priority-group
use-shared-buffers
=yes
shared-pool-index
=0
wred
=yes
- اعلان تراکم صریح (ECN)
برخی از تراشههای سوئیچ میتوانند علامتگذاری ECN بستههای IP را بر اساس RFC 3168 در سطح سختافزار انجام دهند.
علامتگذاری ECN سختافزار بر اساس مکانیسم WRED است، اما به جای حذف بستههای IP، آنها با CE (Cngestion Experienced، باینری 11) علامتگذاری میشوند.
فیلد ECN (دو بیت کم اهمیت در IPv4/TOS یا IPv6/TrafficClass octet).
فقط بستههای IP با قابلیت ECN میتوانند علامتگذاری شوند – آنهایی که مقدار فیلد ECN ECT(1) یا ECT(0) (به ترتیب باینری 01 یا 10) دارند.
بسته های حمل و نقل با قابلیت ECN (ECN=00) هرگز علامت گذاری نمی شوند.
اگر بسته ای قبلاً دارای علامت CE (ECN=11) باشد، هرگز پاک نمی شود، حتی اگر دستگاه دچار تراکم نشود.
برای فعال کردن علامت گذاری ECN، ecn=yes را در Tx Manager تنظیم کنید.
تنظیم ECN در هر صف به دلیل محدودیتهای سختافزاری در دسترس نیست.
ECN و WRED آستانه پر شدن صف یکسانی دارند: wred-shared-threshold (به تنظیمات QoS مراجعه کنید).
توجه: مکانیسم علامت گذاری ECN به صف های Tx مربوطه نیاز دارد که از بافرهای مشترک (use-shared-buffers=yes) و WRED (wred=yes) استفاده کنند.
اگر تمام شرایط زیر برآورده شود، بسته علامت CE را دریافت می کند:
- بسته یا IPv4 یا IPv6 است.
- مقدار فیلد ECN در هدر IP یا ECT(1) یا ECT(0) است.
- Tx Manager پورت Egress دارای ecn=yes است.
- صف Tx اختصاص داده شده از بافرهای مشترک استفاده می کند (use-shared-buffers=yes).
- صف Tx اختصاص داده شده WRED را فعال کرده است (wred=yes).
- Tx Queue تراکم را از طریق آستانه WRED تشخیص می دهد.
- کنترل جریان مبتنی بر اولویت (PFC)
کنترل جریان مبتنی بر اولویت (PFC) عملکرد بدون تلفات را برای حداکثر هشت کلاس ترافیکی فراهم می کند،
به طوری که ازدحام در یک کلاس ترافیک باعث توقف کلاس های دیگر نمی شود.
علاوه بر این، PFC امکان وجود همزمان انواع ترافیک حساس به ضرر با نوع ترافیک متحمل از دست دادن را در همان شبکه فراهم می کند.
تراشه های سوئیچ با قابلیت PFC با IEEE 802.1Qbb PFC شکایت دارند، به این معنی که دستگاه های مربوطه قادر به تولید و پاسخ به فریم های PFC هستند.
در قسمت راهاندازی، قاب PFC توسط پورت منبع و کلاس ترافیکی که ازدحام را تجربه میکند، ارسال میشود.
مقادیر تایمر فریم های PFC تولید شده 0xFFFF برای مکث (XOFF) و 0x0 برای رزومه (XON) است و بیت مناسب در بردار فعال سازی اولویت تنظیم شده است.
در قسمت پاسخ، فریم PFC دریافتی، صف های اولویت خاصی را در پورتی که فریم PFC را دریافت کرده است، برای مدت زمان مشخص شده توسط فریم PFC متوقف می کند.
در RouterOS، پیکربندی PFC در پروفایل ها سازماندهی شده است، جایی که هر پورت را می توان به یک نمایه خاص اختصاص داد.
یک نمایه PFC کلاسهای ترافیک را برای فعال کردن PFC روشن،
توقف/ازسرگیری آستانه برای ارسال فریمهای XOFF/XON PFC، و هر زمان که پورتهای اختصاصیافته باید فریمهای PFC را ارسال یا/و دریافت کنند، تعریف میکند.
در حالی که ازدحام در درگاه های خروجی رخ می دهد، PFC در درگاه ورودی فعال می شود.
بافرهای مشترک باید برای مرتبط کردن میزان ترافیک ورودی با بسته های مربوطه در صف های Tx استفاده شوند.
برای هر کلاس ترافیکی که با PFC فعال است، use-shared-buffers=yes را برای صف های Tx مربوطه تنظیم کنید.
همچنین توصیه میشود که برای هر صف فعالشده با PFC از یک استخر مشترک جداگانه (اشتراکشده-pool-index) استفاده شود، به خصوص اینکه آن را با کلاسهای ترافیک غیرفعال PFC ترکیب نکنید.
نکته: RouterOS نقشه برداری 1:1 را بین کلاس های ترافیک و صف های Tx پیاده سازی می کند.
بسته هایی با کلاس ترافیک اختصاص داده شده 0 تا TC7-Q7 در صف 0، TC1 – queue1 و غیره قرار می گیرند.
از این رو، اصطلاحات “کلاس ترافیک” و “صف tx” به جای یکدیگر در این متن استفاده می شوند.
مرجع اموال
- تنظیمات سوئیچ
Sub-menu:
/interface/ethernet/switch
Property | Description |
Allows enabling QoS for the given switch chip (if the latter supports QoS). | qos-hw-offloading (yes | no; Default: no) |
نکته : وقتی QoS را فعال می کنید، خاموش کردن تنظیمات qos-hw-offloading به طور کامل به عملکرد قبلی باز نمی گردد.
توصیه می شود پس از غیرفعال کردن دستگاه، آن را مجددا راه اندازی کنید.
- تنظیمات پورت
Sub-menu:
/interface/ethernet/switch/qos/port
نکته : با شروع از RouterOS نسخه 7.13، تنظیمات پورت QoS از /interface/ethernet/switch/port به /interface/ethernet/switch/qos/port منتقل شد.
پیشوند “qos-” از فیلدهای مربوطه حذف شده است (زیرا همه فیلدها به هر حال مربوط به qos هستند).
تنظیمات QoS پورت را تغییر دهید.
یک نمایه QoS برای ورود بسته ها به پورت داده شده اختصاص می دهد.
اگر پورت قابل اعتماد در نظر گرفته شود، نمایه اختصاص داده شده را می توان از طریق قوانین مطابقت تغییر داد.
به طور پیشفرض، پورتها غیرقابل اعتماد هستند و نمایه QoS پیشفرض (Best-Effort، PCP=0، DSCP=0) را دریافت میکنند،
جایی که فیلدهای اولویت از بستههای خروجی پاک میشوند.
Property |
Description |
egress-rate-queue0 .. egress-rate-queue7 (integer: 0..18446744073709551615; Default !egress-rate-queuex) | Sets egress traffic limitation (bits per second) for specific output queue. It is possible to specify the limit using suffixes like k, M, or G to represent kbps, Mbps, or Gbps. This setting can be combined with the overall per-port limit egress-rate (see /in/eth/sw/port). |
map (name; Default: default) | Allows user-defined QoS priority-to-profile mapping in the case of a trusted port or host (see /in/eth/sw/qos/map). |
pfc (name; Default: disabled) | The name of the PFC profile to control ingress priority-based traffic flow (see /in/eth/sw/qos/priority-flow-control). |
profile (name; Default: default) | The name of the QoS profile to assign to the ingress packets by default (see /in/eth/sw/qos/profile). |
trust-l2 (ignore | trust | keep; Default: ignore) | Whenever to trust the Layer 2 headers of the incoming packets (802.1p PCP field):
· ignore – ignore L2 header; use the port’s profile value for all incoming packets; · trust – use PCP field of VLAN-tagged packets for QoS profile lookup in map. Untagged packets use the port’s profile value. Forwarded VLAN or priority-tagged packets receive the PCP value from the selected QoS profile (overwriting the original value). · keep – trust but keep the original PCP value in forwarded packets. |
trust-l3 (ignore | trust | keep; Default: ignore) | Whenever to trust the Layer 3 headers of the incoming packets (IP DSCP field):
· ignore – ignore L3 header; use either L2 header or the port’s profile (depends on trust-l2). · trust – use DSCP field of IP packets for QoS profile lookup in map. Forwarded/routed IP packets receive the DSCP value from the selected QoS profile (overwriting the original value). · keep – trust but keep the original DSCP value in forwarded/routed packets. |
tx-manager (name; Default: default) | The name of the Transmission Manager that is responsible for enqueuing and transmitting packets from the given port (see /in/eth/sw/qos/tx-manager). |
نکته : حالت اعتماد L3 اولویت بالاتری نسبت به L2 دارد مگر اینکه trust-l3=ignore یا بسته دارای هدر IP نباشد.
نکته : بستههای ارسالشده/روتشده مقادیر فیلد اولویتدار (PCP، DSCP) را از نمایه QoS انتخابشده بهدست میآورند و مقادیر اصلی را بازنویسی میکنند، مگر اینکه حالت اعتماد مربوطه برای حفظ، تنظیم شود.
کامند ها :
Command | Description |
Print the above properties in a human-friendly format. | |
print stats | Print port statistics: total and per-queue transmitted/dropped packets/bytes. |
reset-counters | Reset all counters in port statistics to zero. |
print usage | Print queue usage/resources. |
print pfc | Pring Priority Flow Control stats |
- آمار پورت
[admin@Mikrotik]
/interface/ethernet/switch/qos/port>
print
stats where
name
=ether2
name
: ether2
tx-packet
: 2 887
tx-byte
: 3 938 897
drop-packet
: 1 799
drop-byte
: 2 526 144
tx-queue0-packet
: 50
tx-queue1-packet
: 1 871
tx-queue3-packet
: 774
tx-queue5-packet
: 192
tx-queue0-byte
: 3 924
tx-queue1-byte
: 2 468 585
tx-queue3-byte
: 1 174 932
tx-queue5-byte
: 291 456
drop-queue1-packet
: 1 799
drop-queue1-byte
: 2 526 144
Property |
Description |
name |
Port name. |
tx-packet |
The total number of packets transmitted via this port. |
tx-byte |
The total number of bytes transmitted via this port. |
drop-packet |
The total number of packets should have been transmitted via this port but were dropped due to a lack of resources (e.g., queue buffers) or QoS Enforcement. |
drop-byte |
The total number of bytes should have been transmitted via this port but were dropped. |
- منابع پورت / استفاده
توجه : به دلیل محدودیتهای سختافزاری، برخی از مدلهای تراشه سوئیچ ممکن است در حین دسترسی به دادههای استفاده از پورت QoS، جریان ترافیک را قطع کنند.
از استفاده از پورت فقط برای عیب یابی استفاده کنید.
برای نظارت، به جای آن از مانیتور QoS یا آمار پورت استفاده کنید.
[admin@crs326]
/interface/ethernet/switch/qos/port>
print
usage where
name
=ether2
name
: ether2
packet-cap
: 136
packet-use
: 5
byte-cap
: 35 840
byte-use
: 9 472
queue0-packet-cap
: 130
queue0-packet-use
: 1
queue1-packet-cap
: 5
queue1-packet-use
: 4
queue3-packet-cap
: 65
queue3-packet-use
: 2
queue0-byte-cap
: 24 576
queue0-byte-use
: 256
queue1-byte-cap
: 7 680
queue1-byte-use
: 6 144
queue3-byte-cap
: 14 080
queue3-byte-use
: 3 072
Property |
Description |
name |
Port name. |
packet-cap |
Port’s packet capacity. The maximum number of packets that can be enqueued for transmission via the port. |
packet-use 1 |
Port’s packet usage. The number of packets that are currently enqueued in all port’s queues. |
byte-cap |
Port’s byte capacity (buffer size). The maximum number of bytes that can be enqueued for transmission via the port. |
byte-use 1 |
Port’s byte usage. The size of hardware buffers (in bytes) that are currently allocated for packets the enqueued packets. Since the buffers are allocated by blocks (usually – 256B each), the allocated buffer size can be bigger than the actual payload. |
queue0-packet-cap .. queue7-packet-cap 2 |
Individual queue capacity. The maximum number of packets that can be enqueued in the respective queues (unless the Shared Buffers are enabled). |
queue0-shared-packet-cap .. queue7-shared-packet-cap 2 |
Shared queue capacity (individual queue capacity + shared buffers). The maximum number of packets that can be enqueued in the respective queues. |
queue0-packet-use .. queue7-packet-use 2 |
Queue packet usage. The number of enqueued packets in the respective queues. |
queue0-byte-cap .. queue7-byte-cap 2 |
Individual queue capacity. The maximum number of bytes that can be enqueued in the respective queues (unless the Shared Buffers are enabled). |
queue0-shared-byte-cap .. queue7-shared-byte-cap 2 |
Shared queue capacity (individual queue capacity + shared buffers). The maximum number of bytes that can be enqueued in the respective queues. |
queue0-byte-use .. queue7-byte-use 2 |
Queue buffer usage (in bytes). The size of hardware buffers (in bytes) that are currently allocated for packets in the respective queues. |
queue0-byte-max .. queue7-byte-max 2 |
Maximum queue buffer fill level (in bytes). Available only on devices that provide the queue statistics service. Use the reset-counters command to reset values. |
- اگر بافرهای اشتراکی فعال باشند، استفاده از بسته/بایت پورت میتواند از ظرفیت بیشتر شود.
- فقط کوئری های در حال استفاده چاپ می شوند.
- آمار پورت PFC
[admin@crs317]
/interface/ethernet/switch/qos/port>
print
pfc
interval
=1
where running
name
: sfp-sfpplus1 sfp-sfpplus2 ether1
pfc
: roce disab
led disabled
pfc-tx
: 46
pfc-paused-tc
: 3
pfc3-pause
: 1 048 576
pfc3-resume
: 10 240
pfc3-use
: 1 075 200
Property |
Description |
name |
Port name. |
pfc |
PFC profile name. |
pfc0-pause .. pfc7-pause |
Pause thresholds of the respective traffic classes. Only PFC-enabled traffic classes are displayed. |
pfc0-resume .. pfc7-resume |
Resume thresholds of the respective traffic classes. Only PFC-enabled traffic classes are displayed. |
pfc0-use .. pfc7-use |
The current buffer usage of the respective traffic classes (in bytes). In other words, it is the total size of all queued packets on all ports that were received from this port. Only PFC-enabled traffic classes are displayed. |
pfc-tx |
Transmitted PFC frame count. |
منوی QoS
Sub-menu:
/interface/ethernet/switch/qos
تقریباً کل پیکربندی QoS HW در /in/eth/sw/qos قرار دارد.
چنین رویکردی امکان ذخیره تمام موارد پیکربندی مرتبط با QoS را در یک مکان، نظارت و Export آسان (/in/eth/sw/qos/export) فراهم میکند.
ورودی های QoS دارای دو پرچم اصلی هستند:
- H – سخت افزار تخلیه شده است (Hardware-offloaded)
- I – غیر فعال (Inactive)
تنظیمات QoS
Sub-menu:
/interface/ethernet/switch/qos/settings
Property |
Description |
multicast-buffers (percent: 1..90; Default: 10) |
Maximum amount of packet buffers for multicast/broadcast traffic (% of the total buffer memory). |
shared-buffers (percent: 0..90; Default: 40) |
Maximum amount of packet buffers that are shared between ports (% of the total buffer memory). Setting it to 0 disables buffer sharing. The remaining buffer memory is split between the ports. |
shared-buffers-color (all | green-only | yellow-and-green; Default: all) |
Restricts shared buffer usage for specific traffic colors only. |
shared-pool0 .. shared-pool7 (percent: 0..100; Default: auto) |
If the device supports multiple shared buffer pools, these settings allows adjusting the size of each pool (% of the shared buffer memory, where 100% means all shared buffers allocated by the shared-buffers setting). For example, if shared-buffers=40 and shared-pool0=50, the shared pool #0 (the first one) receives 20% of the total buffer memory (50% of 40% or “0.5 * 0.4 = 0.2”). Auto mode tries to equally allocate available resources between pools that uses auto setting, and provides at least a minimum of 10% of the total shared buffer size if the sum of other manually configured pools are exceeded. The default setting (auto). |
treat-yellow-as (green | red; Default: red) |
For devices that support only two-color traffic marking (red/green). This setting allows using the same QoS profiles for the devices with two- and three-color traffic marking. |
wred-threshold (low | medium | high; Default: medium) |
A relative amount of packets below a shared queue cap (“queueX-shared-packet-cap” or “queueX-shared-byte-cap”) to start a random tail drop. This threshold is applied only to queues with enabled Weighed Random Early Detection (wred=yes) that use shared buffers (use-shared-buffers=yes). The higher the queue buffer fill level, the higher the packet drop chance. The low threshold means the random tail drop starts later; the high – sooner. |
مانیتور QoS
Command:
/interface/ethernet/switch/qos/monitor
منابع QoS سخت افزار را رصد می کند.
Property |
Description |
total-packet-cap (integer) |
Total packet capacity. The maximum number of hardware packet descriptors that the device can store is all queues. |
total-packet-use (integer) |
Total packet usage. The current number of packet descriptors residing in the hardware memory. |
total-byte-cap (byte) |
Total tx memory capacity. |
total-byte-use (byte) |
Total tx memory usage. The current number of bytes occupied by the packets in all tx queues. |
multicast-packet-cap (integer) |
Multicast packet capacity. The maximum number of hardware packet descriptors that can be used by multicast/broadcast traffic. Depends on the multicast-buffers setting. |
multicast-packet-use (integer) |
Multicast packet usage. The hardware makes a copy of the packet descriptor for each multicast destination. |
shared-packet-cap (integer) |
Shared packet capacity. The maximum number of hardware packet descriptors that can be shared between ports and tx queues. Depends on the shared-buffers setting. |
shared-packet-use (integer) |
Shared packet usage. The current number of shared packet descriptors used by all tx queues. |
shared-byte-cap (byte) |
Shared tx memory capacity. Depends on the shared-buffers setting. |
shared-byte-use (byte) |
Shared tx memory usage. The current number of shared buffers occupied by the packets in all tx queues. |
shared-pool0-packet-cap .. shared-pool7-packet-cap (integer) |
Shared packet capacity of the each shared pool. Only the shared pools in use are displayed. These fields are omitted if the device does not support multiple shared pools. |
shared-pool0-packet-use .. shared-pool7-packet-use (integer) |
Per-pool shared packet usage. Only the shared pools in use are displayed. These fields are omitted if the device does not support multiple shared pools. |
wred-packet-threshold (integer) |
Packet count below a shared queue cap (“queueX-shared-packet-cap” in “/in/eth/sw/qos/port print usage”) to start a random tail drop or ECN marking. For example, if “queue1-shared-packet-cap=3072” and “wred-packet-threshold=512”, ECN or WRED triggers when queue1-packet-use reaches 2560 (3072 – 512). |
wred-byte-threshold (integer) |
Byte count below a shared queue cap (“queueX-shared-byte-cap”) to start a random tail drop or ECN marking. For example, if “queue1-shared-byte-cap=768KiB” and “wred-byte-threshold=128KiB”, ECN or WRED triggers when queue1-packet-use reaches 640KiB (768 – 128). |
wred-shared-pool-packet-threshold (integer) |
Packet count below a shared pool cap (“shared-poolX-packet-cap” in “/in/eth/sw/qos/monitor”) to start a random tail drop or ECN marking. For example, if “shared-pool0-packet-cap=3072” and “wred-shared-pool-packet-threshold=256”, ECN or WRED triggers when shared-pool0-packet-use reaches 2816 (3072 – 256). WRED shared pool thresholds get triggered when the shared pool is filled near its capacity, but none of the queues reach their individual thresholds. |
wred-shared-pool-byte-threshold (integer) |
Byte count below a shared pool cap (“shared-poolX-byte-cap”) to start a random tail drop or ECN marking. For example, if “shared-pool0-byte-cap=768KiB” and “wred-shared-pool-byte-threshold=64KiB”, ECN or WRED triggers when shared-pool0-byte-use reaches 704KiB (768 – 64). |
multicast-buffers (percent: 1..90; Default: 10) |
Maximum amount of packet buffers for multicast/broadcast traffic (% of the total buffer memory). |
shared-buffers (percent: 0..90; Default: 40) |
Maximum amount of packet buffers that are shared between ports (% of the total buffer memory). Setting it to 0 disables buffer sharing. The remaining buffer memory is split between the ports. |
shared-buffers-color (all | green-only | yellow-and-green; Default: all) |
Restricts shared buffer usage for specific traffic colors only. |
shared-pool0 .. shared-pool7 (percent: 0..100; Default: auto) |
If the device supports multiple shared buffer pools, these settings allows adjusting the size of each pool (% of the shared buffer memory, where 100% means all shared buffers allocated by the shared-buffers setting). For example, if shared-buffers=40 and shared-pool0=50, the shared pool #0 (the first one) receives 20% of the total buffer memory (50% of 40% or “0.5 * 0.4 = 0.2”). Auto mode tries to equally allocate available resources between pools that uses auto setting, and provides at least a minimum of 10% of the total shared buffer size if the sum of other manually configured pools are exceeded. The default setting (auto). |
treat-yellow-as (green | red; Default: red) |
For devices that support only two-color traffic marking (red/green). This setting allows using the same QoS profiles for the devices with two- and three-color traffic marking. |
wred-threshold (low | medium | high; Default: medium) |
A relative amount of packets below a shared queue cap (“queueX-shared-packet-cap” or “queueX-shared-byte-cap”) to start a random tail drop. This threshold is applied only to queues with enabled Weighed Random Early Detection (wred=yes) that use shared buffers (use-shared-buffers=yes). The higher the queue buffer fill level, the higher the packet drop chance. The low threshold means the random tail drop starts later; the high – sooner. |
پروفایل QoS
Sub-menu:/interface/ethernet/switch/qos/profile
پروفایل های QoS مقادیر فیلد اولویت (PCP، DSCP) را برای بسته های ارسال شده/روت شده تعیین می کنند.
اجتناب از ازدحام / حل و فصل بر اساس پروفایل QoS است.
هر بسته یک پروفایل QoS دریافت می کند که بر اساس تنظیمات QoS درگاه سوئیچ ورودی اختصاص داده شده است (به /in/eth/sw/port مراجعه کنید).
Property |
Description |
color (green | yellow | red; Default: green) |
Traffic color for color-aware drop precedence management. Leave the default value (green) for color-blind drop precedence management. |
dscp (integer: 0..63; Default: 0) |
IPv4/IPv6 DSCP field value for the egress packets assigned to the QoS profile. |
name (string; Default: ) |
The user-defined name of the QoS profile. |
pcp (integer: 0..7; Default: 0) |
VLAN priority value (IEEE 802.1q PCP – Priority Code Point). Used only if the egress packets assigned to the QoS profile are VLAN-tagged (have the 802.1q header). The value can be further altered via the QoS Egress Map. |
traffic-class (integer: 0..7; Default: 0) |
The traffic class determines the packet priority and the egress queue (see tx-manager). The queue number is usually the same as the traffic class (packets with tc0 go into queue0, tc1 – queue1, … tc7 – queue7). Unlike pcp, where 0 means the default priority but 1 – the lowest one (and further customizable), traffic classes are strictly ordered. TC0 always selects the lowest priority, etc. |
نقشه برداری QoS
Sub-menu:/interface/ethernet/switch/qos/map
جدول(های) نگاشت اولویت به پروفایل برای بسته های مورد اعتماد.
همه تراشه های سوئیچ دارای یک نقشه داخلی هستند – پیش فرض.
علاوه بر این، برخی از مدلها به کاربر اجازه میدهند جداول نگاشت سفارشی را تعریف کنند و نقشههای مختلف را به پورتهای سوئیچ مختلف از طریق ویژگی qos-map اختصاص دهند:
- دستگاههای مبتنی بر مدلهای تراشه سوئیچ Marvell Prestera 98DX224S، 98DX226S یا 98DX3236 تنها از یک نقشه پشتیبانی میکنند – پیشفرض.
- دستگاههای مبتنی بر تراشههای سوئیچ Marvell Prestera 98DX8xxx، 98DX4xxx یا دستگاههای مدل 98DX325x حداکثر از 12 نقشه (پیشفرض + 11 تعریف شده توسط کاربر) پشتیبانی میکنند.
name (string; Default: ) | The user-defined name of the mapping table |