bug-gnu-radius
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnu-radius] error in proxy_compare_request


From: Alexey Antipov
Subject: [Bug-gnu-radius] error in proxy_compare_request
Date: Thu, 26 Dec 2002 16:03:03 +0300
User-agent: Mutt/1.4i

We have scheme with two NAS sending all their requests thru
one proxy server to backend radius server. When their 
identifiers matches, proxy server incorrect finds matching request
using Proxy-State attribute. It seems like proxy_compare_request_no_state 
does right things, so I suggest following patch:

======
--- proxy.c.orig        Tue Mar 19 18:10:18 2002
+++ proxy.c     Thu Dec 26 14:20:54 2002
@@ -536,10 +536,10 @@
        RADIUS_REQ *oldreq;
 {
        debug(10, ("(old=data) id %d %d, ipaddr %#8x %#8x", 
-               oldreq->id,data->state->id,myip,data->state->ipaddr));
+               
oldreq->server_id,data->state->proxy_id,oldreq->server_ipaddr,data->state->rem_ipaddr));
        
-       if (data->state->ipaddr     == myip &&
-           data->state->id         == oldreq->id) 
+       if (data->state->rem_ipaddr     == oldreq->server_ipaddr &&
+           data->state->proxy_id   == oldreq->server_id)
                return 0;
 
        return 1;
======

radius version 0.96.4


Log file fragment describing the error:

