RLM_SQLIPPOOL_TOOL(8) | System Manager's Manual | RLM_SQLIPPOOL_TOOL(8) |
rlm_sqlippool_tool - manage SQL IP pools
rlm_sqlippool_tool -p pool_name -s range_start -e range_end -t table_name -d -f raddb_dir -i instance [-c capacity] [-x existing_ips_file]
rlm_sqlippool_tool -y pool_defs_yaml_file -t table_name -d -f raddb_dir -i instance [-x existing_ips_file]
rlm_sqlippool_tool is a tool to manage IP address in SQL IP pools as used by FreeRADIUS. It will either output SQL that can be used to manipulate the database or will interact directly with a database to populate an IP pool table.
The format of the SQL output or the commands operated on the database are based on the default FreeRADIUS ippool schemas. The fields populated are pool_name and framedipaddress. All other fields are left to be populated with their database defaults.
To produce MySQL formatted SQL for a pool named local populated with addresses from 10.0.0.1 to 10.0.0.199:
$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \
-t dhcpippool -d mysql
To do the same but directly interacting with the SQL module configured in the FreeRADIUS configuration under /etc/freeradius/3.0:
$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \
-t dhcpippool -f /etc/freeradius/3.0
To use a YAML file to specify the pool ranges to be populated, outputting PostgreSQL formatted SQL:
$ rlm_sqlippool_tool -y pools.yaml -t dhcpippool -d postgresql
A YAML file to populate multiple pools should be formatted like this:
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
To output formatted SQL, the Perl Template::Toolkit module is required.
Direct connection to databases is done using Perl DBI. The appropriate Perl DBD driver needs to be installed to enable this functionality.
radiusd.conf(5), raddb/mods-available/sql
Nick Porter <nick@portercomputing.co.uk>