Bộ phân tích đánh dấu một gói là có checksum sai, và một tệp đã tải xuống trông không đúng, nên hai quan sát được ghép thành một câu chuyện duy nhất về hỏng dữ liệu trên VPN. Đây là những phép đo khác nhau được thực hiện ở những điểm khác nhau. Một phép mô tả điều mà cơ chế ghi nhận đã thấy trước khi bộ điều hợp mạng hoàn tất công việc; phép kia mô tả các byte mà ứng dụng đã lưu. Xác định phép nào thực sự đã thay đổi chính là toàn bộ chẩn đoán.

Bản ghi nằm ở đâu so với bộ điều hợp

Ghi nhận gói là một ảnh chụp tại một điểm trên đường đi có nhiều phép biến đổi. Giữa ngăn xếp máy chủ và dây dẫn là phân đoạn, tính checksum và, khi nhận, hợp nhất. Một điểm ghi nhận cho thấy trạng thái tại thời điểm đó, hiếm khi trùng khớp với khung cuối cùng trên dây. Đọc nó như thể đó chính là dây dẫn chính là cách một trường giữ chỗ biến thành lời buộc tội.

Vì vậy câu hỏi hữu ích về bất kỳ trường đáng ngờ nào không phải là nó trông có sai không, mà là nó được quan sát ở đâu. Ghi cạnh phát hiện giao diện ghi nhận, phiên bản bộ phân tích và lớp gói; thiếu ba thứ đó thì nhãn checksum hoàn toàn không thể diễn giải.

Offload khi truyền làm gì với một vết

Khi bật offload checksum khi truyền, bộ điều hợp tính checksum và điền vào trường sau khi máy chủ đã đưa gói vào hàng đợi. Do đó bản ghi phía máy chủ ghi lại một giá trị giữ chỗ, và bộ phân tích báo cáo một checksum mà dây dẫn chưa bao giờ mang. Offload phân đoạn tạo ra một hiện tượng nhân tạo tương tự, vì máy chủ có thể trao cho bộ điều hợp một bộ đệm lớn duy nhất mà sau này thành nhiều khung.

Tài liệu tham khảo về offload của Wireshark mô tả cả hai hiệu ứng và lưu ý rằng việc nhận ra checksum một phần phụ thuộc vào phiên bản bộ phân tích và loại gói. Đó là lý do một công cụ ghi nhận cũ hơn và một công cụ mới hơn có thể bất đồng về cùng một vết trong khi cả hai đều đọc đúng.

Đóng gói thêm một đối tượng thứ hai

VPN chèn một gói thứ hai vào bức tranh. Giao diện đường hầm hiển thị gói bên trong mà ứng dụng thực sự đã gửi, trong khi giao diện vật lý hiển thị kết nối bên ngoài đã đóng gói mang nó. Một checksum hay độ dài lấy từ gói bên trong không thuộc về khung bên ngoài, và so sánh hai thứ như thể chúng mô tả cùng một đối tượng tạo ra vô nghĩa.

Khi cần so sánh, hãy so sánh cái tương đương: bên trong với bên trong, bên ngoài với bên ngoài, tại cùng một điểm trên đường đi. Một cặp trường không khớp chỉ chứng minh rằng hai đối tượng khác nhau đã được đo. Ghi lại mỗi vết đến từ giao diện nào, vì một bản ghi đường hầm trông sạch sẽ không nói gì về những gì bộ điều hợp đã phát ra.

Chứng minh tính toàn vẹn của tệp bằng hash

Đối với chính tệp, hãy tính hash nội dung từ một nguồn có thể tái tạo và từ kết quả đã lưu, rồi so sánh các bản tóm tắt. Điều đó trả lời một câu hỏi khác với bất kỳ nhãn nào theo từng gói, và trả lời về đối tượng mà người dùng thực sự quan tâm.

sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head

Các bản tóm tắt bằng nhau đóng lại câu hỏi hỏng dữ liệu cho lần truyền đó. Các bản tóm tắt khác nhau mở ra một câu hỏi hẹp hơn: tìm giai đoạn sớm nhất nơi các byte phân kỳ, và kiểm tra xem có gì đã biến đổi tệp có chủ ý không. Một lần lưu một phần, một tệp đính kèm được mã hóa lại và một trang lỗi được lưu dưới tên tệp mong đợi đều thay đổi byte mà không có bất kỳ khiếm khuyết mạng nào.

Khoanh vùng một đường của bộ điều hợp mà không biến nó thành vĩnh viễn

Với một sự cố tái lập được đi theo một dock hoặc bộ điều hợp duy nhất, hãy giữ cố định hồ sơ VPN, ứng dụng, đối tượng thử nghiệm và đích đến, rồi lặp lại việc truyền qua một giao diện thay thế được hỗ trợ. Một kết quả thay đổi theo bộ điều hợp sẽ khoanh vùng lỗi vào đường đó; nó chưa xác định một thiết lập trình điều khiển và chưa chứng minh khiếm khuyết của toàn bộ kiểu máy.

Tắt offload trên toàn cục là một phép thử hấp dẫn và một giá trị mặc định tồi. Một thiết lập cho toàn bộ máy chủ ảnh hưởng đến lưu lượng vượt xa thử nghiệm và có thể mang chi phí hiệu năng thực sự, vì vậy hãy coi mọi thay đổi như vậy là tạm thời, ghi lại và hoàn tác. Hãy dùng chẩn đoán được nhà sản xuất hỗ trợ trước khi giữ lại một cách xử lý vay mượn từ máy khác.

Báo cáo nên nêu rõ kết quả nào trong ba kết quả đã thay đổi: cách bộ phân tích diễn giải một gói, các byte đã hoàn tất của ứng dụng, hay khả năng tái lập của một đường bộ điều hợp. Chúng dẫn đến ba hành động tiếp theo khác nhau, và chỉ một trong số đó liên quan đến mã hóa.

Bài viết liên quan