다른 오버레이의 경우처럼 VMware은 네트워크를 통과하는 트래픽에 추가적인 오버헤드를 부과합니다. 이 섹션에서는 먼저 기존 IPsec 네트워크에 추가된 오버헤드, 이 오버헤드와 VMware 간의 차이점을 설명하고 이러한 추가된 오버헤드가 네트워크의 MTU 및 패킷 조각화 동작과 어떤 관련이 있는지에 대해 설명합니다.
IPsec 터널 오버헤드
- 패딩(Padding)
- AES는 "블록" 크기를 의미하는 16바이트 블록으로 데이터를 암호화합니다.
- 패킷 본문이 블록 크기보다 작거나 블록 크기로 나눌 수 없는 경우 블록 크기와 일치하게 패딩됩니다.
- 예:
- 1바이트 패킷은 15바이트가 패딩되어 16바이트가 됩니다.
- 1400바이트 패킷은 8바이트가 패딩되어 1408바이트가 됩니다.
- 64바이트 패킷에는 패딩이 필요하지 않습니다.
- Ipsec 머리글 및 트레일러(IPsec headers and trailers):
- NAT 통과(NAT-T)에 대한 UDP 머리글
- IPsec 터널 모드의 IP 머리글
- ESP 머리글 및 트레일러
요소 | 크기(바이트) |
---|---|
IP 머리글 | 20 |
UDP 머리글 | 8 |
IPsec 시퀀스 번호 | 4 |
IPsec SPI | 4 |
초기화 벡터 | 16 |
패딩 | 0~15 |
패딩 길이 | 1 |
다음 머리글 | 1 |
인증 데이터 | 12 |
합계(Total) | 66-81 |
VMware 터널 오버헤드
DMPO(동적 다중 경로 최적화™)를 지원하기 위해 VMware은 VCMP(VeloCloud 다중 경로 프로토콜)라는 프로토콜에서 패킷을 캡슐화합니다. VCMP는 사용자 패킷이 단일 터널 내의 재시퀀싱, 오류 수정, 네트워크 분석 및 네트워크 세분화를 지원하도록 31바이트의 오버헤드를 추가합니다. VCMP는 IANA 등록 포트 UDP 2426에서 작동합니다. 모든 잠재적 시나리오(암호화되지 않음, 암호화되고 NAT 뒤에 있음, 암호화되었으나 NAT 뒤에 있지 않음)에서 일관된 동작을 보장하기 위해 VCMP는 전송 모드 IPsec을 사용하여 암호화되고 NAT-T가 특수한 NAT-T 포트 2426일 때 강제로 true가 되도록 합니다.
SD-WAN Gateway를 통해 인터넷에 전송되는 패킷은 기본적으로 암호화되어 있지 않으므로 게이트웨이를 종료할 때 열려 있는 인터넷으로 송신됩니다. 결과적으로 인터넷 다중 경로 트래픽에 대한 오버헤드가 VPN 트래픽보다 작습니다.
VPN 트래픽(VPN Traffic)
요소 | 크기(바이트) |
---|---|
IP 머리글 | 20 |
UDP 머리글 | 8 |
IPsec 시퀀스 번호 | 4 |
IPsec SPI | 4 |
VCMP 머리글 | 23 |
VCMP 데이터 머리글 | 8 |
초기화 벡터 | 16 |
패딩 | 0~15 |
패딩 길이 | 1 |
다음 머리글 | 1 |
인증 데이터 | 12 |
합계(Total) | 97 – 112 |
인터넷 다중 경로 트래픽(Internet Multipath Traffic)
요소 | 크기(바이트) |
---|---|
IP 머리글 | 20 |
UDP 머리글 | 8 |
VCMP 머리글 | 23 |
VCMP 데이터 머리글 | 8 |
합계(Total) | 59 |
경로 MTU 검색(Path MTU Discovery)
적용될 오버헤드의 크기를 결정한 후에는 SD-WAN Edge는 고객 패킷의 유효 MTU를 계산하기 위해 최대 허용 MTU를 검색해야 합니다. 최대 허용 MTU를 찾기 위해 Edge는 경로 MTU 검색을 수행합니다.
- 공용 인터넷 WAN 링크의 경우:
- 경로 MTU 검색이 모든 게이트웨이에 대해 수행됩니다.
- 모든 터널에 대한 MTU가 검색된 최소 MTU로 설정됩니다.
- 개인 WAN 링크의 경우:
- 경로 MTU 검색이 고객 네트워크의 다른 모든 Edge에 대해 수행됩니다.
- 각 터널의 MTU는 경로 MTU 검색의 결과에 따라 설정됩니다.
Edge는 먼저 RFC 1191 경로 MTU 검색을 시도합니다. 여기서는 현재 알려진 링크 MTU(기본값: 1500바이트)의 패킷이 IP 머리글에 DF("조각화하지 않음(Don’t Fragment)") 비트가 설정된 피어로 전송됩니다. 이 패킷이 원격 Edge 또는 게이트웨이에서 수신되면 동일한 크기의 승인 패킷이 Edge로 반환됩니다. MTU 제약 조건으로 인해 패킷이 원격 Edge 또는 게이트웨이에 도달할 수 없는 경우 중간 디바이스는 ICMP 대상에 연결할 수 없음(조각화 필요)(ICMP destination unreachable (fragmentation needed)) 메시지를 보내야 합니다. Edge는 ICMP에 연결할 수 없음(ICMP unreachable) 메시지를 수신하면 해당 메시지가 유효한지 검사하고(보고된 MTU 값에 문제가 없는지 확인) 유효한 것으로 확인되면 MTU를 조정합니다. 그러면 MTU가 검색될 때까지 이 프로세스가 반복됩니다.
일부 경우에(예: USB LTE 동글) 패킷이 너무 큰 경우에도 중간 디바이스가 ICMP에 연결할 수 없음(ICMP unreachable) 메시지를 보내지 않습니다. RFC 1191이 실패하고 Edge가 승인 또는 ICMP에 연결할 수 없음(ICMP unreachable)을 수신하지 못한 경우 RFC 4821 패킷화 계층 경로 MTU 검색으로 폴백됩니다. Edge는 바이너리 검색을 수행하여 MTU를 검색하려고 합니다.
피어에 대해 MTU가 검색되면 이 피어에 대한 모든 터널이 동일한 MTU로 설정됩니다. 즉, Edge에 MTU가 1400바이트인 링크 1개와 MTU가 1500바이트인 링크 1개가 있는 경우 모든 터널의 MTU는 1400바이트입니다. 이를 통해 언제든지 동일한 MTU를 사용하여 모든 터널로 패킷이 전송될 수 있습니다. 이것을 유효 Edge MTU(Effective Edge MTU)라고 합니다. 대상(VPN 또는 인터넷 다중 경로)에 따라 유효 패킷 MTU(Effective Packet MTU)를 계산하기 위해 위에서 설명한 오버헤드를 제외합니다. 직접 인터넷 또는 기타 언더레이 트래픽의 경우 오버헤드는 0바이트이며, 링크 페일오버가 필요하지 않기 때문에 유효 패킷 MTU는 검색된 WAN 링크 MTU와 동일합니다.
VPN 트래픽 및 MTU
SD-WAN Edge에서 MTU를 검색하고 오버헤드를 계산했으므로 클라이언트 트래픽에 대해 유효한 MTU를 계산할 수 있습니다. Edge는 수신되는 다양한 유형의 트래픽 중에서 이 MTU를 최대한 효율적으로 적용하려고 시도합니다.
TCP 트래픽(TCP Traffic)
Edge는 수신된 TCP 패킷에 대해 TCP MSS(최대 세그먼트 크기)를 자동으로 조정합니다. SYN 및 SYN|ACK 패킷은 Edge를 통과하고, MSS는 유효 패킷 MTU를 기준으로 다시 작성됩니다.
DF 비트 집합이 없는 비 TCP 트래픽(Non-TCP Traffic without DF bit set)
패킷이 유효 패킷 MTU보다 큰 경우 Edge는 RFC 791에 따라 IP 조각화를 자동으로 수행합니다.
DF 비트 집합이 있는 비 TCP 트래픽(Non-TCP Traffic with DF bit set)
패킷이 유효 패킷 MTU보다 큰 경우:
- 이 흐름(IP 5-튜플)에 대해 패킷이 처음 수신되면 Edge는 해당 패킷을 삭제하고 RFC 791에 따라 ICMP 대상에 연결할 수 없음(조각화 필요)을 전송합니다.
- 계속해서 너무 큰 동일한 흐름에 대해 후속 패킷이 수신되면 이러한 패킷은 여러 VCMP 패킷으로 조각화되고, 원격 끝에서 전달 전에 투명하게 다시 구성됩니다.