IP-ADDRESS(8) Linux IP-ADDRESS(8)

ip-address - مدیریت آدرسهای پروتکل (IP یا IPv6) روی دستگاههای شبکه


ip [ OPTIONS ] address { COMMAND | help }

ip address { add | change | replace } IFADDR dev IFNAME [ LIFETIME ] [ CONFFLAG-LIST ]

ip address delete IFADDR dev IFNAME [ mngtmpaddr ]

ip address { save | flush } [ dev IFNAME ] [ scope SCOPE-ID ] [ metric METRIC ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [ { up | down } ]

ip address [ show [ dev IFNAME ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [ master DEVICE ] [ type TYPE ] [ vrf NAME ] [ { up | down } ] [ nomaster ] proto ADDRPROTO ] ]

ip address { showdump | restore }

IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label LABEL ] [ scope SCOPE-ID ] [ proto ADDRPROTO ]

SCOPE-ID := [ host | link | global | NUMBER ]

ADDRPROTO := [ NAME | NUMBER ]

FLAG-LIST := [ FLAG-LIST ] FLAG

FLAG := [ [-]permanent | [-]dynamic | [-]secondary | [-]primary | [-]tentative | [-]deprecated | [-]dadfailed | [-]temporary | CONFFLAG-LIST ]

CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG

CONFFLAG := [ home | mngtmpaddr | nodad | optimistic | noprefixroute | autojoin ]

LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]

LFT := [ forever | SECONDS ]

TYPE := [ bridge | bridge_slave | bond | bond_slave | can | dummy | hsr | ifb | ipoib | macvlan | macvtap | vcan | veth | vlan | vxlan | ip6tnl | ipip | sit | gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan | vti | vrf | nlmon | ipvlan | lowpan | geneve | macsec | netkit ]

یک address یک آدرس پروتکل (IPv4 یا IPv6) متصل‌شده به یک دستگاه شبکه است. هر دستگاه باید دست‌کم یک آدرس داشته باشد تا از پروتکل متناظر استفاده کند. امکان اتصال چندین آدرس مختلف به یک دستگاه وجود دارد. میان این آدرس‌ها هیچ تفاوتی گذاشته نمی‌شود، به‌گونه‌ای که اصطلاح alias (نام مستعار) چندان برای آن‌ها مناسب نیست و ما از آن در این سند استفاده نمی‌کنیم.

دستور ip address آدرس‌ها و ویژگی‌های آن‌ها را نمایش می‌دهد، آدرس‌های جدید اضافه می‌کند و آدرس‌های قدیمی را حذف می‌کند.

نام دستگاهی که قرار است آدرس به آن اضافه شود.
آدرس رابط شبکه. قالب آدرس به پروتکل بستگی دارد. برای IP به‌صورت چهار عدد دهدهی نقطه‌دار (dotted quad) و برای IPv6 دنباله‌ای از نیم‌کلمه‌های هگزادسیمال جداشده با دونقطه است. پس از ADDRESS می‌تواند یک اسلش و یک عدد دهدهی بیاید که طول پیشوند شبکه را مشخص می‌کند.
آدرس نقطه پایانی دوردست برای رابط‌های نقطه به نقطه (point-to-point). در اینجا نیز پس از ADDRESS می‌تواند یک اسلش و یک عدد دهدهی بیاید که طول پیشوند شبکه را مشخص می‌کند. اگر یک آدرس همتا (peer) مشخص شده باشد، آدرس محلی نمی‌تواند طول پیشوند داشته باشد. پیشوند شبکه به‌جای آدرس محلی با آدرس همتا پیوند داده می‌شود.
آدرس همگانی (broadcast) روی رابط.

امکان استفاده از نمادهای ویژه '+' و '-' به‌جای آدرس همگانی وجود دارد. در این حالت، آدرس همگانی از طریق تنظیم یا صفر کردن بیت‌های میزبان در پیشوند رابط به دست می‌آید.

