Beruflich Dokumente
Kultur Dokumente
1. Physical connections
The Linux machine must have Ethernet connections to Gn and Gi hub. If for Gn and Gi its used the same hub then its enough a single Ethernet connection. In Brasov we use Radius PC for Cisco GGSN simulation with following physical connections and IP addressing for Gn and Gi networks:
DNS Server 218.59.40.8
218.59.40.5
GGSN0 SGSN0
218.59.40.1 218.59.30.2 218.59.40.6 Gn, Gi Hub 218.59.40.2 218.59.30.4 218.59.40.9
GGSN1
SGSN1
Gn network Gi network
218.59.30.100 FTP/HTTP/WAP Server
Cisco GGSN
unzip -p c7200-js-mz.124-10.bin > c7200-js-mz.124-10.image 5)Go to /usr/local/bin and start the dynamips emulator by specifying the IOS image: nice ./dynamips-0.2.5-x86.bin /root/cisco/image-7200/c7200-g8is-mz.124-2.XB1.image -H 7200 & You should see the following message on the desktop: [root@radius bin]# nice ./dynamips-0.2.5-x86.bin /root/cisco/image-7200/c7200-g8is-mz.124-2.XB1.image -H 7200 & [1] 26963 [root@radius bin]# Cisco 7200 Simulation Platform (version 0.2.5x86) Copyright (c) 2005,2006 Christophe Fillot. Hypervisor TCP control server started. [root@radius bin]# The emulator can be started during the Linux startup putting the previous command in /etc/rc.local file: /usr/local/bin/./dynamips-0.2.5-x86.bin /root/cisco/image-7200/c7200-g8is-mz.124-2.XB1.image -H 7200 & You can check if the emulator is started with command ps ax. 6) We need to emulate a router with two Ethernet interfaces for Gn and Gi. For this we create a file named ggsn.net in /root/cisco/labs/ggsn directory. In this file we define the router and the bridge between the router interfaces to the NIC of Linux machine. [root@radius ~]# cat cisco/labs/ggsn/ggsn.net # Cisco GGSN [localhost] workingdir = /root/cisco/labs/ggsn [[7200]] image = /root/cisco/image-7200/c7200-g8is-mz.124-2.XB1.image npe = npe-400 ram = 160 idlepc = 0x60a7a074 [[ROUTER R1]] f0/0 = NIO_linux_eth:eth1 f1/0 = NIO_linux_eth:eth1 [root@radius ~]# 7) Now with dynagen application we start the router emulation. Go to /root/cisco/labs/ggsn directory and run the command: dynagen ggsn.net You should see the following message on the desktop: [root@radius bin]# cd /root/cisco/labs/ggsn/ Cookbook for Cisco GGSN emulation v1 3 PSE RO MCS2 For internal use only!
[root@radius ggsn]# dynagen ggsn.net Reading configuration file... Shutdown in progress... Shutdown completed. CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb. C7200 instance 'R1' (id 0): VM Status : 0 RAM size : 160 Mb IOMEM size : 0 Mb NVRAM size : 128 Kb NPE model : npe-400 Midplane : vxr IOS image : /root/cisco/image-7200/c7200-g8is-mz.1242.XB1.image Loading ELF file '/root/cisco/image-7200/c7200-g8is-mz.1242.XB1.image'... ELF entry point: 0x80008000 C7200 'R1': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled. Network successfully started Dynagen management console for Dynamips => Now the Cisco GGSN is started! But it must be configured for GPRS. You can see what is emulated running the command list: => list Name Type State Server Console R1 7200 running localhost:7200 2000 => In order to configure the emulated router we have to connect to Linux machine via telnet on port 2000.
VTI: 192.168.1.1
Gn: 218.59.40.9
Cisco GGSN
Gi: 218.59.30.6
Configure the hostname to GGSN: Router(config)#hostname GGSN GGSN(config)# We have to enable the GGSN service on the Cisco router: GGSN(config)#service gprs ggsn To configure a Cisco router as a GGSN, the Cisco IOS uses a logical interface called the Virtual Template Interface (VTI). The main purpose of the VTI is to handle GTP encapsulation and processing GPRS requests and GPRS traffic. VTI as any other logical or physical interface requires an IP address. It is very important to configure a loopback interface IP address and link it to the VTI, instead of configuring the IP address directly on the VTI. GGSN(config)#interface loopback 0 GGSN(config-if)#ip address 192.168.1.1 255.255.255.0 GGSN(config-if)#description Link to VTI GGSN(config-if)#exit GGSN(config)#interface virtual-template 1 GGSN(config-if)#ip unnumbered loopback 0 GGSN(config-if)#encapsulation gtp Configure the IP addresses for Gn and Gi: GGSN(config)#interface fastEthernet 0/0 GGSN(config-if)#ip address 218.59.40.9 255.255.255.0 GGSN(config-if)#description Gn_interface GGSN(config-if)#no shutdown GGSN(config)#interface fastEthernet 1/0 GGSN(config-if)#ip address 218.59.30.6 255.255.255.0 GGSN(config-if)#description Gi_interface GGSN(config-if)#no shutdown As the virtual template is doing all the processing work for GTP, then the Gn is only a dummy interface which forwards PDP request and gprs traffic to the VTI. The Gi interfaces role is to
forwards packets out to a PDN. Gn and Gi interfaces therefore, are considered as pure IP interfaces that dont know anything about GPRS processing and operation. Enable Cisco Express forwarding (CEF), which is the latest switching technique deployed by the Cisco IOS. Disables verification of the UDP checksum to support CEF switching on the GGSN: GGSN(config)#ip cef GGSN(config)#interface fastEthernet 0/0 GGSN(config-if)#ip route-cache GGSN(config)#interface fastEthernet 1/0 GGSN(config-if)#ip route-cache GGSN(config)# gprs gtp ip udp ignore checksum Access point configuration Defines the gprs access point list GGSN(config)#gprs access-point-list gprs GGSN(config-ap-list)# Specifies an index number for a new access point definition and enters access point configuration mode GGSN(config-ap-list)#access-point 1 GGSN(config-access-point)# Specifies the given access point name GGSN(config-access-point)#access-point-name cisco Configure the GGSN for dynamic IP allocation GGSN(config)#ip dhcp pool pool_gprs GGSN(dhcp-config)#network 218.59.100.0 255.255.255.0 GGSN(dhcp-config)#exit GGSN(config)#interface loopback 1 GGSN(config-if)#ip address 218.59.100.1 255.255.255.0 // first address in dhcp pool; this will be dhcp-server and default-gateway GGSN(config-if)#exit GGSN(config)#ip dhcp excluded-address 218.59.100.1 Link the dhcp local pool to APN GGSN(config)#gprs access-point-list gprs GGSN(config-ap-list)#access-point 1 GGSN(config-access-point)#dhcp-server 218.59.100.1 GGSN(config-access-point)#dhcp-gateway-address 218.59.100.1 GGSN(config-access-point)#ip-address-pool dhcp-proxy-client
For any IP address allocation, user IP routes must be added to the GGSN. We plan to choose automatic aggregate; what will happen is when the GGSN leases the IP to the subscribers, the network address is automatically deducted from this information and added to the routing table. GGSN(config-access-point)#aggregate auto
5. Test cases execution/show commands To test the functionality of Cisco GGSN you have to do: - update the subscriber profile in HLR with the created apn (cisco) - create in DNS in the corresponding zone a new entry for apn cisco: cisco IN A 218.59.40.9 - configure the modem initialization with apn cisco - make a pdp via dial-up connection The activation of the pdp should be successfully. The followings show commands are most useful: GGSN#show gprs gtp pdp-context all GGSN#show gprs gtp pdp-context tid 2206210200000051 GGSN#show gprs gtp status GGSN#show gprs gtp statistics Cookbook for Cisco GGSN emulation v1 7 PSE RO MCS2 For internal use only!
GGSN#sh gprs gtp parameters GGSN#show ip route GGSN#debug gprs gtp messages GGSN#debug gprs gtp events In the file bellow you can find the result of the previous show commands.
show_commands.txt
In the file bellow you can see the actual running configuration.
running-config.txt
For more information about Cisco GGSN configuration you can study the ppt presentation situated at: \\bavc322a\PITAC_PS\Docs\Cisco GGSN\.