목차

소개

문제

근본 원인

솔루션

소개

이 문서에서는 GTP_CREATE_PDP_RESPONSE에서 알 수 없는 PDP(Packet Data Protocol) 유형 또는 PDP 유형 오류로 인해 발생하는 IP 주소 할당 오류에 대해 설명합니다.이 문제는 GGSN(Gateway GPRS Support Node)으로 작동하는 Cisco ASR(Aggregation Services Router) 5x00 Series에서 보고됩니다.

문제

UE(User Equipment)는 고정 IP 주소 <x.x.x.x>를 요청합니다.

사용자는 특정 APN(Access Point Name)에 대해 HLR(Home Location Register)/HSS(Home Subscriber Server)에서 고정 IP 주소를 할당하므로 최종 사용자는 GGSN에서 동적으로 IP 주소를 사용하여 할당해서는 안 됩니다.

이 오류는 모니터 가입자에서 관찰되어 설정 세션에 오류가 발생했습니다.

#Monitor subscriber Imsi  <> (enable options x, a, y, verbosity 4)

----------------------------------------------------------------------

Incoming Call:

----------------------------------------------------------------------

MSID/IMSI : <>                    Callid : <>

IMEI : <>                         MSISDN : <>

Username : <>                     SessionType : ggsn-pdp-type-ipv4

Status : Active                   Service Name: GGSN_SVC

Src Context : <>

----------------------------------------------------------------------

INBOUND>>>>> 21:50:38:497 Eventid:47000(3)

GTPC Rx PDU, from <IP>:34273 to <IP>:2123 (213)

TEID: 0x00000000, Message type: GTP_CREATE_PDP_CONTEXT_REQ_MSG

(0x10) >>>1st Create PDP Request

Sequence Number:: 0x7B16 (31510)

<<<<OUTBOUND 21:50:38:501 Eventid:47001(3)

GTPC Tx PDU, from <IP>:2123 to <IP>:34273 (103)

TEID:0x179E3645, Message type: GTP_CREATE_PDP_CONTEXT_RES_MSG

(0x11) >>>1st Create PDP Response

Sequence Number:: 0x7B16 (31510)

----------------------------------------------------------------------

(Switching Trace) - New Incoming Call:

----------------------------------------------------------------------

MSID/IMSI : <>                    Callid : <>

IMEI : <>                         MSISDN : <>

Username : <>                     SessionType : ggsn-pdp-type-ipv4

Status : Active                   Service Name: GGSN_SVC

Src Context : <>

----------------------------------------------------------------------

INBOUND>>>>> 21:50:41:346 Eventid:47000(3)

GTPC Rx PDU, from <IP>:34273 to <IP>:2123 (213)

TEID: 0x00000000, Message type: GTP_CREATE_PDP_CONTEXT_REQ_MSG

(0x10) >>>2nd PDP Request

Sequence Number:: 0x7B20 (31520)

***CONTROL*** 21:50:41:360 Eventid:10083

Sessmgr-80 Failed to allocate static IPv4 address <IP> mask 0xffffffff poolname

<Pool_name> for call (errcode=VPN_MSG_STATUS_DUPLICATE_INSTANCE)

<<<<OUTBOUND 21:50:41:363 Eventid:47001(3)

GTPC Tx PDU, from <IP>:2123 to <IP>:34273 (103)

TEID: 0x179E36C5, Message type: GTP_CREATE_PDP_CONTEXT_RES_MSG

(0x11) >>>2nd PDP Response

Sequence Number:: 0x7B20 (31520)

INBOUND>>>>> 21:58:04:155 Eventid:47000(3)

GTPC Rx PDU, from <IP>:34273 to <IP>:2123 (16)

TEID: 0x9D052050, Message type: GTP_DELETE_PDP_CONTEXT_REQ_MSG (0x14)

Sequence Number:: 0x801F (32799)

<<<<OUTBOUND 21:58:04:156 Eventid:47001(3)

GTPC Tx PDU, from <IP>:2123 to <IP>:34273 (14)

TEID: 0x179E36C5, Message type: GTP_DELETE_PDP_CONTEXT_RES_MSG (0x15)

Sequence Number:: 0x801F (32799)

***CONTROL*** 21:58:04:170 Eventid:10285

CALL STATS: msisdn <>, apn <apn_name>, imsi <>, Call-Duration(sec): 443

input pkts: 7                                 output pkts: 19

input bytes: 301                              output bytes: 928

input bytes dropped: 0                        output bytes dropped: 0

input pkts dropped: 0                         output pkts dropped: 0

pk rate from user(bps): 0                     pk rate to user(bps): 53

ave rate from user(bps): 0                    ave rate to user(bps): 26

sust rate from user(bps): 0                   sust rate to user(bps): 27

pk rate from user(pps): 0                     pk rate to user(pps): 0

ave rate from user(pps): 0                    ave rate to user(pps): 0

sust rate from user(pps): 0                   sust rate to user(pps): 0

link online/active percent: 100

ipv4 bad hdr: 0                               ipv4 ttl exceeded: 0

ipv4 fragments sent: 0                        ipv4 could not fragment: 0