======
дек 26 13:29:14: [88331]: Main.info: ready
дек 26 13:29:14: [88331]: Main.info: /home/door/apl/gnu-radius/etc/raddb/users 
reloaded.
дек 26 13:29:14: [88332]: Main.info: Ready to process requests.
дек 26 13:29:19: [88332]: Main.debug: radius.c:369:radrecv: Request from host 
7f000001 code=1, id=135, length=97
дек 26 13:29:19: [88332]: Main.debug: radius.c:383:radrecv: radreq vector 
495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:19: [88332]: Main.debug: radius.c:448:radrecv: recv: User-Name = 
address@hidden
дек 26 13:29:19: [88332]: Main.debug: radius.c:448:radrecv: recv: Password = 
sPamb)\262\114\261\276\363\341\016\371\156\177
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: NAS-Port-Id = 
55
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: Service-Type 
= Framed-User
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Protocol = PPP
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
NAS-IP-Address = 127.0.0.1
дек 26 13:29:19: [88332]: Main.debug: radius.c:448:radrecv: recv: 
Called-Station-Id = 0742470751
дек 26 13:29:19: [88332]: Main.debug: radius.c:448:radrecv: recv: 
Calling-Station-Id = 0742470603
дек 26 13:29:19: [88332]: Main.debug: auth.c:467:rad_auth_init: checking 
username: address@hidden
дек 26 13:29:19: [88332]: Main.debug: proxy.c:496:proxy_send: Sending 
authentication request of id 0 to 7f000001 (server localhost:21812)
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
User-Name = ldoor
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Password = sPamb)\262\114\261\276\363\341\016\371\156\177
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
NAS-Port-Id = 55
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Service-Type = Framed-User
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Framed-Protocol = PPP
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
NAS-IP-Address = 127.0.0.1
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Called-Station-Id = 0742470751
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Calling-Station-Id = 0742470603
дек 26 13:29:19: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Proxy-State = \000\000\000\000\207\000\000\000\000\000\000\000\001\000\000\177
дек 26 13:29:19: [88332]: Main.debug: radiusd.c:1265:rad_spawn_child: adding 
PROXY request to the list. 1 requests held.
дек 26 13:29:19: [88332]: Main.debug: proxy.c:138:rad_proxy: allocated ptr 
0x80aa600
дек 26 13:29:19: [88332]: Main.debug: radius.c:369:radrecv: Request from host 
7f000001 code=2, id=0, length=68
дек 26 13:29:19: [88332]: Main.debug: radius.c:383:radrecv: radreq vector 
446FC41FB616299A481CE44103B85747
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Protocol = PPP
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-IP-Address = 192.168.88.96
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-IP-Netmask = 255.255.255.255
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Routing = None
дек 26 13:29:19: [88332]: Main.debug: radius.c:462:radrecv: recv: Service-Type 
= Framed-User
дек 26 13:29:19: [88332]: Main.debug: radius.c:448:radrecv: recv: Proxy-State = 
\000\000\000\000\207\000\000\000\000\000\000\000\001\000\000\177
дек 26 13:29:19: [88332]: Main.debug: proxy.c:623:proxy_receive: state: ipaddr 
00000000, id 135, proxy_id 0, rem_ipaddr 7f000001
дек 26 13:29:19: [88332]: Main.debug: proxy.c:630:proxy_receive: Compare: myip 
00000000, radreq->id 0, radreq->ipaddr 7f000001
дек 26 13:29:19: [88332]: Main.debug: proxy.c:539:proxy_compare_request: 
(old=data) id 135 135, ipaddr        0        0
дек 26 13:29:19: [88332]: Main.debug: proxy.c:655:proxy_receive: radreq vector 
446FC41FB616299A481CE44103B85747
дек 26 13:29:19: [88332]: Main.debug: proxy.c:657:proxy_receive: oldreq vector 
495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:19: [88332]: Main.debug: radiusd.c:1265:rad_spawn_child: adding 
AUTH request to the list. 2 requests held.
дек 26 13:29:19: [88332]: Main.debug: radiusd.c:1303:rad_spawn_child: started 
handler at pid 88336
дек 26 13:29:19: [88336]: Auth.debug: auth.c:784:rad_authenticate: auth: 
address@hidden
дек 26 13:29:19: [88336]: Auth.debug: auth.c:1271:sfn_ack: ACK: address@hidden
дек 26 13:29:19: [88336]: Auth.debug: radius.c:113:rad_send_reply: Sending Ack 
of id 135 to 7f000001 (nas local)
дек 26 13:29:19: [88336]: Auth.debug: radius.c:122:rad_send_reply: reply: 
Framed-Protocol = PPP
дек 26 13:29:19: [88336]: Auth.debug: radius.c:122:rad_send_reply: reply: 
Service-Type = Framed-User
дек 26 13:29:19: [88336]: Auth.notice: Login OK: address@hidden/]: CLID 
0742470603 (from nas local)
дек 26 13:29:19: [88336]: Auth.debug: auth.c:1291:sfn_ack: timeout for 
address@hidden is set to 0 sec
дек 26 13:29:19: [88332]: Main.debug: radiusd.c:1331:rad_child_cleanup: child 
88336 exited: 0
дек 26 13:29:20: [88332]: Main.debug: radius.c:369:radrecv: Request from host 
c0a87b71 code=1, id=135, length=97
дек 26 13:29:20: [88332]: Main.debug: radius.c:383:radrecv: radreq vector 
60758C02196AD109DEFAD364BFA4656A
дек 26 13:29:20: [88332]: Main.debug: radius.c:448:radrecv: recv: User-Name = 
address@hidden
дек 26 13:29:20: [88332]: Main.debug: radius.c:448:radrecv: recv: Password = 
\073\075\332\121\225\107\217\306\262\247\321\063\220\315\014\374
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: NAS-Port-Id = 
55
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: Service-Type 
= Framed-User
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Protocol = PPP
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
NAS-IP-Address = 192.168.123.113
дек 26 13:29:20: [88332]: Main.debug: radius.c:448:radrecv: recv: 
Called-Station-Id = 0742470751
дек 26 13:29:20: [88332]: Main.debug: radius.c:448:radrecv: recv: 
Calling-Station-Id = 0742470603
дек 26 13:29:20: [88332]: Main.debug: auth.c:467:rad_auth_init: checking 
username: address@hidden
дек 26 13:29:20: [88332]: Main.debug: proxy.c:496:proxy_send: Sending 
authentication request of id 1 to 7f000001 (server localhost:21812)
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
User-Name = ldoor
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Password = \073\075\332\121\225\107\217\306\262\247\321\063\220\315\014\374
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
NAS-Port-Id = 55
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Service-Type = Framed-User
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Framed-Protocol = PPP
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
NAS-IP-Address = 192.168.123.113
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Called-Station-Id = 0742470751
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Calling-Station-Id = 0742470603
дек 26 13:29:20: [88332]: Main.debug: proxy.c:205:rad_send_request: proxy_send: 
Proxy-State = \000\000\000\000\207\000\000\000\001\000\000\000\001\000\000\177
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1518:rad_req_cmp: Compare: aip 
7f000001, bip c0a87b71, aid 135, bid 135, acode 1 bcode 1
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1519:rad_req_cmp: Compare: a 
vector 495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1520:rad_req_cmp: Compare: b 
vector 60758C02196AD109DEFAD364BFA4656A
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1527:rad_req_cmp: Compare: 
asrvip 7f000001, bsrvip 7f000001, asrvid 0, bsrvid 1, asrvcode 0, bsrvcode 0
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1265:rad_spawn_child: adding 
PROXY request to the list. 3 requests held.
дек 26 13:29:20: [88332]: Main.debug: proxy.c:138:rad_proxy: allocated ptr 
0x80aa700
дек 26 13:29:20: [88332]: Main.debug: radius.c:369:radrecv: Request from host 
7f000001 code=2, id=1, length=68
дек 26 13:29:20: [88332]: Main.debug: radius.c:383:radrecv: radreq vector 
73FD2B5FE6296DDB395C3185FF768BA9
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Protocol = PPP
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-IP-Address = 192.168.88.96
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-IP-Netmask = 255.255.255.255
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: 
Framed-Routing = None
дек 26 13:29:20: [88332]: Main.debug: radius.c:462:radrecv: recv: Service-Type 
= Framed-User
дек 26 13:29:20: [88332]: Main.debug: radius.c:448:radrecv: recv: Proxy-State = 
\000\000\000\000\207\000\000\000\001\000\000\000\001\000\000\177
дек 26 13:29:20: [88332]: Main.debug: proxy.c:623:proxy_receive: state: ipaddr 
00000000, id 135, proxy_id 1, rem_ipaddr 7f000001
дек 26 13:29:20: [88332]: Main.debug: proxy.c:630:proxy_receive: Compare: myip 
00000000, radreq->id 1, radreq->ipaddr 7f000001
дек 26 13:29:20: [88332]: Main.debug: proxy.c:539:proxy_compare_request: 
(old=data) id 135 135, ipaddr        0        0
дек 26 13:29:20: [88332]: Main.debug: proxy.c:655:proxy_receive: radreq vector 
73FD2B5FE6296DDB395C3185FF768BA9
дек 26 13:29:20: [88332]: Main.debug: proxy.c:657:proxy_receive: oldreq vector 
495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1518:rad_req_cmp: Compare: aip 
7f000001, bip 7f000001, aid 135, bid 135, acode 1 bcode 1
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1519:rad_req_cmp: Compare: a 
vector 495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1520:rad_req_cmp: Compare: b 
vector 495ABB0D4EDFBD4B6F08361E7C996D08
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1527:rad_req_cmp: Compare: 
asrvip 7f000001, bsrvip 7f000001, asrvid 0, bsrvid 0, asrvcode 2, bsrvcode 2
дек 26 13:29:20: [88332]: Main.debug: radiusd.c:1532:rad_req_cmp: Compare: 
ipaddrs & codes are equals
дек 26 13:29:20: [88332]: Main.notice: Dropping AUTH packet from client 
localhost, ID: 135: duplicate request
======

Good luck.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]