You can't just create things in the configuration and expect them to do what you want. The configuration items are documented: what they are, and how they work.
Read raddb/sites-available/dhcp. It contains a sample virtual server for DHCP. It also references the "dhcp_sqlippool" module described above.
You can edit those files to do IP pool assignment for DHCP, using the relay options.
Okay, but how do I do that? I have read the files you mention multiple times already, they contain nothing relevant to the subject of decoding the option 82 information and using them as a key in IP pool assignment. I understand that I cannot rewrite the existing Calling-Station-Id , but there should be a way of passing a string composed of %{dhcp_options:<Circuit-ID>}%{dhcp_options:<Agent-ID>} to the dhcp_sqlippool module that would use it as a key and assign an IP address from a matching database row - this must be like the most standard thinkable usage scenario, so how comes a clear example of working configuration I could use? Something like this: http://freeradius.1045715.n5.nabble.com/Not-trivial-configuration-of-Freerad... but involving the option 82? I tried to Google it, but did not find anything at all. There is apparently also the mods-avaliable/dhcp file that should allow it somehow, but once again, there is no example of use. Never mind, I have also noticed that the module mac2ip piggy-backs the password module to interpret a text file as a database to assign IP addresses using the MAC address of the Calling Station as a key. I tried to use it to do the same, only using the %{dhcp_options:<Circuit-ID>}%{dhcp_options:<Agent-ID>} string as a key, so I created this file (the character ; is used as a delimiter): /etc/freeradius/3.0/mods-config/dhcp/opt82toip: 0x4769302f31373a3130;0x010b465454582d535749544348;10.10.100.130 0x4769302f31373a3130;0x010b465454582d535749544348;10.10.100.120 /etc/freeradius/3.0/mods-enabled/opt82toip: passwd opt82toip { filename = /etc/freeradius/3.0/mods-config/dhcp/opt82 format = "*DHCP-Relay-Circuit-Id;*DHCP-Relay-Remote-Id;=DHCP-Your-IP-Address" allow_multiple_keys = yes delimiter = ";" } However, when I try to start Freeradius, I get: rlm_passwd: can't build hashtable from passwd file /etc/freeradius/3.0/mods-enabled/opt82toip[21]: Instantiation failed for module "opt82toip" However, I don't need to hash the file (it's not a password file after all), I just want it interpretted as a database with the first two fields as a compound key and the third field as a value that would be returned upon match. Is it possible to do it? Thank you again for any advice. -- S pozdravem, Daniel Ryšlink System Administrator Dial Telecom a. s. Křižíkova 36a/237 186 00 Praha 3, Česká Republika Tel.:+420.226204627 daniel.ryslink@dialtelecom.cz ----------------------------------------------- www.dialtelecom.cz Dial Telecom, a.s. Jednoduše se připojte ----------------------------------------------- On 20.2.2018 08:19, Alan DeKok wrote:
On Feb 19, 2018, at 11:18 AM, Daniel Ryšlink <ryslink@dialtelecom.cz> wrote:
Can anyone please provide a link to a working example of a Freeradius with DHCP virtual server where the users accessing the network are identified not by a MAC address, nor by Calling-Station-ID, but by the attributes encoded into Option 82, specifically in the radius packet:
(0) ADSL-Agent-Circuit-Id = 0x4769302f31393a3130 (0) ADSL-Agent-Remote-Id = 0x010b465454582d535749544348 Yeah... those are horribly formatted. And not automatically decoded by the server.
I use MySQL as a backend for my ippools, but the queries.conf work only operate with "Calling-Station-Id", or "Nas-Port-Id". That's because it's designed to work with RADIUS packets.
You can also see raddb/mods-config/ippool-dhcp/ which contains examples of IP pools for DHCP.
The module configuration is in raddb/mods-available/dhcp_sqlippool
Is the solution to define in mods-enabled/dhcp something like:
dhcp { Calling-Station-Id = %{dhcp_options:<Circuit-ID>}%{dhcp_options:<Agent-ID>} } You can't just create things in the configuration and expect them to do what you want. The configuration items are documented: what they are, and how they work.
Read raddb/sites-available/dhcp. It contains a sample virtual server for DHCP. It also references the "dhcp_sqlippool" module described above.
You can edit those files to do IP pool assignment for DHCP, using the relay options.
Alan DeKok.