소개
이 문서에서는 StarOS MTU 인터페이스, APN 및 로컬 가입자를 구성하는 방법에 대해 설명합니다.
StarOS에는 인터페이스, APN 및 로컬 가입자 프로필에 대한 MTU(Maximum Transmission Unit) 크기를 구성하기 위한 여러 CLI가 있습니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
MTU(Maximum Transmission Unit)는 인터페이스가 프래그먼트화할 필요 없이 전송할 수 있는 패킷의 최대 크기를 정의합니다.
MTU보다 큰 IP 패킷은 IP 프래그먼트화 절차를 거쳐야 합니다.
MTU 값은 이더넷 헤더, VLAN 태깅 또는 기타 오버헤드가 없는 프레임 크기입니다.
구성
configure
context context_name
interface interface_name
ip mtu bytes
end
참조: 명령줄 인터페이스 참조, 이더넷 인터페이스 컨피그레이션 모드 명령, StarOS 21.23
이 컨피그레이션은 ASR5500/VPC의 NPU/iftask/VPP에 의해 시행됩니다.
이 컨피그레이션은 APN MTU 컨피그레이션에 비해 하위 레이어에서 작동하므로 ip/ipv6 패킷에서 작동하며 터널을 인식하지 않습니다.
보다 구체적으로, 발신 IP 패킷(data + ctrl)에서만 작동하며 구성된 값에 따라 패킷을 더 작은 크기로 조각화합니다.
IP MTU는 일반 인터페이스 및 OLC 포트(point-to-point interface)에 대해 지원됩니다.
OLC 포트에 허용되는 최대 MTU 크기는 1600입니다.
이더넷 포트에서 허용되는 최대 MTU 크기는 2048입니다. 기본 MTU 크기는 1500입니다.
이더넷 MTU의 최대 크기는 다음과 같습니다.
configure
context context_name
apn apn_name
pco-options link-mtu bytes
ppp mtu bytes
data-tunnel mtu bytes
policy ipv6 tunnel mtu exceed { fragment inner | notify-sender | fragment }
access-link ip-fragmentation { df-ignore | normal | df-fragment-and-icmp-notify }
end
- ppp mtu 바이트
참조: 명령줄 인터페이스 참조, 모드 R - Z, StarOS 릴리스 21.28
이 컨피그레이션은 StarOS 게이트웨이의 IPv4에 대한 다운링크 데이터 터널 MTU 페이로드를 제어합니다. 이 크기를 초과하는 패킷은 조각화된 다음 터널로 캡슐화됩니다.
값은 100~2000의 정수입니다. 기본값: 1500
중요: MTU는 2개의 PPP 옥텟을 제외한 PPP 페이로드를 나타냅니다. 따라서 MTU 1500은 PPP 페이로드가 있는 GTP 패킷에 대한 3GPP 표준 MTU 1502에 해당합니다.
-
데이터 터널 mtu 바이트
참조: 명령줄 인터페이스 참조, 모드 R - Z, StarOS 릴리스 21.28
RFC-4861에 따라 P-GW는 IPv6 및 IPv4v6 PDN 유형을 위한 RA에서 IPv6 MTU 옵션의 UE로의 전송을 지원합니다.
이제 (인터넷)에서 다운링크 데이터 패킷을 전송할 수 있으며, 구성된 MTU를 기반으로 데이터 조각화가 필요한 경우 소스에서 수행됩니다.
이 기능은 또한 고객 네트워크에서 ICMPv6 Packet Too Big Error(ICMPv6 패킷 너무 큰 오류) 메시지의 수를 줄입니다.
이 컨피그레이션은 IPv6에 대한 다운링크 데이터 터널 MTU 페이로드를 제어합니다.
이 크기를 초과하는 패킷은 "정책" 컨피그레이션에 따라 삭제/조각화됩니다. 값은 1280과 2000 사이의 정수입니다. 기본값: 1500
주의: 이 기능이 TCP MSS 컨피그레이션과 상호 작용하는 방법.
RFC 6691 발췌:
""
2. 약식
TCP MSS 옵션에 넣을 값을 계산할 때 MTU는
값은 고정 IP 및 TCP의 크기만 줄여야 합니다.
가능한 IP 또는 IP를 설명하기 위해 헤더 및 를 줄이면 안 됩니다.
TCP 옵션; 반대로 발신자는 TCP 데이터 길이를 줄여야 합니다
에 포함된 IP 또는 TCP 옵션을 고려하려면
패킷을 전송합니다. 이 문서의 나머지 부분은
IP 수준의 단편화를 방지하려는 목적입니다
TCP 패킷입니다.
""
이는 실제 페이로드가 지정된 TCP MSS에 대한 TCP Options 바이트에 의해 감소됨을 의미합니다.
예를 들어 MSS 1390과 TCP 옵션 12바이트를 예로 들면 페이로드는 1378바이트입니다.
페이로드 1378 +
TCP 32 + = 1410( 1378B [페이로드] + 12B [TCP 옵션] = 1390B MSS)
IPv6 40 + = 1450
GTPU 8 + = 1462
UDP 8 + = 1470
IP 20 + = 1490 <— `data-tunnel mtu`가 비교됩니다.
VLAN 4 + = 1494
ETH 14 = 1504
+---------------------------+ DT-MTU +-------------------------------+
| |
| +--------+ MSS +--------+
v v v
+----------+-----------------+--------+--------+--------+--------------------------------+
| Ethernet | VLAN | IPv4 | UDP | GTP | IPv6 | TCP | Payload + TCP Options |
| header | header | 20B | 8B | 8B | 40B | 20B | 1390B |
+----------+--------+--------+--------+--------+--------+--------+-----------------------+
위의 경우 구성된 데이터 터널 MTU가 1490보다 작으면 mtu 초과 정책이 패킷에 적용됩니다.
-
정책 ipv6 터널 mtu 초과 { fragment inner | notify-sender | 조각 }
참조: 명령줄 인터페이스 참조, 모드 R - Z, StarOS 릴리스 21.28
SGi 인터페이스에 이 패킷이 표시되는 것으로 간주하면
| Frame 81: 1514 bytes on wire (12112 bits), 1514 bytes captured (12112 bits)
1514 | 14 | Ethernet II, Src: fa:16:3e:5e:0a:23 (fa:16:3e:5e:0a:23), Dst: fa:16:3e:5d:f8:03 (fa:16:3e:5d:f8:03)
1500 | 4 | 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 70
1496 | 40 | Internet Protocol Version 6, Src: 2001:192:168:80:f816:3eff:fe60:93a, Dst: 2001:20::4c99:6101
1456 | 1456 | Internet Control Message Protocol v6
여기서 첫 번째 열은 누적 바이트와 두 번째 열 - 헤더 길이를 나타냅니다.
- 내부 조각
시스템은 GTP 터널 개시자에서 내부 IPv6 프래그먼트화를 수행합니다. 즉, 캡슐화 후 가입자 패킷이 MTU를 초과하는 경우 이를 사용합니다.
S1-U의 패킷은 다음과 같이 프래그먼트화됩니다.
# Frag #1
| Frame 51: 1510 bytes on wire (12080 bits), 1510 bytes captured (12080 bits)
1510 | 14 | Ethernet II, Src: fa:16:3e:b5:f6:b2 (fa:16:3e:b5:f6:b2), Dst: fa:16:3e:96:00:d9 (fa:16:3e:96:00:d9)
1496 | 4 | 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 40
1492 | 20 | Internet Protocol Version 4, Src: 10.1.40.1, Dst: 192.168.1.100
1472 | 8 | User Datagram Protocol, Src Port: 1, Dst Port: 2152
1464 | 8 | GPRS Tunneling Protocol
1456 | 48 | Internet Protocol Version 6, Src: 2001:192:168:80:f816:3eff:fe60:93a, Dst: 2001:20::4c99:6101
1408 | 1408 | Internet Control Message Protocol v6
# Frag #2
| Frame 52: 150 bytes on wire (1200 bits), 150 bytes captured (1200 bits)
150 | 14 | Ethernet II, Src: fa:16:3e:b5:f6:b2 (fa:16:3e:b5:f6:b2), Dst: fa:16:3e:96:00:d9 (fa:16:3e:96:00:d9)
136 | 4 | 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 40
132 | 20 | Internet Protocol Version 4, Src: 10.1.40.1, Dst: 192.168.1.100
112 | 8 | User Datagram Protocol, Src Port: 1408, Dst Port: 2152
104 | 8 | GPRS Tunneling Protocol
96 | 48 | Internet Protocol Version 6, Src: 2001:192:168:80:f816:3eff:fe60:93a, Dst: 2001:20::4c99:6101
48 | 48 | Data (48 bytes)
- 알림-발신자
시스템은 PMTU 검색이며, 캡슐화 후 가입자 패킷이 MTU를 초과하는 경우 원래 발신자에게 "ICMPv6 Packet Too Big"을 전송합니다.
- 조각
시스템은 캡슐화 후 가입자 패킷이 MTU를 초과하는 경우 외부 IPv6 프래그먼트화를 수행합니다.
S1-U의 패킷은 다음과 같이 프래그먼트화됩니다.
# Frag #1
| Frame 108: 1510 bytes on wire (12080 bits), 1510 bytes captured (12080 bits)
1510 | 14 | Ethernet II, Src: fa:16:3e:b5:f6:b2 (fa:16:3e:b5:f6:b2), Dst: fa:16:3e:96:00:d9 (fa:16:3e:96:00:d9)
1496 | 4 | 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 40
1492 | 20 | Internet Protocol Version 4, Src: 10.1.40.1, Dst: 192.168.1.100
1472 | 8 | User Datagram Protocol, Src Port: 2152, Dst Port: 2152
1464 | 8 | GPRS Tunneling Protocol
1456 | 40 | Internet Protocol Version 6, Src: 2001:192:168:80:f816:3eff:fe60:93a, Dst: 2001:20::4c99:6201
1416 | 1416 | Internet Control Message Protocol v6
# Frag #2
| Frame 109: 78 bytes on wire (624 bits), 78 bytes captured (624 bits)
78 | 14 | Ethernet II, Src: fa:16:3e:b5:f6:b2 (fa:16:3e:b5:f6:b2), Dst: fa:16:3e:96:00:d9 (fa:16:3e:96:00:d9)
64 | 4 | 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 40
60 | 20 | Internet Protocol Version 4, Src: 10.1.40.1, Dst: 192.168.1.100
40 | 40 | Data (40 bytes)
-
access-link ip-fragmentation { df-ignore | 일반 | df-fragment-and-icmp-notify }
참조: 명령줄 인터페이스 참조, 모드 R - Z, StarOS 릴리스 21.28
- df-ignore
기본 컨피그레이션인 StarOS는 df 비트와 상관없이 항상 패킷을 프래그먼트화합니다.
- 일반
패킷을 삭제하고 ICMP 도달 불가 메시지를 패킷의 소스에 전송합니다.
- df-fragment-and-icmp-notify
DF 비트를 부분적으로 무시합니다. 패킷을 프래그먼트화하여 전달하지만, ICMP 오류 메시지를 패킷의 소스로 반환합니다.
-
pco-options link-mtu <>
참조: 명령줄 인터페이스 참조, 모드 R - Z, StarOS 릴리스 21.28
UE에서 요청하는 경우 PCO IE에 링크 MTU를 포함하도록 APN을 구성합니다.
UE가 초기 어태치/독립형 PDN 연결 중에 IPv4 링크 MTU 크기 PCO 요청을 전송하면, S-GW/SGSN/HSGW는 세션 요청 생성, PDP 상황 요청 생성/업데이트 또는 PBU에서 P-GW, GGSN 또는 PMIP-PGW로 동일한 정보를 투명하게 전송합니다.
Create Session Response(세션 응답 생성), Create/Update PDP Context Response(PDP 상황 응답 생성/업데이트)/PBA는 APN에서 가장 최근에 구성된 MTU 크기 PCO 값과 함께 전송됩니다.
UE가 아웃바운드 로밍에 있는 경우 기본값(1500)이 MTU 크기 PCO에 제공됩니다.
configure
context context_name
subscriber default
ipv6 minimum-link-mtu bytes
ppp mtu bytes
mobile-ipv6 tunnel mtu bytes
pco-options link-mtu bytes
end
참조: 명령줄 인터페이스 참조, 가입자 컨피그레이션 모드 명령, StarOS 21.23
다음을 확인합니다.
구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.
컨피그레이션을 확인하는 StarOS 명령:
show configuration
show configuration verbose
show configuration apn apn_name
문제 해결
이 섹션에서는 설정 문제 해결을 위해 사용할 수 있는 정보를 제공합니다.
- 최소 세부 정보 3으로 가입자를 모니터링하여 PCO 옵션을 확인합니다.
- 외부 pcap - 패킷 단편화 확인