ipv4 input acl drop: 0                        ipv4 output acl drop: 0

ipv4 bad length trim: 0

ipv4 input non-mip drop: 0                    ipv4 output non-mip drop: 0

ipv4 input css drop: 0                        ipv4 output css drop: 0

output gre xoff pkts drop: 0                  output gre xoff bytes drop: 0

ipv4 output no-flow drop: 0

ipv4 source violations: 0                     ipv4 early pdu drop: 0

ipv4 proxy-dns redirect: 0                    ipv4 proxy-dns pass-thru: 0

ipv4 proxy-dns drop: 0                        ipv4 proxy-dns redirect tcp connection: 0

ipv6 bad hdr: 0                               ipv6 bad length trim: 0

ip source violation no acct: 0                ip source violation ignored: 0

dlnk pkts exceeded bw: 0                      dlnk pkts violated bw: 0

uplnk pkts exceeded bw: 0                     uplnk pkts violated bw: 0

Disconnect Reason: Remote-disconnect

Last Progress State: PDP-Type-IPv4-Connected

"Failed to allocate static IPv4 address <x.x.x> mask 0xffffffff poff popool name <pool_name> for call(errcode=VPN_MSG_STATUS_DUPLICATE_INSTANCE)" 오류가 발생하여 세션을 생성하지 못한 경우 동일한 IP 주소로 할당된 MS(모바일 스테이션)/UE가 없습니다.이는 show subscribers ip-address <x.x.x> 명령으로 확인되었습니다.

[local]ASR5x00#show subscribers ip-address

No subscribers match the specified criteria

동일한 사용자에 대해 PDP를 성공적으로 생성할 때마다 show subscriber ip-address <x.x.x.x> 명령의 출력은 IP x.x.x.x가 동일한 IMSI(International Mobile Subscriber Identity)로 매핑되었음을 나타냅니다.

[local]ASR5x00# show subscribers ip-address

Sunday October 12 21:51:36 PDT 2014

+-----Access  (S) - pdsn-simple-ip     (M) - pdsn-mobile-ip  (H) - ha-mobile-ip

|     Type:   (P) - ggsn-pdp-type-ppp  (h) - ha-ipsec        (N) - lns-l2tp

|             (I) - ggsn-pdp-type-ipv4 (A) - asngw-simple-ip (G) - IPSG

|             (V) - ggsn-pdp-type-ipv6 (B) - asngw-mobile-ip (C) - cscf-sip

|             (z) - ggsn-pdp-type-ipv4v6

|             (R) - sgw-gtp-ipv4       (O) - sgw-gtp-ipv6    (Q) - sgw-gtp-ipv4-ipv6

|             (W) - pgw-gtp-ipv4       (Y) - pgw-gtp-ipv6    (Z) - pgw-gtp-ipv4-ipv6

