최대 전송 단위
MTU(최대 전송 단위)는 IP 헤더, 레이어 4 프로토콜 헤더, 레이어 4 데이터를 포함하여 이더넷 프레임 안에 들어갈 수 있는 최대 IP 패킷의 크기(바이트)입니다.
유효한 VPC 네트워크 MTU 크기
가상 프라이빗 클라우드(VPC) 네트워크는 기본 MTU 1,460바이트를 사용합니다. VPC 네트워크의 MTU를 1,300바이트에서 8,896바이트(포함) 사이의 값으로 설정할 수 있습니다. 일반적인 커스텀 MTU 크기는 1,500바이트(표준 이더넷) 또는 8,896바이트(최대)입니다. 각 가상 머신(VM) 인스턴스 네트워크 인터페이스(NIC)의 MTU를 연결된 VPC 네트워크의 MTU와 일치하도록 구성하는 것이 좋습니다. 자세한 내용은 VM 및 MTU 설정을 참조하세요.
VPC 네트워크 내 Google Cloud VM 간 통신
송신 및 수신 VM이 동일한 VPC 네트워크 또는 동일한 MTU를 가진 피어링된 VPC 네트워크를 사용하는 경우, 두 VM의 인터페이스가 모두 VPC 네트워크 MTU를 사용하도록 구성된 경우 두 VM 간에 최대 MTU 크기의 IP 패킷을 전송할 수 있습니다.
MTU 불일치 문제를 방지하려면 연결된 모든 VPC 네트워크에 동일한 MTU를 사용하는 것이 좋습니다. 이는 권장되는 방법이지만 연결된 VPC 네트워크 간에 동일한 MTU를 갖도록 강제할 필요는 없습니다. 프로토콜이 VPC 네트워크 간에 MTU 불일치가 있는 상황을 처리하는 방법에 관한 자세한 내용은 불일치 MTU, MSS 클램핑, 경로 MTU 검색을 참조하세요.
전송 VM의 관점에서 다음 대상에 대한 경로는 VPC 네트워크 내에서 라우팅된 VM 간 트래픽을 나타냅니다.
- 비공개 IPv4 주소 범위 및 이 대상 리소스에서 비공개로 사용되는 공개 IPv4 주소 범위를 포함한 서브넷 기본 IPv4 또는 서브넷 보조 IPv4 주소 범위의 리전 내부 IPv4 주소:
- 수신 VM 네트워크 인터페이스(NIC)의 기본 내부 IPv4 주소
- 수신 VM NIC의 별칭 IP 범위에 있는 내부 IPv4 주소
- 프로토콜 전달 또는 내부 패스 스루 네트워크 부하 분산기에 대한 내부 전달 규칙의 내부 IPv4 주소
- 다음 대상 리소스에서 사용하는 내부 IPv6 서브넷 주소 범위:
- VM의 NIC를 수신하는 이중 스택에 할당된
/96
IPv6 주소 범위의 IPv6 주소 - 프로토콜 전달 또는 내부 패스 스루 네트워크 부하 분산기에 대한 내부 전달 규칙의
/96
IPv6 주소 범위의 IPv6 주소
- VM의 NIC를 수신하는 이중 스택에 할당된
- 패킷이 VPC 네트워크 내의 서브넷 경로 또는 피어링 서브넷 경로를 사용하여 라우팅될 때 이러한 대상 리소스에서 사용되는 외부 IPv6 서브넷 주소 범위:
- VM의 NIC를 수신하는 이중 스택에 할당된
/96
IPv6 주소 범위의 IPv6 주소 - 프로토콜 전달 또는 외부 패스 스루 네트워크 부하 분산기에 대한 외부 전달 규칙의
/96
IPv6 주소 범위의 IPv6 주소
- VM의 NIC를 수신하는 이중 스택에 할당된
다음 VM 간 경로는 VPC 네트워크 외부 대상과의 통신과 동일한 방식으로 처리됩니다.
- 패킷 대상이 수신 Google Cloud VM의 NIC의 외부 IPv4 주소인 경우
- 패킷 대상이 외부 패스 스루 네트워크 부하 분산기의 외부 IPv4 주소인 경우
- 패킷 대상이 프로토콜 전달을 위한 전달 규칙의 외부 IPv4 주소인 경우
- 패킷 대상이 Google Cloud VM의 NIC의 외부 IPv6 주소, 외부 패스 스루 네트워크 부하 분산기 또는 외부 프로토콜 전달을 위한 전달 규칙이고, VPC 네트워크의 해당 경로가 기본 인터넷 게이트웨이 다음 홉을 사용하는 경우. 이 시나리오에서는 수신 VM이 전송 VM과 동일한 VPC 네트워크에 없거나 VPC 네트워크 피어링을 사용하여 전송 VM의 VPC 네트워크에 연결된 VPC 네트워크에 없습니다.
VPC 네트워크 외부의 대상으로 통신
Google Cloud는 다음 표와 같이 전송 VM의 VPC 네트워크 외부의 대상으로 전송된 패킷을 처리합니다. 전송 VM의 VPC 네트워크 외부에 있는 대상에는 Google Cloud 외부의 리소스에 대해 공개적으로 라우팅 가능한 IP 주소와 Google Cloud 내의 고객이 사용할 수 있는 외부 IP 주소가 포함됩니다.
인터넷은 일반적으로 1,500바이트의 MTU를 사용하므로 IP 패킷 크기를 1,500바이트 이하로 유지하면 일반적으로 MTU 관련 패킷 손실을 방지할 수 있습니다.
상황 | 동작 |
---|---|
TCP SYN 및 SYN-ACK 패킷 | Google Cloud는 필요한 경우 MSS 클램핑을 수행하여 패킷이 MTU 내에 포함되도록 MSS를 변경합니다. |
1,300바이트~1,600바이트(포함) 사이의 IP 패킷 MTU | Google Cloud는 첫 번째 행에서 설명한 대로 SYN 및 SYN-ACK 패킷을 제외하고 패킷을 변경하지 않습니다. |
1,600바이트보다 큰 IP 패킷 | Google Cloud가 패킷을 삭제하고 DF 비트의 사용 설정 여부와 관계없이 조각화 필요(IPv4를 통한 ICMP) 또는 너무 큰 패킷(ICMPv6) 메시지를 전송합니다. |
Google API 및 서비스와의 통신
유효한 VPC 네트워크 MTU 크기를 사용하는 VM은 비공개 Google 액세스 및 Google API용 Private Service Connect를 포함하여 Google API 및 서비스로 패킷을 보낼 수 있습니다. 이 섹션의 세부정보는 온프레미스 호스트용 비공개 Google 액세스를 사용하여 Google API 및 서비스로 패킷을 전송하는 온프레미스 리소스에도 적용됩니다.
이 섹션에서 설명하는 Google API 및 서비스에 대한 트래픽 경로는 Google 프런트엔드(GFE)에서 구현됩니다. 이러한 GFE는 구성할 수 없는 고정 MTU를 사용합니다. Google Cloud에서 Google API 및 서비스로의 트래픽은 항상 TCP 프로토콜을 사용합니다. VM이 MTU가 GFE의 MTU와 일치하지 않는 VPC 네트워크에서 Google API 및 서비스에 연결하는 경우 세그먼트 크기는 불일치 MTU, MSS 클램핑, 경로 MTU 검색에 설명된 대로 TCP MSS 광고를 사용하여 협상됩니다.
패킷 소스 | 패킷 대상 |
---|---|
모든 내부 IPv4 주소: 기본 내부 IPv4 주소 또는 VM NIC의 별칭 IP 범위에 있는 내부 IPv4 주소 1-1 NAT 액세스 구성을 사용하여 VM NIC에 할당된 외부 IPv4 주소: 이 경우 Google Cloud는 이그레스에서 1-1 NAT를 수행하여 원래 소스 기본 내부 IPv4 주소를 액세스 구성에 지정된 소스 외부 IPv4 주소로 변환합니다. |
|
이중 스택 VM의 경우 외부 또는 내부 IPv6 주소 |
|
Cloud VPN 터널을 통한 통신
Cloud VPN에는 캡슐화된 패킷을 위한 게이트웨이 MTU와 캡슐화 전후의 패킷에 대한 페이로드 MTU가 모두 있습니다.
정확한 페이로드 MTU 값 및 기타 Cloud VPN MTU 정보는 Cloud VPN 문서의 MTU 고려사항을 참고하세요.
Cloud Interconnect(VLAN) 연결을 통한 통신
동일한 VPC 네트워크에 연결된 모든 VLAN 연결에 동일한 MTU를 사용하고 VPC 네트워크의 MTU를 동일한 값으로 설정하는 것이 좋습니다. Cloud Interconnect VLAN 연결 MTU에 관한 자세한 내용은 Cloud Interconnect MTU를 참고하세요.
점보 프레임 지원
다음 표에는 Google Cloud 제품 및 기능 간의 점보 프레임 지원이 요약되어 있습니다.
제품 또는 기능 | 점보 프레임 지원 |
---|---|
Compute Engine | 예 |
Cloud Interconnect | 예 |
Cloud VPN | 아니요 |
Google API | 아니요 |
VM 및 MTU 설정
권장사항에 따라 VM의 NIC MTU를 NIC가 연결된 VPC 네트워크의 MTU와 일치시키세요.
공개 OS 이미지를 기반으로 하는 Linux VM의 각 NIC MTU는 DHCP 옵션 26을 사용하여 각 VPC 네트워크 MTU로 자동 설정됩니다.
공개 OS 이미지를 기반으로 하는 Windows VM의 각 NIC MTU는 고정 MTU인
1,460
바이트로 구성됩니다. 공개 이미지 기반의 Windows VM이 포함된 VPC 네트워크의 MTU를 변경할 경우 Windows VM의 MTU를 변경해야 합니다.커스텀 게스트 OS 이미지를 사용하는 경우 NIC MTU를 구성하거나 DHCP 옵션 26을 사용하여 게스트 OS가 VPC 네트워크 MTU를 수락하는지 확인해야 합니다.
VM에 여러 네트워크 인터페이스가 있는 경우 각 NIC MTU를 해당 VPC 네트워크 MTU로 설정합니다.
NIC MTU가 VPC 네트워크 MTU와 달라야 하는 경우 NIC MTU를 VPC 네트워크 MTU보다 낮게 설정합니다. 일부 고급 네트워킹 시나리오에서는 NIC MTU를 강제로 줄이는 것이 유리합니다.
VPC 네트워크의 MTU 변경
실행 중인 VM이 있는 VPC 네트워크의 MTU를 변경하는 경우 다음 고려사항을 염두에 두세요.
VPC 네트워크 MTU를 줄이면 각 VM을 중지했다가 다시 시작해야 합니다. 게스트 운영체제 내에서 VM을 재부팅해도 MTU가 업데이트되지 않습니다.
VPC 네트워크의 MTU를 늘리면, VPC 네트워크를 사용하는 실행 중인 VM은 VM이 중지되었다가 시작될 때까지 증가된 VPC 네트워크 MTU의 이점을 활용할 수 없습니다. 각 VM이 중지되었다가 다시 시작될 때까지 VM은 이전(낮은) MTU 값을 계속 사용합니다.
자세한 내용은 VPC 네트워크의 MTU 설정 변경을 참조하세요.
GKE 및 MTU 설정
포드 인터페이스로 선택된 MTU는 클러스터 노드 및 기본 VPC MTU 설정에 사용되는 컨테이너 네트워크 인터페이스(CNI)에 따라 달라집니다. 자세한 내용은 포드를 참조하세요.
포드 인터페이스 MTU 값은 1460
이거나 노드의 기본 인터페이스에서 상속됩니다.
CNI | MTU | GKE Standard |
---|---|---|
kubenet | 1460 | 기본값 |
kubenet (GKE 버전 1.26.1 이상) |
상속됨 | 기본값 |
Calico | 1460 |
자세한 내용은 네트워크 정책을 사용한 포드 및 서비스 간 통신 제어를 참조하세요. |
netd | 상속됨 | 다음 중 하나를 사용하여 사용 설정됩니다. |
GKE Dataplane V2 | 상속됨 |
자세한 내용은 GKE Dataplane V2 사용을 참조하세요. |
불일치 MTU, MSS 클램핑, 경로 MTU 검색
이 섹션에서는 TCP 및 비TCP 프로토콜이 일치하지 않는 MTU를 처리하는 방법을 설명합니다.TCP 프로토콜
TCP 프로토콜은 MTU 불일치를 자동으로 처리합니다. 클라이언트와 서버는 TCP 연결이 열릴 때마다 각각의 유효한 TCP 최대 세그먼트 크기(MSS) 값을 개별적으로 계산합니다. 클라이언트와 서버가 동일한 유효 MSS 값에 동의할 필요는 없습니다.
클라이언트의 유효 TCP 최대 세그먼트 크기(MSS): 클라이언트에서 서버로 전송되는 TCP 세그먼트에서 전송 가능한 최대 데이터 양은 다음 두 값의 최솟값입니다.
TCP 연결 설정 중에 클라이언트에서 서버가 수신한 SYN-ACK 패킷의 MSS 필드 값입니다.
클라이언트의 네트워크 인터페이스의 MTU에서 40바이트를 뺀 값입니다. 차감된 40바이트에는 IP 헤더의 경우 20바이트, 기본 TCP 헤더의 경우 20바이트가 포함됩니다.
서버의 유효 TCP 최대 세그먼트 크기(MSS): 서버에서 클라이언트로 전송되는 TCP 세그먼트에서 전송 가능한 최대 데이터 양은 다음 두 값의 최솟값입니다.
TCP 연결 설정 중에 클라이언트에서 서버가 수신한 SYN 패킷의 MSS 필드 값입니다.
서버의 네트워크 인터페이스 MTU에서 40바이트를 뺀 값입니다. 차감된 40바이트에는 IP 헤더의 경우 20바이트, 기본 TCP 헤더의 경우 20바이트가 포함됩니다.
TCP MSS 클램핑
TCP MSS 클램핑은 클라이언트와 서버 간의 네트워크 기기가 클라이언트와 서버 간에 패킷을 라우팅할 때 SYN 및 SYN-ACK 패킷의 MSS 값을 변경하는 프로세스입니다. Google Cloud는 VPC 네트워크 외부의 대상에 패킷을 전송할 때마다 MSS 클램핑을 사용합니다.
Cloud VPN 터널 및 Cloud Interconnect VLAN 연결도 MSS 클램핑을 사용합니다. 자세한 내용은 Cloud VPN 문서의 패킷 캡슐화 및 처리와 Cloud Interconnect MTU를 참고하세요.
VPC 네트워크는 TCP 프로토콜 자체로도 충분하므로 VPC 네트워크 내의 다음 홉이 라우팅하는 패킷에 대해서는 MSS 클램핑을 수행하지 않습니다.
TCP 이외의 프로토콜
다른 프로토콜(예: UDP)에는 두 개의 서로 다른 VPC 네트워크 MTU가 관련될 경우 특별한 주의가 필요합니다. 전송 시스템은 네트워크 인터페이스 MTU, 수신 시스템의 네트워크 인터페이스 MTU, 그 사이의 모든 네트워크 MTU에 맞는 패킷을 내보내야 합니다. Google Cloud는 VPC 네트워크 내의 다음 홉에서 라우팅된 패킷에 대해 IP 단편화를 실행하지 않습니다.
IP 패킷이 너무 커서 전송할 수 없는 경우(예: 패킷이 수신 VM의 NIC가 있는 VPC 네트워크의 MTU를 초과하는 경우) Google Cloud가 패킷을 삭제합니다. 패킷에 DF
비트가 설정된 경우 Google Cloud는 발신자에게 조각화 필요(IPv4를 통한 ICMP) 또는 너무 큰 패킷(ICMPv6) 메시지를 전송합니다.
Google Cloud는 DF
비트가 설정되지 않았더라도 다음과 같은 상황에서 조각화 필요 또는 너무 큰 패킷 메시지를 전송합니다.
- VPC 네트워크 MTU가 1,600바이트 미만이고 전송 중인 패킷이 VPC 네트워크 MTU를 초과하는 경우
- VPC 네트워크 MTU가 1,600바이트 이상이고 전송 중인 패킷이 1,600바이트를 초과하는 경우
경로 MTU 검색(PMTUD)을 사용하기 위해 패킷을 전송하는 VM에 ICMP 조각화 필요 또는 너무 큰 패킷 메시지가 필요합니다. PMTUD의 작동 방식을 설명하기 위해 VPC 네트워크 피어링을 사용하여 연결된 서로 다른 VPC 네트워크의 두 VM이 있는 다음 예를 살펴보겠습니다.
- 전송 VM은 VPC 네트워크에 MTU가 8,896바이트인 NIC가 있습니다.
- 수신 VM에는 VPC 네트워크에 MTU가 1,460바이트인 NIC가 있습니다.
- 발신 VM은 조각화하지 않음(
DF
) 비트가 설정된 8,000바이트 IP 패킷을 내보냅니다. 패킷이 너무 커서 수신 VM에 전송할 수 없으므로 Google Cloud는 조각화 필요 또는 너무 큰 패킷 메시지를 전송 VM으로 전송합니다. 이 메시지는 발신자가 연결을 위해 패킷을 다시 전송하려고 할 때 사용할 수 있는 최대 IP 패킷 크기를 나타냅니다. - 전송 VM의 운영체제는 이 정보를 사용하여 수신 VM으로 후속 패킷을 전송할 때 IP 패킷 크기를 줄입니다.
PMTUD로 생성된 조각화 필요 또는 너무 큰 패킷은 ICMP 프로토콜을 사용하고 원본 패킷의 대상과 일치하는 소스가 있으므로 PMTUD가 다음과 같은 추가 요구사항을 갖습니다.
- 원본 패킷 대상과 일치하는 소스에서 ICMP(IPv4용) 또는 ICMPv6(IPv6용)가 허용되도록 인그레스 허용 VPC 방화벽 규칙 또는 방화벽 정책 규칙을 구성해야 합니다. 방화벽 구성을 간소화하려면 모든 소스에서 ICMP 및 ICMPv6를 허용하는 것이 좋습니다.
- 내부 패스 스루 네트워크 부하 분산기 및 내부 프로토콜 전달의 전달 규칙은 PMTUD용 ICMP와 원래 패킷에서 사용되는 프로토콜을 모두 처리하도록
L3_DEFAULT
프로토콜을 사용해야 합니다.
다음 단계
- 점보 프레임 MTU 네트워크 만들기 및 확인을 참조해 다른 MTU가 작동하는지 확인하기
- 지정된 MTU로 VPC 네트워크 만들기
- VPC 네트워크의 MTU 설정 변경
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 VPC의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
VPC 무료로 사용해 보기