هر آدرس می‌تواند با یک رشته برچسب نشانه‌گذاری شود. حداکثر طول مجاز کل برچسب ۱۵ کاراکتر است.
دامنه محدوده‌ای که این آدرس در آن معتبر است. دامنه‌های موجود در /usr/share/iproute2/rt_scopes یا /etc/iproute2/rt_scopes (در صورت وجود دارای اولویت است) فهرست شده‌اند. مقادیر پیش‌تعریف‌شده دامنه عبارتند از:


global - آدرس به‌صورت سراسری معتبر است.

site - (فقط در IPv6، منسوخ‌شده) آدرس محلی سایت است، یعنی درون این سایت معتبر است.

link - آدرس محلی پیوند (link-local) است، یعنی تنها روی این دستگاه معتبر است.

host - آدرس تنها درون این میزبان معتبر است.

اولویت مسیر پیشوندی مرتبط با آدرس.
طول عمر معتبر (valid lifetime) این آدرس؛ بخش 5.5.4 از RFC 4862 را ببینید. هنگام انقضای آن، آدرس توسط هسته حذف می‌شود. مقدار پیش‌فرض forever (همیشگی) است.
طول عمر ترجیحی (preferred lifetime) این آدرس؛ بخش 5.5.4 از RFC 4862 را ببینید. هنگام انقضای آن، دیگر از این آدرس برای اتصالات خروجی جدید استفاده نمی‌شود. مقدار پیش‌فرض forever (همیشگی) است.
(فقط در IPv6) این آدرس را طبق تعریف RFC 6275 به عنوان «آدرس خانه» (home address) تعیین می‌کند.
(فقط در IPv6) به هسته دستور می‌دهد آدرس‌های موقتی ایجادشده از این آدرس به عنوان الگو را از طرف افزونه‌های حریم خصوصی (RFC 3041) مدیریت کند. برای فعال شدن این ویژگی، تنظیم sysctl مربوط به use_tempaddr باید روی مقداری بزرگ‌تر از صفر قرار گیرد. آدرس داده‌شده باید دارای طول پیشوند ۶۴ باشد. این فلگ امکان استفاده از افزونه‌های حریم خصوصی را در یک شبکه پیکربندی‌شده دستی فراهم می‌کند، درست مانند زمانی که پیکربندی خودکار بدون حالت (SLAAC) فعال باشد.
(فقط در IPv6) هنگام افزودن این آدرس، بررسی تشخیص آدرس تکراری یا DAD (طبق RFC 4862) را انجام نده.
(فقط در IPv6) هنگام انجام تشخیص آدرس تکراری، از روش خوش‌بینانه (optimistic) طبق RFC 4429 استفاده کن.
به‌طور خودکار برای پیشوند شبکه آدرس اضافه‌شده یک مسیر (route) ایجاد نکن، و هنگام حذف آدرس نیز به دنبال مسیری برای حذف نگرد. تغییر یک آدرس برای افزودن این فلگ، مسیر پیشوندی که به‌صورت خودکار اضافه شده بود را حذف می‌کند، و تغییر آن برای برداشتن این فلگ، مسیر پیشوند را به‌طور خودکار ایجاد خواهد کرد.
پیوستن به گروه‌های چندپخشی (multicast) در سطح اترنت از طریق دستور ip maddr در صورت اتصال به سوئیچ اترنتی که مجهز به IGMP snooping است کار نمی‌کند، زیرا سوئیچ بسته‌های چندپخشی را روی درگاه‌هایی که فاقد گزارش‌های IGMP برای آدرس‌های چندپخشی هستند تکثیر نمی‌کند.

رابط‌های لینوکسی VXLAN که از طریق دستور ip link add vxlan ایجاد می‌شوند، دارای گزینه group هستند که به آن‌ها امکان می‌دهد عمل پیوستن مورد نیاز را انجام دهند.

