OpenVPN khởi động trước khi mạng sẵn sàng không phải là sự cố
Máy khách khởi động trước khi máy chủ có thể truy cập đang thử lại, không hề thất bại. Hãy tách thứ tự, DNS, xác thực và phục hồi sau khi kết nối.
Bạn khởi động máy khách lúc boot, unit báo đang hoạt động, nhưng đường hầm không có ở đó. Kết luận tự nhiên là dịch vụ khởi động thất bại, và cách sửa tự nhiên là khởi động lại nó. Cả hai đều sai đủ thường xuyên để cần một nguyên tắc: một máy khách đang chạy và thử lại trông từ bên ngoài giống hệt một máy khách hỏng. Khác biệt nằm ở việc tiến trình đang làm gì, không nằm ở trạng thái của unit.
Ngộ nhận: dịch vụ đã khởi động nghĩa là đường hầm hoạt động
Một unit đang hoạt động chứng minh tiến trình đã được chạy và chưa thoát. Nó không chứng minh hồ sơ đã tải, chứng chỉ đã được chấp nhận hay đầu bên kia đã trả lời. Một máy khách đóng gói có thể ngồi trong vòng lặp thử lại hàng phút trong khi systemd chỉ báo thành công. Khoảng trống giữa trạng thái và hành vi đó chính là toàn bộ chủ đề.
Trường hợp ngược lại cũng phổ biến không kém. Tiến trình có thể đã thoát sau khi không đọc được khóa, và unit sau đó báo trạng thái thất bại mà không nói gì về lý do. Cả hai trạng thái cần nhật ký để phân biệt.
Đọc nhật ký của phiên bản đó thay vì trạng thái của unit. Dòng lý do nằm trong nhật ký, không nằm ở nhãn trạng thái.
Ngộ nhận: cài đặt thử lại bao phủ mọi thất bại
Phân giải tên và thử lại truyền tải là hai điều khiển riêng với giá trị mặc định riêng. resolv-retry điều khiển việc tra cứu lặp lại tên máy chủ từ xa, và giá trị mặc định được ghi trong tài liệu thử mãi không dừng. connect-retry đặt khoảng thời gian giữa các lần thử, còn connect-retry-max có thể giới hạn số lần thử cho mỗi mục từ xa. Hãy kiểm tra nhật ký nêu giai đoạn nào trước khi đổi bất kỳ giá trị nào trong số đó.
Không điều nào ở trên áp dụng cho hồ sơ bị hỏng, khóa riêng không đọc được hay tài khoản bị từ chối. Những thứ đó cần sửa, và một máy khách cứ thử lại chúng thì không tiến triển.
Thử lại một chứng chỉ chưa được chấp thuận mãi mãi không phải lý do để bỏ xác minh. Đó là lý do để đọc lỗi.
Ngộ nhận: một trình khởi chạy là đủ, nên thêm cái nữa
Một kết nối đã được NetworkManager hoặc một unit đóng gói quản lý không cần trình khởi chạy thứ hai gắn vào. Hai tiến trình tranh nhau cùng các tuyến tạo ra giao diện trùng lặp, nhật ký rối và một đường hầm lên xuống liên tục vì những lý do không ai thấy. Bản sao thứ hai thường xuất hiện như cách vòng tránh vì bản đầu chậm.
Quyết định thành phần nào sở hữu đường hầm trước khi thêm bất cứ thứ gì. Sau đó gỡ trình khởi chạy kia thay vì tắt nó đi và hy vọng.
Chủ sở hữu cũng quyết định các lần thử lại và thông tin đăng nhập đến từ đâu, nên quyết định này đi trước mọi việc tinh chỉnh. Quyền sở hữu đi trước chính vì lý do đó.
Điều gì thực sự cần thứ tự
Thứ tự có thể chờ một địa chỉ đã cấu hình, và đó là tất cả những gì nó bảo đảm. network-online.target trì hoãn việc kích hoạt cho đến khi trình quản lý coi mạng đã lên, và định nghĩa đã lên phụ thuộc vào trình quản lý. Nó không nói gì về việc tên máy chủ VPN có phân giải hay không, trình lắng nghe có trả lời hay không, hoặc cổng chặn đã cho thiết bị vào hay chưa.
Đọc unit đã cài và mọi tệp drop-in trước khi thêm phụ thuộc. Một After= rộng trên mọi dịch vụ mạng làm chậm quá trình khởi động mà không thiết lập kết nối bạn thực sự cần.
Sắp thứ tự cho phụ thuộc bạn có thể kiểm tra, và kiểm mọi thứ còn lại bằng một phép dò mức sẵn sàng. Phép dò mở được đường hầm thắng một bộ hẹn giờ đoán mò.
Điều gì xảy ra sau khi đường hầm lần đầu lên
Khởi động chỉ là một sự kiện trong nhiều sự kiện. Đường truy cập thay đổi, phiên cổng hết hạn, đối tác khởi động lại. Hãy phân biệt kết nối lại nội bộ với việc tiến trình thoát do trình quản lý dịch vụ xử lý, vì hai thứ đó có chủ khác nhau và để lại bằng chứng khác nhau.
Xác thực tương tác hạn chế việc phục hồi không người trông. Một unit chạy nền không mở khóa chùm khóa trên máy tính để bàn và không trả lời yêu cầu MFA, nên hãy theo cách bố trí thông tin đăng nhập đã được phê duyệt cho ngữ cảnh dịch vụ.
Hãy quyết định riêng việc ứng dụng được làm gì khi đường hầm xuống. Thử lại khôi phục một kết nối, còn chính sách chặn quyết định xem lưu lượng trực tiếp có được phép trong khoảng đó hay không.