Truy vết ngược của phát lại OpenVPN trong nhật ký: điều dòng đó không chứng minh
Thông báo truy vết ngược được ghi trước khi quyết định chấp nhận hay từ chối. Thực hiện sáu điểm dừng: xác định dòng, tìm kết quả, rồi kiểm tra đường đi của ứng dụng.
Dòng đó ghi PID_ERR replay-window backtrack occurred, và mọi kết quả tìm kiếm đều giải thích đây là gói bị bỏ và một đường hầm hỏng. Trong đường UDP của Community OpenVPN 2.6, thông báo đó được ghi trong khi hàm nhận vẫn đang quyết định làm gì với gói. Nó ghi lại một mức truy vết ngược tối đa mới, sau đó chính hàm đó so sánh khoảng cách với cửa sổ và trạng thái đã ghi trước khi chấp nhận hay từ chối. Đọc nhãn nhật ký như phán quyết là sai lầm mà danh sách kiểm tra này muốn ngăn chặn.
Điểm dừng một: xác định dòng đó là gì
Đây là chẩn đoán về khoảng cách chuỗi, không phải quyết định về một kết nối. Nó xuất hiện trong phần triển khai ID gói tại điểm ghi nhận mức truy vết ngược tối đa vừa quan sát. Điểm đó nằm trước nhánh chấp nhận hay từ chối, vì vậy gói gây ra nó vẫn có thể được chuyển đi.
Xác nhận máy chủ nào đã ghi và với mức chi tiết nào. Máy chủ và máy khách đều có thể phát thông báo ID gói, và thông báo từ một bên không nói gì về trạng thái nhận của bên kia.
Điểm dừng hai: tìm kết quả cho gói đó
Đọc các dòng sau chẩn đoán thay vì chỉ đọc chẩn đoán. Cùng hàm đó tiếp tục sang các kiểm tra cửa sổ và trùng lặp, nên kết quả cho đúng gói đó được quyết định vài lệnh sau và rất có thể là chấp nhận. Một đoạn nhật ký kết thúc ở dòng đáng sợ không cho biết gì về kết quả. Hãy tìm một cửa sổ xung quanh nó, không phải chính dòng đó:
journalctl -u openvpn-server@server --since "-10 min" | grep -n -A3 -B3 "backtrack occurred"Nếu nhật ký không cho thấy lần từ chối nào cho đối tác đó tại thời điểm đó, hãy ngừng coi dòng này là nguyên nhân của sự cố. Chuyển sang đường đi của ứng dụng, vì đó là nơi hầu hết báo cáo đã kết nối nhưng không có lưu lượng thực sự kết thúc.
Điểm dừng ba: quyết định xem việc sắp xếp lại có thật không
Sắp xếp lại là một thuộc tính của đường đi, và một chẩn đoán chỉ là một mẫu của nó. Tìm các thông báo lặp lại cho cùng đối tác trong một cửa sổ ngắn, và so sánh với bản ghi ở cả hai đầu trước khi kết luận rằng mạng đang sắp xếp lại mạnh.
Một vài thông báo trong lúc kết nối lại không có gì lạ. Một dòng chảy liên tục cùng với thời gian chờ thực của ứng dụng đáng để điều tra, và sự kết hợp đó là bằng chứng, không phải nhãn.
Điểm dừng bốn: các tham số cửa sổ, và những gì chúng không phải
replay-window nhận kích thước chuỗi và một giá trị thời gian tùy chọn, nên mở rộng nó thay đổi hai dung sai khác nhau cùng lúc. Tăng số lượng cho phép các gói xa hơn khỏi thứ tự; giá trị thời gian giới hạn thời gian một gói còn có thể được xem xét. Mở rộng là thay đổi chính sách với chi phí bảo mật, và nó không làm mạnh mật mã cũng không tắt phát hiện trùng lặp. Hai dung sai di chuyển cùng nhau, dù bạn có ý định hay không.
Một gói đã xác thực cũ vẫn có thể là sự lặp lại không mong muốn, vì thế bên nhận giữ các kiểm tra này. Chấp nhận nhiều sắp xếp lại hơn nghĩa là chấp nhận nhiều rủi ro đó hơn.
Tắt cảnh báo bằng mute thay đổi điều bạn thấy, không phải điều daemon làm. Nếu mục tiêu là nhật ký êm hơn trong một sự kiện đã biết, đó là lựa chọn vận hành hợp lệ; nếu mục tiêu là sửa đường hầm, tắt cảnh báo lại che giấu bằng chứng.
mute 20
replay-window 64 15Chuyển vận tải bên ngoài sang TCP thay đổi hành vi phân phối và khôi phục và thêm chi phí chặn đầu hàng đợi của chính nó. Đây là quyết định thiết kế, không phải phản ứng đầu tiên với một nhãn nhật ký. Cài lại máy chủ còn tệ hơn, vì nó xóa đi sự khác biệt giữa một thống kê và ranh giới thực sự đã hỏng.
Điểm dừng năm: kiểm tra đường đi mà người dùng quan tâm
Khi đường hầm đã kết nối, chạy bài kiểm tra của chính ứng dụng và đọc tuyến đã chọn, trạng thái chuyển tiếp và đường quay về. Một đường hầm chỉ mang gói theo một chiều không tạo ra thông báo truy vết ngược nào, và điều đó phổ biến hơn nhiều so với sắp xếp lại nghiêm trọng.
Ghi lại những gì bạn đã đo ở mỗi điểm dừng. Chính bản ghi đó ngăn báo cáo tiếp theo lại bắt đầu từ dòng đáng sợ và làm việc từ đó ra ngoài.
Phần triển khai ID gói cho thấy thứ tự của thống kê và quyết định, và hướng dẫn mô tả phạm vi chuỗi và thời gian của cửa sổ. Đọc cả hai cùng nhau là điều biến một dòng nhật ký đáng sợ thành một đại lượng đã biết. Không cái nào cho biết gì về đường đi cụ thể của bạn, vì vậy các phép đo ở trên vẫn quan trọng.