Một hồ sơ mang hai trăm tuyến chạy được trên máy này và chỉ cài bốn mươi tuyến trên máy khác. Engine, tích hợp khởi chạy nó và máy chủ cấp dữ liệu cho nó đều có tiếng nói, và mỗi bên có thể dừng danh sách ở một điểm khác nhau. Đọc lỗi như một giới hạn duy nhất sẽ đưa bạn đến sai tệp. Cơ chế có ba giai đoạn, và giai đoạn đã dừng để lại bằng chứng nhìn thấy được khi bạn biết cần tìm gì.

Ba giai đoạn, ba giới hạn khác nhau

Đầu tiên engine phân tích tùy chọn và quyết định xem phiên bản này có hiểu nó không. Sau đó tích hợp cài đặt những gì engine báo cáo, và mã của chính nó có thể giới hạn hoặc định hình lại danh sách. Cuối cùng máy chủ quyết định gửi bao nhiêu tuyến cho một danh tính nhất định, trước khi bất kỳ giai đoạn phía máy khách nào thấy điều gì. Ba giai đoạn, ba mức trần, và chỉ một trong số đó là con số trong hồ sơ.

Nâng một mức trần không làm gì cho những mức còn lại. Một tuyến bị từ chối sau khi gửi có thể là quyết định chính sách trên máy chủ, một chỗ chồng lấn mà máy khách đã xử lý, hoặc giới hạn của trình cài đặt đã bỏ phần dư. Mỗi trường hợp có cách sửa khác nhau.

Tách ba thứ ra trước khi đo bất cứ thứ gì. Lỗi bộ phân tích nêu tên một token, giới hạn trình cài đặt để lại bảng tuyến ngắn, và quyết định chính sách không để lại gì. Bằng chứng cho bạn biết nên kiểm tra giai đoạn nào trước.

StageWho decidesWhat you can see
ParseClient engineAn error naming the option
InstallActivation ownerA route count below the pushed count
OfferServer policyA route absent from the pushed list

Bộ phân tích lên tiếng trước

Một tùy chọn không xác định thất bại ồn ào và sớm, và văn bản lỗi nêu tên token. Đó là giai đoạn dễ nhận ra nhất: so sánh thông điệp chính xác với phiên bản engine đã cài, vì một tùy chọn được thêm trong một bản phát hành là không xác định ở bản trước đó. Một hồ sơ sao chép từ lần triển khai mới hơn là nguồn thường gặp của sự không khớp đó. Bộ phân tích không bao giờ âm thầm bỏ qua một chỉ thị mà nó không nhận ra.

Một tùy chọn được chấp nhận không nói gì về kết quả. Phân tích thành công, và danh sách vẫn có thể bị trình cài đặt cắt bớt hoặc không bao giờ được máy chủ cung cấp. Hãy coi một lần phân tích sạch là sự cho phép tiếp tục, không phải bằng chứng.

Ghi lại chuỗi phiên bản từ tệp nhị phân thực sự đã chạy, không phải từ ý niệm của trình quản lý gói về những gì đã cài. Hai thứ đó bất đồng thường xuyên hơn dự kiến.

Trình cài đặt có mức trần riêng

Thành phần sở hữu việc kích hoạt có thể là plugin NetworkManager thay vì tệp nhị phân của engine, và nó có thể áp đặt giới hạn riêng trước khi có bất kỳ đường hầm nào. Trình soạn thảo của nó có thể hiển thị một trường mà engine đang chạy không bao giờ đọc, hoặc đọc một trường mà trình soạn thảo không hiển thị. Cả hai tình huống đều trông như lỗi phía máy khách từ bên ngoài. Không tình huống nào được sửa bằng cách chỉnh sửa hồ sơ.

Hãy đếm những gì đã đến thay vì những gì đã cấu hình. Lệnh ip route show dev tun0 liệt kê các tuyến đã cài, và việc so sánh con số đó với danh sách đã gửi sẽ tách một tuyến bị bỏ khỏi một tuyến chưa bao giờ được gửi. Một con số khớp với lần gửi sẽ đẩy nghi ngờ trở lại máy chủ.

Một lớp bao shell quanh tệp nhị phân của engine để ép một con số lớn hơn làm mờ các lần nâng cấp và biến việc quay lui thành phỏng đoán. Nó cũng giấu giới hạn thật khỏi bất kỳ ai đọc cấu hình tiếp theo.

Máy chủ quyết định những gì đã được đề nghị cho bạn

Chính sách theo từng máy khách có thể thu nhỏ danh sách trước khi truyền. Một tệp riêng cho máy khách có thể thêm tuyến cho một danh tính, hoặc chính sách nhóm có thể bỏ qua chúng, và máy khách không thể phân biệt một tuyến bị lọc với một tuyến chưa bao giờ được định nghĩa. Chính sự mơ hồ đó khiến bản ghi máy chủ trở nên quan trọng. Hãy yêu cầu danh sách gửi thực tế cho danh tính đó, không phải mẫu.

So sánh bản ghi máy chủ với danh sách đã nhận. Khoảng cách giữa chúng là lớp chính sách, và nó thường nhỏ hơn những gì hồ sơ gợi ý.

Khi thiết kế cho phép, hãy gộp các mạng liền kề và xóa các mục lỗi thời. Ít tuyến hơn nhưng lớn hơn giải quyết được nhiều trường hợp hơn một mức trần cao hơn.

Đổi con số ở đúng chỗ

Dùng thiết lập đã được ghi tài liệu của thành phần thực sự sở hữu giới hạn. Nếu trường này thiếu trong plugin, hãy kiểm tra xem plugin có cũ hơn tính năng hay một lớp nền khác sở hữu các tuyến. Sau đó ghi lại phiên bản của engine, plugin và máy chủ bên cạnh giá trị bạn đã chọn. Lần nâng cấp tiếp theo mở lại câu hỏi, và chính ghi chú khiến nó có thể trả lời được.

Kiểm tra lại sau mọi lần nâng cấp bất kỳ thành phần nào trong ba. Một giới hạn được nâng ở đúng chỗ vẫn dịch chuyển khi thành phần thực thi nó thay đổi. Bản ghi phiên bản là thứ duy nhất khiến sự dịch chuyển đó có thể dự đoán được.

Bài viết liên quan