Tôi đang hiểu nhầm gì về tính toán MTU?


14

Được rồi, tôi vừa giải quyết xong vấn đề khung hình khổng lồ giữa một vài Xserves, Netgear GSM7224 và Drobo B800i. Hóa ra Xserves (Máy chủ Mac OS X 10.6.8) và Drobo B800i chấp nhận MTU theo byte như mong đợi (1500-9000), nhưng Netgear dường như đã muốn nó bao gồm các đầu trang / chân trang ethernet khác nhau ) và cuối cùng tôi đã kết thúc với Xserves & Drobo được cấu hình với MTU là 9000 và các cổng Netgear được đặt thành MTU là 9216.

Tôi đã sử dụng các lệnh sau để kiểm tra và xác minh MTU giữa hai Xserves trên Netgear (Lưu ý: đây là các lệnh Mac OS X, các lệnh Windows & Linux khác nhau):

ping -D -s <mtu> <ip_address>

traceroute -F <ip_address> <mtu>

Việc sử dụng của trình định dạng được ghi chú trong mantrang là "Chỉ định số byte dữ liệu sẽ được gửi. Mặc định là 56, dịch thành 64 byte dữ liệu ICMP khi kết hợp với 8 byte dữ liệu tiêu đề ICMP." Trong thử nghiệm, tôi thấy rằng nó ping -D 1472 <ip_address>tương đương với MTU 1500 do 8 byte dữ liệu tiêu đề ICMP cộng với các tiêu đề IP 20 byte (xem cái nàycái này ). Đó là tất cả có ý nghĩa.

Bây giờ, tại sao lệnh tương đương cho 9000 MTU ping -D -s 8164 <ip_address>? Tôi đã xác minh đây là giới hạn trước khi tôi nhận được lỗi "sendto: Message quá dài", nhưng 9000 MTU vẫn hoạt động chính xác như traceroute -F <ip_address> 9000hoạt động và traceroute -F <ip_address> 9001không. Vậy, tại sao 8164? Tôi đã mong đợi 8972 (MTU - 28 byte, giống như với 1500 MTU).

Ngoài ra, tại sao 9216 MTU cho Netgear? Tôi đã đếm 42 byte cho các tiêu đề MAC & ethernet (bao gồm CRC), cộng với 20 cho các tiêu đề IP (nên ăn vào MTU).

Tôi thực sự bất bình về môn toán này và biết rằng tôi chỉ thiếu một cái gì đó.


1
9216 gần như chắc chắn được chọn vì đó là 9 x 2 ^ 10.
Chris S

Câu trả lời:


11

Chào mừng đến với thế giới kỳ lạ và bí ẩn của khung hình khổng lồ! Điều bình thường là thiết bị ethernet khung jumbo có MTU> 1518 và <65K byte và bạn phải tìm một cài đặt là mẫu số chung thấp nhất trên miền L2 của bạn để cho phép lưu lượng truy cập phù hợp.

Tôi đoán là việc triển khai ping / ICMP của bạn chỉ hoạt động với tải trọng 8192 byte, vì vậy 8164 + 28 (20 cho tiêu đề IP và 8 cho tiêu đề ICMP) cung cấp cho bạn 8192 byte.

MTU 9216 cũng là một MTU 9K tiêu chuẩn trên nhiều thiết bị của Cisco, vì vậy, giả định của tôi là Netgear muốn '' tương thích '' với điều đó.

Cũng lưu ý rằng đặc tả kích thước MTU nên được thực hiện nghiêm túc, rất nhiều nhà cung cấp không bao gồm các tiêu đề khung 802.1Q (vlans) hoặc thậm chí L2. Kiểm tra tài liệu của nhà cung cấp chuyển đổi của bạn những gì họ thực sự chỉ định khi họ nói về kích thước MTU.


Chỉ cần một lưu ý để thêm: MTU của máy chủ và bộ định tuyến của bạn cần phải khớp; MTU của các công tắc có thể được đặt thành 12 bazillion cho tất cả những gì nó quan trọng miễn là nó nằm trên cài đặt của máy chủ (tiêu đề +).
Hyppy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.