Ba thiết lập trên một máy khách Linux đều nghe như «làm cho gói nhỏ hơn», và chúng tác động ở các tầng khác nhau. MTU giao diện giới hạn mọi gói mà thiết bị gửi đi. MTU tuyến giới hạn các gói dùng tuyến đó, và đó thường là thứ bạn thực sự muốn cho một đích VPN. Giới hạn TCP MSS thay đổi điều hai đầu thương lượng, và không làm gì với UDP.

Ba kiểm soát trông như cùng một núm

Đặt chúng cạnh nhau trước khi chọn, vì chọn nhầm hàng giải thích phần lớn lời khuyên không hiệu quả:

ControlScopeWhat it cannot fix
Interface MTUEvery packet the device sendsNothing, but it over-constrains unrelated traffic
Route MTUPackets using that routeA send that the lookup never routes there
MSS clampTCP handshake on that pathUDP payload sizes and ICMP

Hạ MTU Ethernet cho toàn bộ máy là phiên bản thô của cách sửa này. Nó hiệu quả, và cũng phạt mọi ứng dụng khác trên máy chủ, kể cả những ứng dụng có đường đi vốn ổn. Một giá trị theo tuyến diễn đạt cùng ý định mà không có chi phí phụ.

So sánh chỉ đúng cho lưu lượng do chính máy chủ tạo ra. Chuyển tiếp gói cho một máy khách khác liên quan đến đường đi riêng của máy đó và ngân sách bên ngoài của đường hầm, và chỉ số tuyến trên máy này không vượt qua ranh giới đó.

Gắn ngân sách vào tuyến thắng truy vấn

Một bản ghi tuyến IPv4 minh họa trông như sau:

ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380

Đọc bản ghi như mô tả ý định, không phải giá trị để dán. Tiền tố, thiết bị và nguồn ưu tiên phải khớp với cấu hình thực, và con số phải đến từ bằng chứng về đường đi được đóng gói, không phải từ bài đăng blog. MTU tuyến giới hạn gói IP bên trong, không giống với tải TCP 1380 byte hay gói ngoài được mã hóa 1380 byte.

Xem truy vấn thực sự được giải ở đâu trước khi thêm bất cứ thứ gì. Một máy chủ có quy tắc chính sách có thể định tuyến một đích qua bảng khác main, và một chỉ số chỉ tồn tại trong main thì vô hình với yêu cầu đó. Hãy so sánh ip -4 route show table all với câu trả lời từ ip route get, kể cả ngữ cảnh dấu hoặc không gian tên khi các quy tắc dùng chúng. Nếu hai bên không khớp, bảng đã trả lời là bảng cần chỉ số, không phải bảng trông gọn gàng hơn.

mtu không phải là mtu lock

Mặc định hạt nhân vẫn có thể cập nhật MTU đường đi từ phản hồi ICMP, và đó là mục đích của việc dò MTU đường đi. Thêm lock sẽ dừng việc đó. Đây là một quyết định khác, không phải cách mạnh hơn để giữ nguyên con số, và với IPv4 nó thay đổi cách xử lý đã ghi tài liệu của bit «không phân mảnh».

Khóa là hợp lý khi bạn đã đo đường đi và muốn giá trị đứng yên bất kể điều gì đến. Đó là mặc định tồi khi mạng gửi phản hồi kích thước hợp lệ, vì hạt nhân không còn điều chỉnh được và lỗi chuyển sang triệu chứng khác.

Nếu ICMP bị lọc ở đâu đó trên đường, không thiết lập tuyến nào sửa được điều đó. Bản sửa thuộc về bộ lọc, và MTU nhỏ hơn là cách né tránh che giấu lỗi thật cho đến lần đổi đường tiếp theo.

Phần mềm đường hầm thêm các núm kích thước của riêng nó

OpenVPN- mssfix điều chỉnh kích thước phân đoạn TCP cho trường hợp đường hầm UDP đã ghi tài liệu của nó. Nó tác động lên cuộc trò chuyện TCP, nên không phải cách viết khác của MTU tuyến của hệ điều hành, và không thể giúp một dịch vụ UDP bỏ qua thương lượng.

Đừng chồng MTU tuyến, thay đổi MTU giao diện và giới hạn MSS trong cùng một cửa sổ thay đổi. Nếu sự cố biến mất bạn sẽ không biết cái nào quan trọng, và những cái bạn giữ sẽ hạn chế lưu lượng trong nhiều năm mà không có lý do ai đó nhớ được.

Hãy làm cho nó hoàn tác được, rồi chứng minh

Chủ sở hữu thật của tuyến quyết định thay đổi có sống sót sau lần kết nối lại hay không. Một máy khách VPN cài tuyến động thường sẽ dựng lại nó mà không có chỉ số của bạn, và một lệnh ip route add thủ công khi đó trông như bản sửa thất bại một ngày sau. Đặt giá trị vào cấu hình của trình quản lý, và nếu cần thử nghiệm tạm thời, hãy ghi lại tuyến gốc trước.

Thử bằng kết nối mới thực hiện thao tác đã bị kẹt, rồi xác nhận tuyến riêng dự định vẫn thắng và các đích không liên quan không thay đổi. Kết nối lại đường hầm và đọc lại tuyến, vì một giá trị biến mất khi kết nối lại không phải là bản sửa.

Nếu bằng chứng không ủng hộ thay đổi, hãy gỡ phần ghi đè qua trình quản lý của nó và khôi phục thuộc tính tuyến gốc thay vì xóa tuyến. Sau đó ghi lại bạn đã đo gì, trên đường nào, để người tiếp theo phân biệt được cải thiện thật với thử nghiệm bị bỏ chạy.

Bài viết liên quan