VPN hỏng sau khi cập nhật ứng dụng khách? Hãy so sánh quá trình thương lượng
Giữ lại lỗi mới đầu tiên và phiên bản đã tạo ra nó. Một thương lượng hay yêu cầu nền tảng đã thay đổi cần một bản sửa cụ thể, không phải một lần lùi lại.
Các bản cập nhật thay thế thành phần phân tích hồ sơ của bạn và thương lượng đường hầm. Lỗi đầu tiên sau khi nâng cấp là bằng chứng về một thay đổi cụ thể, không phải bản án cho bản phát hành. Giữ lại lỗi đó cùng phiên bản và dấu thời gian là bước có giá trị nhất mà bạn có thể làm trước khi cài đặt lại bất cứ thứ gì.
Hai cơ chế giải thích phần lớn những đứt gãy này. Tách chúng ra chính là công việc.
Quá trình thương lượng đã thay đổi điều gì bên dưới bạn
OpenVPN thương lượng mật mã của kênh dữ liệu thay vì lấy từ một chỉ thị duy nhất, và các tùy chọn điều khiển thương lượng đó đã đổi nghĩa qua các bản phát hành. Một hồ sơ viết cho ứng dụng khách cũ có thể kết nối rồi sau đó không thống nhất được về kênh dữ liệu, điều này hiện ra như một lần ngắt kết nối thay vì một lỗi cấu hình rõ ràng. Các bản phát hành mới hơn cũng siết chặt hoặc bỏ đi hành vi kế thừa và cung cấp chế độ tương thích cho các đối tác chưa chuyển sang. Vì vậy một lần nâng cấp có thể làm hỏng một hồ sơ đang chạy mà không chạm vào một byte nào của tệp.
Ảnh hưởng lên ứng dụng khách là bất đối xứng. Kênh điều khiển dựng lên, xác thực thành công và sau đó đường hầm chết, đó là dấu hiệu của sự không khớp trong thương lượng chứ không phải hồ sơ bị từ chối.
Đọc phiên bản đã cài trước khi đưa ra giả thuyết về máy chủ. Chuỗi đó là một sự thật cục bộ mà bạn có thể kiểm tra mà không phải xin quyền truy cập của ai.
Hồ sơ có thể được phân tích và mang nghĩa khác
Một chỉ thị vượt qua bước phân tích không hẳn vẫn làm điều mà tác giả của nó dự định. Các tùy chọn có thể được chấp nhận vì tương thích rồi bị bỏ qua, bị đổi tên hoặc chỉ được áp dụng trong trường hợp hẹp hơn trước. Vì không có gì báo lỗi, hồ sơ trông vẫn đúng trong khi hành vi bên dưới đã thay đổi. Chính sự im lặng đó khiến những thoái bộ này tốn kém.
Hãy hỏi những dòng nào thực sự chịu trách nhiệm cho kết quả đã thương lượng, rồi đối chiếu với tài liệu của phiên bản bạn đang chạy. Việc so sánh đó ngắn, và đó là khác biệt giữa một bản sửa và một lần lùi lại.
openvpn --version | head -n 2
openvpn --show-ciphers | head -n 10
grep -nE '^(cipher|data-ciphers|ncp-|tls-)' office.ovpn
Nền tảng cũng dịch chuyển cùng lúc
Các bản phát hành ứng dụng khách hiếm khi đến một mình. Một bản cập nhật hệ điều hành, một lời nhắc quyền nay đòi hỏi sự chấp thuận rõ ràng, hoặc một chính sách được quản lý áp lên thiết bị có thể đến trong cùng tuần và tạo ra lỗi mà ứng dụng khách bị đổ lỗi. Các nền tảng di động thêm một lớp riêng, vì ứng dụng xin hệ thống một đường hầm và hệ thống quyết định đường hầm đó được định tuyến gì.
Ghi những thay đổi đó riêng trong dòng thời gian. Khi xác thực thành công nhưng tuyến đường hoặc phân giải tên thất bại, giai đoạn đáng chú ý là sau bắt tay, và việc làm yếu kiểm tra chứng chỉ sẽ không chạm tới nó.
Kiểm thử lại sự kiện đã khởi đầu báo cáo
Hãy tái hiện đúng trình tự gốc chứ không phải bản đơn giản hóa: kết nối ban đầu, ứng dụng đã thất bại và một lần kết nối lại bình thường sau khi đổi mạng. Một đường hầm dựng lên trong điều kiện thử nghiệm mà vẫn rơi trên đường kết nối lại là chưa được sửa, và sự khác biệt thường chỉ ra khiếm khuyết thật nằm ở đâu. Một báo cáo bỏ qua bước kết nối lại sẽ đóng một lỗi vẫn còn mở.
Lấy hồ sơ được nhà cung cấp dịch vụ hỗ trợ hoặc bản sửa của nhà sản xuất qua kênh đã xác minh thay vì lùi toàn bộ. Một lần hạ cấp rộng cũng khôi phục mọi bản sửa bảo mật mà bản cập nhật mang theo, và sự đánh đổi đó hiếm khi đáng một kết nối đang chạy.