Hai máy chủ DNS trên một bộ điều hợp không chia không gian tên
Liệt kê hai trình phân giải trên một bộ điều hợp không cấp cho mỗi miền thẩm quyền riêng. Tạo hai quy tắc có phạm vi, kiểm tra lựa chọn và xóa đúng hai quy tắc đó.
Liệt kê hai trình phân giải trên một bộ điều hợp trông giống một cách gửi một miền đến một máy chủ và miền khác đến máy chủ còn lại, và không có gì trong danh sách trình phân giải hoạt động như vậy. Windows phân giải theo tên, và quyết định hỏi máy chủ nào đến từ các đối tượng chính sách chứ không phải từ danh sách địa chỉ có thứ tự. Mô hình tinh thần cần thay thế là hàng đợi: không có máy chủ đầu tiên cho miền A và máy chủ thứ hai cho miền B. Có một bộ quy tắc cho mỗi không gian tên nêu tên máy chủ một cách rõ ràng, và khi những quy tắc đó tồn tại, danh sách bộ điều hợp không còn thú vị nữa.
Huyền thoại: hai địa chỉ chia hai miền
Niềm tin này tồn tại vì nó tình cờ hoạt động khi một máy chủ trả lời mọi thứ và máy chủ thứ hai chỉ là dự phòng. Máy khách hỏi máy chủ đầu tiên, máy chủ đó chuyển tiếp hoặc đệ quy, và câu trả lời đến; không ai để ý trình phân giải nào thực sự giữ vùng. Ảo ảnh vỡ ra vào lúc hai không gian tên sống trong các vùng riêng biệt tách rời mà không có chuyển tiếp giữa chúng, vì khi đó máy chủ đầu tiên trả lời với thẩm quyền rằng tên không tồn tại. Câu trả lời phủ định từ máy chủ đầu tiên không kích hoạt dự phòng, vì máy khách nhận được câu trả lời dứt khoát chứ không phải sự cố.
Danh sách có thứ tự không có khái niệm miền, nên nó không thể diễn đạt ý định. Điều danh sách thực sự kiểm soát là máy chủ nào được hỏi trước và máy chủ nào được thử thứ hai, và cả hai câu trả lời đều áp dụng như nhau cho mọi tên.
Windows thực sự dùng gì để chọn
Bảng Chính sách Phân giải Tên khớp tên với các không gian tên đã cấu hình và chọn máy chủ cùng tùy chọn cho sự khớp đó. Quy tắc có thể được cấu hình cục bộ, phân phối qua Chính sách Nhóm hoặc cung cấp bởi hồ sơ VPN, và chính sách hiệu lực là sự kết hợp chứ không phải một danh sách. Đó là lý do chẩn đoán đầu tiên luôn là trạng thái hiệu lực: một quy tắc tạo cục bộ nhưng thua chính sách được quản lý sẽ tạo ra phòng thí nghiệm hành xử hoàn toàn khác với cấu hình của nó. Quy tắc cũng được khớp theo độ đặc hiệu, nên một mục không gian tên rộng có thể che khuất một mục hẹp theo những cách không thấy được trong danh sách các mục đã cấu hình. Đọc thứ tự hiệu lực là cách duy nhất để biết quy tắc nào thắng.
Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective
Lệnh đầu tiên liệt kê những gì được cấu hình trên máy; lệnh thứ hai hiển thị những gì máy khách thực sự sẽ áp dụng, kể cả các mục đến từ nơi khác. Nếu đầu ra hiệu lực chứa không gian tên được quản lý, chủ sở hữu chính sách đó là nơi đúng để yêu cầu thay đổi, không phải danh sách quy tắc cục bộ. Cả hai lệnh chỉ đọc trạng thái, nên chạy chúng trước khi ai đó đồng ý thay đổi không tốn gì.
Một quy tắc cho mỗi không gian tên, giữ lại đối tượng
Khi đã hiểu trạng thái hiệu lực, hãy tạo một quy tắc cho mỗi không gian tên và giữ lại đối tượng mà mỗi lệnh trả về. Tên hiển thị là nhãn cho con người, và mã định danh duy nhất trong đối tượng trả về sau đó là mục tiêu xóa đáng tin cậy. Ghi cả hai mã định danh vào cùng ghi chú thay đổi ghi lại không gian tên và trình phân giải, vì phiên đã tạo chúng sẽ không phải phiên dọn dẹp.
$svcRule = Add-DnsClientNrptRule -Namespace ".svc.internal.example" -NameServers "10.60.0.53" -DisplayName "VPN lab services" -PassThru
$resRule = Add-DnsClientNrptRule -Namespace ".research.internal.example" -NameServers "10.61.0.53" -DisplayName "VPN lab research" -PassThru
$svcRule | Select-Object Name, Namespace, NameServers
$resRule | Select-Object Name, Namespace, NameServers
Dấu chấm ở đầu biểu thị khớp hậu tố, nên quy tắc bao gồm app.svc.internal.example và mọi thứ bên dưới. Hai địa chỉ ở đây thuộc kế hoạch định tuyến của chính phòng thí nghiệm này; một quy tắc không tạo vùng, không cài tuyến và không cấp quyền cho ứng dụng cuối cùng kết nối, và tài liệu tham chiếu Add-DnsClientNrptRule ghi lại chính xác tham số nào làm gì.
Hãy để ý những gì các lệnh này không làm: chúng áp dụng cho toàn máy, không giới hạn trong phiên VPN, và tồn tại sau khi đóng cửa sổ. Một phòng thí nghiệm quên điều này sẽ để lại chính sách sau khi đường hầm biến mất.
Chứng minh rằng máy khách đã chọn máy chủ
Hỏi một máy chủ cụ thể xem nó có biết một tên hay không chứng minh máy chủ đó có thể trả lời, điều này không phải là cùng một khẳng định với việc máy khách đã chọn máy chủ đó. Phép thử quan trọng phân giải một tên thật qua đường đi thông thường của máy khách rồi xác nhận trình phân giải nào đã xử lý nó, lý tưởng nhất là khi đường hầm cung cấp tuyến đang hoạt động. Nếu đường hầm đã xuống, một quy tắc có phạm vi đúng vẫn trỏ tới máy chủ không thể tới, và đó là vấn đề định tuyến chứ không phải chính sách. Hãy thử cả hai trạng thái để sau này có thể phân biệt.
Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile
Hãy chú ý các câu trả lời được lưu trong bộ nhớ đệm từ giai đoạn trước khi có quy tắc và các ứng dụng bỏ qua hoàn toàn trình phân giải của hệ thống bằng DNS mã hóa riêng. Hậu tố tìm kiếm là một tính năng riêng khác: một quy tắc có thể chọn trình phân giải cho tên đầy đủ mà không dạy Windows mở rộng tên máy chủ trần vào không gian tên đó.
Xóa đúng những gì bạn đã tạo
Dọn dẹp là nơi một phòng thí nghiệm trở thành câu chuyện cảnh báo. Xóa mọi quy tắc trên máy thì nhanh và gỡ bỏ chính sách mà người khác phụ thuộc vào, vì vậy hãy dùng các mã định danh được ghi lại khi tạo quy tắc, rồi đọc lại trạng thái hiệu lực để xác nhận máy đã trở về nơi bắt đầu. Nếu phiên đã tạo chúng không còn, ghi chú thay đổi là nơi duy nhất có các mã định danh. Đó là lý do chúng được ghi lại trước khi lệnh đầu tiên chạy, chứ không phải sau đó.
Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective
Đối với triển khai chứ không phải phòng thí nghiệm, câu hỏi về vòng đời quan trọng ngang với quy tắc. Hồ sơ VPN có thể mang các quy tắc không gian tên và chọn xem chúng có tồn tại sau kết nối hay không; một quy tắc tồn tại trong khi trình phân giải không thể tới sẽ khiến máy khách ưu tiên một máy chủ đã chết, và một quy tắc giới hạn trong kết nối sẽ biến mất khi đường hầm biến mất. Hãy quyết định hành vi nào dịch vụ cần, đánh dấu ai sở hữu quy tắc, và để việc phân chia thẩm quyền được ghi lại bên cạnh hồ sơ chứ không phải trong ký ức của ai đó về một phòng thí nghiệm.