.TH IP\-NETNS 8 "16 Jan 2013" "iproute2" "Linux" .SH "نام (NAME)" ip-netns \- مدیریت فضاهای نام شبکه (network namespaces) .SH "خلاصه دستور (SYNOPSIS)" .sp .ad l .in +8 .ti -8 .B ip .RI "[ " OPTIONS " ]" .B netns .RI " { " COMMAND " | " .BR help " }" .sp .ti -8 .BR "ip netns" " [ " list " ]" .ti -8 .B ip netns add .I NETNSNAME .ti -8 .B ip netns attach .I NETNSNAME PID .ti -8 .B ip [-all] netns del .RI "[ " NETNSNAME " ]" .ti -8 .B ip netns set .I NETNSNAME NETNSID .ti -8 .IR NETNSID " := " auto " | " POSITIVE-INT .ti -8 .BR "ip netns identify" .RI "[ " PID " ]" .ti -8 .BR "ip netns pids" .I NETNSNAME .ti -8 .BR "ip [-all] netns exec " .RI "[ " NETNSNAME " ] " command ... .ti -8 .BR "ip netns monitor" .ti -8 .BR "ip netns list-id" .RI "[ target-nsid " POSITIVE-INT " ] [ nsid " POSITIVE-INT " ]" .SH "توضیحات (DESCRIPTION)" یک فضای نام شبکه (network namespace) از نظر منطقی نسخه‌ای دیگر از پشته شبکه (network stack) است، با مسیرها، قوانین دیوار آتش (firewall) و دستگاه‌های شبکه اختصاصی خود. به‌طور پیش‌فرض، یک پردازش فضای نام شبکه خود را از والدش به ارث می‌برد. در ابتدا، همه پردازش‌ها فضای نام شبکه پیش‌فرض یکسانی را از پردازش .I init به اشتراک می‌گذارند. طبق قرارداد، یک فضای نام شبکه نام‌گذاری‌شده شیئی در مسیر .BR "/run/netns/" NAME است که قابلیت باز شدن دارد. توصیف‌گر فایل (file descriptor) حاصل از باز کردن .BR "/run/netns/" NAME به فضای نام شبکه مشخص‌شده اشاره می‌کند. باز نگه‌داشتن این توصیف‌گر فایل، فضای نام شبکه را زنده نگه می‌دارد. این توصیف‌گر فایل می‌تواند به همراه فراخوان سیستمی .B setns(2) جهت تغییر فضای نام شبکه مرتبط با یک تسک استفاده شود. برای برنامه‌هایی که از فضاهای نام شبکه آگاه هستند، قرارداد بر این است که فایل‌های پیکربندی سراسری شبکه ابتدا در مسیر .BR "/etc/netns/" NAME "/" و سپس در .BR "/etc/" جستجو شوند. به عنوان مثال، اگر نسخه متفاوتی از .BR /etc/resolv.conf را برای یک فضای نام شبکه که جهت ایزوله‌سازی وی‌پی‌ان شما به کار می‌رود می‌خواهید، می‌توانید آن را به صورت .BR /etc/netns/myvpn/resolv.conf نام‌گذاری کنید. دستور .B ip netns exec رسیدگی به این قرارداد فایل‌های پیکربندی را برای برنامه‌های ناآگاه از فضای نام شبکه خودکار می‌کند؛ این کار از طریق ایجاد یک فضای نام سوارکردن (mount namespace) و bind-mount کردن تمام فایل‌های پیکربندی مختص به هر فضای نام شبکه در مکان سنتی آن‌ها در .B /etc صورت می‌گیرد. .TP .B ip netns list \- نمایش تمام فضاهای نام شبکه نام‌گذاری‌شده .sp این دستور تمام فضاهای نام شبکه موجود در .B /run/netns را نمایش می‌دهد. .TP .B ip netns add NAME \- ایجاد یک فضای نام شبکه نام‌گذاری‌شده جدید .sp اگر .I NAME در .B /run/netns در دسترس باشد، این دستور یک فضای نام شبکه جدید ایجاد کرده و .I NAME را به آن اختصاص می‌دهد. .TP .B ip netns attach NAME PID \- انتساب یک نام به فضای نام شبکه پردازش .sp اگر .I NAME در .B /run/netns در دسترس باشد، این دستور فضای نام شبکه مربوط به پردازش .I PID را به .I NAME متصل می‌کند، درست همان‌گونه که با .B ip netns ایجاد شده باشد. .TP .B ip [-all] netns delete [ NAME ] \- حذف نام یک یا چند فضای نام شبکه .sp اگر .I NAME در .B /run/netns موجود باشد، از حالت سوارشده خارج (umount) شده و نقطه اتصال حذف می‌گردد. اگر این آخرین کاربر فضای نام شبکه باشد، فضای نام شبکه آزاد خواهد شد و تمامی دستگاه‌های فیزیکی به فضای نام پیش‌فرض منتقل می‌شوند، در غیر این صورت فضای نام شبکه تا زمانی که هیچ کاربری نداشته باشد باقی می‌ماند. اگر نقطه اتصال در یک فضای نام سوارکردن دیگر در حال استفاده باشد، ممکن است .B ip netns delete با خطا مواجه شود. اگر گزینه .B \-all مشخص شده باشد، آن‌گاه تمام نام‌های فضاهای نام شبکه حذف خواهند شد. این احتمال وجود دارد که دستگاه فیزیکی هنگام انتقال به یک netns و سپس حذف آن netns در حالی که پردازشی درون آن در حال اجرا است، موقتاً از دست برود: .RS 10 .nf $ ip netns add net0 .fi .RE .RS 10 .nf $ ip link set dev eth0 netns net0 .fi .RE .RS 10 .nf $ ip netns exec net0 SOME_PROCESS_IN_BACKGROUND .fi .RE .RS 10 .nf $ ip netns del net0 .fi .RE .RS و .B eth0 تنها پس از خروج یا خاتمه یافتن (kill شدن) پردازش .B SOME_PROCESS_IN_BACKGROUND در netns پیش‌فرض پدیدار خواهد شد. برای جلوگیری از این حالت، پردازش‌های در حال اجرا در .B net0 باید پیش از حذف netns کشته شوند: .RE .RS 10 .nf $ ip netns pids net0 | xargs kill .fi .RE .RS 10 .nf $ ip netns del net0 .fi .RE .TP .B ip netns set NAME NETNSID \- انتساب شناسه به فضای نام شبکه همتا .sp این دستور یک شناسه را به فضای نام شبکه همتا (peer) اختصاص می‌دهد. این شناسه تنها در فضای نام شبکه کنونی معتبر است. اگر کلیدواژه "auto" مشخص شود، یک nsid موجود و آزاد برگزیده خواهد شد. این شناسه توسط هسته در برخی پیام‌های netlink استفاده می‌شود. اگر زمانی که هسته به آن نیاز دارد شناسه‌ای اختصاص داده نشده باشد، هسته به صورت خودکار آن را اختصاص می‌دهد. پس از تخصیص، تغییر آن امکان‌پذیر نخواهد بود. .TP .B ip netns identify [PID] \- گزارش نام‌های فضای نام شبکه برای یک پردازش .sp این دستور مسیر .B /run/netns را پیمایش کرده و تمام نام‌های فضای نام شبکه را برای فضای نام شبکه پردازش مشخص‌شده پیدا می‌کند؛ اگر .I PID مشخص نشود، از پردازش فعلی استفاده خواهد شد. .TP .B ip netns pids NAME \- گزارش پردازش‌های موجود در فضای نام شبکه نام‌گذاری‌شده .sp این دستور دایرکتوری .B /proc را پیمایش کرده و تمام پردازش‌هایی را که دارای این فضای نام شبکه نام‌گذاری‌شده به عنوان فضای نام شبکه اصلی خود هستند پیدا می‌کند. .TP .B ip [-all] netns exec [ NAME ] cmd ... \- اجرای دستور در فضای نام شبکه نام‌گذاری‌شده .sp این دستور به برنامه‌هایی که از فضای نام شبکه آگاه نیستند اجازه می‌دهد در محیطی به جز فضای نام شبکه پیش‌فرض اجرا شوند، در حالی که تمام پیکربندی‌های مربوط به فضای نام شبکه مشخص‌شده در مکان‌های سراسری مرسوم پدیدار می‌شوند. یک فضای نام شبکه و bind mountها به کار گرفته می‌شوند تا فایل‌ها را بدون تأثیرگذاری بر سایر پردازش‌ها، از مکان اختصاصی فضای نام شبکه به مکان‌های پیش‌فرض آن‌ها انتقال دهند. اگر گزینه .B \-all مشخص شده باشد، آن‌گاه .B cmd به‌صورت همگام بر روی هر یک از فضاهای نام شبکه نام‌گذاری‌شده اجرا می‌شود، حتی اگر .B cmd روی برخی از آن‌ها شکست بخورد. در هر بار اجرای .BR cmd ، نام فضای نام شبکه چاپ می‌شود. .TP .B ip netns monitor \- گزارش همزمان با افزودن و حذف نام‌های فضای نام شبکه .sp این دستور رویدادهای افزودن و حذف نام‌های فضای نام شبکه را زیر نظر می‌گیرد و برای هر رویدادی که مشاهده می‌کند یک خط چاپ می‌نماید. .TP .B ip netns list-id [target-nsid POSITIVE-INT] [nsid POSITIVE-INT] \- فهرست کردن شناسه‌های فضای نام شبکه (nsid) .sp شناسه‌های فضای نام شبکه برای شناسایی یک فضای نام شبکه همتا استفاده می‌شوند. این دستور nsidهای فضای نام شبکه کنونی را نمایش می‌دهد و در صورت وجود، نام فضای نام متناظر iproute2 (از مسیر .BR /run/netns ) را ارائه می‌دهد. گزینه .B target-nsid امکان نمایش nsidهای فضای نام شبکه مشخص‌شده را به جای فضای نام شبکه فعلی فراهم می‌کند. این .B target-nsid یک شناسه nsid از فضای نام شبکه فعلی است. گزینه .B nsid امکان نمایش تنها همین nsid را فراهم می‌سازد. این یک nsid از فضای نام شبکه کنونی است. در ترکیب با گزینه .BR target-nsid ، تبدیل یک nsid مشخص از فضای نام شبکه فعلی به یک nsid در فضای نام شبکه .B target-nsid را امکان‌پذیر می‌سازد. .SH "مثالها (EXAMPLES)" .PP .nf ip netns list .fi .RS فهرست فضاهای نام شبکه نام‌گذاری‌شده کنونی را نمایش می‌دهد. .RE .PP .nf ip netns add vpn .fi .RS یک فضای نام شبکه ایجاد کرده و نام آن را vpn می‌گذارد. .RE .PP .nf ip netns exec vpn ip link set lo up .fi .RS رابط لوپ‌بک (loopback) را در فضای نام شبکه vpn فعال می‌کند. .RE .PP .nf ip netns add foo ip netns add bar ip netns set foo 12 ip netns set bar 13 ip -n foo netns set foo 22 ip -n foo netns set bar 23 ip -n bar netns set foo 32 ip -n bar netns set bar 33 ip netns list-id target-nsid 12 .fi .RS فهرست nsidهای مربوط به فضای نام شبکه foo را نمایش می‌دهد. .RE .PP .nf ip netns list-id target-nsid 12 nsid 13 .fi .RS شناسه nsid مربوط به bar را از فضای نام شبکه foo دریافت می‌کند (نتیجه ۲۳ خواهد بود). .RE .SH "همچنین ببینید (SEE ALSO)" .br .BR ip (8) .SH "نویسنده (AUTHOR)" صفحه راهنمای اصلی توسط Eric W. Biederman نوشته شده است. .br بازبینی صفحه راهنما توسط Nicolas Dichtel انجام شده است.