LLDPD(8) System Manager's Manual LLDPD(8)

lldpd — دیمون پروتکل کشف لایه پیوند (LLDP)

lldpd [-dxcseiklrv] [-D debug] [-p pidfile] [-S description] [-P platform] [-X socket] [-m management] [-u file] [-I interfaces] [-C interfaces] [-M class] [-H hide] [-L lldpcli] [-O configfile]

lldpd دیمونی با قابلیت دریافت و ارسال فریم‌های است. پروتکل کشف لایه پیوند (Link Layer Discovery Protocol) یک پروتکل مستقل از سازنده در لایه ۲ است که به دستگاه‌های شبکه اجازه می‌دهد هویت و قابلیت‌های خود را در شبکه محلی اعلان کنند.

همچنین lldpd یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX پیاده‌سازی می‌کند تا با یک ایجنت معمولی SNMP مانند Net-SNMP ارتباط برقرار کند. برای فعال‌سازی این ساب‌ایجنت، در فایل snmpd.conf(5) خود به تنظیمی شبیه به این نیاز دارید:

master agentx

این دیمون هم دریافت و هم ارسال را پیاده‌سازی می‌کند. اطلاعات مختلفی را برای ارسال فریم‌های LLDP به تمامی رابط‌های اترنت جمع‌آوری می‌کند، از جمله آدرس مدیریتی، سرعت و نام‌های VLAN.

گزینه‌ها به شرح زیر هستند:

