Unit đỏ, giao diện vẫn tồn tại và đường hầm phần lớn vẫn chạy, đây là tổ hợp khó hiểu nhất. Việc thiết lập là một chuỗi: giao diện được tạo trước, rồi đến địa chỉ, tuyến đường, thiết lập bộ phân giải và mọi lệnh móc nối. Thất bại ở bước thứ tư để lại ba bước đầu tại chỗ, nên tên giao diện là bằng chứng quá trình khởi động đã bắt đầu, không phải đã kết thúc. Một dữ kiện nữa sẽ giúp tránh sự mơ hồ: bước đã thất bại.

Trạng thái dở dang là thất bại bình thường

Hành vi đó nên được chờ đợi thay vì coi là hỏng hóc. Giao diện là phần rẻ nhất của quá trình thiết lập và dễ bị bỏ lại nhất, và nó cũng là phần khiến máy trông như đang chạy dở.

Điều chưa tồn tại là mọi thứ đến sau bước thất bại. Nếu thất bại ở giai đoạn bộ phân giải, địa chỉ và tuyến đường có mặt còn DNS thì không. Nếu là tuyến đường, đường hầm có địa chỉ và không có lối đi xuyên qua.

Kết quả là một máy trả lời một số phép thử và thất bại ở số khác, nên người ta kết luận dịch vụ chập chờn trong khi nó chưa bao giờ khởi động thành công. Một dịch vụ chưa bao giờ hoàn tất thì không thể chập chờn. Nó chỉ có thể thất bại lặp lại vì cùng một lý do.

Tìm bước thất bại đầu tiên

Đọc nhật ký của unit chứ không chỉ trạng thái hiện tại, và đọc từ đầu lần chạy thất bại. Dòng cuối cho mã thoát; lỗi đầu tiên cho biết cần sửa gì.

Các lệnh này in trạng thái unit, nhật ký khởi động của unit đó và trạng thái trực tiếp của đường hầm:

systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0

Lỗi bộ phân giải, tuyến đường đã tồn tại, móc nối thoát với mã khác không và lỗi phân tích cấu hình đều xuất hiện trong cửa sổ đó, và mỗi thứ nêu tên thành phần của nó. Đoán chỉ từ trạng thái giao diện là bỏ qua toàn bộ thông tin đó.

Ba điều kiện quyết định việc sửa chữa

Quyết định xem bạn đang dọn dẹp, sửa tại chỗ hay gỡ unit khỏi đường khởi động, và quyết định trước khi gõ bất cứ thứ gì.

Nếu giao diện hỏng nhưng cấu hình đúng, hãy dọn dẹp và bắt đầu lại. Nếu cấu hình sai, hãy sửa nó và vẫn dọn dẹp trước, vì khởi động trình quản lý thứ hai trên trạng thái dở dang tạo ra hai chủ sở hữu cho một giao diện. Nếu thất bại là thành phần hệ thống thiếu như trợ giúp bộ phân giải mà máy không có, hãy cài hoặc gỡ phụ thuộc một cách có chủ đích thay vì sửa unit cho đến khi nó thôi phàn nàn.

Ba trường hợp đó bao phủ phần lớn những gì trông như một unit đỏ bí ẩn. Câu hỏi phân biệt là liệu cùng thất bại đó có xảy ra trên máy có trạng thái sạch hay không, và câu trả lời thường đến từ dòng lỗi đầu tiên.

Dọn dẹp trước khi thử lại

Thử lại trên trạng thái sẵn có có thể thất bại vì lý do mới và che mất lý do ban đầu. Hạ giao diện bằng chính công cụ đã tạo ra nó, rồi xác nhận không còn gì sót lại.

Đừng xóa giao diện không liên quan và đừng đặt lại ngăn xếp mạng của máy chủ. Cả hai đều là hành động lớn để sửa một đối tượng nhỏ, và chúng biến một đường hầm thất bại thành một máy mà các kết nối khác phải thiết lập lại. Phạm vi đúng là một giao diện và unit sở hữu nó. Bất cứ điều gì rộng hơn đều cần lý do được ghi lại trước khi xảy ra.

Chứng minh đường hầm, không phải unit

Unit xanh nghĩa là chuỗi khởi động thoát với số không. Điều đó không có nghĩa là một gói tin đã đến phía bên kia, cũng không có nghĩa bộ phân giải được đặt như bạn định.

Gửi một yêu cầu qua đường hầm và đọc trạng thái đã tạo ra nó:

systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.net

Một cái bắt tay không có trả lời vẫn cho bạn biết đường hầm đã hình thành và phía xa đang im lặng, đó là vấn đề khác với một unit chưa bao giờ khởi động. Giữ trạng thái unit, cái bắt tay và kết quả yêu cầu trong một bản ghi, vì chúng thất bại độc lập và chỉ sự kết hợp mới mô tả hệ thống.

Bài viết liên quan