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

rlm_sqlippool_tool - مدیریت استخرهای آدرس IP در پایگاه‌داده SQL

rlm_sqlippool_tool -p pool_name -s range_start -e range_end -t table_name -d dialect -f raddb_dir -i instance [-c capacity] [-x existing_ips_file]

rlm_sqlippool_tool -y pool_defs_yaml_file -t table_name -d dialect -f raddb_dir -i instance [-x existing_ips_file]

ابزار rlm_sqlippool_tool برای مدیریت نشانی‌های IP در استخرهای IP پایگاه‌داده SQL به کار می‌رود که توسط FreeRADIUS استفاده می‌شوند. این ابزار یا دستورات SQL مناسب برای دستکاری پایگاه‌داده را در خروجی چاپ می‌کند، یا مستقیماً با پایگاه‌داده ارتباط برقرار کرده و جدول استخر IP را مقداردهی و پر می‌کند.

قالب خروجی SQL یا دستوراتی که روی پایگاه‌داده اجرا می‌شوند، بر اساس طرح‌واره‌های (schemas) پیش‌فرض ippool در FreeRADIUS هستند. فیلدهایی که پر می‌شوند شامل pool_name و framedipaddress هستند. سایر فیلدها رها می‌شوند تا با مقادیر پیش‌فرض پایگاه‌داده پر شوند.

تعداد نشانی‌های IP برای پر کردن استخر. مقدار پیش‌فرض ۶۵۵۳۶ یا بیشترین تعداد قابل تخصیص میان ابتدا و انتهای بازه است.
گویش (dialect) پایگاه‌داده SQL برای تولید خروجی.
نشانی IP انتهای بازه استخر. استفاده از نشانی‌های IPv4 یا IPv6 مجاز است.
پوشه حاوی پیکربندی FreeRADIUS. در صورت مشخص شدن این گزینه، ابزار rlm_sqlippool_tool پیکربندی را تجزیه کرده و تلاش می‌کند مستقیماً با سرور پایگاه‌داده مشخص‌شده در پیکربندی FreeRADIUS ارتباط برقرار کند.
همراه با گزینه -f به کار می‌رود. نام نمونه (instance) ماژول sql در پیکربندی FreeRADIUS را برای تجزیه مشخص می‌کند. مقدار پیش‌فرض sql است.
نام استخر برای مقداردهی و پر کردن.
نشانی IP ابتدای بازه استخر. استفاده از نشانی‌های IPv4 یا IPv6 مجاز است.
نام جدول در پایگاه‌داده برای پر کردن.
فایلی حاوی نشانی‌های IP موجود در استخر. استفاده از این گزینه امکان رشد کنترل‌شده‌تر استخرهای پراکنده (sparse) را فراهم می‌کند.
فایلی با قالب YAML حاوی مشخصات چندین استخر.

برای تولید خروجی SQL با قالب MySQL برای استخری به نام local که با نشانی‌های 10.0.0.1 تا 10.0.0.199 پر شده باشد:

$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \
    -t dhcpippool -d mysql

برای انجام همین کار ولی از طریق ارتباط مستقیم با ماژول SQL پیکربندی‌شده در FreeRADIUS زیر مسیر /etc/raddb:

$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \
    -t dhcpippool -f /etc/raddb

برای استفاده از یک فایل YAML جهت مشخص کردن بازه‌های استخر و تولید خروجی SQL با قالب PostgreSQL:

$ rlm_sqlippool_tool -y pools.yaml -t dhcpippool -d postgresql

یک فایل YAML برای پر کردن چندین استخر باید به این صورت قالب‌بندی شود:

pool_with_a_single_contiguous_range:
  - start:    192.0.2.3
    end:      192.0.2.250
pool_with_a_single_sparse_range:
  - start:    10.10.10.0
    end:      10.10.20.255
    capacity: 200
pool_with_multiple_ranges:
  - start:    10.10.10.1
    end:      10.10.10.253
  - start:    10.10.100.0
    end:      10.10.199.255
    capacity: 1000
v6_pool_with_contiguous_range:
  - start:    '2001:db8:1:2:3:4:5:10'
    end:      '2001:db8:1:2:3:4:5:7f'
v6_pool_with_sparse_range:
  - start:    '2001:db8:1:2::'
    end:      '2001:db8:1:2:ffff:ffff:ffff:ffff'
    capacity: 200

برای تولید خروجی SQL قالب‌بندی‌شده، ماژول Perl Template::Toolkit مورد نیاز است.

ارتباط مستقیم با پایگاه‌های داده با استفاده از Perl DBI انجام می‌شود. برای فعال شدن این قابلیت باید درایور Perl DBD متناسب نصب شده باشد.

radiusd.conf(5), raddb/mods-available/sql

Nick Porter <nick@portercomputing.co.uk>