NETSHAPER(8) Linux NETSHAPER(8)

netshaper - نمایش و مدیریت پیکربندی شکلدهی سختافزاری دستگاه شبکه


netshaper [ OPTIONS ] { COMMAND | help }

OPTIONS := { -V[ersion] | -c[olor] | -help }

netshaper set dev DEV handle scope HANDLE_SCOPE [ id HANDLE_ID ] [ bw-min BW_MIN ] [ bw-max BW_MAX ] [ weight WEIGHT ]

netshaper { show | delete } dev DEV handle scope HANDLE_SCOPE [ id HANDLE_ID ]

netshaper group dev DEV handle scope { node | netdev } [ id HANDLE_ID ] [ parent scope { netdev [ id PARENT_ID ] | node id PARENT_ID } ] [ bw-min BW_MIN ] [ bw-max BW_MAX ] [ weight WEIGHT ] leaves LEAF_SPEC [ LEAF_SPEC ... ]


LEAF_SPEC := scope queue id ID [ weight WEIGHT ] [ priority PRIO ]

دستور netshaper امکان پیکربندی و مدیریت قابلیت‌های محدودسازی نرخ ترافیک سخت‌افزاری (شکل‌دهی) موجود بر روی دستگاه‌های شبکه را فراهم می‌کند. این رابط برنامه‌نویسی (API) امکان کنترل شکل‌دهنده‌ها را در سطوح گوناگون از جمله دستگاه‌های شبکه، صف‌ها و گره‌های زمان‌بندی مهیا ساخته و دستکاری درخت زمان‌بندی دستگاه را ممکن می‌سازد.

هر شکل‌دهنده در یک دستگاه به‌طور یکتا با یک handle (دستگیره) مشخص می‌شود که شامل یک scope (دامنه) و یک id (شناسه) اختیاری است. بسته به مقدار دامنه، شکل‌دهنده‌ها به اشیاء سخت‌افزاری خاصی متصل می‌شوند:

شکل‌دهنده‌های متصل به کل دستگاه شبکه. پارامتر id برای این دامنه اختیاری است (در صورت عدم تعیین، مقدار پیش‌فرض آن 0 خواهد بود).
شکل‌دهنده‌های متصل به صف‌های مشخص دستگاه. پارامتر id الزامی بوده و شماره صف را مشخص می‌کند.
گره‌های زمان‌بندی میانی که می‌توانند در مکان‌های دلخواه از درخت زمان‌بندی قرار گیرند. پارامتر id برای دستورات set، show و delete الزامی است. برای دستور group این پارامتر اختیاری است؛ در صورت حذف، هسته به‌طور خودکار یک شناسه اختصاص می‌دهد.

- ایجاد یا به‌روزرسانی پیکربندی شکل‌دهنده

یک شکل‌دهنده را با پارامترهای مشخص‌شده ایجاد کرده یا به‌روزرسانی می‌کند. حداقل باید یکی از پارامترهای bw-min، bw-max یا weight مشخص شود. پارامتر id برای دامنه‌های queue و node الزامی بوده و برای دامنه netdev اختیاری است.

- نمایش اطلاعات شکل‌دهنده

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

- حذف پیکربندی شکل‌دهنده

پیکربندی شکل‌دهنده مشخص‌شده را از دستگاه حذف می‌کند.

- ایجاد سلسله‌مراتب زمان‌بندی

با پیوند دادن یک یا چند شکل‌دهنده برگ صف به یک دستگیره netdev یا node در قالب یک عملیات منفرد، یک گروه زمان‌بندی ایجاد می‌کند. این دستور دستگیره هدف، والد آن، پارامترهای اختیاری پهنای باند و وزن، و مجموعه‌ای از برگ‌های صف را برای اتصال مشخص می‌کند.

