« Perl - ファイルの内容を逆順に | メイン | 文字コード »

2006/12/12

RadiusReportとNTRadPing

RadiusReportを使って、radacct/以下のログファイルから情報を抜き出す。
RADIUSのアカウンティングテストにはradtestが使えないため、
NTRadPingという無料ツールを用いる。

ポートのデフォルトは1645になっているが、
最新のRADIUSは1812(認証)1813(アカウンティング)となる。

しかしRadiusReportでユーザーのアカウンティングログを抜き出してみると
Login時刻とLogout時刻が同じ値となって、Ontimeが0m00sとなってしまう。
なぜだかよくわからず、radiusreportのソースからその箇所を探してみた。
Acct-Status-TypeのStartとStopを見ていると思っていたのだが、
どうやらそうではなく、Startは無視してStopだけを見ているらしい。
ソース中にも
# As of 0.3b6 we dont need Start records - It's all in Stop anyway
って書いてる。
じゃぁどうやってLoginとOntimeを知るのかというと、
Stopパケットに含まれるAcct-Session-TImeという接続時間の属性を用いて、
Logout時刻から引き算することで求めてるようだ。
しかしNTRadPingのデフォルトではAcct-Session-TImeはパケットに含まれないので、
自分でAdditional RADIUS Statusに追加する必要がある。

ツール落とすとこ
http://www.pgregg.com/projects/radiusreport/
http://mastersoft-group.com/download/

コメントする