استفاده از فلگ autojoin هنگام افزودن یک آدرس چندپخشی، قابلیتی مشابه را برای رابط‌های Openvswitch VXLAN و همچنین سایر سازوکارهای تونل‌زنی که نیاز به دریافت ترافیک چندپخشی دارند فعال می‌سازد.

شناسه پروتکل این مسیر. ADDRPROTO می‌تواند یک عدد یا یک رشته از پرونده /usr/share/iproute2/rt_addrprotos یا /etc/iproute2/rt_addrprotos (در صورت وجود دارای اولویت است) باشد. همچنین پوشه‌ای به نام rt_addrprotos.d در هر دو مسیر جستجو می‌شود. اگر شناسه پروتکل مشخص نشود،

ip پروتکل 0 را فرض می‌کند. چندین مقدار پروتکل دارای تفسیر ثابت هستند؛ به‌ویژه:


kernel_lo - آدرس ::1 که هسته روی دستگاه شبکه لوپ‌بک (loopback) نصب می‌کند دارای این مقدار پروتکل است.

kernel_ra - آدرس‌های IPv6 که در پاسخ به پیام‌های اعلان رهیاب (router advertisement) نصب شده‌اند.

kernel_ll - آدرس‌های محلی پیوند (link-local) دارای این مقدار پروتکل هستند.


سایر مقادیر رزرو نشده‌اند و مدیر سیستم می‌تواند برچسب‌های پروتکل را آزادانه اختصاص دهد (یا اختصاص ندهد).

آرگومان‌ها: مشابه آرگومان‌های دستور ip address add هستند.

نام دستگاه یک آرگومان الزامی است.

نام دستگاه شبکه.
فقط آدرس‌های دارای این دامنه (scope) را فهرست می‌کند.
فقط آدرس‌های منطبق با این پیشوند را فهرست می‌کند.
فقط آدرس‌هایی با برچسب منطبق بر PATTERN را فهرست می‌کند. PATTERN یک الگوی معمول به سبک پوسته (shell pattern) است.
فقط رابط‌های زیرمجموعه این دستگاه ارشد (master) را فهرست می‌کند.
فقط رابط‌های زیرمجموعه این vrf را فهرست می‌کند.
فقط رابط‌های از نوع مشخص‌شده را فهرست می‌کند.

توجه داشته باشید که نام نوع با فهرست انواع پشتیبانی‌شده بررسی نمی‌شود؛ بلکه همان‌طور که هست به هسته ارسال می‌گردد. بعداً در صورتی که هسته قبلاً فیلتر نکرده باشد، با مقایسه آن با ویژگی مربوطه برای فیلتر کردن فهرست رابط‌های بازگردانده‌شده استفاده می‌شود. بنابراین هر رشته‌ای پذیرفته می‌شود، اما ممکن است به خروجی خالی منجر شود.

