Where are these "Client-IP-Address = 127.0.0.1" messages coming from?
Matthew Schumacher
matt.s at aptalaska.net
Thu Jan 12 20:44:45 CET 2006
Matthew Schumacher wrote:
> Lewis Bergman wrote:
>
>>Matthew Schumacher wrote:
>>
>>
>>>I'm getting accounting messages like these that seem to be coming from
>>>the loopback interface, but `tcpdump -i lo` doesn't see them so they are
>>>not coming from a local client. If they are not coming from a local
>>>client then how can I figure out where they are coming from?
>>>
>>>Thu Jan 12 07:19:58 2006
>>> Acct-Status-Type = Stop
>>> NAS-IP-Address = x.x.x.x (legit nas IP)
>>> Acct-Delay-Time = 0
>>> User-Name = "user"
>>> NAS-Port = 536936515
>>> Acct-Session-Id = "0A000067"
>>> Service-Type = Framed-User
>>> Framed-Protocol = PPP
>>> Framed-IP-Address = x.x.x.x (legit Framed-IP-Address)
>>> Acct-Session-Time = 0
>>> Acct-Input-Octets = 0
>>> Acct-Output-Octets = 0
>>> Acct-Input-Packets = 0
>>> Acct-Output-Packets = 0
>>> Client-IP-Address = 127.0.0.1
>>> Acct-Unique-Session-Id = "1cc41474b27ed376"
>>> Timestamp = 1137082798
>>
>>These appear to be from the loopback of the NAS, not the radius server.
>>
>
>
> Thanks for your reply, however it doesn't make sense to me. How can the
> Client-IP-Address be 127.0.0.1 if the radius server records the source
> address of the packet in the Client-IP-Address attribute? If the packet
> came from the loopback of the nas then I would expect the NAS-IP-Address
> to be 127.0.0.1 but the Client-IP-Address to be where the packet was
> sourced from.
>
> schu
Okay, I'm looking at the rlm_preprocess.c code and see where the
Client-IP-Address is set:
/*
* Add in a Client-IP-Address, to tell the user
* the source IP of the request. That is, the client,
*
* Note that this MAY BE different from the NAS-IP-Address,
* especially if the request is being proxied.
*
* Note also that this is a server configuration item,
* and will NOT make it to any packets being sent from
* the server.
*/
nas = paircreate(PW_CLIENT_IP_ADDRESS, PW_TYPE_IPADDR);
if (!nas) {
radlog(L_ERR, "No memory");
return -1;
}
nas->lvalue = request->packet->src_ipaddr;
ip_hostname(nas->strvalue, sizeof(nas->strvalue), nas->lvalue);
pairadd(&request->packet->vps, nas);
return 0;
But it looks like it always comes from request->packet->src_ipaddr which
leads me to believe that I'm getting a packet sourced from 127.0.0.1
even though tcpdump doesn't see it.
I also noticed that the udpfromto source could generate packets from
127.0.0.1 but it was not compiled in, and even if it was I should see it
in tcpdump.
Any thoughts on this? I need to get rid of these spurious accounting
messages.
Thanks,
schu
More information about the Freeradius-Users
mailing list