私はここで新しいです。
SqlippoolおよびLDAP認証(「ゲスト」ファイル構成ユーザー)を備えたfreeradius 3があり、すべて正常に機能しています。私は2つのsqlippoolを持っています:
-main_pool
-guest_pool
私は次のことをしたい:
ユーザーが「ゲスト」の場合はguest_poolからIPを提供し、そうでない場合はmain_poolから提供します。私の考えは、ゲストと他のユーザーを異なるVLANに配置することです。
¿ユーザーがguest_poolからのゲストオファーであるかどうかをradiusdhcpに伝えるにはどうすればよいですか?
私の悪い英語のために申し訳ありません。
ありがとう。
解決しました!
手がかりを与えてくれたArranCudbard-Bellに感謝します!
まず、usernameとmac(PK)の両方がvarcharである「userhardaddr」というテーブルを作成しました。
(radius conf dir)/ sites-enabled/defaul(セクションpost-auth)で、「REPLACE」クエリを実行しました。
post-auth {
...
update reply {
Tmp-String-0 := "%{sql:REPALCE INTO userhardaddr(username,mac) VALUES(%{User-Name},%{Calling-Station-Id})}"
...
}
}
これにより、テーブル内の接続されたMACのユーザーが存在する場合は置き換えられます。存在しない場合、REPLACEはINSERTのように行を作成します。
次に、sites-enabled/dhcp(検出および要求セクション)で:
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)
}
これで、Macアドレスに従ってDBからユーザー名を取得します。
IFステートメントで、クエリによって返された値を「guest」と比較し、対応するIPプールを割り当てます。
再度、感謝します。
よろしく。