MTU và “DF flag” best practice on VNG Cloud
Last updated
Last updated
Địa chỉ
VNG CorporationDefault MTU trên môi trường Internet là 1500 bytes, tuy nhiên công nghệ ảo hóa yêu cầu đóng gói thêm một số Extended Headers, điều này làm cho giá trị thực tế sẽ < 1500 bytes.
Hiện tại hạ tầng VNG Cloud đang hỗ trợ tốt ở giá trị Interface MTU 1450 bytes, do đó sau quá trình đóng gói các protocol/application headers, gói tin được gửi ra khỏi VM được khuyến cáo nên ≤ 1450 bytes (1).
Việc VM gửi ra các gói có MTU lớn hơn giá trị MTU đang hỗ trợ dẫn đến hiện tượng “packet fragmentation”, gói tin gốc sẽ được chia thành nhiều gói nhỏ hơn truyền đi và ghép lại khi đến đích, đây là một quá trình hoàn toàn bình thường xảy ra khi dữ liệu được truyền trên môi trường Internet. “Packet fragmentation” sẽ đáp ứng phần lớn nhu cầu của khách hàng.
Tuy nhiên, đối với một số dịch vụ đặc thù như Voice SIP(UDP), VPN Tunnel (IPSec/GRE), có 2 vấn đề thường xuyên dẫn đến issues:
Các gói tin được truyền đi với cờ "Do Not Fragment" (DF flag) (2).
Custom SIP Headers hoặc IPSec/GRE Headers được thêm vào gói tin gốc, làm cho kích thước gói tin lớn hơn 1450 Bytes.
Khi cả hai điều kiện trên xảy ra đồng thời, hạ tầng có thể bỏ qua gói tin ra khỏi máy ảo.
Vì thế VNG Cloud khuyến khích khách hàng chủ động giảm giá trị MTU khi khởi tạo, nếu có sử dụng các “dịch vụ nhạy cảm về MTU và yêu cầu “DF flag”” theo một trong các cách như sau để hạn chế rủi ro khi sử dụng dịch vụ:
Thay đổi cấu hình Application/Service để loại bỏ các Headers không cần thiết (ví dụ custom SIP Headers, IPSec Authentication and Encryption Algorithm).
Thay đổi MTU của VM (đối với các VM sử dụng custom flavor của KH không theo chuẩn chung VNG Cloud) về 1450 (hoặc nhỏ hơn nếu cần).
PFSense: WEB UI - Interfaces - WAN - MTU = 1450
FortiGate CLI:
Ubuntu/Linux
Liên hệ đội ngũ support qua Portal Lưu ý: (1) đối với các IPSec Tunnel yêu cầu xác thực và mã hóa cao, giá trị Headers có thể lên đến hơn 100 bytes, do đó tùy theo nhu cầu sử dụng, khách hàng nên lựa chọn giá trị MTU phù hợp 1200 – 1300 – 1450 bytes. Bảng dưới mô tả ví dụ IPSec Headers Size được thêm vào làm ảnh hưởng đến giá trị MTU thực tế đối với gói tin có Payload ban đầu 1340 bytes.
Payload | Size |
New IPv4 Header for IPsec | 20 |
AH Header | 12 |
Next Header - 1 | |
Payload - 1 | |
Reserved - 2 | |
SPI - 4 | |
Sequence - 4 | |
AH Digest | 12 |
ESP Header | 8 |
SPI - 4 | |
Sequence - 4 | |
ESP IV | 16 |
Original IPv4 Header | 20 |
Original IPv4 Payload | 1320 |
ESP Trailer | 36 |
ESP Pad - 2 | |
Pad Length - 1 | |
Next Header - 1 | |
ESP ICV - 32 | |
Total IPsec Packet Size sending out from VM | 1444 |
Bảng 1: Không enable NAT-T và không enable GRE
Payload | Size |
New IPv4 Header for IPsec | 20 |
UDP Header (NAT-T) | 8 |
AH Header | 12 |
Next Header - 1 | |
Payload - 1 | |
Reserved - 2 | |
SPI - 4 | |
Sequence - 4 | |
AH Digest | 12 |
ESP Header | 8 |
SPI - 4 | |
Sequence - 4 | |
ESP IV | 16 |
Original IPv4 Header | 20 |
Original IPv4 Payload | 1320 |
ESP Trailer | 36 |
ESP Pad - 2 | |
Pad Length - 1 | |
Next Header - 1 | |
ESP ICV - 32 | |
Total IPsec Packet Size sending out from VM | 1452 |
Bảng 2: Enable NAT-T và không enable GRE
Payload | Size |
New IPv4 Header for IPsec | 20 |
UDP Header (NAT-T) | 8 |
AH Header | 12 |
Next Header - 1 | |
Payload - 1 | |
Reserved - 2 | |
SPI - 4 | |
Sequence - 4 | |
AH Digest | 12 |
ESP Header | 8 |
SPI - 4 | |
Sequence - 4 | |
ESP IV | 16 |
New IPv4 Header for GRE | 20 |
GRE Header + Tunnel Key | 8 |
Original IPv4 Header | 20 |
Original IPv4 Payload | 1320 |
ESP Trailer | 40 |
ESP Pad - 6 | |
Pad Length - 1 | |
Next Header - 1 | |
ESP ICV - 32 | |
Total IPsec Packet Size sending out from VM | 1484 |
Bảng 3: Enable NAT-T và GRE