| skbmod action in tc(8) | Linux | skbmod action in tc(8) |
نام (NAME)
tc-skbmod - کنش ویرایشگر بستهها با کاربری آسان
خلاصه دستور (SYNOPSIS)
tc ... action skbmod { set SETTABLE | swap SWAPPABLE | ecn } [ CONTROL ] [ index INDEX ]
SETTABLE := [ dmac DMAC ] [ smac SMAC ] [ etype ETYPE ]
SWAPPABLE := mac
CONTROL := { reclassify | pipe | drop | shot | continue | pass }
توضیحات (DESCRIPTION)
کنش skbmod بهعنوان یک ارتقای کاربردپذیری برای کنش موجود pedit طراحی شده است. بهجای نیاز به ویرایش دستی بخشهای ۸، ۱۶ یا ۳۲ بیتی از یک سرآیند اترنت، skbmod امکان جایگزینی کامل مؤلفههای پشتیبانیشده را فراهم میکند. کنش باید یکی از موارد set، swap یا ecn باشد. set و swap فقط بر بستههای اترنت اثر میگذارند، در حالی که ecn تنها بستههای IP را تحت تأثیر قرار میدهد.
گزینهها (OPTIONS)
- dmac DMAC
- تغییر نشانی مک مقصد به نشانی مشخصشده.
- smac SMAC
- تغییر نشانی مک مبدأ به نشانی مشخصشده.
- etype ETYPE
- تغییر نوع اترنت (ethertype) به مقدار مشخصشده.
- mac
- برای جابهجا کردن نشانیهای مک استفاده میشود.
- ecn
- برای علامتگذاری بستههای IP با قابلیت انتقال سازگار با ECN (ECT) بهعنوان مواجهه با ازدحام (CE) استفاده میشود. بر بستههای فاقد قابلیت ECN (Non-ECT) تأثیری ندارد.
- CONTROL
- کلیدواژههای زیر امکان کنترل نحوه پیمایش ادامه درخت qdisc، کلاسها، فیلترها و کنشها را پس از این کنش فراهم میکنند.
مثالها (EXAMPLES)
برای شروع، فیلتر زیر را همراه با یک کنش pedit در نظر بگیرید:
tc filter add dev eth1 parent 1: protocol ip prio 10 \ u32 match ip protocol 1 0xff flowid 1:2 \ action pedit munge offset -14 u8 set 0x02 \ munge offset -13 u8 set 0x15 \ munge offset -12 u8 set 0x15 \ munge offset -11 u8 set 0x15 \ munge offset -10 u16 set 0x1515 \ pipe
با استفاده از کنش skbmod، میتوان این دستور را بهصورت زیر ساده کرد:
tc filter add dev eth1 parent 1: protocol ip prio 10 \ u32 match ip protocol 1 0xff flowid 1:2 \ action skbmod set dmac 02:15:15:15:15:15 \ pipe
در صورتی که نشانی مک مبدأ و ethertype نیز بهعنوان بخشی از این کنش ویرایش شوند، پیچیدگی بیشتر خواهد شد. اگر قرار باشد هر سه فیلد با skbmod تغییر یابند:
tc filter add dev eth5 parent 1: protocol ip prio 10 \ u32 match ip protocol 1 0xff flowid 1:2 \ action skbmod \ set etype 0xBEEF \ set dmac 02:12:13:14:15:16 \ set smac 02:22:23:24:25:26
برای جابهجا کردن نشانیهای مک مقصد و مبدأ در سرآیند اترنت:
tc filter add dev eth3 parent 1: protocol ip prio 10 \ u32 match ip protocol 1 0xff flowid 1:2 \ action skbmod \ swap mac
در نهایت، برای علامتگذاری کدپوینت CE در سرآیند IP برای بستههای با قابلیت انتقال سازگار با ECN (ECT):
tc filter add dev eth0 parent 1: protocol ip prio 10 \ u32 match ip protocol 1 0xff flowid 1:2 \ action skbmod \ ecn
در یک دستور منفرد تنها باید یکی از موارد set، swap یا ecn استفاده شود. تلاش برای استفاده از بیش از یکی از آنها در یک دستور، رفتاری تعریفنشده تلقی میشود؛ در عوض، چند دستور را از طریق لولهکشی (pipe) به یکدیگر متصل کنید.
همچنین ببینید (SEE ALSO)
| 21 Sep 2016 | iproute2 |