.\" Copyright (c) 2006 Pierre-Yves Ritschard .\" Copyright (c) 2008 Vincent Bernat .\" .\" Permission to use, copy, modify, and/or distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate: August 21 2008 $ .Dt LLDPD 8 .Os .Sh "نام (NAME)" .Nm lldpd .Nd دیمون پروتکل کشف لایه پیوند (LLDP) .Sh "خلاصه دستور (SYNOPSIS)" .Nm .Op Fl dxcseiklrv .Op Fl D Ar debug .Op Fl p Ar pidfile .Op Fl S Ar description .Op Fl P Ar platform .Op Fl X Ar socket .Op Fl m Ar management .Op Fl u Ar file .Op Fl I Ar interfaces .Op Fl C Ar interfaces .Op Fl M Ar class .Op Fl H Ar hide .Op Fl L Ar lldpcli .Op Fl O Ar configfile .Sh "توضیحات (DESCRIPTION)" .Nm دیمونی با قابلیت دریافت و ارسال فریم‌های .Em LLDP است. پروتکل کشف لایه پیوند (Link Layer Discovery Protocol) یک پروتکل مستقل از سازنده در لایه ۲ است که به دستگاه‌های شبکه اجازه می‌دهد هویت و قابلیت‌های خود را در شبکه محلی اعلان کنند. .Pp همچنین .Nm یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX پیاده‌سازی می‌کند تا با یک ایجنت معمولی SNMP مانند Net-SNMP ارتباط برقرار کند. برای فعال‌سازی این ساب‌ایجنت، در فایل .Xr snmpd.conf 5 خود به تنظیمی شبیه به این نیاز دارید: .Bd -literal -offset indent master agentx .Ed .Pp این دیمون هم دریافت و هم ارسال را پیاده‌سازی می‌کند. اطلاعات مختلفی را برای ارسال فریم‌های LLDP به تمامی رابط‌های اترنت جمع‌آوری می‌کند، از جمله آدرس مدیریتی، سرعت و نام‌های VLAN. .Pp گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It Fl d عدم اجرا به عنوان دیمون (عدم انتقال به پس‌زمینه). اگر این گزینه مشخص شود، .Nm در پیش‌زمینه اجرا خواهد شد. هنگامی که یک بار دیگر مشخص شود، .Nm پیام‌ها را در syslog ثبت نمی‌کند بلکه فقط در خروجی خطای استاندارد (stderr) می‌نویسد. سپس می‌توان این گزینه را چندین بار برای افزایش پرگویی (verbosity) مشخص کرد. اگر چهار بار مشخص شود، گزارش‌های اشکال‌زدایی (debug) فعال خواهند شد. این گزارش‌ها را می‌توان با فلگ .Fl D فیلتر کرد. .It Fl D Ar debug این گزینه به کاربر امکان می‌دهد اطلاعات اشکال‌زدایی را با مشخص کردن توکن‌های مجاز فیلتر کند. این گزینه می‌تواند چندین بار تکرار شود تا توکن‌های متعددی مجاز شوند. این گزینه برای اثربخشی باید با فلگ .Fl d ترکیب شود. تنها گزارش‌های اشکال‌زدایی قابل فیلتر شدن هستند. در ادامه فهرستی از توکن‌های مجاز به همراه توضیحات آن‌ها آمده است: .Bl -tag -width "XXXXXXXXXX" -offset "XXXX" -compact .It Sy main دیمون اصلی. .It Sy interfaces کشف رابط‌های محلی. .It Sy lldp کدگذاری/رمزگشایی PDU پروتکل LLDP. .It Sy edp کدگذاری/رمزگشایی PDU پروتکل EDP. .It Sy cdp کدگذاری/رمزگشایی PDU پروتکل‌های CDP/FDP. .It Sy sonmp کدگذاری/رمزگشایی PDU پروتکل SONMP. .It Sy event مدیریت رویدادها. .It Sy libevent مدیریت رویدادها، اما برای گزارش‌های تولیدشده توسط libevent. .It Sy privsep جداسازی امتیازات (Privilege separation). .It Sy localchassis بازیابی اطلاعات مربوط به شاسی محلی. .It Sy rpc ارتباط با کلاینت. .It Sy control مدیریت سوکت کنترلی یونیکس. .It Sy snmp ساب‌ایجنت SNMP. .It Sy libsnmp ساب‌ایجنت SNMP، اما برای گزارش‌های تولیدشده توسط NetSNMP. .It Sy decode رمزگشایی عمومی PDU. .It Sy marshal سازوکارهای سطح پایین سریال‌سازی. .It Sy alloc سازوکارهای سطح پایین تخصیص حافظه. .It Sy send ارسال PDU به رابط مشخص. .It Sy receive دریافت PDU از رابط مشخص. .It Sy loop حلقه اصلی برنامه. .It Sy smartfilter فیلتر کردن هوشمند پروتکل‌های مختلف روی یک درگاه مشابه. .It Sy netlink زیرسیستم Netlink. .El .It Fl p Ar pidfile استفاده از فایل PID ارائه‌شده برای ثبت شناسه فرآیند (PID) .Nm به‌جای ‎/run/lldpd/pid. .It Fl k غیرفعال کردن اعلان نسخه انتشار، نگارش و ماشین (معماری) کرنل. نام کرنل (مانند Linux) همچنان به اشتراک گذاشته خواهد شد، و نسخه نرم‌افزار موجودی (Inventory) روی 'Unknown' تنظیم می‌شود. .It Fl S Ar description بازنویسی توضیحات سیستم با توضیحات ارائه‌شده. توضیحات پیش‌فرض شامل نام کرنل، نام گره، نگارش کرنل، تاریخ ساخت و معماری سیستم است (مگر اینکه از فلگ .Fl k توضیح داده شده در بالا استفاده شود). .It Fl P Ar platform بازنویسی نام پلتفرم CDP با مقدار ارائه‌شده. توضیحات پیش‌فرض، نام کرنل (Linux) است. .It Fl x فعال کردن ساب‌ایجنت SNMP. با این گزینه، .Nm یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX فعال می‌کند. این قابلیت به شما امکان می‌دهد اطلاعات مربوط به سیستم محلی و سیستم‌های دوردست را از طریق SNMP دریافت کنید. .It Fl X Ar socket فعال کردن ساب‌ایجنت SNMP با استفاده از سوکت مشخص‌شده. .Nm یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX برای سوکت داده‌شده فعال خواهد کرد. این گزینه مستلزم فعال بودن گزینه قبلی است. سوکت پیش‌فرض معمولاً .Em /var/agentx/master است. برای مثال می‌توانید سوکتی مانند .Em tcp:127.0.0.1:705 را مشخص کنید. از آنجا که فرآیندی که این سوکت را باز می‌کند درون یک chroot محصور شده است، هنگام استفاده از سوکت TCP یا UDP باید یک آدرس IP (و نه نام میزبان) مشخص کنید. .It Fl c فعال کردن پشتیبانی از پروتکل CDP برای تعامل با مسیریاب‌های سیسکو که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های CDPv1 حتی زمانی که هیچ جفت CDP شناسایی نشده باشد نیز ارسال خواهند شد. اگر یک بار دیگر تکرار شود، بسته‌های CDPv2 حتی بدون شناسایی هیچ جفت CDP ارسال می‌شوند. اگر باز هم تکرار شود (یعنی .Fl cccc ) , پروتکل CDPv1 غیرفعال و CDPv2 فعال خواهد شد. اگر یک بار دیگر تکرار شود (یعنی .Fl ccccc ) , پروتکل CDPv1 غیرفعال شده و ارسال CDPv2 اجباری خواهد شد. .It Fl f فعال کردن پشتیبانی از پروتکل FDP برای تعامل با مسیریاب‌های فوندری (Foundry) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های FDP حتی در صورت عدم شناسایی هیچ جفت FDP ارسال خواهند شد. .It Fl s فعال کردن پشتیبانی از پروتکل SONMP برای تعامل با مسیریاب‌ها و سوییچ‌های نورتل (Nortel) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های SONMP حتی در صورت عدم شناسایی هیچ جفت SONMP ارسال می‌شوند. .It Fl e فعال کردن پشتیبانی از پروتکل EDP برای تعامل با مسیریاب‌ها و سوییچ‌های اکستریم (Extreme) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های EDP حتی در صورت عدم شناسایی هیچ جفت EDP ارسال خواهند شد. .It Fl l اجبار به ارسال بسته‌های LLDP حتی زمانی که هیچ جفت مبتنی بر LLDP شناسایی نشده اما جفتی با یک پروتکل دیگر شناسایی شده است. به‌طور پیش‌فرض، بسته‌های LLDP زمانی ارسال می‌شوند که جفتی با پروتکل LLDP شناسایی شود یا زمانی که هیچ جفتی وجود نداشته باشد. در صورت تکرار، LLDP غیرفعال می‌شود. .It Fl r حالت فقط-دریافت (Receive-only). با این سوییچ، .Nm هیچ فریمی ارسال نخواهد کرد و فقط به همسایگان گوش فرا می‌دهد. .It Fl m Ar management مشخص کردن آدرس‌های مدیریتی این سیستم. همانند رابط‌ها (توضیح داده شده در زیر)، این گزینه می‌تواند از کاراکترهای عمومی (wildcards) و معکوس‌سازی استفاده کند. بدون این گزینه، اولین آدرس IPv4 و اولین آدرس IPv6 استفاده می‌شوند. اگر یک آدرس IP دقیق ارائه شود، بدون هیچ بررسی به‌عنوان آدرس مدیریتی استفاده می‌شود. اگر تنها الگوهای منفی ارائه شوند، فقط یک آدرس IPv4 و یک آدرس IPv6 انتخاب می‌شوند. در غیر این صورت، می‌توان موارد متعددی را انتخاب کرد. اگر می‌خواهید آدرس‌های IPv6 را حذف کنید، می‌توانید از .Em !*:* استفاده کنید. اگر نام یک رابط مطابقت داده شود، نخستین آدرس IPv4 و نخستین آدرس IPv6 مرتبط با این رابط انتخاب خواهند شد. .It Fl u Ar file مشخص کردن سوکت دامنه یونیکس مورد استفاده برای ارتباط با .Xr lldpctl 8 . .It Fl I Ar interfaces مشخص کردن این‌که به کدام رابط گوش داده شود و LLDPDU از کدام رابط ارسال گردد. بدون این گزینه، .Nm از تمامی رابط‌های فیزیکی موجود استفاده خواهد کرد. این گزینه می‌تواند از کاراکترهای عمومی استفاده کند. می‌توان چندین رابط را با جدا کردن توسط کاما مشخص کرد. همچنین می‌توان با قرار دادن علامت تعجب در ابتدای نام رابط، آن را حذف (مستثنی) کرد. با قرار دادن دو علامت تعجب در ابتدای رابط، می‌توان آن را مجاز کرد. رابط مجاز بر رابط ممنوع، و رابط ممنوع بر یک رابط مطابقت‌یافته ساده اولویت دارد. برای مثال، با .Em eth*,!eth1,!eth2 دیمون .Nm تنها از رابط‌هایی استفاده خواهد کرد که با .Em eth شروع می‌شوند، به استثنای .Em eth1 و .Em eth2 . در حالی که با .Em *,!eth*,!!eth1 دیمون .Nm از تمامی رابط‌ها استفاده خواهد کرد، به‌جز رابط‌هایی که با .Em eth شروع می‌شوند، به استثنای .Em eth1 . هنگامی که یک تطابق دقیق پیدا شود، برخی بررسی‌ها دور زده می‌شوند. برای مثال، اگر .Em eth0.12 مشخص شود، حتی اگر یک رابط VLAN باشد پذیرفته خواهد شد. .It Fl C Ar interfaces مشخص کردن این‌که از کدام رابط‌ها برای محاسبه شناسه شاسی (Chassis ID) استفاده شود. بدون این گزینه، تمامی رابط‌ها در نظر گرفته می‌شوند. .Nm اولین آدرس MAC را از میان تمامی رابط‌های در نظر گرفته‌شده برای محاسبه شناسه شاسی برمی‌گزیند. منطق این گزینه مشابه با فلگ .Fl I است: می‌توانید رابط‌ها را با علامت تعجب مستثنی کنید و از الگوهای تطبیق برای مشخص کردن چندین رابط استفاده نمایید. اگر تمامی رابط‌ها حذف شوند (با .Em !* ) , نام سیستم به‌جای آن به‌عنوان شناسه شاسی استفاده خواهد شد. .It Fl M Ar class فعال کردن انتشار فریم‌های LLDP-MED. بسته به کلاس انتخاب‌شده، استاندارد مشخص می‌کند کدام مجموعه از TLVها باید ارسال شوند. بخش 10.2.1 را ببینید. برخی از دستگاه‌ها ممکن است در این زمینه سخت‌گیر باشند. کلاس باید یکی از مقادیر زیر باشد: .Bl -tag -width "0:XX" -compact .It Sy 1 نقطه پایانی عمومی (کلاس I - Generic Endpoint) .It Sy 2 نقطه پایانی رسانه (کلاس II - Media Endpoint). در این حالت، استاندارد ایجاب می‌کند که دست‌کم یک خط‌مشی شبکه از طریق .Nm lldpcli تعریف شود. .It Sy 3 نقاط پایانی دستگاه ارتباطی (کلاس III - Communication Device Endpoints). در این حالت، استاندارد ایجاب می‌کند که دست‌کم یک خط‌مشی شبکه از طریق .Nm lldpcli تعریف شود. .It Sy 4 دستگاه اتصال شبکه (Network Connectivity Device) .El .It Fl i غیرفعال کردن ارسال TLVهای موجودی (Inventory) در LLDP-MED. .Nm همچنان آن TLVهای LLDP-MED را دریافت خواهد کرد (و در صورت فعال بودن SNMP، آن‌ها را منتشر می‌کند) اما آن‌ها را ارسال نخواهد کرد. اگر نمی‌خواهید اطلاعات حساس مانند شماره‌های سریال منتقل شوند، از این گزینه استفاده کنید. .It Fl H Ar hide فیلتر کردن همسایگان. برای جزئیات بخش .Sx "فیلتر کردن همسایگان (FILTERING NEIGHBORS)" را ببینید. .It Fl L Ar lldpcli ارائه یک مسیر جایگزین به .Nm lldpcli برای پیکربندی. در صورت خالی بودن، از .Nm lldpcli برای پیکربندی استفاده نمی‌شود. .It Fl O Ar configfile بازنویسی مسیرهای پیش‌فرض پیکربندی که در آغاز توسط .Nm lldpcli پردازش می‌شوند. اگر یک دایرکتوری ارائه شود، تمامی فایل‌های درون آن که پسوند .Sy .conf دارند خوانده خواهند شد. ترتیب خواندن بر اساس حروف الفبا است. .It Fl v نمایش نسخه .Nm . در صورت تکرار، اطلاعات بیشتری در مورد ساخت برنامه نشان داده می‌شود. .El .Sh "فیلتر کردن همسایگان (FILTERING NEIGHBORS)" در یک شبکه ناهمگن، ممکن است چندین میزبان مختلف را روی یک درگاه (پورت) مشابه ببینید، حتی اگر فقط یکی از آن‌ها به صورت فیزیکی به آن درگاه متصل باشد. برای مثال، اگر یک سوییچ Nortel با پروتکل LLDP داشته باشید که به یک سوییچ Cisco با پروتکل CDP متصل است و میزبان شما به سوییچ سیسکو وصل شده باشد، سوییچ نورتل را نیز خواهید دید زیرا فریم‌های LLDP توسط سوییچ سیسکو فوروارد (هدایت) می‌شوند. شاید این چیزی نباشد که شما می‌خواهید. پارامتر .Fl H Ar hide به شما امکان می‌دهد به .Nm بگویید برخی از فریم‌هایی را که دریافت می‌کند دور بیندازد و از ارسال برخی فریم‌های دیگر خودداری کند. .Pp فیلتر کردن ورودی و فیلتر کردن خروجی به یکدیگر وابسته نیستند. فیلتر کردن ورودی برخی از درگاه‌های دوردست را پنهان می‌کند تا به شما فرصت دهد دقیقاً بدانید چه تجهیزاتی در طرف دیگر پیوند قرار دارند. فیلتر کردن خروجی مانع استفاده از برخی پروتکل‌ها می‌شود تا از غرق کردن شبکه شما با پروتکلی که توسط نزدیک‌ترین تجهیزات پشتیبانی نمی‌شود جلوگیری کند. به یاد داشته باشید که حتی بدون فیلتر کردن، .Nm از پروتکل‌هایی که دست‌کم یک فریم از آن‌ها دریافت شده و در غیر این صورت از LLDP استفاده خواهد کرد (گزینه‌های دیگری برای تغییر این رفتار وجود دارد، مانند .Fl cc , ss , ee , ll و .Fl ff ). .Pp هنگام فعال‌سازی فیلتر ورودی، .Nm تلاش می‌کند یک پروتکل را انتخاب کند و همسایگانی را که از پروتکل‌های دیگر استفاده می‌کنند فیلتر نماید. برای انتخاب این پروتکل، قاعده این است که پروتکلی با کمترین استفاده برگزیده شود. اگر روی یک درگاه، ۱۲ همسایه CDP و ۱ همسایه LLDP داشته باشید، این بدان معناست که سوییچ دوردست از LLDP پشتیبانی می‌کند و CDP را فیلتر نمی‌کند؛ بنابراین LLDP انتخاب می‌شود. هنگام فعال‌سازی فیلتر خروجی، .Nm همچنین تلاش خواهد کرد یک پروتکل را انتخاب کرده و تنها با آن پروتکل ارتباط برقرار کند. فیلتر کردن به ازای هر درگاه انجام می‌شود و هر درگاه ممکن است پروتکل متفاوتی را انتخاب کند. .Pp هنگام فعال‌سازی فیلتر، دو معیار اضافی وجود دارد: اجازه انتخاب یک یا چند پروتکل (در صورت تساوی) و اجازه انتخاب یک یا چند همسایه. حتی در صورت مجاز بودن چندین پروتکل، قاعده انتخاب پروتکل‌هایی با کمترین تعداد همسایه همچنان اعمال می‌شود. اگر .Nm هر دو پروتکل LLDP و CDP را انتخاب کند، به این معنی است که آن‌ها تعداد همسایگان برابری دارند. انتخاب همسایه تصادفی است. فیلتر ورودی مجموعه‌ای از همسایگان را برای نمایش انتخاب می‌کند در حالی که فیلتر خروجی از مجموعه همسایگان انتخاب‌شده برای تصمیم‌گیری درباره پروتکل‌های مورد استفاده بهره می‌برد: اگر یکی از همسایگان انتخاب‌شده از LLDP و دیگری از CDP استفاده کند، .Nm روی این درگاه با هر دو پروتکل CDP و LLDP ارتباط برقرار خواهد کرد. .Pp برخی حالات خاص نیز وجود دارند. یک نمونه معمول سوییچی است که از دو پروتکل پشتیبانی می‌کند (مثلاً CDP و LLDP). شما می‌خواهید اطلاعات را از بهترین پروتکل دریافت کنید اما تمایل دارید با هر دو پروتکل صحبت کنید زیرا برخی ابزارها از جدول CDP و برخی دیگر از جدول LLDP استفاده می‌کنند. .Pp جدول زیر تمامی مقادیر پذیرفته‌شده برای پارامتر .Fl H Ar hide را خلاصه می‌کند. مقدار پیش‌فرض .Em 15 است که با حالت خاص توصیف‌شده در بالا مطابقت دارد. ستون .Em filter به معنای فعال بودن فیلتر است. ستون .Em 1proto نشان می‌دهد تنها یک پروتکل حفظ خواهد شد. ستون .Em 1neigh نشان می‌دهد تنها یک همسایه حفظ خواهد شد. .Pp .Bl -column -compact -offset indent "HXXX" "filterX" "1protoX" "1neighX" "filterX" "1protoX" "1neighX" .It Ta Ta incoming Ta Ta outgoing Ta .It Ta Em filter Ta Em 1proto Ta Em 1neigh Ta Em filter Ta Em 1proto Ta Em 1neigh .It Em 0 Ta Ta Ta Ta Ta Ta .It Em 1 Ta x Ta x Ta Ta x Ta x Ta .It Em 2 Ta x Ta x Ta Ta Ta Ta .It Em 3 Ta Ta Ta Ta x Ta x Ta .It Em 4 Ta x Ta Ta Ta x Ta Ta .It Em 5 Ta x Ta Ta Ta Ta Ta .It Em 6 Ta Ta Ta Ta x Ta Ta .It Em 7 Ta x Ta x Ta x Ta x Ta x Ta .It Em 8 Ta x Ta x Ta x Ta Ta Ta .It Em 9 Ta x Ta Ta x Ta x Ta x Ta .It Em 10 Ta Ta Ta Ta x Ta Ta x .It Em 11 Ta x Ta Ta x Ta Ta Ta .It Em 12 Ta x Ta Ta x Ta x Ta Ta x .It Em 13 Ta x Ta Ta x Ta x Ta Ta .It Em 14 Ta x Ta x Ta Ta x Ta Ta x .It Em 15 Ta x Ta x Ta Ta x Ta Ta .It Em 16 Ta x Ta x Ta x Ta x Ta Ta x .It Em 17 Ta x Ta x Ta x Ta x Ta Ta .It Em 18 Ta x Ta Ta Ta x Ta Ta x .It Em 19 Ta x Ta Ta Ta x Ta x Ta .El .Sh "فایل‌ها (FILES)" .Bl -tag -width "/run/lldpd/socketXX" -compact .It /run/lldpd/socket سوکت دامنه یونیکس مورد استفاده برای ارتباط با .Xr lldpctl 8 . .It /etc/lldpd.conf فایل پیکربندی برای .Nm . دستورات موجود در این فایل در هنگام راه‌اندازی توسط .Xr lldpcli 8 اجرا می‌شوند. .It /etc/lldpd.d دایرکتوری حاوی فایل‌های پیکربندی که دستورات آن‌ها در هنگام راه‌اندازی توسط .Xr lldpcli 8 اجرا می‌شوند. .El .Sh "همچنین ببینید (SEE ALSO)" .Xr lldpctl 8 , .Xr lldpcli 8 , .Xr snmpd 8 .Sh "تاریخچه (HISTORY)" برنامه .Nm از کار مقدماتی Reyk Floeter الهام گرفته شده است. .Sh "نویسندگان (AUTHORS)" .An -nosplit برنامه .Nm توسط .An Pierre-Yves Ritschard Aq pyr@openbsd.org و .An Vincent Bernat Aq bernat@luffy.cx نوشته شده است.