عدم اجرا به عنوان دیمون (عدم انتقال به پس‌زمینه). اگر این گزینه مشخص شود، lldpd در پیش‌زمینه اجرا خواهد شد. هنگامی که یک بار دیگر مشخص شود، lldpd پیام‌ها را در syslog ثبت نمی‌کند بلکه فقط در خروجی خطای استاندارد (stderr) می‌نویسد. سپس می‌توان این گزینه را چندین بار برای افزایش پرگویی (verbosity) مشخص کرد. اگر چهار بار مشخص شود، گزارش‌های اشکال‌زدایی (debug) فعال خواهند شد. این گزارش‌ها را می‌توان با فلگ -D فیلتر کرد.
debug
این گزینه به کاربر امکان می‌دهد اطلاعات اشکال‌زدایی را با مشخص کردن توکن‌های مجاز فیلتر کند. این گزینه می‌تواند چندین بار تکرار شود تا توکن‌های متعددی مجاز شوند. این گزینه برای اثربخشی باید با فلگ -d ترکیب شود. تنها گزارش‌های اشکال‌زدایی قابل فیلتر شدن هستند. در ادامه فهرستی از توکن‌های مجاز به همراه توضیحات آن‌ها آمده است:
دیمون اصلی.
کشف رابط‌های محلی.
کدگذاری/رمزگشایی PDU پروتکل LLDP.
کدگذاری/رمزگشایی PDU پروتکل EDP.
کدگذاری/رمزگشایی PDU پروتکل‌های CDP/FDP.
کدگذاری/رمزگشایی PDU پروتکل SONMP.
مدیریت رویدادها.
مدیریت رویدادها، اما برای گزارش‌های تولیدشده توسط libevent.
جداسازی امتیازات (Privilege separation).
بازیابی اطلاعات مربوط به شاسی محلی.
ارتباط با کلاینت.
مدیریت سوکت کنترلی یونیکس.
ساب‌ایجنت SNMP.
ساب‌ایجنت SNMP، اما برای گزارش‌های تولیدشده توسط NetSNMP.
رمزگشایی عمومی PDU.
سازوکارهای سطح پایین سریال‌سازی.
سازوکارهای سطح پایین تخصیص حافظه.
ارسال PDU به رابط مشخص.
دریافت PDU از رابط مشخص.
حلقه اصلی برنامه.
فیلتر کردن هوشمند پروتکل‌های مختلف روی یک درگاه مشابه.
زیرسیستم Netlink.
pidfile
استفاده از فایل PID ارائه‌شده برای ثبت شناسه فرآیند (PID) lldpd به‌جای ‎/run/lldpd/pid.
غیرفعال کردن اعلان نسخه انتشار، نگارش و ماشین (معماری) کرنل. نام کرنل (مانند Linux) همچنان به اشتراک گذاشته خواهد شد، و نسخه نرم‌افزار موجودی (Inventory) روی 'Unknown' تنظیم می‌شود.
description
بازنویسی توضیحات سیستم با توضیحات ارائه‌شده. توضیحات پیش‌فرض شامل نام کرنل، نام گره، نگارش کرنل، تاریخ ساخت و معماری سیستم است (مگر اینکه از فلگ -k توضیح داده شده در بالا استفاده شود).
platform
بازنویسی نام پلتفرم CDP با مقدار ارائه‌شده. توضیحات پیش‌فرض، نام کرنل (Linux) است.
فعال کردن ساب‌ایجنت SNMP. با این گزینه، lldpd یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX فعال می‌کند. این قابلیت به شما امکان می‌دهد اطلاعات مربوط به سیستم محلی و سیستم‌های دوردست را از طریق SNMP دریافت کنید.
socket
فعال کردن ساب‌ایجنت SNMP با استفاده از سوکت مشخص‌شده. lldpd یک ساب‌ایجنت SNMP را با استفاده از پروتکل AgentX برای سوکت داده‌شده فعال خواهد کرد. این گزینه مستلزم فعال بودن گزینه قبلی است. سوکت پیش‌فرض معمولاً است. برای مثال می‌توانید سوکتی مانند را مشخص کنید. از آنجا که فرآیندی که این سوکت را باز می‌کند درون یک chroot محصور شده است، هنگام استفاده از سوکت TCP یا UDP باید یک آدرس IP (و نه نام میزبان) مشخص کنید.
فعال کردن پشتیبانی از پروتکل CDP برای تعامل با مسیریاب‌های سیسکو که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های CDPv1 حتی زمانی که هیچ جفت CDP شناسایی نشده باشد نیز ارسال خواهند شد. اگر یک بار دیگر تکرار شود، بسته‌های CDPv2 حتی بدون شناسایی هیچ جفت CDP ارسال می‌شوند. اگر باز هم تکرار شود (یعنی -cccc), پروتکل CDPv1 غیرفعال و CDPv2 فعال خواهد شد. اگر یک بار دیگر تکرار شود (یعنی -ccccc), پروتکل CDPv1 غیرفعال شده و ارسال CDPv2 اجباری خواهد شد.
فعال کردن پشتیبانی از پروتکل FDP برای تعامل با مسیریاب‌های فوندری (Foundry) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های FDP حتی در صورت عدم شناسایی هیچ جفت FDP ارسال خواهند شد.
فعال کردن پشتیبانی از پروتکل SONMP برای تعامل با مسیریاب‌ها و سوییچ‌های نورتل (Nortel) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های SONMP حتی در صورت عدم شناسایی هیچ جفت SONMP ارسال می‌شوند.
فعال کردن پشتیبانی از پروتکل EDP برای تعامل با مسیریاب‌ها و سوییچ‌های اکستریم (Extreme) که از LLDP استفاده نمی‌کنند. در صورت تکرار، بسته‌های EDP حتی در صورت عدم شناسایی هیچ جفت EDP ارسال خواهند شد.
اجبار به ارسال بسته‌های LLDP حتی زمانی که هیچ جفت مبتنی بر LLDP شناسایی نشده اما جفتی با یک پروتکل دیگر شناسایی شده است. به‌طور پیش‌فرض، بسته‌های LLDP زمانی ارسال می‌شوند که جفتی با پروتکل LLDP شناسایی شود یا زمانی که هیچ جفتی وجود نداشته باشد. در صورت تکرار، LLDP غیرفعال می‌شود.
حالت فقط-دریافت (Receive-only). با این سوییچ، lldpd هیچ فریمی ارسال نخواهد کرد و فقط به همسایگان گوش فرا می‌دهد.
management
مشخص کردن آدرس‌های مدیریتی این سیستم. همانند رابط‌ها (توضیح داده شده در زیر)، این گزینه می‌تواند از کاراکترهای عمومی (wildcards) و معکوس‌سازی استفاده کند. بدون این گزینه، اولین آدرس IPv4 و اولین آدرس IPv6 استفاده می‌شوند. اگر یک آدرس IP دقیق ارائه شود، بدون هیچ بررسی به‌عنوان آدرس مدیریتی استفاده می‌شود. اگر تنها الگوهای منفی ارائه شوند، فقط یک آدرس IPv4 و یک آدرس IPv6 انتخاب می‌شوند. در غیر این صورت، می‌توان موارد متعددی را انتخاب کرد. اگر می‌خواهید آدرس‌های IPv6 را حذف کنید، می‌توانید از استفاده کنید. اگر نام یک رابط مطابقت داده شود، نخستین آدرس IPv4 و نخستین آدرس IPv6 مرتبط با این رابط انتخاب خواهند شد.
file
مشخص کردن سوکت دامنه یونیکس مورد استفاده برای ارتباط با lldpctl(8).
interfaces
مشخص کردن این‌که به کدام رابط گوش داده شود و LLDPDU از کدام رابط ارسال گردد. بدون این گزینه، lldpd از تمامی رابط‌های فیزیکی موجود استفاده خواهد کرد. این گزینه می‌تواند از کاراکترهای عمومی استفاده کند. می‌توان چندین رابط را با جدا کردن توسط کاما مشخص کرد. همچنین می‌توان با قرار دادن علامت تعجب در ابتدای نام رابط، آن را حذف (مستثنی) کرد. با قرار دادن دو علامت تعجب در ابتدای رابط، می‌توان آن را مجاز کرد. رابط مجاز بر رابط ممنوع، و رابط ممنوع بر یک رابط مطابقت‌یافته ساده اولویت دارد. برای مثال، با دیمون lldpd تنها از رابط‌هایی استفاده خواهد کرد که با eth شروع می‌شوند، به استثنای eth1 و . در حالی که با دیمون lldpd از تمامی رابط‌ها استفاده خواهد کرد، به‌جز رابط‌هایی که با eth شروع می‌شوند، به استثنای eth1. هنگامی که یک تطابق دقیق پیدا شود، برخی بررسی‌ها دور زده می‌شوند. برای مثال، اگر مشخص شود، حتی اگر یک رابط VLAN باشد پذیرفته خواهد شد.
interfaces
مشخص کردن این‌که از کدام رابط‌ها برای محاسبه شناسه شاسی (Chassis ID) استفاده شود. بدون این گزینه، تمامی رابط‌ها در نظر گرفته می‌شوند. lldpd اولین آدرس MAC را از میان تمامی رابط‌های در نظر گرفته‌شده برای محاسبه شناسه شاسی برمی‌گزیند. منطق این گزینه مشابه با فلگ -I است: می‌توانید رابط‌ها را با علامت تعجب مستثنی کنید و از الگوهای تطبیق برای مشخص کردن چندین رابط استفاده نمایید. اگر تمامی رابط‌ها حذف شوند (با ), نام سیستم به‌جای آن به‌عنوان شناسه شاسی استفاده خواهد شد.
class
فعال کردن انتشار فریم‌های LLDP-MED. بسته به کلاس انتخاب‌شده، استاندارد مشخص می‌کند کدام مجموعه از TLVها باید ارسال شوند. بخش 10.2.1 را ببینید. برخی از دستگاه‌ها ممکن است در این زمینه سخت‌گیر باشند. کلاس باید یکی از مقادیر زیر باشد:
نقطه پایانی عمومی (کلاس I - Generic Endpoint)
نقطه پایانی رسانه (کلاس II - Media Endpoint). در این حالت، استاندارد ایجاب می‌کند که دست‌کم یک خط‌مشی شبکه از طریق lldpcli تعریف شود.
نقاط پایانی دستگاه ارتباطی (کلاس III - Communication Device Endpoints). در این حالت، استاندارد ایجاب می‌کند که دست‌کم یک خط‌مشی شبکه از طریق lldpcli تعریف شود.
دستگاه اتصال شبکه (Network Connectivity Device)
غیرفعال کردن ارسال TLVهای موجودی (Inventory) در LLDP-MED. lldpd همچنان آن TLVهای LLDP-MED را دریافت خواهد کرد (و در صورت فعال بودن SNMP، آن‌ها را منتشر می‌کند) اما آن‌ها را ارسال نخواهد کرد. اگر نمی‌خواهید اطلاعات حساس مانند شماره‌های سریال منتقل شوند، از این گزینه استفاده کنید.
hide
فیلتر کردن همسایگان. برای جزئیات بخش فیلتر کردن همسایگان (FILTERING NEIGHBORS) را ببینید.
lldpcli
ارائه یک مسیر جایگزین به lldpcli برای پیکربندی. در صورت خالی بودن، از lldpcli برای پیکربندی استفاده نمی‌شود.
configfile
بازنویسی مسیرهای پیش‌فرض پیکربندی که در آغاز توسط lldpcli پردازش می‌شوند. اگر یک دایرکتوری ارائه شود، تمامی فایل‌های درون آن که پسوند دارند خوانده خواهند شد. ترتیب خواندن بر اساس حروف الفبا است.
نمایش نسخه lldpd. در صورت تکرار، اطلاعات بیشتری در مورد ساخت برنامه نشان داده می‌شود.

