Sunday, August 2, 2009

3GPP Radius Part2

Some time back I wrote about 3GPP Radius. This is continuation of it.

What I said in the previous post was UE sends the authentication details in PCO field of Create PDP context/Create default bearer to GGSN/PGW. GGSN/PGW looks at that field and creates a Radius Access Request and sends it to a AAA server. AAA server can accept or reject the request. Its plain and simple. Lets look a little further.

IP address allocation: It would be interesting to see if Radius server can assign IP addresses to the UE. When a GGSN sends access request to AAA server, AAA server can respond to the request with access accept by placing an IP address in the Framed-IP field. This way we will not have to maintain a IP pool in GGSN, some processing reduced. GGSN can send the IP address received in Access accept to UE in PDP response message. So radius server will maintain a pool of ip addresses to be assigned to each UE and I believe it would be easy to maintain too.

The IP address can be returned to the radius server in Accounting Stop message. Once AAA server receives accounting stop it can free that ip address and assign it to other UE.

Accounting: I am quite not sure about it but I think accounting is done based on MSISDN. If so AAA server can maintain a table mapping MSISDN, IP address allocated, number of packets/octets in and out. Charging can be done based on this data. More over we can have static values of IP addresses to be assigned based on MSISDN. Assign this IP address to this MSISDN. Basically MSISDN becomes a kind of MAC address (?).

I believe most of the service providers do the way I mentioned above, if not I would be happy to know the other techniques.

FreeRadius : I am impressed. Simply superb is the word. I used Free Radius extensively in past few days and my god its just sweet. 100 requests at a time and still counting. What I did was create a local ip pool and when ever there is access request, reply with an IP address. It works superb. What I dint do was SQL Ip pool. I believe we can do Accounting scenario mentioned above pretty easily. (Log MSISDN, IP address, Accounting Packets/Octets in and out). The only problem with local IP pool was returning the IP addresses. IP addresses were not released when accounting stop was received. I tried every possible way but nope, it dint work. But Sql IP pool is supposed to work fine, I havent tested it but I believe it works fine. I dint try assigning IP addresses based on MSISDN too. Hope it works.

Thats pretty much it. Comments are always welcome.

Oh! Wish you all a very happy friendship day!


S.Kar said...

Back from vacation and started following your blog. appreciate your effort and recognize that you are focusing on little areas to address. I have several areas to address I wish I could get some time.

I need to know more detail about FreeRadius and SQL ip pool. this is kind of a software maintaining ip pools. does this maintain load balancing ? suppose i have multiple pdn requesting to this software to obtain ip. does this maintain as per node and msisdn/bearerid ? if one node handles n number of UE took all the ip address and does not return but still request will this software return some kind of warning/failure message.

Do you know the link to look at more detail ?

Santosh said...

I will get back to you on this. I believe load balancing is possible, but let me dig a bit more.

sumit said...

Heyyy... Thanks for your useful posts... I am following you. Working on Beyond 3G at IIT Kharagpur.

Santosh said...

Great Sumit! Wish you luck!