فقط رابط‌های فعال و در حال اجرا را فهرست می‌کند.
فقط رابط‌های غیرفعال را فهرست می‌کند.
فقط رابط‌های بدون دستگاه ارشد را فهرست می‌کند.
(فقط در IPv6) فقط آدرس‌های نصب‌شده بر اساس پیکربندی خودکار آدرس بدون حالت را فهرست می‌کند، یا فقط آدرس‌های دائمی (غیرپویا) را فهرست می‌کند. این دو فلگ معکوس یکدیگر هستند، بنابراین -dynamic معادل permanent و -permanent معادل dynamic است.
(فقط در IPv6) فقط آدرس‌هایی را که هنوز بررسی تشخیص آدرس تکراری (DAD) را نگذرانده‌اند فهرست می‌کند.
(فقط در IPv6) فقط آدرس‌هایی را فهرست می‌کند که در حال حاضر در فرآیند تشخیص آدرس تکراری نیستند.
(فقط در IPv6) فقط آدرس‌های منسوخ‌شده را فهرست می‌کند.
(فقط در IPv6) فقط آدرس‌هایی را که در حال منسوخ شدن نیستند فهرست می‌کند.
(فقط در IPv6) فقط آدرس‌هایی را فهرست می‌کند که در فرآیند تشخیص آدرس تکراری با شکست مواجه شده‌اند.
(فقط در IPv6) فقط آدرس‌هایی را فهرست می‌کند که در تشخیص آدرس تکراری شکست نخورده‌اند.
فقط آدرس‌های موقت IPv6 یا فرعی (secondary) IPv4 را فهرست می‌کند. هسته لینوکس یک بیت واحد برای آن‌ها به اشتراک می‌گذارد، بنابراین در عمل نام‌های مستعار یکدیگر هستند اگرچه معنای آن‌ها بسته به خانواده آدرس متفاوت است.
این فلگ‌ها نام‌های مستعاری برای primary هستند.
فقط آدرس‌های اصلی (primary) را فهرست می‌کند و در IPv6 آدرس‌های موقت را کنار می‌گذارد. این فلگ معکوس temporary و secondary است.
این فلگ یک نام مستعار برای temporary یا secondary است.
فقط آدرس‌های دارای پروتکل مشخص‌شده، یا آدرس‌هایی را نشان می‌دهد که پاسخ هسته برای آن‌ها شامل پروتکل نبوده است. برای جزئیات مربوط به پروتکل‌های آدرس، آرگومان متناظر در ip address add را ببینید.

این دستور آدرس‌های پروتکل انتخاب‌شده طبق معیارهای خاص را پاکسازی و تخلیه (flush) می‌کند.

این دستور همان آرگومان‌های دستور show را دارد، با این تفاوت که انتخاب‌کننده‌های type و master پشتیبانی نمی‌شوند. تفاوت دیگر این است که در صورت ارائه نشدن هیچ آرگومانی اجرا نمی‌شود.

هشدار: این دستور و سایر دستورات flush بسیار بی‌رحمانه و بدون اغماض عمل می‌کنند. آن‌ها بی‌رحمانه تمامی آدرس‌ها را پاک خواهند کرد.

با گزینه -statistics، دستور حالت پرگویی به خود می‌گیرد. این گزینه تعداد آدرس‌های حذف‌شده و تعداد دورهای طی‌شده برای پاکسازی فهرست آدرس‌ها را چاپ می‌کند. در صورتی که این گزینه دو بار داده شود، ip address flush همچنین تمامی آدرس‌های حذف‌شده را در قالبی که در زیربخش پیشین شرح داده شد نمایش می‌دهد.

ip address show

نمایش آدرس‌های IPv4 و IPv6 اختصاص‌یافته به تمام رابط‌های شبکه. زیردستور 'show' را می‌توان حذف کرد.

ip address show up

مشابه مورد بالا، با این تفاوت که فقط آدرس‌های اختصاص‌یافته به رابط‌های فعال شبکه نمایش داده می‌شوند.

ip address show dev eth0

نمایش آدرس‌های IPv4 و IPv6 اختصاص‌یافته به رابط شبکه eth0.

ip address add 2001:0db8:85a3::0370:7334/64 dev eth1

افزودن یک آدرس IPv6 به رابط شبکه eth1.

ip address delete 2001:0db8:85a3::0370:7334/64 dev eth1

حذف آدرس IPv6 اضافه‌شده در بالا.

ip address flush dev eth4 scope global

حذف تمامی آدرس‌های سراسری (global) پروتکل‌های IPv4 و IPv6 از دستگاه eth4. بدون 'scope global' تمامی آدرس‌ها از جمله آدرس‌های محلی پیوند (link-local) مربوط به IPv6 حذف خواهند شد.

ip(8)

صفحه راهنمای اصلی توسط Michail Litvak <mci@owl.openwall.com> نوشته شده است.

20 Dec 2011 iproute2