Thursday, April 7, 2011

cisco CSG/GGSN + more DNS applications

So once upon a short time back I worked on the mobile core (I still insist thats the best team to work with - ever). The interface between the sgsn and the GGSN is called the gn interface. (I promise to do more posts on the mobile core).

Now our GGSN's were actually a couple of cisco MWAM blades hosting several ggsn's each.

We used DNS for load balancing traffic from the sgsn to the ggsn. Here's a brief of how it works:

during session setup also known as pdp context activation, the sgsn is supposed to set up a tunnel (gtp tunnel) with a ggsn for each  session. Now the user uses an 'apn' like 'safaricom' which defines the service a customer is allowed to access. each ggsn is configured to allow a specific apn access, the sgsn looks at the apn, checks a dns server, resolves the apn to a ggsn's ip address and creates the tunnel.

DNS is therefore used to decide which ggsn to channel the request to. Multiple DNS servers means you get to load balance the traffic among the ggsn's - round robin. It was not perfect, but it was cheaper than trying to get loadbalancers in.

If you'd like to know more about how the mobile core works, how its all put together drop a comment ....the design considerations are definately way more than trying to slap together a document for a pure IP core....


  1. Hi. That's interesting.
    So round-robin on the dns servers, which in turn round-robin on the ggsn.
    I am indeed interested in finding out more.
    What about using dns for handover (bsc/rnc) and the concept of LA/RA in sgsn? Do you know more?


  2. Actually the use of DNS here is mainly to resolve the APN to ggsn. The apn is used in a DNS query to what we call the 'apn dns' (apn resolution). it helps in making the decision 'which dns should serve this APN'. at that point a PDP context can be activated. Round robin in this case happens because for each query a different GGSN IP is returned to the sgsn to establish the session with.

    In LTE the DNS resolves the FQDNs (APN, TAI, RAI, and RNC) into appropriate PGW, SGW, RAU/SGSN, and SRNS/SGSN respectively.

    Yes technically you can have mobility based on DNS. Some vendors (out of laziness in my opinion) use static lists for the same resolution but thats not scalable and it does affect 'mobility', like if one ggsn fails and you need all pdp contexts to be seamlessly failed over to another one ie users don't lose their sessions..

  3. Do those same DNS servers do the resolution for hostnames during a mobile HTTP session - post attach and pdp context activation?