Lỗi DNS hay vấn đề MTU? Yêu cầu thực sự dừng ở đâu
Một tên không bao giờ được phân giải sẽ thất bại trước mọi kết nối; tắc nghẽn MTU bắt đầu sau bắt tay. Trước tiên hãy tìm giai đoạn, sau đó đổi một lớp và kiểm tra lại.
Hai lỗi cho người dùng cùng một câu: trang không hoạt động. Chúng xảy ra trên các lớp khác nhau, và sự khác biệt đó quyết định bạn sẽ đổi gì. Lỗi phân giải tên dừng lại trước khi có bất kỳ kết nối nào. Lỗi kích thước gói xảy ra sau khi tên đã được phân giải và sau khi bắt tay hoàn tất, vì vậy trang bắt đầu tải rồi bị treo. Tìm giai đoạn trước khi tìm cài đặt.
Hai lỗi trên hai lớp khác nhau
Phân giải biến một tên thành địa chỉ, và không gì khác trong kết nối có thể bắt đầu cho đến khi việc đó thành công. Các vấn đề MTU của đường đi xảy ra muộn hơn, khi một gói lớn hơn giới hạn của một liên kết nào đó bị loại bỏ và bên gửi không bao giờ được thông báo. Một là tra cứu; còn lại là lỗi phân phối chỉ xuất hiện trên một kích thước nhất định.
Các triệu chứng khác nhau theo cách bạn có thể quan sát mà không cần công cụ nào. Lỗi DNS tức thời và nhất quán: trình duyệt nói không tìm thấy máy chủ. Lỗi MTU là một phần: trang bắt đầu, một số tài nguyên đến, và một phản hồi lớn hoặc một lần tải lên bị treo.
Nếu triệu chứng của bạn là một phần, hãy ngừng nhìn vào DNS.
Giai đoạn 1: tên có được phân giải không
Dùng công cụ tra cứu của nền tảng với đúng tên máy chủ mà ứng dụng sử dụng. Một tên riêng trong văn phòng có thể cần trình phân giải nội bộ, và DNS bảo mật riêng của trình duyệt có thể hoạt động khác với trình phân giải của hệ điều hành, nên cả hai có thể không thống nhất về cùng một tên.
Hỏi trình phân giải mà hệ điều hành sẽ dùng, rồi so sánh:
dig +short vpn.example.com
dig +short vpn.example.com @10.0.0.53
Nếu phân giải thất bại, vấn đề nằm ở chính sách đó và khả năng tiếp cận của nó. Đừng gửi tên riêng đến các trình phân giải công cộng tùy tiện chỉ để có một so sánh, vì chính việc so sánh sẽ làm lộ những tên bạn muốn giữ nội bộ.
Giai đoạn 2: quá trình truyền dừng ở đâu
Nếu tên được phân giải và kết nối bắt đầu, hãy ghi lại nơi thao tác dừng. Một trang hiển thị rồi treo ở một tài nguyên, một lần tải lên chết ở một điểm cố định, hay một lần tải xuống lớn không bao giờ xong trong khi các yêu cầu nhỏ vẫn chạy — tất cả đều là triệu chứng có hình dạng kích thước. Một phản hồi không bắt đầu có hình dạng khác.
Giữ điểm cuối và đích của ứng dụng cố định khi so sánh, nếu không bạn đang đo hai biến cùng lúc. Các nguyên nhân khác vẫn có thể xảy ra ở giai đoạn này: lỗi dịch vụ, mất mát, hành vi của bộ lọc và việc đường hầm kết nối lại đều tạo ra tắc nghẽn.
Một tắc nghẽn lặp lại đáng giá hơn mười câu chuyện.
Vì sao MTU chỉ gây hại sau bắt tay
Bắt tay TCP dùng các gói nhỏ, nên nó thành công trên đường đi không thể mang một phân đoạn đầy đủ. Lỗi xuất hiện khi bên gửi phát ra một gói lớn với bit cấm phân mảnh, một liên kết loại bỏ nó, và thông điệp ICMP lẽ ra báo giới hạn không bao giờ đến vì bộ lọc đã ăn mất. Sau đó bên gửi thử lại đúng kích thước đó và quá trình truyền bị treo.
Vì thế triệu chứng phụ thuộc kích thước và lặp lại chứ không ngẫu nhiên. Điều này cũng giải thích vì sao ping tới máy chủ không chứng minh gì, vì một tiếng dội ICMP nhỏ có thể đi qua đường không mang tải trọng đầy đủ. Hãy đo kích thước từ hai đầu đường đi nếu có thể. Một giới hạn chỉ xuất hiện theo một hướng là bất đối xứng định tuyến chứ không phải MTU của đường hầm.
Đo kích thước một cách rõ ràng thay vì suy đoán:
ping -M do -s 1472 203.0.113.20
tracepath 203.0.113.20
Đổi một lớp, rồi chứng minh
Với tên, hãy đổi chính sách của trình phân giải và chạy lại đúng tra cứu đó. Với kích thước, hãy dùng quy trình MTU với các giá trị gốc được ghi lại và sẵn sàng quay lại, vì giới hạn MSS mà không biết MTU thực của đường hầm chỉ đổi một tắc nghẽn lấy một tắc nghẽn khác.
Một trang chỉ tải được một lần sau khi đổi vài cài đặt không chỉ ra đâu là bản sửa. Hãy đổi một thứ, chạy lại đúng bài kiểm tra đó, và giữ kết quả bên cạnh giai đoạn thất bại đầu tiên bạn đã ghi.
Chính bản ghi đó ngăn DNS, kích thước gói và xác thực biến thành một đống lối vòng vĩnh viễn mà không ai giải thích được. Thử bằng IP thô là ví dụ tốt về một lối tắt làm thay đổi danh tính TLS, và việc tắt kiểm tra chứng chỉ để phép so sánh thành công không phải là chẩn đoán.