Hi.
I have two RADIUS servers with detail and mysql accounting
server #1
---radiusd.conf---
accounting {
acct_unique
detail
triforksql
}
---radiusd.conf---
server #2
---radiusd.conf---
accounting {
acct_unique
detail
beastsql
}
---radiusd.conf---
NAS(max6000) send start, stop and alive accounting packets for these
servers. "triforksql" and "beastsql" is mysql modules describing different
mysql databases. There are mutual replication for synchronization beetwen
them.
Yesturday I had such situation.
Server#1 received "start" accounting packet for some session:
--detail--
Tue Apr 23 21:16:15 2002
User-Name = "panaramix"
NAS-IP-Address = 80.78.36.6
NAS-Port = 20130
NAS-Port-Type = Async
Service-Type = Framed-User
Acct-Status-Type = Start
Acct-Delay-Time = 0
Acct-Session-Id = "357695796"
Acct-Authentic = RADIUS
Idle-Timeout = 20
X-Ascend-Modem-PortNo = 29
X-Ascend-Modem-SlotNo = 3
Calling-Station-Id = "804334101"
Called-Station-Id = "4611011"
Framed-Protocol = PPP
Framed-IP-Address = 80.78.32.35
Acct-Unique-Session-Id = "36d17400697f0a68"
Timestamp = 1019585775
--detail--
--trifork-binlog--
INSERT ignore into radacct (AcctSessionId, AcctUniqueId, UserName, Realm,
NASIPAddress
, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime,
AcctAuthentic,
ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets,
CalledStation
Id, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol,
FramedIPAddress
, AcctStartDelay, AcctStopDelay) values('357695796', '36d17400697f0a68',
'panaramix',
'', '80.78.36.6', '', 'Async', '2002-04-23 21:16:15', '0', '0', 'RADIUS',
'', '', '0',
'0', '4611011', '804334101', '', 'Framed-User', 'PPP', '80.78.32.35',
'0', '0');
--trifork-binlog--
Then came "alive" packet to the server#1:
--detail--
Tue Apr 23 21:17:21 2002
User-Name = "panaramix"
NAS-IP-Address = 80.78.36.6
NAS-Port = 20130
NAS-Port-Type = Async
Service-Type = Framed-User
Acct-Status-Type = Alive
Acct-Delay-Time = 0
Acct-Session-Id = "357695796"
Acct-Authentic = RADIUS
Idle-Timeout = 20
Acct-Session-Time = 66
Acct-Input-Octets = 18221
Acct-Output-Octets = 47272
Acct-Input-Packets = 225
Acct-Output-Packets = 173
X-Ascend-Disconnect-Cause = 1
X-Ascend-Connect-Progress = 60
X-Ascend-Xmit-Rate = 21600
X-Ascend-Data-Rate = 21600
X-Ascend-PreSession-Time = 19
X-Ascend-Pre-Input-Octets = 254
X-Ascend-Pre-Output-Octets = 265
X-Ascend-Pre-Input-Packets = 10
X-Ascend-Pre-Output-Packets = 12
X-Ascend-First-Dest = 80.78.35.1
X-Ascend-Modem-PortNo = 29
X-Ascend-Modem-SlotNo = 3
Calling-Station-Id = "804334101"
Called-Station-Id = "4611011"
Framed-Protocol = PPP
Framed-IP-Address = 80.78.32.35
Acct-Unique-Session-Id = "36d17400697f0a68"
Timestamp = 1019585841
--detail--
--trifork-binlog--
UPDATE radacct SET AcctStopTime = '2002-04-23 21:17:21', AcctSessionTime =
'66', AcctI
nputOctets = '18221', AcctOutputOctets = '47272', AcctTerminateCause = '',
AcctStopDel
ay = '0', ConnectInfo_stop = '', XAscendDisconnectCause = '1',
XAscendConnectProgress
='60', XAscendXmitRate = '21600', XAscendDataRate = '21600' WHERE
AcctSessionId = '357
695796' AND UserName = 'panaramix' AND NASIPAddress = '80.78.36.6';
--trifork-binlog--
Then came stop packet to the sever #1:
This one was successfully stored in detail file, but was not in mysql
--detail--
Tue Apr 23 21:37:21 2002
User-Name = "panaramix"
NAS-IP-Address = 80.78.36.6
NAS-Port = 20130
NAS-Port-Type = Async
Service-Type = Framed-User
Acct-Status-Type = Stop
Acct-Delay-Time = 0
Acct-Session-Id = "357695796"
Acct-Authentic = RADIUS
Idle-Timeout = 20
Acct-Session-Time = 1266
Acct-Input-Octets = 139616
Acct-Output-Octets = 568502
Acct-Input-Packets = 2068
Acct-Output-Packets = 1835
X-Ascend-Disconnect-Cause = 45
X-Ascend-Connect-Progress = 60
X-Ascend-Xmit-Rate = 21600
X-Ascend-Data-Rate = 21600
X-Ascend-PreSession-Time = 19
X-Ascend-Pre-Input-Octets = 254
X-Ascend-Pre-Output-Octets = 265
X-Ascend-Pre-Input-Packets = 10
X-Ascend-Pre-Output-Packets = 12
X-Ascend-First-Dest = 80.78.35.1
X-Ascend-Modem-PortNo = 29
X-Ascend-Modem-SlotNo = 3
Calling-Station-Id = "804334101"
Called-Station-Id = "4611011"
Framed-Protocol = PPP
Framed-IP-Address = 80.78.32.35
Acct-Unique-Session-Id = "36d17400697f0a68"
Timestamp = 1019587041
--detail--
--radius.log--
Tue Apr 23 21:37:21 2002 : Error: rlm_sql: All sockets are being used!
Please increase
the maximum number of sockets!
Tue Apr 23 21:37:21 2002 : Error: rlm_sql: All sockets are being used!
Please increase
the maximum number of sockets!
--radius.log--
The "stop" packet was not resent, despite NAS is configured to send
accounting packet 3 times if no response from accounting server, so RADIUS
sent accounting response acknowledgment to the NAS. Why it happens?
--rfc2866--
If the RADIUS accounting server is unable to successfully record the
accounting packet it MUST NOT send an Accounting-Response
acknowledgment to the client.
--rfc2866--
Thanks.
p.s.
sorry for long logs.
---
Aleksandr Kuzminsky, AK476-RIPE
System Administrator, AK16-UANIC
ISP NBI.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html