در یک شبکه ناهمگن، ممکن است چندین میزبان مختلف را روی یک درگاه (پورت) مشابه ببینید، حتی اگر فقط یکی از آن‌ها به صورت فیزیکی به آن درگاه متصل باشد. برای مثال، اگر یک سوییچ Nortel با پروتکل LLDP داشته باشید که به یک سوییچ Cisco با پروتکل CDP متصل است و میزبان شما به سوییچ سیسکو وصل شده باشد، سوییچ نورتل را نیز خواهید دید زیرا فریم‌های LLDP توسط سوییچ سیسکو فوروارد (هدایت) می‌شوند. شاید این چیزی نباشد که شما می‌خواهید. پارامتر -H hide به شما امکان می‌دهد به lldpd بگویید برخی از فریم‌هایی را که دریافت می‌کند دور بیندازد و از ارسال برخی فریم‌های دیگر خودداری کند.

فیلتر کردن ورودی و فیلتر کردن خروجی به یکدیگر وابسته نیستند. فیلتر کردن ورودی برخی از درگاه‌های دوردست را پنهان می‌کند تا به شما فرصت دهد دقیقاً بدانید چه تجهیزاتی در طرف دیگر پیوند قرار دارند. فیلتر کردن خروجی مانع استفاده از برخی پروتکل‌ها می‌شود تا از غرق کردن شبکه شما با پروتکلی که توسط نزدیک‌ترین تجهیزات پشتیبانی نمی‌شود جلوگیری کند. به یاد داشته باشید که حتی بدون فیلتر کردن، lldpd از پروتکل‌هایی که دست‌کم یک فریم از آن‌ها دریافت شده و در غیر این صورت از LLDP استفاده خواهد کرد (گزینه‌های دیگری برای تغییر این رفتار وجود دارد، مانند -cc, -ss, -ee, -ll و -ff ).

