rlm_unbound(5) ماژول FreeRADIUS rlm_unbound(5)

rlm_unbound - ماژول FreeRADIUS

هر نمونه از rlm_unbound یک کلاینت توکار سامانه نام دامنه (DNS) را برای انجام جستجوهای DNS فراهم می‌کند. هر نمونه می‌تواند به‌طور جداگانه برای پرس‌وجو از افق‌های مختلف DNS، تغییر گزینه‌های DNSSEC و غیره پیکربندی شود.

این ماژول در اصل برای استفاده توسط سایر ماژول‌ها از طریق رابط‌های برنامه‌نویسی کاربردی (API) داخلی طراحی شده است؛ بنابراین نمونه‌های آن باید پیش از ماژول‌هایی که از آن‌ها استفاده می‌کنند مقداردهی اولیه شوند. همچنین هر نمونه برخی قابلیت‌های xlat را برای کاربردهای عمومی و عیب‌یابی ارائه می‌دهد.

هر نمونه از rlm_unbound می‌تواند پارامترهای زیر را بپذیرد:

این فایل باید وجود داشته باشد و به یک فایل پیکربندی معتبر libunbound اشاره کند. مقدار پیش‌فرض ${raddbdir}/mods-config/unbound/default.conf است.
اگرچه libunbound یک API ناهمگام را برای استفاده داخلی ارائه می‌دهد، هرگونه استفاده از xlat از دیدگاه unlang به‌صورت همگام انجام می‌شود. این مقدار، مدت‌زمانی را که یک درخواست منتظر پاسخ از سوی DNS می‌ماند محدود می‌کند و پس از گذشت آن زمان، xlat با شکست مواجه می‌شود. مقدار پیش‌فرض ۳۰۰۰ میلی‌ثانیه است. این تنظیم مستقل از هرگونه مقادیر پیکربندی libunbound است.
مسیر کامل یک فایل resolv.conf برای بارگذاری جزئیات تحلیل‌گر نام (resolver). اگر این گزینه تنظیم نشود، libunbound سرورهای ریشهٔ DNS را مورد پرس‌وجو قرار می‌دهد.
مسیر کامل یک فایل hosts برای بارگذاری. این پارامتر سازوکاری برای بازنویسی محلی نام‌هایی فراهم می‌کند که در غیر این صورت تفکیک نمی‌شوند یا به نتایجی متفاوت از نتایج حاصل از تفکیک DNS نیاز دارند.

نمونه‌ای که برای مثال «dns» نامیده شده باشد، قابلیت‌های xlat زیر را فراهم می‌آورد:

%{dns-a:<owner>}
یک جستجوی رکورد A برای نام مالک انجام می‌دهد و نشانی IPv4 را در قالب یک رشته بازمی‌گرداند. تنها اولین رکورد A در مجموعه رکوردهای منبع (RRSET) بازگردانده خواهد شد.
%{dns-aaaa:<owner>}
یک جستجوی رکورد AAAA برای نام مالک انجام می‌دهد و نشانی IPv6 را در قالب یک رشته بازمی‌گرداند. تنها اولین رکورد AAAA در مجموعه رکوردهای منبع (RRSET) بازگردانده خواهد شد.
%{dns-ptr:<owner>}
یک جستجوی رکورد PTR برای مالک انجام می‌دهد.

ثبت وقایع (Logging) توسط rlm_unbound می‌تواند مشکل‌ساز باشد، به‌ویژه اگر بیش از یک نمونه از ماژول استفاده شود. دلیل این امر نیاز به ویژگی‌های بیشتری در کتابخانهٔ پایه libunbound است که امید می‌رود به مرور زمان بهبود یابد.

این احتمال وجود دارد که سرور FreeRADIUS هنگام استفاده از rlm_unbound به‌درستی و به شکل تمیز خاتمه نیابد (باقی ماندن فرآیندهای زامبی، عدم پاکسازی سایر ماژول‌ها، و معلق ماندن پس از دریافت SIGTERM تا زمان ارسال یک SIGKILL) یا اینکه هنگام اجرا با گزینهٔ -m در آزمون‌های valgrind در حین خاتمه رد شود. به همین ترتیب، حل این مشکل نیازمند بهبودهای بالادستی خواهد بود و تا آن زمان ممکن است رفتار دقیق در نسخه‌های میانی تغییر کند.

رفتار ثبت وقایع rlm_unbound ممکن است بسته به اینکه FreeRADIUS با پشتیبانی از ریسه‌ها (threads) کامپایل شده باشد یا خیر، متفاوت باشد.

/etc/raddb/modules-available/rlm_unbound /etc/raddb/modules-config/unbound/

radiusd(8), radiusd.conf(5), libunbound(3), unbound.conf(5)

Brian S. Julin, bjulin@clarku.edu

8 July 2013