LLOADD(8C) LLOADD(8C)

lloadd - دیمن متعادل‌کننده بار و بهینه‌سازی ارتباطات LDAP

/usr/lib/lloadd [-4|-6] [-d debug-level] [-f lloadd-config-file] [-h URLs] [-n service-name] [-s syslog-level] [-l syslog-local-user] [-o option[=value]] [-r directory] [-u user] [-g group]

Lloadd یک دیمن مستقل LDAP است. این سرویس برای دریافت اتصالات LDAP روی هر تعداد درگاه (پیش‌فرض 389) گوش فرا می‌دهد و عملیات‌های LDAP دریافتی از طریق این اتصالات را جهت رسیدگی و پردازش توسط بک‌اندهای پیکربندی‌شده فوروارد (هدایت) می‌کند. lloadd به‌طور معمول هنگام راه‌اندازی سیستم، معمولاً از طریق /etc/rc.local فراخوانی می‌شود. پس از راه‌اندازی، lloadd به‌طور معمول منشعب (fork) شده و خود را از tty فراخواننده جدا می‌کند. در صورت پیکربندی در فایل پیکربندی، فرآیند lloadd شناسه فرآیند خود (نگاه کنید به getpid(2)) را در یک فایل .pid و همچنین گزینه‌های خط فرمان هنگام فراخوانی را در یک فایل .args ثبت می‌کند (نگاه کنید به lloadd.conf(5)). اگر فلگ -d مشخص شود، حتی با آرگومان صفر، lloadd منشعب نشده و از tty فراخواننده جدا نخواهد شد.

برای جزئیات بیشتر درباره lloadd به "OpenLDAP Administrator's Guide" مراجعه کنید.

-4
تنها روی آدرس‌های IPv4 گوش می‌دهد.
-6
تنها روی آدرس‌های IPv6 گوش می‌دهد.
اشکال‌زدایی را طبق آنچه توسط debug-level تعریف شده فعال می‌کند. اگر این گزینه مشخص شود، حتی با یک آرگومان صفر، lloadd منشعب نخواهد شد و از ترمینال فراخواننده جدا نمی‌شود. برخی پیام‌های عمومی عملیات و وضعیت برای هر مقداری از debug-level چاپ می‌شوند. مقدار debug-level به عنوان یک رشته بیتی در نظر گرفته می‌شود که هر بیت متناظر با نوع متفاوتی از اطلاعات اشکال‌زدایی است. برای جزئیات به <ldap_log.h> مراجعه کنید. می‌توان آرایه‌ای از نام‌های خوانا را که با کاما از هم جدا شده‌اند برای انتخاب خروجی اشکال‌زدایی اطلاعات متناظر مشخص کرد. تمامی نام‌های شناخته‌شده توسط دستورالعمل loglevel شرح‌داده‌شده در lloadd.conf(5) پشتیبانی می‌شوند. اگر debug-level برابر ? باشد، فهرستی از سطوح اشکال‌زدایی نصب‌شده چاپ می‌شود و lloadd خارج خواهد شد.

به یاد داشته باشید که اگر ثبت بسته‌ها (packet logging) را فعال کنید، بسته‌های حاوی گذرواژه‌های بایند (bind passwords) در خروجی چاپ می‌شوند؛ بنابراین اگر گزارش را به یک فایل لاگ هدایت می‌کنید، آن فایل باید در برابر خواندن محافظت شود.

