目錄

簡介

必要條件

需求

採用元件

背景資訊

分段

SCTP區塊繫結

影響規模調整的配置

SCTP-Param-Template SCTP MTU大小

MME內容乙太網路介面組態

連線埠乙太網路MTU大小

S1APUE無線電功能IE大小

案例研究

解決方案

解決丟棄問題的解決方法

因應#1法：減小SCTP最大MTU大小

解決方#2:將傳輸節點MTU大小增加到大於1500

相關資訊

簡介

本檔案介紹Cisco MME中的SCTP分段和區塊繫結機制，以及分段和繫結如何影響封包捨棄。

必要條件

需求

本文件沒有特定需求。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- QVPC-SI軟體版本21.28.m18

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

串流控制傳輸通訊協定(SCTP)是一種可靠的傳輸通訊協定，可在無連線封包網路（例如IP）之上運作。  它可以將資料分段以符合發現的路徑MTU大小，並使用區塊繫結將多個使用者消息捆綁到單個SCTP資料包中。本文提供兩種方法來修正由於路徑MTU限制而發生的封包捨棄。

案例研究顯示了分段和捆綁機制以及演示資料包丟棄的方法，包括發生在Cisco MME外部的丟包，而不是由於SCTP最大MTU大小的配置。

根據RFC 4960（串流控制傳輸通訊協定）6.9（分段和重組）：

如果終端支援分段，如果要傳送的使用者消息的大小導致出站SCTP資料包大小超過當前MTU，則終端必須對使用者消息進行分段。

此外，可以將多個SCTP資料塊捆綁到一個出站SCTP資料包中。生成的IP資料包的總大小（包括SCTP資料包和IP報頭）必須小於或等於當前路徑MTU。在MME上，在正在處理這些封包的IP介面上設定路徑MTU。

分段

一個SCTP關聯中可以有多個流，每個流都由流識別符號(SI)標識。 串流序號(SSN)用於識別特定SCTP串流中每個片段的順序。多個會話可以使用同一個SCTP流。傳輸序號(TSN)標識整個SCTP關聯內每個片段的順序。

分段後，SCTP負載資料區塊在B和E欄位中指示該片段是開始片段、中間片段還是結束片段：

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   Type = 0    | Reserved|U|B|E|    Length                     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                              TSN                              |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|      Stream Identifier S      |   Stream Sequence Number n    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                  Payload Protocol Identifier                  |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

\                                                               \

/                 User Data (seq n of Stream S)                 /

\                                                               \

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

B E                  Description

============================================================

|  1 0 | First piece of a fragmented user message          |

+----------------------------------------------------------+

|  0 0 | Middle piece of a fragmented user message         |

+----------------------------------------------------------+

|  0 1 | Last piece of a fragmented user message           |

+----------------------------------------------------------+

|  1 1 | Unfragmented message                              |

============================================================

|             Table 1: Fragment Description Flags          |

============================================================

流序列號中的間隙可能表示正在丟棄流或關聯中的片段。Wirshark過濾器可幫助識別SCTP流中的間隙：

sctp.sack_gap_block_start or sctp.sack_gap_block_end

SCTP區塊繫結

可以將多個資料塊捆綁到一個SCTP資料包中（最大大小為MTU），但INIT、INIT ACK和SHUTDOWN COMPLETE資料塊除外：

An SCTP packet is composed of a common header and chunks.  A chunk

contains either control information or user data.

The SCTP packet format is shown below:

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                        Common Header                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                          Chunk #1                             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                           ...                                 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                          Chunk #n                             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

每個SCTP資料塊的塊長度列在每個資料塊中：

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   Chunk Type  | Chunk  Flags  |        Chunk Length           |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

\                                                               \

/                          Chunk Value                          /

\                                                               \

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

影響規模調整的配置

SCTP-Param-Template SCTP MTU大小

在SCTP-Param-Template中，SCTP-Max-MTU-Size是使用sctp-max-mtu-size 選項和/或sctp-start-mtu-size 選項配置的，以位元組為單位。1500位元組是預設的SCTP最大MTU大小和預設SCTP開始MTU大小：

Exec > Global Configuration > SCTP Parameter Template Configuration

[Local]ASR5500-2# sctp-param-template template_name

[Local]ASR5500-2(sctp-param-template)# sctp-max-mtu-size 1500

[Local]ASR5500-2(sctp-param-template)# sctp-start-mtu-size 1500

在MME服務中，SCTP-Param-Template與MME上下文相關聯：

Exec > Global Configuration > Context Configuration > MME Service

[mme]ASR5500-2(config-mme-service)# associate sctp-param-template S1_MME_SCTP

MME內容乙太網路介面組態

MME服務要使用的介面設定為與所需IP MTU大小一起設定（預設值為1500）：