نام دستگاه شبکه‌ای را مشخص می‌کند که عملیات روی آن انجام می‌شود.
دستگیره شکل‌دهنده را تعریف می‌کند که متشکل از موارد زیر است:
دامنه شکل‌دهنده که می‌تواند یکی از موارد زیر باشد: netdev (شکل‌دهنده در سطح دستگاه)، queue (شکل‌دهنده در سطح صف)، یا node (شکل‌دهنده گره زمان‌بندی).
شناسه عددی برای شکل‌دهنده. برای دامنه‌های queue و node الزامی است. برای دامنه netdev اختیاری است (پیش‌فرض 0). برای دستور group، شناسه id گره می‌تواند حذف شود تا هسته به‌طور خودکار شناسه‌ای اختصاص دهد.
حداقل پهنای باند تضمین‌شده برای شکل‌دهنده. مقادیر با پسوندهای زیر را می‌پذیرد: kbit، mbit، gbit به‌ترتیب برای کیلوبیت، مگابیت و گیگابیت بر ثانیه.
حداکثر سقف پهنای باند برای شکل‌دهنده. همان پسوندهای bw-min را می‌پذیرد.
وزن زمان‌بندی برای شکل‌دهنده که برای تسهیم عادلانه وزن‌دار بین گره‌های همتا زیر همان گره والد به کار می‌رود. مقدار آن یک عدد صحیح بدون علامت است.
والد را برای دستور group تعریف می‌کند. دامنه والد باید node یا netdev باشد؛ queue به‌عنوان دامنه والد معتبر نیست. برای دامنه والد node، پارامتر id الزامی است. برای دامنه والد netdev، پارامتر id اختیاری است. در صورت حذف، والد از والد فعلی برگ‌ها به ارث برده می‌شود که این امر مستلزم آن است که همه برگ‌ها دارای یک والد مشترک باشند.
یک یا چند شکل‌دهنده برگ را برای اتصال به گروه مشخص می‌کند. هر برگ باید از دامنه queue استفاده کند؛ هیچ دامنه دیگری برای برگ‌ها پذیرفته نمی‌شود. هر برگ به‌صورت scope queue id ID مشخص می‌شود، به همراه پارامترهای اختیاری weight و priority برای زمان‌بندی به ازای هر صف در داخل گروه. چندین برگ را می‌توان به‌صورت پشت‌سرهم مشخص کرد.

چاپ نسخه ابزار netshaper و خروج.
پیکربندی خروجی رنگی. اگر پارامتر حذف شود یا برابر با always باشد، خروجی رنگی صرف‌نظر از وضعیت stdout فعال می‌شود. اگر پارامتر برابر با auto باشد، وضعیت ترمینال بودن stdout پیش از فعال‌سازی خروجی رنگی بررسی می‌شود. اگر پارامتر برابر با never باشد، خروجی رنگی غیرفعال می‌گردد. در صورت مشخص شدن چندباره، آخرین مورد اولویت خواهد داشت.
نمایش اطلاعات نحوه استفاده و خروج.

مثال ۱: ایجاد یک شکل‌دهنده در سطح دستگاه
# netshaper set dev foo handle scope netdev bw-max 10gbit
یک شکل‌دهنده در دامنه netdev با حداکثر پهنای باند 10 گیگابیت بر ثانیه ایجاد می‌کند.
مثال ۲: تنظیم پهنای باند و وزن روی شکل‌دهنده صف
# netshaper set dev foo handle scope queue id 0 \
    bw-min 1gbit bw-max 5gbit weight 10
یک شکل‌دهنده در دامنه queue روی صف 0 همراه با محدودیت‌های حداقل و حداکثر پهنای باند و وزن زمان‌بندی ایجاد می‌کند.
مثال ۳: نمایش پیکربندی شکل‌دهنده
# netshaper show dev foo handle scope netdev
پیکربندی فعلی شکل‌دهنده را برای دستگاه و دستگیره مشخص‌شده نمایش می‌دهد.
مثال ۴: ایجاد سلسله‌مراتب زمان‌بندی با group
# netshaper group dev foo handle scope node \
    parent scope netdev bw-max 10gbit \
    leaves scope queue id 0 weight 3 \
    scope queue id 1 weight 2
یک شکل‌دهنده node تحت والد netdev ایجاد کرده و صف‌های 0 و 1 را به‌عنوان برگ گروه‌بندی می‌کند. محدودیت 10 گیگابیت بر ثانیه بر خود گره اعمال می‌شود.
مثال ۵: حذف پیکربندی شکل‌دهنده
# netshaper delete dev foo handle scope netdev
پیکربندی شکل‌دهنده مشخص‌شده را حذف می‌کند.

  • برای دامنه netdev، پارامتر id اختیاری است و در صورت عدم تعیین، به‌طور پیش‌فرض 0 خواهد بود.
  • برای دامنه‌های queue و node، پارامتر id الزامی است. برای دستور group، شناسه id گره می‌تواند حذف شود تا هسته به‌طور خودکار شناسه‌ای اختصاص دهد.
  • مقادیر پهنای باند از پسوندهای استاندارد پشتیبانی می‌کنند: kbit (کیلوبیت بر ثانیه)، mbit (مگابیت بر ثانیه)، gbit (گیگابیت بر ثانیه).
  • دستور group برگ‌های صف را در یک عملیات اتمیک (تجزیه‌ناپذیر) منفرد به دستگیره netdev یا node متصل می‌کند.

ip(8), ip-link(8), tc(8)

Erni Sri Satya Vennela <ernis@linux.microsoft.com>
Mohsin Bashir <hmohsin@meta.com>

19 May 2026 iproute2