هنگام فعال‌سازی فیلتر ورودی، lldpd تلاش می‌کند یک پروتکل را انتخاب کند و همسایگانی را که از پروتکل‌های دیگر استفاده می‌کنند فیلتر نماید. برای انتخاب این پروتکل، قاعده این است که پروتکلی با کمترین استفاده برگزیده شود. اگر روی یک درگاه، ۱۲ همسایه CDP و ۱ همسایه LLDP داشته باشید، این بدان معناست که سوییچ دوردست از LLDP پشتیبانی می‌کند و CDP را فیلتر نمی‌کند؛ بنابراین LLDP انتخاب می‌شود. هنگام فعال‌سازی فیلتر خروجی، lldpd همچنین تلاش خواهد کرد یک پروتکل را انتخاب کرده و تنها با آن پروتکل ارتباط برقرار کند. فیلتر کردن به ازای هر درگاه انجام می‌شود و هر درگاه ممکن است پروتکل متفاوتی را انتخاب کند.

هنگام فعال‌سازی فیلتر، دو معیار اضافی وجود دارد: اجازه انتخاب یک یا چند پروتکل (در صورت تساوی) و اجازه انتخاب یک یا چند همسایه. حتی در صورت مجاز بودن چندین پروتکل، قاعده انتخاب پروتکل‌هایی با کمترین تعداد همسایه همچنان اعمال می‌شود. اگر lldpd هر دو پروتکل LLDP و CDP را انتخاب کند، به این معنی است که آن‌ها تعداد همسایگان برابری دارند. انتخاب همسایه تصادفی است. فیلتر ورودی مجموعه‌ای از همسایگان را برای نمایش انتخاب می‌کند در حالی که فیلتر خروجی از مجموعه همسایگان انتخاب‌شده برای تصمیم‌گیری درباره پروتکل‌های مورد استفاده بهره می‌برد: اگر یکی از همسایگان انتخاب‌شده از LLDP و دیگری از CDP استفاده کند، lldpd روی این درگاه با هر دو پروتکل CDP و LLDP ارتباط برقرار خواهد کرد.

