Hello freeradius-users,

  I have a problem with rlm_ippool - it's not deallocating ip's from
  pool, and i think i'm somewhat close to its solution, but i want to
  do all things right, that's why i'm here again.

  FreeBSD 4.8R-p14, freeradius-0.9.3 with cvs version of rlm_ippool
  (* Version:  $Id: rlm_ippool.c,v 1.20.2.2 2003/10/09 01:05:17 phampson Exp $)

  When radiusd receives request from NAS, like this

        Calling-Station-Id = "0:50:ba:c1:3:38"
        Called-Station-Id = "pppoe"
        Service-Type = Framed-User
        User-Name = "lan"
        Framed-Protocol = PPP
        MS-CHAP-Challenge = xxxxxxxxxxxxxxxxxxxxxx
        MS-CHAP2-Response = xxxxxxxxxxxxxxxxxxxxxx
        NAS-Identifier = "zeus.startatom.ru"
        NAS-Port-Type = Ethernet
        NAS-Port = 1984  

  rlm_ippool allocates ip address and writes this entry in his db
  under two keys, NAS address and NAS port:

rlm_ippool: Searching for an entry for nas/port: zeus.startatom.ru/1984
rlm_ippool: Allocating ip to nas/port: zeus.startatom.ru/1984
rlm_ippool: num: 1
rlm_ippool: Allocated ip 192.168.253.207 to client on nas zeus.startatom.ru,port 1984
  modcall[post-auth]: module "legal_pool" returns ok for request 0  

  Then, when this client disconnects, rlm_ippool somehow turning
  NAS-Identifier to direct ip address instead of FQDN. This is Stop
  request:

rad_recv: Accounting-Request packet from host 62.33.65.2:2107, id=71, length=162
        Calling-Station-Id = "0:50:ba:c1:3:38"
        Called-Station-Id = "pppoe"
        Service-Type = Framed-User
        User-Name = "lan"
        Framed-Protocol = PPP
        Framed-IP-Address = 192.168.253.207
        Framed-IP-Netmask = 0.0.0.0
        NAS-Identifier = "zeus.startatom.ru"
        NAS-Port-Type = Ethernet
        NAS-Port = 1984
        Acct-Status-Type = Stop
        Acct-Session-Id = "s-1474470826"
        Acct-Multi-Session-Id = ""
        Acct-Delay-Time = 0
        Acct-Input-Octets = 656
        Acct-Input-Packets = 2
        Acct-Output-Octets = 0
        Acct-Output-Packets = 0
        Acct-Session-Time = 13

  See? NAS-Identifier is the same FQDN, but rlm_ippool thinks
  differently:

rlm_ippool: Searching for an entry for nas/port: 62.33.65.2/1984
rlm_ippool: Entry not found
  modcall[accounting]: module "legal_pool" returns ok for request 2  

  And as a result when client disconnects, his address doesn't
  deallocates from pool, and after some time radiusd is run out of
  addresses, and clients cannot connect.

  I solved this problem by adding simple attr_rewrite entry to
  post-auth block (before ippool entry):

    attr_rewrite NAS {
        attribute = NAS-Identifier
        searchin = packet
        searchfor = "zeus.startatom.ru"
        replacewith = "62.33.65.2"
        new_attribute = no
    }
  
  So, it's always direct ip written to db, and when rlm_ippool check
  entry on Stop request, it successefully deallocates ip address from
  pool. I think, this workaround will work for me, but are there
  another way to make rlm_ippool work without that?

  
  
-- 
Best regards,
 Alexander                          mailto:[EMAIL PROTECTED]


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to