J'ai résolu le problème !
Merci à Arran Cudbard-Bell pour l'indice !
Tout d'abord, nous avons créé une table appelée "userhardaddr" avec le nom d'utilisateur et le mac(PK) tous deux varchar.
Dans (radius conf dir)/sites-enabled/defaul (section post-auth) j'ai fait une requête "REPLACE" :
post-auth {
...
update reply {
Tmp-String-0 := "%{sql:REPALCE INTO userhardaddr(username,mac) VALUES(%{User-Name},%{Calling-Station-Id})}"
...
}
}
Cela remplace l'utilisateur pour un MAC connecté dans la table s'il existe. S'il n'existe pas, REPLACE crée la ligne comme dans INSERT.
Ensuite, dans sites-enabled/dhcp (sections discover et request) :
dhcp DHPC-Discover {
update request {
...
User-Name = "%{sql:SELECT username FROM userhardaddr where mac = REPLACE ('%{DHCP-Client-Hardware-Address}',':','-')}"
...
}
...
if(&User-Name=='guest') {
&Pool-Name = "guest_pool"
}
else {
&Pool-Name = "main_pool"
}
...
}
...
dhcp DHPC-Request {
(same in discover)
}
J'obtiens ainsi le nom de l'utilisateur à partir de la base de données en fonction de l'adresse mac.
Dans l'instruction IF, je compare la valeur renvoyée par la requête à "guest" et j'attribue le pool IP correspondant.
Merci encore.
Voir aussi.