|             (@) - saegw-gtp-ipv4     (#) - saegw-gtp-ipv6  ($) - saegw-gtp-ipv4-ipv6

|             (p) - sgsn-pdp-type-ppp  (s) - sgsn            (4) - sgsn-pdp-type-ip

|             (6) - sgsn-pdp-type-ipv6 (2) - sgsn-pdp-type-ipv4-ipv6

|             (L) - pdif-simple-ip     (K) - pdif-mobile-ip  (o) - femto-ip

|             (F) - standalone-fa      (J) - asngw-non-anchor

|             (e) - ggsn-mbms-ue       (i) - asnpc           (U) - pdg-ipsec-ipv4

|             (E) - ha-mobile-ipv6     (T) - pdg-ssl         (v) - pdg-ipsec-ipv6

|             (f) - hnbgw-hnb          (g) - hnbgw-iu        (x) - s1-mme

|             (a) - phsgw-simple-ip    (b) - phsgw-mobile-ip (y) - asngw-auth-only

|             (j) - phsgw-non-anchor   (c) - phspc           (k) - PCC

|             (X) - HSGW               (n) - ePDG            (t) - henbgw-ue

|             (m) - henbgw-sg

|             (D) - bng-simple-ip      (l) - pgw-pmip        (u) - Unknown

|

|+----Access  (X) - CDMA 1xRTT         (E) - GPRS GERAN      (I) - IP

||    Tech:   (D) - CDMA EV-DO         (U) - WCDMA UTRAN     (W) - Wireless LAN

||            (A) - CDMA EV-DO REVA    (G) - GPRS Other      (M) - WiMax

||            (C) - CDMA Other         (N) - GAN             (O) - Femto IPSec

||            (P) - PDIF               (S) - HSPA            (L) - eHRPD

||            (T) - eUTRAN             (B) - PPPoE           (F) - FEMTO UTRAN

||            (H) - PHS                (.) - Other/Unknown

||

||+---Call    (C) - Connected          (c) - Connecting

|||   State:  (d) - Disconnecting      (u) - Unknown

|||           (r) - CSCF-Registering   (R) - CSCF-Registered

|||           (U) - CSCF-Unregistered

|||

|||+--Access  (A) - Attached           (N) - Not Attached

||||  CSCF    (.) - Not Applicable

||||  Status:

||||

||||+-Link    (A) - Online/Active      (D) - Dormant/Idle

||||| Status:

|||||

|||||+Network (I) - IP                 (M) - Mobile-IP         (L) - L2TP

||||||Type:   (P) - Proxy-Mobile-IP    (i) - IP-in-IP          (G) - GRE

||||||        (V) - IPv6-in-IPv4       (S) - IPSEC             (C) - GTP

||||||        (A) - R4 (IP-GRE)        (T) - IPv6              (u) - Unknown

||||||        (W) - PMIPv6(IPv4)       (Y) - PMIPv6(IPv4+IPv6) (R) - IPv4+IPv6

||||||        (v) - PMIPv6(IPv6)

||||||

||||||

vvvvvv CALLID    MSID            USERNAME               IP                   TIME-IDLE

------ -------- --------------- ---------------------- --------------------  ---------

IECNAI   <>       <>             name@apn_name          x.x.x.x              00h00m57s

PDP의 삭제와 생성 사이에 매우 짧은 시간(~20ms)이 있었다는 것이 그 추적에서 관찰되었다.이 때문에 게이트웨이가 VPN_MSG_STATUS_DUPLICATE_INSTANCE 오류 코드로 PDP를 거부한 것입니다.

초기 APN 컨피그레이션

apn apn_name

bearer-control-mode mixed

selection-mode subscribed sent-by-ms chosen-by-sgsn

accounting-mode none

gtpp group CGF1 accounting-context <context_name>

gtpp group CGF2 accounting-context <context_name>

gtpp group CGF3 accounting-context <context_name>

gtpp group CGF4 accounting-context <context_name>

idle-timeout-activity ignore-downlink

apn-ambr rate-limit direction downlink burst-size auto-readjust

duration  1 violate-action drop

apn-ambr rate-limit direction uplink burst-size auto-readjust

duration  1 violate-action drop

ims-auth-service <service name>

timeout idle 14400

ip access-group onegas.com in

ip access-group onegas.com out

ip source-violation check drop-limit 0

ip context-name <context name>

ip address pool name <pool name>

active-charging rulebase <Rulebase>

exit

하나는 주소 보류 타이머를 줄이는 것이지만, "주소 보류 타이머"의 개념은 정적 할당이 아니라 동적 IP 주소 할당에만 적용됩니다.

이는 Lab에서도 확인되었습니다.

[Gi](config-ctx)#

ip pool SIMPLE-POOL a.b.c.d 255.255.0.0 static address-hold-timer 100

Failure: Hold timer can not be configured for this pool

참고:"address-hold-timer"가 활성화되고 활성 가입자의 연결이 끊기면 IP 주소가 보류 또는 사용 중인 것으로 간주되고 주소 보류 타이머가 만료될 때까지 사용 가능 상태로 반환되지 않습니다.이렇게 하면 지정된 시간(초) 내에 다시 연결하는 가입자가 IP 풀에서 동일한 IP 주소를 가져올 수 있습니다.

근본 원인

동일한 IMSI에 대해 DPR(Delete PDP Request) 및 CPDP Create CPDP Request(CPR 요청 생성) 간에 약간의 시간 간격이 있는 경우 Radius 서버는 동일한 고정 주소를 반환합니다.

ASR 5x00에서 DPR을 수신하면 DPR을 처리하고 새 CPR을 받아들이지만, 동시에 고정 IP 주소가 유지되고 vpnmgr이 주소를 해제/플러시하는 데 약간의 시간(250ms)이 걸립니다.새로운 CPR은 이 플러시가 완료되기 전에 오므로 ASR 5x00은 새로운 CPR을 거부합니다.

이 경우 PDP 삭제 및 PDP 생성 시간 간격이 매우 작습니다.

패킷 캡처 다이어그램에서 PDP 삭제와 PDP 생성 간의 시간 간격(빨간색 블록에 표시됨)이 매우 작음을 확인할 수 있습니다.

동일한 주소에 대한 IP 주소 할당에 대해 삭제 및 생성 사이에 250ms의 지연이 발생해야 합니다.

이는 분산 아키텍처의 설계 요건입니다.고정 주소 할당에 영향을 주지 않으려면 Solution(솔루션) 섹션의 해결 방법을 참조하십시오.

솔루션

게이트웨이에 적용된 이 구성 해결 방법을 참조하십시오.

config

context <>

ggsn-service <>

newcall duplicate-subscriber-requested-address accept

exit

이 명령은 UE가 엔터프라이즈 PDN(Packet Data Network)에서 정상적인 연결을 끊을 수 없는 경우 다른 액세스 방법을 통해 다시 연결을 시도할 때 새 통화 연결을 활성화하거나 비활성화합니다.활성화된 경우 이 명령은 동일한 IP 주소 할당을 사용하는 새 연결을 수락하기 위해 이전 세션을 해제합니다.

또한 이 명령을 사용하면 GGSN이 정적 가입자 주소에 대한 요청을 수락할 수 있습니다. 이는 다른 세션에서 이미 주소를 사용하고 있는 경우에도 마찬가지입니다.이 기능이 활성화되지 않으면 다른 세션에 대해 동일한 IP 주소를 가진 새 요청이 거부됩니다.