| IP-VRF(8) | Linux | IP-VRF(8) |
نام (NAME)
ip-vrf - اجرای دستورات در بستر یک دستگاه VRF
خلاصه دستور (SYNOPSIS)
ip vrf { COMMAND | help }
ip vrf show [ NAME ]
ip vrf identify [ PID ]
ip vrf pids NAME
ip vrf exec [ NAME ] command...
توضیحات (DESCRIPTION)
یک VRF جداسازی ترافیک را در لایه ۳ برای مسیریابی فراهم میکند، مشابه روشی که در آن از VLAN برای جداسازی ترافیک در لایه ۲ استفاده میشود. اساساً، یک VRF یک جدول مسیریابی جداگانه است. دستگاههای شبکه با متصل کردن (enslaving) دستگاه به VRF، با آن مرتبط میشوند. در این نقطه، آدرسهای شبکه اختصاصیافته به دستگاه، محلی برای آن VRF در نظر گرفته شده و مسیرهای میزبان (host) و متصل (connected) به جدول مرتبط با آن VRF منتقل میشوند.
یک پردازش میتواند با استفاده از چندین رابط برنامهنویسی (API) یک VRF را تعیین کند -- اتصال سوکت به دستگاه VRF با استفاده از SO_BINDTODEVICE، تنظیم وابستگی به VRF با استفاده از IP_UNICAST_IF یا IPV6_UNICAST_IF، یا مشخص کردن VRF برای یک پیام مشخص با استفاده از IP_PKTINFO یا IPV6_PKTINFO.
بهطور پیشفرض، یک پردازش به هیچ VRF متصل نیست. این ارتباط میتواند بهطور صریح با واداشتن برنامه به استفاده از یکی از APIهای ذکرشده در بالا، یا بهطور ضمنی با استفاده از یک ابزار کمکی برای تنظیم SO_BINDTODEVICE برای تمامی سوکتهای IPv4 و IPv6 (AF_INET و AF_INET6) در هنگام ایجاد سوکت تعیین شود. این دستور ip-vrf یک ابزار کمکی است تا دستوری را در بستر یک VRF مشخص اجرا کند، به گونهای که وابستگی به VRF از والد به فرزند به ارث برسد.
- ip vrf show [ NAME ] - نمایش تمام VRFهای پیکربندیشده
-
این دستور تمام VRFها و شناسههای جدول متناظر با آنها را فهرست میکند. اگر NAME داده شود، تنها همان VRF و شناسه جدول آن نمایش داده میشود. دستور دوم برای اسکریپتنویسی در مواردی که به شناسه جدول یک VRF نیاز باشد، مفید است.
- ip vrf exec [ NAME ] cmd ... - اجرای cmd در بستر VRF نامگذاریشده
-
این دستور به برنامههایی که از VRF آگاهی ندارند اجازه میدهد در بستر یک VRF غیر از VRF پیشفرض (جدول اصلی) اجرا شوند. یک دستور میتواند با ارسال «default» به عنوان نام VRF، در بستر VRF پیشفرض اجرا شود. این قابلیت در صورتی که شل (shell) فعلی با یک VRF دیگر (مانند Management VRF) مرتبط باشد، مفید است.
این دستور نیازمند این است که سیستم با cgroup v2 راهاندازی شده باشد (مثلاً با systemd، افزودن systemd.unified_cgroup_hierarchy=1 به خط فرمان هسته).
این دستور همچنین نیازمند اجرا به عنوان کاربر ریشه (root) است. در غیر این صورت، میتواند توسط یک کاربر غیرممتاز نیز اجرا شود اگر capabilities(7) زیر داده شده باشند:
- CAP_BPF
- برای بارگذاری برنامه BPF.
- CAP_NET_ADMIN
- برای قرار دادن سوکت درون cgroup.
- CAP_DAC_OVERRIDE
- برای ایجاد زیرشاخه cgroup در /sys.
- اگر این
قابلیتها
اضافه شده
باشند و اگر
ip(8) همراه با
libcap(3) کامپایل
شده باشد،
در این صورت
این
قابلیتها
پیش از آنکه
cmd توسط ip vrf exec
اجرا شود
ساقط
خواهند شد.
برای هر
فراخوانی
غیرممتاز
دیگر از ip(8)
تمام
قابلیتها
ساقط
خواهند شد.
نکته: اگر CAP_NET_ADMIN روی INHERITABLE تنظیم شده باشد، قابلیتها ساقط نخواهند شد تا از ازکارافتادن برنامههای دارای قابلیتهای محیطی (ambient capabilities) که ip را فراخوانی میکنند، جلوگیری شود.
- ip vrf identify [PID] - گزارش وابستگی به VRF برای پردازش
-
این دستور وابستگی پردازش مشخصشده به VRF را نمایش میدهد. اگر PID مشخص نشده باشد، شناسه پردازش فعلی استفاده میشود.
- ip vrf pids NAME - گزارش پردازشهای وابسته به VRF نامگذاریشده
-
این دستور تمام شناسههای پردازشی را که به VRF دادهشده وابسته هستند نمایش میدهد.
هشدارها (CAVEATS)
این دستور نیازمند هستهای است که با گزینههای CGROUPS و CGROUP_BPF فعال کامپایل شده باشد.
ابزار کمکی VRF فقط بر روی سوکتهای لایه شبکه تأثیر میگذارد.
مثالها (EXAMPLES)
ip vrf exec red ssh 10.100.1.254
همچنین ببینید (SEE ALSO)
ip(8), ip-link(8), ip-address(8), ip-route(8), ip-neighbor(8)
نویسنده (AUTHOR)
صفحه راهنمای اصلی توسط David Ahern نوشته شده است.
| 7 Dec 2016 | iproute2 |