| Mirror/redirect action in tc(8) | Linux | Mirror/redirect action in tc(8) |
نام (NAME)
tc-mirred - کنش آینهکردن یا هدایت مجدد بستهها در کنترل ترافیک
خلاصه دستور (SYNOPSIS)
tc ... action mirred DIRECTION ACTION [ index INDEX ] TARGET
DIRECTION := { ingress | egress }
TARGET := { DEV | BLOCK }
DEV := dev DEVICENAME
BLOCK := blockid BLOCKID
ACTION := { mirror | redirect }
توضیحات (DESCRIPTION)
کنش mirred امکان آینهکردن (کپی کردن) یا تغییرمسیر دادن (ربودن یا stealing) بستههای دریافتی را فراهم میکند. آینهکردن همان قابلیتی است که گاهی با نام Switch Port Analyzer (SPAN) شناخته میشود و معمولاً برای تحلیل یا اشکالزدایی جریانهای داده به کار میرود. هنگام آینهکردن به یک بلوک tc، بسته به تمام درگاههای موجود در بلوک آینه خواهد شد، به جز درگاهی که بسته از آن وارد شده است (در صورتی که آن درگاه بخشی از بلوک tc باشد). تغییرمسیر دادن مشابه آینهکردن است، با این تفاوت که رفتار آن بدین صورت است که بسته به N - 1 درگاه نخست در بلوک آینه میشود و به آخرین درگاه تغییرمسیر مییابد (توجه داشته باشید به درگاهی که بسته از آن وارد شده است، آینه یا تغییرمسیر انجام نخواهد شد).
گزینهها (OPTIONS)
- ingress
- egress
- جهتی که بسته باید در رابط مقصد ظاهر شود را مشخص میکند.
- mirror
- redirect
- مشخص میکند که بسته باید در رابط مقصد یا بلوک کپی شود (mirror) یا منتقل گردد (redirect).
- index INDEX
- یک شناسه یکتا به این کنش اختصاص میدهد، بهجای اینکه به هسته اجازه دهد یکی را به طور خودکار انتخاب کند. INDEX یک عدد صحیح بدون علامت ۳۲ بیتی بزرگتر از صفر است.
- dev DEVICENAME
- رابط شبکهای که باید تغییرمسیر یا آینهکردن به آن انجام شود را مشخص میکند.
- blockid BLOCKID
- بلوک tc مقصد برای تغییرمسیر یا آینهکردن را مشخص میکند.
مثالها (EXAMPLES)
محدود کردن پهنای باند ورودی در eth0 به 1mbit/s و تغییرمسیر ترافیک مازاد به lo بهمنظور اشکالزدایی:
# tc qdisc add dev eth0 handle ffff: clsact # tc filter add dev eth0 ingress u32 \ match u32 0 0 \ action police rate 1mbit burst 100k conform-exceed pipe \ action mirred egress redirect dev lo
آینهکردن تمام بستههای ورودی ICMP روی eth0 به یک رابط مجازی dummy برای بررسی با ابزارهایی مانند tcpdump:
# ip link add dummy0 type dummy # ip link set dummy0 up # tc qdisc add dev eth0 handle ffff: clsact # tc filter add dev eth0 ingress protocol ip \ u32 match ip protocol 1 0xff \ action mirred egress mirror dev dummy0
با استفاده از یک رابط ifb، ارسال ترافیک ورودی از طریق یک نمونه از sfq امکانپذیر است:
# modprobe ifb # ip link set ifb0 up # tc qdisc add dev ifb0 root sfq # tc qdisc add dev eth0 handle ffff: clsact # tc filter add dev eth0 ingress u32 \ match u32 0 0 \ action mirred egress redirect dev ifb0
محدودیتها (LIMITATIONS)
هسته برای جلوگیری از احتمال ایجاد حلقههای تودرتو، تودرتویی را به چهار سطح محدود میکند.
از تغییرمسیر دادن از یک دستگاه IFB به دستگاه دیگر خودداری کنید. دستگاه IFB یک مورد بسیار خاص از دستگاههای هدایت مجدد بسته است. تغییرمسیر از ifbX->ifbY باعث دور ریخته شدن تمامی بستهها خواهد شد.
همچنین ببینید (SEE ALSO)
| 11 Jan 2015 | iproute2 |