این گزینه به lloadd می‌گوید که دستورات اشکال‌زدایی در چه سطح اشکال‌زدایی باید در سرویس syslog(8) ثبت شوند. مقدار syslog-level می‌تواند روی هر مقدار یا ترکیبی که توسط سوییچ -d مجاز است تنظیم شود. دیمن Lloadd تمامی پیام‌های انتخاب‌شده توسط syslog-level را با سطح شدت syslog(3) معادل DEBUG، روی واحد مشخص‌شده با -l ثبت می‌کند.
نام سرویس را برای ثبت گزارش و مقاصد دیگر مشخص می‌کند. مقدار پیش‌فرض برابر با basename در argv[0]، یعنی: "lloadd" است.
کاربر محلی سرویس syslog(8) را انتخاب می‌کند. مقدار می‌تواند LOCAL0 تا LOCAL7، و همچنین USER و DAEMON باشد. مقدار پیش‌فرض LOCAL4 است. با این حال، این گزینه تنها روی سیستم‌هایی مجاز است که از کاربران محلی در سرویس syslog(8) پشتیبانی می‌کنند. ثبت گزارش در syslog(8) در سطح شدت "DEBUG" انجام می‌شود.
فایل پیکربندی lloadd را مشخص می‌کند. مقدار پیش‌فرض /etc/openldap/lloadd.conf است.
lloadd به‌طور پیش‌فرض به ldap:/// (پروتکل LDAP از طریق TCP روی تمامی رابط‌ها در درگاه پیش‌فرض LDAP) سرویس می‌دهد. یعنی با استفاده از INADDR_ANY و درگاه 389 متصل می‌شود. گزینه -h می‌تواند برای تعیین URLهای LDAP (و سایر طرح‌ها) جهت سرویس‌دهی استفاده شود. برای مثال، اگر به lloadd گزینه -h "ldap://127.0.0.1:9009/ ldaps:/// ldapi:///" داده شود، روی 127.0.0.1:9009 برای LDAP، روی 0.0.0.0:636 برای LDAP از طریق TLS، و برای LDAP از طریق IPC (سوکت‌های دامنه یونیکس) گوش خواهد داد. میزبان 0.0.0.0 نمایانگر INADDR_ANY (هر رابطی) است. فهرستی از URLها که با فاصله جدا شده‌اند مورد انتظار است. این URLها باید از طرح‌های LDAP، PLDAP، LDAPS، PLDAPS یا LDAPI باشند و عموماً بدون DN یا سایر پارامترهای اختیاری (به جز مواردی که در ادامه توضیح داده شده است) باشند. پشتیبانی از سه طرح اخیر به گزینه‌های پیکربندی انتخاب‌شده بستگی دارد. میزبان‌ها می‌توانند با نام یا قالب‌های آدرس IPv4 و IPv6 مشخص شوند. درگاه‌ها در صورت تعیین باید عددی باشند. درگاه پیش‌فرض ldap:// برابر 389 و درگاه پیش‌فرض ldaps:// برابر 636 است؛ همین موضوع برای انواع فعال‌شده با پروکسی نیز صادق است.

طرح‌های URL به نام PLDAP و PLDAPS پشتیبانی از پروتکل پروکسی HAProxy نسخه ۲ را فراهم می‌کنند، که به یک توزیع‌کننده بار (load balancer) یا سرور پروکسی اجازه می‌دهد آدرس IP کلاینت راه دور را به slapd ارائه کند تا برای کنترل دسترسی یا ثبت وقایع استفاده شود. درگاه‌های پیکربندی‌شده برای PLDAP یا PLDAPS تنها اتصالاتی را می‌پذیرند که شامل هدر ضروری پروتکل پروکسی باشند. اتصالات به این درگاه‌ها باید در سطح شبکه تنها به توزیع‌کننده‌های بار یا پروکسی‌های مورد اعتماد محدود شوند تا از جعل آدرس‌های IP کلاینت توسط اشخاص ثالث جلوگیری شود.

در حال حاضر، توزیع‌کننده بار هیچ اقدامی روی آدرس ثبت‌شده انجام نمی‌دهد.

برای LDAP از طریق IPC، مقدار name نام سوکت است و هیچ درگاهی (port) مورد نیاز نبوده و مجاز هم نیست؛ توجه داشته باشید که جداکننده‌های دایرکتوری باید مانند هر نویسه خاص دیگری در URLها، به صورت کدگذاری URL (URL-encoded) باشند؛ بنابراین سوکت

/usr/local/var/ldapi

باید به این صورت مشخص شود:

ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi

مسیر پیش‌فرض برای سوکت IPC برابر /var/lib/openldap/run/ldapi است.

دایرکتوری‌ای را برای تبدیل شدن به دایرکتوری ریشه مشخص می‌کند. دیمن lloadd دایرکتوری کاری فعلی را به این دایرکتوری تغییر داده و سپس با chroot(2) به این دایرکتوری منتقل می‌شود. این کار پس از باز کردن شنوندگان اما پیش از خواندن هرگونه فایل پیکربندی یا راه‌اندازی هر بک‌اندی انجام می‌شود. در صورت استفاده به عنوان یک سازوکار امنیتی، باید همراه با گزینه‌های -u و -g استفاده شود.
سرویس lloadd را با نام کاربری یا شناسه کاربری مشخص‌شده، و فهرست دسترسی گروه‌های تکمیلی آن کاربر طبق آنچه توسط initgroups(3) تنظیم شده اجرا می‌کند. شناسه گروه (GID) نیز به gid این کاربر تغییر می‌یابد، مگر اینکه از گزینه -g برای جایگزینی آن استفاده شود. توجه داشته باشید که هنگام استفاده همراه با -r، دیمن lloadd از پایگاه‌داده کاربران درون محیط ریشه تغییریافته (chroot) استفاده خواهد کرد.
سرویس lloadd را با نام یا شناسه گروه مشخص‌شده اجرا می‌کند. توجه داشته باشید که هنگام استفاده همراه با -r، دیمن lloadd از پایگاه‌داده گروه‌ها درون محیط ریشه تغییریافته (chroot) استفاده خواهد کرد.
این گزینه روشی عمومی برای تعیین گزینه‌ها بدون نیاز به اختصاص یک حرف جداگانه برای آن‌ها فراهم می‌کند.