Exec > Global Configuration > MME Context Configuration

[mme]ASR5500-2(config-ctx)# interface int1/10_s1mme

[mme]ASR5500-2(config-if-eth)# ip address 10.5.203.195 255.255.255.254

[mme]ASR5500-2(config-if-eth)# ip mtu 2000

[mme]ASR5500-2(config-if-eth)# exit

連線埠乙太網路MTU大小

在全域性配置模式下，此MME情景繫結到應用IP MTU 1500（1500預設值）的乙太網埠：

[mme]ASR5500-2(config)# port ethernet 1/10

#exit

vlan 200

no shutdown

bind interface int1/10_s1mme mme_ctx

#exit

vlan 201

no shutdown

bind interface int1/10_src mme_ctx

#exit

#exit

port ethernet 1/11

no shutdown

vlan 198

no shutdown

#exit

vlan 200

no shutdown

bind interface int1/11_s1mme mme_ctx

#exit

vlan 201

no shutdown

bind interface int1/11_src mme_ctx

#exit

S1AP UE無線電功能IE大小

在MME服務配置中，配置S1AP UE無線電功能IE消息大小。預設值為9000位元組：

[context_name]host_name(config-mme-service)# s1-mme ue-radio-cap size 9000

案例研究

以下是分段初始上下文設定請求/UE功能資訊消息的示例，該消息會將SCTP分段以滿足配置的SCTP最大MTU大小。

在使用者中，在傳輸SCTP分段的INITIAL CONTEXT SETUP REQUEST消息後，從傳輸路由器向MME返回ICMP消息「需要分段」。

在幀5中，多個SCTP資料包(2)匯聚在一個IP資料包下：

第一個資料塊是分段消息的最後一個段，由E-Bit資訊元素中的1標籤表示。

第二個資料塊不是分段消息的一部分，因為由B位和E位資訊元素標籤了數字1:

第一個SCTP資料塊的長度是1383位元組。第二個SCTP資料塊的長度為89個位元組，因此每個SCTP資料包不會超過已配置的SCTP-Max-MTU-Size（1500個位元組）：

由於產生的IP資料包的總大小（包括SCTP封包和IP標頭）小於已設定的IP MTU大小(2000)，因此這些SCTP區塊在MME上的IP堆疊層級分組在一個IP封包中。

解決方案

在預設值為9000位元組的配置中，允許S1AP UE無線電功能IE消息大小。分段必須在SCTP層進行，以便在小於配置的SCTP最大MTU大小1500的級別傳送這些消息。

sctp-max-mtu-size is 1500表示傳輸的任何SCTP資料包都不超過1500位元組。

IP介面MTU大小為2000表示任何IP封包不能超過2000位元組。

一個IP資料包可以有多個SCTP資料包，每個SCTP資料包可以有多個塊。只要單個SCTP資料包大小與SCTP MTU大小一致，並且合併在一起的所有SCTP資料包的總大小與IP MTU大小一致，節點就可以按預期運行。

在以下情況下，節點內不會發生資料包丟棄：

- 資料包跟蹤幀中SCTP塊的總大小小於SCTP-Param-Template和

- SCTP PDU的總值+ IP報頭小於節點上配置的介面MTU大小。

在我們的案例研究示例中，對傳輸路由器的調查顯示傳輸路由器的IP MTU大小為1500。由於中間的傳輸節點的MTU為1500，因此傳輸節點上的IP介面丟棄了資料包，促使傳輸路由器向MME傳送一條指示「無法到達目的地」的消息。

解決丟棄問題的解決方法

因應#1法：減小SCTP最大MTU大小

將sctp-max-mtu-size配置為較小的值，直到您看不到丟包，從而減小SCTP MTU大小。

附註：降低sctp-max-mtu-size時，也確保將sctp-start-mtu-size配置為小於或等於sctp-max-mtu-size的值。

範例：修改sctp-param-template S1_MME_SCTP(sctp-start-mtu-size，從1500到1460),

解決方#2:將傳輸節點MTU大小增加到大於1500

相關資訊

- RFC 4960串流控制傳輸通訊協定

- MME管理指南，StarOS版本21.28章節：UE無線電功能IE大小

- 命令列介面參考，模式E - F，StarOS版本21.28章節：乙太網介面配置模式命令IP MTU大小

- 命令列介面參考，模式E - F，StarOS，章節：乙太網介面配置模式命令：ip mtu

- SCTP引數模板配置模式命令：sctp-max-mtu-size

- Cisco TechNote — 配置StarOS MTU介面、APN和本地使用者

- SR討論SCTP和MTU SR 697666400(UE空閒到活動模式不工作（在MME上出現服務請求解碼錯誤）