برخی حالات خاص نیز وجود دارند. یک نمونه معمول سوییچی است که از دو پروتکل پشتیبانی می‌کند (مثلاً CDP و LLDP). شما می‌خواهید اطلاعات را از بهترین پروتکل دریافت کنید اما تمایل دارید با هر دو پروتکل صحبت کنید زیرا برخی ابزارها از جدول CDP و برخی دیگر از جدول LLDP استفاده می‌کنند.

جدول زیر تمامی مقادیر پذیرفته‌شده برای پارامتر -H hide را خلاصه می‌کند. مقدار پیش‌فرض 15 است که با حالت خاص توصیف‌شده در بالا مطابقت دارد. ستون filter به معنای فعال بودن فیلتر است. ستون 1proto نشان می‌دهد تنها یک پروتکل حفظ خواهد شد. ستون 1neigh نشان می‌دهد تنها یک همسایه حفظ خواهد شد.

incoming outgoing
x x x x
x x
x x
x x
x
x
x x x x x
x x x
x x x x
x x
x x
x x x x
x x x
x x x x
x x x
x x x x x
x x x x
x x x
x x x

/run/lldpd/socket
سوکت دامنه یونیکس مورد استفاده برای ارتباط با lldpctl(8).
/etc/lldpd.conf
فایل پیکربندی برای lldpd. دستورات موجود در این فایل در هنگام راه‌اندازی توسط lldpcli(8) اجرا می‌شوند.
/etc/lldpd.d
دایرکتوری حاوی فایل‌های پیکربندی که دستورات آن‌ها در هنگام راه‌اندازی توسط lldpcli(8) اجرا می‌شوند.

lldpctl(8), lldpcli(8), snmpd(8)

برنامه lldpd از کار مقدماتی Reyk Floeter الهام گرفته شده است.

برنامه lldpd توسط Pierre-Yves Ritschard ⟨pyr@openbsd.org⟩ و Vincent Bernat ⟨bernat@luffy.cx⟩ نوشته شده است.

August 21, 2008 Linux 6.12.107+deb13-amd64