Biểu tượng ứng dụng khách báo đã kết nối, giao diện mạng vẫn tồn tại, mà ứng dụng vẫn không truy cập được gì. Tình huống đó rất phổ biến, vì một giao diện ảo có thể vẫn hiện diện trong khi đầu bên kia, địa chỉ hoặc tuyến đường của nó đã biến mất. ip link là công cụ đầu tiên nên dùng, và cũng là công cụ dễ bị đọc quá mức nhất. Các cờ và bộ đếm chỉ mô tả một lớp, còn các lớp phía trên lại hỏng độc lập với nó. Đây cũng là công cụ người ta thường dẫn ra khi muốn chứng minh đường hầm đang hoạt động, trong khi đó chính là điều nó không thể tự chứng minh.

Đọc giao diện trước khi đọc biểu tượng

Bắt đầu với ip -details link show dev tun0 như được mô tả trong hướng dẫn ip-link, thay tên giao diện quy ước bằng giao diện mà ứng dụng khách của bạn thực sự sở hữu. Cờ, kiểu, MTU và danh tính giao diện là những quan sát hữu ích. Cách diễn đạt trạng thái của một giao diện ảo không nhất thiết phải hoạt động giống chỉ báo sóng mang của cáp vật lý, nên hãy coi UP là phát biểu về giao diện chứ không phải về đường hầm.

Sự khác biệt đó giải thích trường hợp khó hiểu nhất: một giao diện vẫn tồn tại trong khi phía đầu xa đang kết nối lại hoặc không thể tới được.

Các thiết lập duy trì có thể giữ liên kết lại đúng để lần kết nối lại không phải dựng lại nó, nghĩa là sự hiện diện không đồng nghĩa với sức khỏe.

Thêm bộ đếm và một yêu cầu đáng lẽ phải dùng chúng

Dùng chế độ xem thống kê được hỗ trợ, ip -s link show dev tun0, và ghi lại số gói cùng số byte theo cả hai chiều. Sau đó tạo một yêu cầu vô hại đáng lẽ phải đi qua giao diện này rồi so sánh chiều liên quan. Một yêu cầu đi theo tuyến trực tiếp của ứng dụng khác sẽ không làm các bộ đếm đó thay đổi, và đó chính là mục đích của bài kiểm tra.

Nếu bộ đếm truyền tăng mà bộ đếm nhận không tăng, gói tin đã đi ra mà không có gì quay về. Đó là vấn đề khác với một giao diện chưa từng chở gì cả. Nếu cả hai bộ đếm đều tăng mà ứng dụng vẫn lỗi, lỗi nằm ở tầng phía trên giao diện, và đó là tiến triển chứ không phải ngõ cụt.

Hãy đọc số liệu hai lần, một lần trước và một lần sau, thay vì tin vào một ảnh chụp duy nhất.

Địa chỉ và tuyến đường là hai bước riêng

Một liên kết có thể tồn tại mà thiếu tiền tố, thiếu cấu hình phân giải tên hoặc thiếu tuyến đường mà ứng dụng cần. Kiểm tra địa chỉ bằng ip address show dev tun0, rồi kiểm tra tuyến nào đích sẽ chọn bằng ip route get cho mục tiêu thực tế. Ba quan sát đó trả lời ba câu hỏi khác nhau, và chỉ quan sát cuối là về chuyển tiếp.

Với IPsec, chính sách bảo mật và trạng thái liên kết bảo mật cũng có thể quan trọng, và không phải thiết kế IPsec nào cũng hiện ra dưới dạng một giao diện tun đơn giản. Đi tìm một thiết bị tun vốn không bao giờ tồn tại là cách nhanh nhất để kết luận sai.

Hãy ghi lại tên chính xác, không gian tên và thời điểm cùng với mọi kết quả bạn giữ lại, vì một cái tên trông giống hệt trong container khác hoặc trong phiên đã khôi phục lại đại diện cho một ngữ cảnh hoàn toàn khác.

Đừng xóa thứ bạn chưa xác định được

Một giao diện lạ không mặc nhiên là cũ. Hãy xác định chủ của nó trước khi xóa bất cứ thứ gì, và dùng quy trình gỡ bỏ được ghi trong tài liệu của ứng dụng khách hoặc cấu hình được quản lý khi bạn thực sự muốn xóa. Xóa một đường hầm đang chạy để xem điều gì xảy ra là phép thử trả lời một câu hỏi không ai đặt ra.

Nếu giao diện thuộc về một runtime container hoặc một không gian tên mạng mà bạn không tạo ra, chủ của nó chỉ cách một lệnh và đáng để tìm trước.

Lời cảnh báo đó cũng áp dụng cho ip link set down, thao tác trông có vẻ đảo ngược được nhưng thường là không.

Cuộc kiểm tra nên để lại cho bạn điều gì

Một cuộc kiểm tra tốt kết thúc bằng bốn dữ kiện: tên giao diện và không gian tên, các cờ và MTU của nó, mức tăng bộ đếm từ một yêu cầu thật, cùng tuyến đường và địa chỉ mà ứng dụng thực sự cần. Khi đã ghi lại những điều đó, bước tiếp theo trở nên rõ ràng và thuộc về một tầng cụ thể. Không có chúng, mọi thay đổi sau đó chỉ là phỏng đoán kèm một kế hoạch hoàn tác.

Hãy so sánh bốn dữ kiện đó với đúng bốn dữ kiện từ một phiên đang hoạt động tốt. Nếu tên giao diện và không gian tên khớp nhau nhưng mức tăng bộ đếm bằng không, yêu cầu chưa bao giờ tới được đường hầm. Nếu mức tăng bộ đếm lành mạnh mà tuyến đường lại trỏ đi nơi khác, đường hầm vẫn ổn còn định tuyến thì không. Chính sự so sánh đó biến một đống kết quả thành một quyết định.

Hãy lưu kết quả cùng phiếu sự cố, vì việc so sánh về sau chỉ hữu ích khi bạn thấy được điều gì đã thay đổi.

Sau đó hãy khép vòng bằng cách thử lại ứng dụng, vì giao diện chưa bao giờ là thứ người dùng quan tâm.

Bài viết liên quan