Configuring Dynamic Addressing on the GGSN
This chapter describes how to configure dynamic IP addressing on the gateway GRPS support node (GGSN).
Note The tasks in this chapter apply to IPv4 PDP contexts only. For information on IPv6 addressing, see Chapter 4, "Configuring IPv6 PDP Support on the GGSN."
For a complete description of the GGSN commands in this chapter, refer to the Cisco GGSN Command Reference for the Cisco GGSN release you are using. To locate documentation of other commands that appear in this chapter, use the command reference master index or search online.
This chapter includes the following sections:
•Overview of Dynamic IP Addressing on the GGSN
•Configuring DHCP on the GGSN
•Configuring MS Addressing via Local Pools on the GGSN
•Configuring MS Addressing via RADIUS on the GGSN
•Configuring IP Overlapping Address Pools
•Configuring the NBNS and DNS Address for an APN
Overview of Dynamic IP Addressing on the GGSN
There are three methods for configuring the GGSN to assign IP addresses to mobile station users who need to access the public data network (PDN): Dynamic Host Configuration Protocol (DHCP) allocation, Remote Authentication Dial-In User Service (RADIUS) allocation, and local IP address pool allocation configured at the access point name (APN).
A method of dynamic IP addressing can be configured either globally or at the access-point configuration level.
Be sure that the following configuration guidelines are met to support the type of IP address allocation in use on your network:
•DHCP IP address allocation
–Be sure that you configure the scope of the addresses to be allocated on the same subnet as the loopback interface.
–Do not configure an IP address for users on the RADIUS server.
–Specify the peer default ip address dhcp command at the PPP virtual template interface.
–Specify the aaa authorization network method_list none command on the GGSN.
•RADIUS IP address allocation
–Be sure that users are configured on the RADIUS server using the complete username@domain format.
–Specify the no peer default ip address command at the PPP Virtual Template interface.
–For more information about configuring RADIUS services on the GGSN, see the "Configuring Security on the GGSN" chapter in this book.
•Local pool IP address allocation
–Be sure to configure a local pool using the ip local pool command.
–Specify the aaa authorization network method_list none command on the GGSN.
–Specify the peer default ip address pool pool-name command.
Note On the Cisco 7600 platform, dynamic address allocation using the DHCP or RADIUS server methods requires that the DHCP or RADIUS server be Layer 3 routeable from the supervisor engine.
Configuring DHCP on the GGSN
You can use local DHCP services within the Cisco IOS software, or you can configure the GGSN to use an external DHCP server such as the Cisco Network Registrar (CNR). For information about configuring internal DHCP services in the Cisco IOS software, refer to the Cisco IOS Configuration Fundamentals Configuration Guide.
The DHCP server can be specified in two ways:
•At the global configuration level, using the gprs default dhcp-server command
•At the access-point configuration level, using the dhcp-server command
To configure DHCP support on the GGSN, you must configure either the gprs default ip-address-pool global configuration command or the ip-address-pool access-point configuration command with the dhcp-proxy-client keyword option.
After you configure the access point for DHCP proxy client services, use the dhcp-server access-point configuration command to specify a DHCP server.
Use the ip-address argument to specify the IP address of the DHCP server. The second, optional ip-address argument can be used to specify the IP address of a backup DHCP server to be used in the event that the primary DHCP server is unavailable. If you do not specify a backup DHCP server, then no backup DHCP server is available.
If you specify a DHCP server at the access-point level by using the dhcp-server command, then the server address specified at the access point overrides the address specified at the global level. If you do not specify a DHCP server address at the access-point level, then the address specified at the global level is used.
Therefore, you can have a global address setting and also one or more local access-point level settings if you need to use different DHCP servers for different access points.
Use the vrf keyword when the DHCP server itself is located within the address space of a VRF interface on the GGSN. If the DHCP server is located within the VRF address space, then the corresponding loopback interface for the dhcp-gateway-address must also be configured within the VRF address space.
This section contains the following information:
•Configuring DHCP Server Communication Globally
•Configuring DHCP at the GGSN Global Configuration Level
•Configuring a Local DHCP Server
•Configuration Example
Configuring DHCP Server Communication Globally
This section describes how to configure a global DHCP server host that the GGSN can use to assign IP addresses to mobile users. You can configure additional DHCP server communication at the GGSN global configuration level.
To globally configure DHCP server communication on the router or instance of Cisco IOS software, use the following commands, beginning in global configuration mode:
|
|
|
Step 1 |
Router(config)# ip address-pool {dhcp-proxy-client | local} |
Specifies an IP address pool mechanism, where: •dhcp-proxy-client—Specifies the router or instance of Cisco IOS software as the proxy-client between a third-party DHCP server and peers connecting to the router or IOS instance. •local—Specifies the local address pool named "default". Note There is no default option for the ip address-pool command. If you configure a local address pool using the local keyword, you can also configure the optional commands in Step 4 and Step 5. |
Step 2 |
Router(config)# ip dhcp-server {ip-address | name} |
Specifies the IP address or name of a DHCP server. |
Step 3 |
Router(config)# ip dhcp excluded address low-address [high-address] |
(Optional) Specifies IP addresses that a DHCP server should not assign to DHCP clients, where: •low-address—Specifies the first IP address in an excluded address range. This address is typically the address of the DHCP server itself. •high-address—(Optional) Specifies the last IP address in the excluded address range. |
Step 4 |
Router(config)# ip dhcp pool name |
(Optional—Supports ip address-pool local command only.) Configures a DHCP address pool, and enters DHCP pool configuration mode, where name can be either a symbolic string (such as "engineering") or an integer (such as 0). |
Step 5 |
Router(config-dhcp)# network network-number [mask | /prefix-length] |
(Optional—Supports ip address-pool local command only.) Specifies the subnet network number and mask of the DHCP address pool. The prefix length specifies the number of bits in the address prefix. The prefix is an alternative way of specifying the network mask of the client. The prefix length must be preceded by a forward slash (/). |
For more information about configuring global DHCP services, refer to the Cisco IOS IP Configuration Guide, Cisco IOS IP Command References, and the Cisco IOS Dial Technologies Command Reference publications.
Configuring DHCP at the GGSN Global Configuration Level
To complete the DHCP configuration for the GGSN, you can configure DHCP at the GGSN global configuration level. When you configure DHCP at the GGSN configuration level, you can configure DHCP server communication for all access points or for a specific access point.
Configuring DHCP at the GGSN configuration level includes the following tasks:
•Configuring a Loopback Interface (Required)
•Specifying a DHCP Server for All Access Points (Optional)
•Specifying a DHCP Server for a Particular Access Point (Optional)
Configuring a Loopback Interface
When you configure a DHCP gateway address for DHCP services at an access point, and when you are supporting unique supernets across all access points on the GGSN for DHCP, then you must configure a loopback interface for each unique network.
A loopback interface is a software-only interface that emulates an interface that is always up. It is a virtual interface supported on all platforms. The interface number is the number of the loopback interface that you want to create or configure. There is no limit on the number of loopback interfaces you can create.
To configure a loopback interface on the GGSN, use the following commands, beginning in global configuration mode:
|
|
|
Step 1 |
Router(config)# interface loopback interface-number |
Defines a loopback interface on the GGSN, where interface-number identifies the loopback interface. |
Step 2 |
Router(config-if)# ip address ip-address mask [secondary] |
Specifies an IP address for the interface, where: •ip-address—Specifies the IP address of the interface in dotted decimal format. •mask—Specifies a subnet mask in dotted decimal format. •secondary—Specifies that the configured address is a secondary IP address. If this keyword is omitted, the configured address is the primary IP address. Note The ip-address corresponds to the IP address of the DHCP gateway address at the access point. The mask should be 255.255.255.255 to match the dhcp-gateway-address value exactly. |
Specifying a DHCP Server for All Access Points
When processing DHCP address allocation, the GGSN software first checks to see whether a DHCP server has been specified at the access-point configuration level. If a server has been specified, the GGSN uses the DHCP server specified at the access point. If no DHCP server is specified at the access-point configuration level, then the GGSN uses the default GGSN DHCP server.
To specify a DHCP server for all GGSN access points, use the following commands, beginning in global configuration mode:
|
|
|
Step 1 |
Router(config)# gprs default ip-address-pool {dhcp-proxy-client | radius-client | disable} |
Specifies a dynamic address allocation method using IP address pools for the GGSN, where: •dhcp-proxy-client—Specifies that the GGSN dynamically acquires IP addresses for a mobile station (MS) from a DHCP server. Use this keyword to enable DHCP services. •radius-client—Specifies that the GGSN dynamically acquires IP addresses for an MS from a RADIUS server. •disable—Disables dynamic address allocation by the GGSN. There is no default option for this command. |
Step 2 |
Router(config)# gprs default dhcp-server {ip-address | name} [{ip-address | name}]
|
Specifies a primary (and backup) DHCP server from which the GGSN obtains IP address leases for mobile users, where: •ip-address—Specifies the IP address of a DHCP server. The second (optional) ip-address argument specifies the IP address of a backup DHCP server. •name—Specifies the host name of a DHCP server. The second (optional) name argument specifies the host name of a backup DHCP server. |
Specifying a DHCP Server for a Particular Access Point
To override the default DHCP server configured for all access points, you can specify a different DHCP server for a particular access point. Or, if you choose not to configure a default GGSN DHCP server, you can specify a DHCP server at each access point.
To specify a DHCP server for a particular access point, use the following commands, beginning in access-point configuration mode:
|
|
|
Step 1 |
Router(config-access-point)# ip-address-pool {dhcp-proxy-client | radius-client | local pool-name | disable} |
(Optional) Specifies a dynamic address allocation method using IP address pools for the current access point. The available options are: •dhcp-proxy-client—DHCP server provides the IP address pool. •radius-client—RADIUS server provides the IP address pool. •local—Specifies that a local pool provides the IP address. This option requires that a local pool has been configured using the ip local pool global configuration command. •disable—Turns off dynamic address allocation. Note If you are using a dynamic address allocation method, then you must configure this command according to the appropriate IP address pool source. |
Step 2 |
Router(config-access-point)# dhcp-server {ip-address} [ip-address] [vrf]
|
Specifies a primary (and backup) DHCP server that the GGSN uses at a particular access point to obtain IP address leases for mobile users for access to a PDN, where: •ip-address—Specifies the IP address of a DHCP server. The second (optional) ip-address argument specifies the IP address of a backup DHCP server. •vrf—DHCP server uses the VPN routing and forwarding (VRF) table that is associated with the APN. |
Step 3 |
Router(config-access-point)# dhcp-gateway-address ip-address |
Specifies the subnet in which the DHCP server should return addresses for DHCP requests for MS users entering a particular PDN access point. Note You must configure a corresponding loopback interface with the same IP address as the DHCP gateway address. |
Configuring a Local DHCP Server
Note We do not recommend using a local DHCP server on the Cisco 7600 platform.
Although most networks use external DHCP servers, such as that available through the Cisco Network Registrar (CNR), you can also configure internal DHCP services on the GGSN. If you use local DHCP services on the GGSN, then there are a couple of commands that you should configure to improve the internal DHCP response times.
To optimize local DHCP services on the GGSN, use the following commands, beginning in global configuration mode:
|
|
|
Step 1 |
Router(config)# ip dhcp ping packets 0 |
Specifies that the Cisco IOS DHCP Server sends 0 packets to a pool address as part of a ping operation. |
Step 2 |
Router(config)# ip dhcp ping timeout 100 |
Specifies that the Cisco IOS DHCP Server waits for a ping reply from an address pool for 100 milliseconds. |
Configuration Example
The following example shows a VRF configuration for vpn3 (without tunneling) using the ip vrf global configuration command. Because the ip vrf command establishes both VRF and CEF routing tables, notice that ip cef also is configured at the global configuration level to enable CEF switching at all of the interfaces.
The following other configuration elements must also associate the same VRF named vpn3:
•FastEthernet0/0 is configured as the Gi interface using the ip vrf forwarding interface configuration command.
•Access-point 2 implements VRF using the vrf command access-point configuration command.
The DHCP server at access-point 2 also is configured to support VRF. Notice that access-point 1 uses the same DHCP server, but is not supporting the VRF address space. The IP addresses for access-point 1 will apply to the global routing table:
aaa group server radius foo
aaa authentication ppp foo group foo
aaa authorization network foo group foo
aaa accounting network foo start-stop group foo
ip address 10.30.30.30 255.255.255.255
ip address 10.27.27.27 255.255.255.255
interface FastEthernet0/0
ip address 10.50.0.1 255.255.0.0
interface FastEthernet1/0
ip address 10.70.0.1 255.255.0.0
ip address 10.8.0.1 255.255.255.0
interface Virtual-Template1
gprs access-point-list gprs
ip route 10.10.0.1 255.255.255.255 Virtual-Template1
ip route vrf vpn3 10.100.0.5 255.255.255.0 fa0/0 10.50.0.2
ip route 10.200.0.5 255.255.255.0 fa1/0 10.70.0.2
gprs access-point-list gprs
access-point-name gprs.pdn.com
ip-address-pool dhcp-proxy-client
dhcp-gateway-address 10.30.30.30
network-request-activation
access-point-name gprs.pdn2.com
access-mode non-transparent
ip-address-pool dhcp-proxy-client
dhcp-server 10.100.0.5 10.100.0.6 vrf
dhcp-gateway-address 10.27.27.27
aaa-group authentication foo
gprs default ip-address-pool dhcp-proxy-client
gprs gtp ip udp ignore checksum
radius-server host 10.2.3.4 auth-port 1645 acct-port 1646 non-standard
radius-server host 10.6.7.8 auth-port 1645 acct-port 1646 non-standard
radius-server key ggsntel
Configuring MS Addressing via Local Pools on the GGSN
As the number of PDP contexts increases, allocating IP addresses via locally-configured address pools improves the PDP context activation rate. Whether or not addresses are allocated to MSs using local pools is specified at the access-point configuration level and requires that a local pool or pools of IP address have been configured on the GGSN using the ip local pool configuration command.
Hold Back Timer
The IP local pool hold back timer feature (recycle delay keyword option) enables you to configure a specific amount of time a newy-released IP address is held before being made available for reassignment. This ensures that an IP address recently released when a PDP session was deleted is not re-assigned to another PDP context before the IP-to-user relationship has been deleted from all back-end components of the system. If an IP address is reassgined to a new PDP context immediately, the back-end system could incorrectly associate the new user with the record of the previous user, and therefore associate the charging and service access of the new user to the previous user.
The hold back functionality is provided by the support of a new timestamp field added to the pool element data structure. When a request to allocate a specific address is made, if the address is available for reassignment, the current time is checked agains the timestamp field of the element. If that number is equal to, or exceeds the number of seconds configured for the recycle delay, the address is reassigned.
When a request is made to allocate the first free address from the free queue, the difference between the current timesteamp and the timestamp stored for the element is calculated. If the number is equal to, or exceeds, the configured recycle delay, the address is allocated. If the number is not equal to, or does not exceed the configured recycle delay, the address is not allocated for that request. (The free queue is a first-in first-out [FIFO] queue. Therefore, all other elements will have a great recycle delay than the first element.)
When an address assignment is blocked because an IP address is held for some time, a count of blocked address assignments that is maintained for the local pool is incremented.
Note In Cisco GGSN Release 7.0, the hold back timer feature does not support IPv6 local pools.
To configure a local IP address pool, use the following command in global configuration mode:
|
|
|
Step 1 |
Router(config)#ip local pool {default | pool-name low-ip-address [high-ip-address]} [recycle delay seconds] |
Configures a local pool of IP addresses to be used when a remote peer connects to a point-to-point interface, where: •default—Default local address pool is used if no other pool is named. •pool-name—Name of a specific local address pool. •low-ip-address—Lowest IP address in the pool. •high-ip-address—(Optional) Highest IP address in the pool. If this value is omitted, only the low-ip-address IP address argument is included in the local pool. •recycle delay seconds—(Optional) The time, in seconds, addresses should be held before making them available for reassignment. |
To assign a local pool to an access-point, use the following command in access-point configuration mode:
|
|
|
Step 1 |
Router(config-access-point)# ip-address-pool local pool-name |
(Optional) Specifies that a local pool provides the IP address. |
Note Using VRF at the access point, you can configure APNs that use the same IP address pool (overlapping addresses). If using a Supervisor II, you must tunnel the encapsulated VRF traffic through the Supervisor using a GRE tunnel.
Fore more information on configuring VPN access via VRF from an access point, see the "VPN Access Using VRF Configuration Task Lists" section on page 7-13.
The Cisco 7600 Sup720 supports VRF.
To verify the local pool configure, use the show ip local [pool name] command in privileged EXEC mode:
Router#show ip local pool
Pool Begin End Free In use Blocked
poola 10.8.8.1 10.8.8.5 5 0 0
Router #show ip local pool poolA
Pool Begin End Free In use Blocked
poola 10.8.8.1 10.8.8.5 5 0 0
Held addresses: Time Remaining
Configuration Example
The following is a configuration example of a local address pool configured at the APN.
ip local pool local_pool1 128.1.0.1 128.1.255.254
access-point-name gprs.pdn.com
ip-address-pool local local_pool1
Configuring MS Addressing via RADIUS on the GGSN
Dynamic IP addressing via a RADIUS server is configured at the access-point configuration level using the ip-address-pool access-point configuration command.
For more information about the ip-address-pool access-point configuration command, see "Configuring Additional Real Access Point Options" section on page 7-20. For more information about configuring RADIUS, see the Cisco IOS Security Configuration Guide.
Configuring IP Overlapping Address Pools
The IP Overlapping Address Pools feature improves flexibility in assigning IP addresses dynamically. This feature allows you to configure overlapping IP address pool groups to create different address spaces and concurrently use the same IP addresses in different address spaces.
IP Overlapping Address Pools gives greater flexibility in assigning IP addresses dynamically. It allows you to configure overlapping IP address pool groups to create different address spaces and concurrently use the same IP addresses in different address spaces.
With Cisco IOS Release 12.3(2)XB and later, the GGSN supports the concept of an IP address group to support multiple IP address spaces and still allow the verification of nonoverlapping IP address pools within a pool group. Pool names must be unique within the GGSN. The pool name carries an implicit group identifier because that pool name can be associated only with one group. Pools without an explicit group name are considered members of the base system group and are processed in the same manner as the original IP pool implementation.
Existing configurations are not affected by the new pool feature. The "group" concept is an extension of the existing ip local pool command. Processing of pools that are not specified as a member of a group is unchanged from the existing implementation.
To configure a local IP address pool group and verify that it exists, use the following commands in global configuration mode:
|
|
|
Step 1 |
Router(config)#ip local pool {default | pool-name low-ip-address [high-ip-address]} Example:
GGSN(config)# ip local pool testpool 10.2.2.1
10.2.2.10 group testgroup cache-size 10000
|
Configures a local pool of IP addresses to be used when a remote peer connects to a point-to-point interface, where: •default—Defaults local address pool that is used if no other pool is named. •pool-name—Name of a specific local address pool. •low-ip-address—Lowest IP address in the pool. •high-ip-address—(Optional) Highest IP address in the pool. If this value is omitted, only the low-ip-address IP address argument is included in the local pool. |
Step 2 |
Router(config)# show ip local pool [poolname |
[group group-name]]
Example:
GGSN(config)# show ip local pool group testgroup
testpool
|
Displays statistics for any defined IP address pools. |
Configuration Examples
The following are configuration examples for configuring IP overlapping address pools.
•Defining Local Address Pooling as the Global Default
•Configuring Multiple Ranges of IP Addresses into One Pool Example
•Configuring IP Overlapping Address Pools on a GGSN on the Cisco 7600 Platform with Supervisor II / MSFC2 Example
Defining Local Address Pooling as the Global Default
The following example shows how to configure local pooling as the global default mechanism:
ip address-pool local ip local pool default 192.169.15.15 192.68.15.16
Configuring Multiple Ranges of IP Addresses into One Pool Example
The following example shows how to configure two ranges of IP addresses for one IP address pool:
ip local pool default 192.169.10.10 192.169.10.20
ip local pool default 192.169.50.25 192.169.50.50
Configuring IP Overlapping Address Pools on a GGSN on the Cisco 7600 Platform with Supervisor II / MSFC2 Example
The following example shows how to configure IP overlapping address pools on the Cisco 7600 platform
The following examples also show a partial configuration for two VPNs (vpn1 and vpn2) and their associated GRE tunnel configurations (Tunnel1 and Tunnel2).
On the GGSN:
ip address 150.1.1.72 255.255.0.0
description GPRS GTP V-TEMPLATE IP ADDRESS
ip address 9.9.9.72 255.255.255.0
description VRF-GRE to PDN 7500(13) Fa0/1
ip address 50.50.52.72 255.255.255.0
tunnel destination 165.2.1.13
description VRF-GRE to PDN PDN x(12) Fa3/0
ip address 80.80.82.72 255.255.255.0
tunnel destination 167.2.1.12
interface GigabitEthernet0/0.1
ip address 10.1.2.72 255.255.255.0
interface Virtual-Template1
ip unnumbered Loopback100
gprs access-point-list gprs
network 10.1.2.0 0.0.0.255 area 10
network 150.1.0.0 0.0.255.255 area 10
ip local pool vpn1_pool 100.2.0.1 100.2.255.255 group vpn1
ip local pool vpn2_pool 100.2.0.1 100.2.255.255 group vpn2
ip route vrf vpn1 0.0.0.0 255.255.255.0 Tunnel1
ip route vrf vpn2 0.0.0.0 255.255.255.0 Tunnel2
gprs access-point-list gprs
access-point-name apn.vrf1.com
access-mode non-transparent
aaa-group authentication ipdbfms
ip-address-pool local vpn1_pool
access-point-name apn.vrf2.com
access-mode non-transparent
aaa-group authentication ipdbfms
ip-address-pool local vpn2_pool
Related configuration on the Supervisor / MSFC2:
interface FastEthernet9/5
switchport access vlan 167
interface FastEthernet9/10
switchport access vlan 165
ip address 165.1.1.1 255.255.0.0
ip address 167.1.1.1 255.255.0.0
! provides route to tunnel endpoints on GGSNs
network 10.1.2.0 0.0.0.255 area 10
! routes to tunnel endpoints on PDN
ip route 165.2.0.0 255.255.0.0 165.1.1.13
ip route 167.2.0.0 255.255.0.0 167.1.1.12
Configuring the NBNS and DNS Address for an APN
You can configure a primary and secondary NetBIOS Name Service (NBNS) and domain name system (DNS) under an APN. This feature is benefits address allocation schemes where there is no mechanism to obtain these address. Also, for a RADIUS-based allocation scheme, it prevents the operator from having to configure a NBNS and DNS under each user profile.
The NBNS and DNS addresses can come from three possible sources: DHCP server, RADIUS server, or local APN configuration. The criterium for selecting the addresses depends on the IP address allocation scheme configured under the APN. Depending on the configuration, the criterium for selecting the DNS and NBNS addresses is as follows:
1. DHCP-based IP address allocation scheme (local and external)—NBNS address returned from the DHCP server is sent to the MS. If the DHCP server does not return an NBNS address, the local APN configuration is used.
2. RADIUS-based IP address allocation scheme—NBNS address returned from the RADIUS server (in Access-Accept responses) is used. If the RADIUS server does not return an NBNS address, the local APN configuration is used.
3. Local IP Address Pool-based IP address allocation scheme—Local APN configuration is used.
4. Static IP Addresses—Local APN configuration is used.
Note The GGSN sends NBNS and DNS addresses in the create PDP response only if the MS is requesting the DNS address in the PCO IE.
To specify a primary (and backup) NBNS to be sent in create PDP responses at the access point, use the nbns primary access-point configuration command. To remove the NBNS from the access-point configuration, use the no form of this command
nbns primary ip-address [secondary ip-address]
To specify a primary (and backup) DNS to be sent in create PDP responses at the access point, use the dns primary access-point configuration command. To remove the DNS from the access-point configuration, use the no form of this command
dns primary ip-address [secondary ip-address]