このドキュメントでは、GTP_CREATE_PDP_RESPONSEの未知のパケットデータプロトコル(PDP)タイプまたはPDPタイプのエラーが原因で発生するIPアドレス割り当ての失敗について説明します。この問題は、ゲートウェイGPRSサポートノード(GGSN)として機能するCiscoアグリゲーションサービスルータ(ASR)5x00シリーズで報告されています。
ユーザ機器(UE)がスタティックIPアドレス<x.x.x.x>を要求します。
ユーザには、特定のアクセスポイント名(APN)に対するHome Location Register(HLR)/Home Subscriber Server(HSS)からの静的な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.x> mask 0xffffffff poolname <pool_name> for call (errcode=VPN_MSG_STATUS_DUPLICATE_INSTANCE)」エラーが発生し、セッションの作成が失敗した場合、同じIPアドレスで割り当てられたモバイルステーション(MS)/UEはありませんでした。これは、show subscribers ip-address <x.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が同じInternational Mobile Subscriber Identity(IMSI)にマッピングされたことが示されます。
[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の削除と作成の間に非常に短い時間(~ 20 ms)が存在することが確認されました。ゲートウェイがPDPをエラーコードVPN_MSG_STATUS_DUPLICATE_INSTANCEで拒否したのはこのためです。
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
1つはaddress-hold-timerを減らすことですが、「address-hold-timer」の概念はダイナミックIPアドレスの割り当てにのみ適用され、スタティック割り当てには適用されません。
これはラボでも確認されています。
[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
同じIMSIに対するDelete PDP Request(DPR)とCreate PDP Request(CPR)の間に多少のタイムギャップがある場合、Radiusサーバは同じスタティックアドレスを返します。
ASR 5x00でDPRを受信すると、DPRを処理して新しいCPRを受け入れますが、その間もスタティックIPアドレスは保持され、vpnmgrがアドレスを解放/フラッシュするのに時間(250ミリ秒)がかかります。このフラッシュが完了する前に新しいCPRが到着するため、ASR 5x00は新しいCPRを拒否します。
この場合、PDPの削除からPDPの作成までの時間ギャップは非常に小さい。
パケットキャプチャ図では、delete PDPとcreate PDPの間の時間ギャップ(赤いブロックで示されています)が非常に小さいことがわかります。
同じアドレスに対するIPアドレス割り当てが成功するためには、削除と作成の間に250ミリ秒の遅延が必要です。
これは、分散アーキテクチャの設計要件です。スタティックアドレス割り当ての影響を避けるために、「ソリューション」セクションの回避策を参照してください。
ゲートウェイに適用される次の設定回避策を参照してください。
config
context <>
ggsn-service <>
newcall duplicate-subscriber-requested-address accept
exit
このコマンドは、UEが別のアクセス方式で再接続を試みる前にエンタープライズパケットデータネットワーク(PDN)から正常に切断できない場合に、新しいコール接続を有効または無効にします。このコマンドを有効にすると、同じIPアドレスが割り当てられた新しい接続を受け入れるために、古いセッションが切断されます。
このコマンドを使用すると、アドレスが別のセッションですでに使用されている場合でも、GGSNはスタティックサブスクライバアドレスの要求を受け入れることができます。この機能が有効になっていない場合、別のセッションに対して同じIPアドレスを持つ新しい要求は拒否されます。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
14-Jul-2015 |
初版 |