این بخش از گزینه‌های زیر پشتیبانی می‌کند:

هنگامی که پشتیبانی از SLP در lloadd کامپایل شده باشد، آن را غیرفعال می‌کند (off)، با ثبت در SLP DAها بدون ویژگی‌های خاص SLP آن را فعال می‌کند (on)، یا با ویژگی‌های خاص SLP به نام slp-attrs که باید یک تعریف فهرست ویژگی‌های SLP مطابق با استاندارد SLP باشد فعال می‌نماید.

برای مثال، "slp=(tree=production),(server-type=OpenLDAP),(server-version=2.4.15)" در SLP DAها با سه ویژگی SLP شامل tree، server-type و server-version که دارای مقادیر ارائه‌شده در بالا هستند ثبت‌نام می‌کند. این به کاربر اجازه می‌دهد در صورتی که چندین درخت در دسترس باشد، به طور خاص از SLP DAها در مورد سرورهای LDAP که درخت production را نگهداری می‌کنند پرس‌وجو کند.

Lloadd می‌تواند به عنوان یک ماژول قابل بارگذاری slapd کامپایل شود. در این صورت، می‌تواند به این صورت بارگذاری گردد:

moduleload path/to/lloadd.la
backend lload
listen "listening URLs"

این قابلیت به lloadd امکان می‌دهد تا از طریق فرآیند میزبان slapd ویژگی‌های اضافی مانند دسترسی به آمار زمان اجرا در cn=monitor و پیکربندی پویا از طریق cn=config را ارائه دهد.

سوکت‌های شنیداری مشخص‌شده تحت کنترل مستقیم lloadd خواهند بود و باید متفاوت از سوکت‌هایی باشند که slapd برای گوش دادن به آن‌ها پیکربندی شده است. کلاینت‌هایی که به این سوکت‌ها متصل می‌شوند کاملاً مستقل از کلاینت‌های معمولی LDAP هستند که به سوکت‌های معمول slapd وصل می‌شوند - کلاینت‌های lloadd هیچ دسترسی به پایگاه‌های داده slapd ندارند، و به همین ترتیب، ترافیک کلاینت slapd به هیچ وجه به سرورهای بک‌اند lloadd منتقل نمی‌شود.

به عنوان بخشی از رابط cn=monitor در lloadd، این امکان وجود دارد که یک اتصال کلاینت تحت مدیریت آن را با نوشتن در ورودی متناظر ببندید؛ با جایگزین کردن ویژگی olmConnectionState با مقدار closing. این عملیات تابع ACLهای پیکربندی‌شده روی پایگاه‌داده monitor است. سرور یک Notice of Disconnection (اعلان قطع اتصال) به کلاینت ارسال می‌کند، از پذیرش هرگونه عملیات جدید خودداری می‌نماید و پس از اتمام تمامی عملیات‌های در حال انتظار، اتصال را می‌بندد.

برای مثال، جهت بستن اتصال شماره ۴۲:

dn: cn=connection 42,cn=incoming connections,cn=load balancer,cn=backends,cn=monitor
changetype: modify
replace: olmConnectionState
olmConnectionState: closing

برای شروع lloadd و منشعب شدن و جدا شدن آن از ترمینال و آغاز متعادل‌سازی بار سرورهای LDAP تعریف‌شده در فایل پیکربندی پیش‌فرض، کافی است دستور زیر را وارد کنید:

/usr/lib/lloadd

برای شروع lloadd با یک فایل پیکربندی جایگزین، و فعال‌سازی اشکال‌زدایی پرحجم که در خروجی خطای استاندارد چاپ می‌شود، دستور زیر را وارد کنید:

/usr/lib/lloadd -f /var/tmp/lloadd.conf -d 255

برای راه‌اندازی lloadd به عنوان یک ماژول درون فرآیند slapd که روی ldap://:1389 و ldaps:// گوش می‌دهد، عبارات زیر را در slapd.conf خود (یا معادل آن در cn=config) قرار دهید:

moduleload lloadd.la
backend lload
listen "ldap://:1389 ldaps://"

ldap(3), lloadd.conf(5), slapd-config(5), slapd-monitor(5), slapd(8).

"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin)

به http://www.openldap.org/its مراجعه کنید.

OpenLDAP Software توسط پروژه OpenLDAP در http://www.openldap.org توسعه یافته و نگهداری می‌شود. OpenLDAP Software از نسخه 3.3 LDAP دانشگاه میشیگان مشتق شده است.

2026/03/09 OpenLDAP 2.6.13