Rò rỉ DNS qua VPN trên Windows: vì sao chỉ số thắng tuyến đường
Windows chọn trình phân giải theo chỉ số giao diện, không chỉ theo tuyến đường. Một bộ điều hợp đường hầm xếp dưới Wi-Fi có thể làm rò rỉ truy vấn trong khi mọi gói tin vẫn đi qua đường hầm.
Một truy vấn rời khỏi máy và tới bộ định tuyến trong nhà trong khi mọi gói tin đang được đóng đường hầm. Kết luận tự nhiên là thiếu tuyến đường, và tuyến đường thường vẫn ổn. Windows có thể chọn trình phân giải của giao diện nào để hỏi dựa trên chỉ số giao diện, và bộ điều hợp đường hầm thường thua so sánh đó trước giao diện không dây.
Hai cách giải thích cho một rò rỉ
Cách giải thích theo tuyến đường nói rằng một phần lưu lượng đang thoát khỏi đường hầm, nên tuyến mặc định hoặc danh sách chia đường hầm hẳn là sai. Cách giải thích đó kiểm tra được bằng một lệnh, và khi tuyến mặc định trỏ vào trong đường hầm thì xong việc. Hãy kiểm tra trước vì nó rẻ, rồi gác lại khi kết quả trở về sạch.
Cách giải thích theo thứ hạng nói rằng lưu lượng hoàn toàn nằm trong đường hầm và truy vấn vẫn được gửi tới trình phân giải khác. Windows coi việc chọn trình phân giải là thuộc tính theo từng giao diện có thứ tự, nên một bộ điều hợp vật lý có chỉ số tốt hơn vẫn có thể cung cấp DNS cho một tên dù các gói tin tới địa chỉ đã phân giải đi qua đường hầm. Cả hai cách giải thích cho cùng một triệu chứng trên trang kiểm tra rò rỉ, vì thế phép thử không phải là chẩn đoán. Chỉ một trong hai được sửa bằng cách sửa tuyến đường.
So sánh chỉ số và trình phân giải cùng lúc
Ghi lại các giao diện, chỉ số của chúng và các máy chủ đã cấu hình khi đường hầm đang bật. Đọc chúng như một bảng chứ không phải hai danh sách riêng, vì câu hỏi là trình phân giải nào đứng trước, không phải có những trình phân giải nào.
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object InterfaceMetric | Select-Object InterfaceIndex, InterfaceAlias, InterfaceMetric
Get-DnsClientServerAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, ServerAddresses
Nếu bộ điều hợp đường hầm mang số cao hơn bộ điều hợp vật lý, trình phân giải của nó không được ưu tiên, và một tên nội bộ sẽ đi tới thứ mà phía vật lý cung cấp. Bộ định tuyến đó có thể trả lời từ bộ nhớ đệm, chuyển tiếp truy vấn hoặc từ chối, và không kết quả nào trong số đó là thiết kế bạn định làm. Thứ hạng là một sở thích, nên nó thua trong im lặng thay vì báo lỗi.
Một bộ điều hợp đường hầm không cấu hình trình phân giải nào là biến thể phổ biến không kém. Ứng dụng khách bật giao diện mà không đẩy DNS, nên câu hỏi về thứ hạng thậm chí không xuất hiện.
Nâng đường hầm lên và kiểm tra lại
Hãy gán cho giao diện đường hầm chỉ số thấp nhất, hoặc tăng giá trị của bộ điều hợp vật lý, trong một shell có quyền nâng cao. Cả hai đều là thiết lập theo giao diện và cả hai đều có thể hoàn tác, điều này quan trọng khi bạn thay đổi một máy mà có thể bạn không ngồi trước nó.
Set-NetIPInterface -InterfaceIndex 27 -InterfaceMetric 1
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object InterfaceMetric
Thay đổi hiện ra ngay, và ứng dụng khách DNS cùng những bên tiêu thụ khác lưu đệm lựa chọn họ đã thực hiện. Hãy kết nối lại đường hầm, hoặc khởi động lại, trước khi đọc bất cứ điều gì từ kết quả truy vấn. Một phép thử chạy quá sớm sẽ tái hiện hành vi cũ và trông như một bản sửa lỗi thất bại.
Sau đó hỏi một tên nội bộ và một tên công khai rồi xem máy chủ nào trả lời. tài liệu tham khảo về chỉ số tự động của Microsoft giải thích vì sao giá trị thấp nhất được ưu tiên và việc gán tự động được suy ra thế nào.
Làm cho nó bền qua lần kết nối lại
Chỉ số đặt tay trên một bộ điều hợp được tạo lại mỗi lần kết nối là thiết lập sẽ biến mất. Nếu ứng dụng khách dựng lại giao diện, phần ghi đè này cần một script sau kết nối, một chính sách hoặc một cấu hình ứng dụng khách nắm DNS trong suốt thời gian kết nối.
Các máy chủ được cấu hình tĩnh trên bộ điều hợp vật lý gặp đúng vấn đề độ bền đó theo chiều ngược lại. Chúng tiếp tục trả lời cho giao diện đó cho tới khi bị gỡ, và DHCP sẽ nạp lại chúng từ hợp đồng thuê tiếp theo, nên gỡ chúng là một phép đo chứ không phải thiết kế. Thiết kế bền vững là một chính sách phân giải tên cho không gian tên nội bộ, hoặc một ứng dụng khách nhận quyền quản lý DNS trong suốt thời gian kết nối. Dù thế nào, hãy ghi lại danh sách trình phân giải trước và sau khi kết nối lại, khôi phục chỉ số ban đầu khi kết thúc kiểm tra, và xác nhận rằng hành vi cũ đã trở lại.