Làm cách nào để Windows Server DNS sử dụng tệp máy chủ để phân giải tên máy chủ cụ thể


18

[LƯU Ý: Giải pháp của câu hỏi này là hoàn hảo, bởi một cái gì đó đi lạc khỏi những gì tiêu đề chỉ ra.]

Tôi đang đối mặt với một vấn đề nhỏ với Windows Server 2003 DNS service. Trong công ty của tôi, tôi đang chạy máy chủ DNS của Microsoft ( 172.16.0.12) để thực hiện phân giải tên cho mạng nội bộ của công ty tôi (tên miền kết thúc bằng cách phân dev.nlsgiải IP 172.16 .. ) Và nó cũng được định cấu hình như một công cụ chuyển tiếp DNS để chuyển tiếp các tên miền khác ( ví dụ: * .google.com, * .sf.net) tới Internet real DNS servers. Máy chủ DNS nội bộ này không bao giờ có xu hướng phục vụ người dùng từ thế giới bên ngoài.

Và, chúng tôi đang chạy một máy chủ thư (phục vụ thư đến cho một miền Internet thực@nlscan.com ) trong tường lửa của công ty có thể được truy cập theo bất kỳ cách nào:

  1. bằng cách kết nối 172.16.0.10từ bên trong mạng nội bộ.
  2. bằng cách kết nối với mail.nlscan.com(được giải quyết 202.101.116.9) từ Internet.

Lưu ý rằng 172.16.0.10202.101.116.9không phải là cùng một máy vật lý. Các 202một là một cái máy firewall người làm cổng chuyển tiếp của cổng 25110địa chỉ mạng nội bộ 172.16.0.10.

Bây giờ câu hỏi của tôi: Nếu người dùng trong mạng LAN công ty muốn giải quyết mail.nlscan.com, nó sẽ giải quyết 202.101.116.9. Điều đó đúng và khả thi, NHƯNG KHÔNG TỐT, bởi vì lưu lượng thư đi đến máy tường lửa sau đó bị trả về 172.16.0.10. Tôi hy vọng rằng chúng tôi internal DNS servercó thể chặn tên mail.nlscan.comvà giải quyết nó thành 172.16.0.10. Vì vậy, tôi hy vọng rằng tôi có thể viết một mục trong tệp "hosts" 172.16.0.12để làm điều này. Nhưng, làm thế nào có thể Microsoft DNS servernhận ra tập tin "máy chủ" này?

Có thể bạn đề nghị, tại sao không có người dùng mạng nội bộ sử dụng 172.16.0.10để truy cập máy chủ thư của tôi? Tôi phải nói rằng nó bất tiện, giả sử một người dùng (nhân viên) làm việc trên máy tính xách tay của mình, ban ngày ở văn phòng và ban đêm ở nhà. Khi anh ấy ở nhà, anh ấy không thể sử dụng 172.16.0.10.

Tạo một vùng cho nlscan.comnội bộ của chúng tôi DNS serverlà không khả thi, vì máy chủ nlscan.comtên miền là trên ISP của chúng tôi và nó chịu trách nhiệm giải quyết các tên máy chủ và tên miền phụ khác trong nlscan.com.

[CHỈNH SỬA]

Theo WesleyDavidđề xuất, tôi làm theo giải pháp đơn giản là tạo một vùng được đặt tên mailserver.nlscan.comvà đặt một bản ghi A không tên trong vùng đó . Thời gian chứng minh điều này hoạt động tốt.


+1 vì đây chính xác là những gì tôi làm. Trình phân giải DNS nội bộ của tôi trỏ mail.example.com tới 192.168 ... mặc dù DNS chính của tôi trỏ mail.example.com tới IP internet của nó cho mọi người khác. Tôi muốn nghe bất kỳ nhược điểm nào về điều này.
Cory J

Xin chào, Cory, tôi sợ bạn không hiểu đúng sự thật. Giống như joeqwerty nói trong chủ đề này sau: Tệp máy chủ được sử dụng bởi thành phần trình phân giải máy khách DNS, không phải thành phần máy chủ DNS. Vì vậy, chỉnh sửa máy chủ lưu trữ trên 172.16.0.12 không giúp ích gì cho dịch vụ DNS của Microsoft.
Jimm Chen

Jun, bạn có thể đánh dấu một câu trả lời là được chấp nhận để những người khác sẽ biết giải pháp là gì. Mừng vì việc này giúp ích được cho bạn! =)
Wesley

Câu trả lời:


12

Phần sau của bài này là sai. Tôi rất ấn tượng, dựa trên một số thứ tôi đã đọc trên web (nếu là trên web, thì nó phải là sự thật!) Rằng một phần của các tác vụ của Windows DNS Server Service để tạo bộ đệm của nó cũng là tải tệp máy chủ của nó vào bộ nhớ cache cùng với dữ liệu vùng cục bộ của nó. Tôi đã tìm kiếm xung quanh và không thể tìm thấy bằng chứng cứng về điều này. Tôi đã thử nghiệm lý thuyết trên máy chủ Server 2008 R2 của riêng tôi và thấy rằng tệp máy chủ không được sử dụng để xây dựng Bộ đệm ẩn của Máy chủ DNS.

Tuy nhiên, tôi tin rằng tôi có một giải pháp thanh lịch hơn một chút đó là Massimo. Thay vì tạo một vùng có thẩm quyền cho toàn bộ vùng nlscan.com, chỉ cần tạo một vùng có tên mailserver.nlscan.com và đặt một bản ghi A không tên trong vùng đó. Bản ghi không tên Một bản ghi sẽ có cùng tên với chính khu vực đó và bạn có thể cung cấp cho nó địa chỉ IP mà bạn muốn. Tất cả các tên miền khác bên dưới nlscan.com cũng như nlscan.com sẽ tự giải quyết bằng DNS công cộng.

Tôi vừa thử nghiệm điều này trên máy chủ DNS Server 2008 R2 của riêng tôi và có thể khiến trang web của bạn tôi (nessus.nl) giải quyết thông qua các máy chủ DNS công cộng nhưng tên miền phụ cụ thể (blog.nessus.nl) giải quyết theo địa chỉ IP của Apple.com . Thử và chú ý tới nó nếu nó có thể giúp ích cho công việc của bạn.

Cũ hơn, sai bài bắt đầu:

Nếu sự hiểu biết của tôi là chính xác (EDIT: và không phải vậy), khi bộ đệm DNS được xây dựng trong máy Server 2003, nó sẽ lấy các mục từ tệp máy chủ cũng như dữ liệu vùng. Đặt 172.16.0.10 mailserver.nlscan.comvào tệp máy chủ của máy chủ 2003 của bạn sẽ giải quyết được vấn đề. Khởi động lại dịch vụ DNS của bạn sau khi thay đổi tệp máy chủ của bạn.

Sử dụng ipconfig / displaydns trên bất kỳ máy Windows nào (cụ thể là máy DNS Server 2003 của bạn) để xem các mục nhập tệp máy chủ của bạn. Ngoài ra, hãy nhớ rằng các phản hồi tiêu cực được lưu trong bộ nhớ cache của khách hàng, vì vậy hãy luôn chạy ipconfig / flushdns trên các máy khách mà bạn đang thử nghiệm. Nếu không, cuối cùng bạn sẽ lạm dụng chính mình đối với các đối tượng cứng khác nhau khi bạn tự hỏi tại sao khách hàng của bạn không thể giải quyết tên bạn vừa nhập vào tệp vùng / máy chủ lưu trữ. =)

Bạn đã thử điều này và thất bại?


2
DNS của Windows Server 2003 sẽ không sử dụng hoststệp để phân giải tên. Nó sẽ sử dụng dữ liệu riêng, chuyển tiếp hoặc truy vấn đệ quy, nhưng không phảihosts tệp cục bộ .
Massimo

@Massimo bạn nói đúng! Tôi đã thử nó và thất bại. Tuy nhiên, tôi nghĩ rằng tôi đã lấy gợi ý của bạn và đơn giản hóa nó hơn nữa để thanh lịch hơn một chút. Nói cho tôi biết bạn nghĩ gì.
Wesley

Đã xóa downvote :-)
Massimo

@Massimo TY. Và cảm ơn vì đã thúc đẩy tôi tự mình kiểm tra điều này. Tôi đã học được một điều mới. Luôn luôn vui vẻ. =)
Wesley

1
Tại sao bạn lại gặp rắc rối, có vẻ như là một giải pháp gọn gàng cho một vấn đề tôi gặp phải thường xuyên và nó đơn giản hơn nhiều so với việc thiết lập bóng cho toàn bộ khu vực internet (công cộng).
Helvick

3

Mong muốn có người dùng nội bộ nhận được IP nội bộ cho tài nguyên trong khi người dùng bên ngoài có được IP bên ngoài cho cùng các tài nguyên đó là phổ biến. Nó được gọi là DNS não chia. Bạn có một máy chủ DNS phải đối mặt với internet và một máy chủ DNS nội bộ khác cho người dùng cục bộ. Người dùng nội bộ sử dụng DHCP trên mạng của bạn và máy chủ DHCP của bạn mà bạn quảng cáo máy chủ DNS nội bộ. Khi người dùng của bạn ở xa văn phòng, máy chủ DHCP của họ sẽ gán họ cho máy chủ DNS sẽ chỉ biết về vùng bên ngoài.

Bạn dường như muốn chia DNS não mà không thực sự lưu trữ nội bộ khu vực. Bạn đề nghị rằng việc lưu trữ nội bộ khu vực này có vấn đề vì bạn không muốn người dùng nhận được IP nội bộ khi họ làm việc ở nhà nhưng điều đó không có ý nghĩa bởi vì khi họ ở nhà, họ sẽ nhận được IP từ một máy chủ DHCP khác điều đó sẽ không quảng cáo máy chủ DNS nội bộ của bạn. Nó sẽ quảng cáo máy chủ DNS của ISP họ sẽ chỉ biết về vùng bên ngoài của bạn và do đó sẽ chỉ cung cấp cho họ các địa chỉ IP bên ngoài.

Cuối cùng, tôi không nghĩ bạn sẽ thành công khi yêu cầu máy chủ DNS cung cấp bản ghi từ tệp máy chủ trên máy chủ DNS. Một máy chủ DNS phục vụ các bản ghi từ các tệp vùng của nó. Tệp máy chủ cục bộ trên máy chủ DNS đó truyền các mục vào bộ đệm cục bộ của máy khách cục bộ, chỉ áp dụng cho tra cứu trên máy đó. Những mục không được phục vụ bởi máy chủ DNS là một cơ chế khác.

Đọc lên DNS não tách - đó là cách bình thường để xử lý tình huống này.


"nhưng điều đó không có ý nghĩa" - xin lỗi, bạn hiểu sai ý tôi. Hiện tại, tôi dự định sẽ có nhân viên công ty tại nhà của họ để giải quyết mail.nlscan.com chính xác đến 202.101.116.9, nhưng không mong họ giải quyết một sốhhttevev.nls tại nhà (trừ khi tôi thiết lập máy chủ VPN). Và cảm ơn bạn đã chỉ ra DNS tách não. Vì tôi chỉ muốn một tinh chỉnh cho tên mail.nlscan.com trong mạng nội bộ của công ty tôi, nên việc thiết lập DNS tách não có thể không thuận tiện.
Jimm Chen

2

Wes: Tôi không chắc ai đã lừa bạn nhưng tôi muốn làm rõ việc sử dụng tệp máy chủ: Tệp máy chủ được sử dụng bởi thành phần trình phân giải máy khách DNS, không phải thành phần máy chủ DNS. Một mục trong tệp máy chủ trên máy chủ DNS sẽ được máy chủ DNS sử dụng khi nó hoạt động như một máy khách DNS. Chẳng hạn, một mục trong tệp lưu trữ của máy chủ DNS W2K8 của tôi như thế này:

1.1.1.1 test.test.com

được tải vào bộ đệm máy khách DNS của máy chủ DNS (không phải bộ đệm của máy chủ). Nếu tôi ping test.test.com từ máy chủ DNS của mình, nó sẽ trả về 1.1.1.1 như mong đợi. Nếu sau đó tôi chạy nslookup trên máy chủ DNS và yêu cầu nó cho test.test.com, nó sẽ trả về địa chỉ IP công khai chính xác đã đăng ký cho test.test.com vì thành phần máy khách DNS trên máy chủ DNS hiện đang yêu cầu thành phần máy chủ DNS giải quyết (giống như bất kỳ ứng dụng khách DNS nào khác). Đó là một ý tưởng khó hiểu để quấn lấy đầu bạn, nhưng máy chủ DNS cũng là máy khách DNS và khi thành phần máy khách DNS được gọi, nó hoạt động như mọi máy khách DNS khác thực hiện bằng cách xem bộ đệm của máy khách DNS của chính nó, bao gồm mọi mục nhập trước - được tải từ tập tin máy chủ. Chỉ khi thành phần máy khách DNS sử dụng thành phần máy chủ DNS (bằng cách truy vấn (các) máy chủ DNS được định cấu hình trong đó '

Bất kỳ máy khách DNS nào truy vấn máy chủ DNS sẽ luôn nhận được câu trả lời "thực" chứ không phải mục nhập máy chủ vì bộ đệm máy khách DNS của máy chủ DNS được sử dụng bởi chính máy chủ (dưới dạng máy khách DNS) chứ không phải bởi thành phần máy chủ DNS.


Các xét nghiệm và kết quả của bạn phản ánh chính xác nhiệm vụ của tôi chiều nay. Vì một số lý do, tôi nghĩ rằng tôi đã đọc rằng dịch vụ máy chủ DNS cũng sử dụng tệp máy chủ để tạo bộ đệm, không chỉ bộ giải. Chỉ cần gọi chúng tôi là Savage và Hyneman! =)
Wesley

Savage và Hyneman, đó là tuyệt vời! Nhưng ai là ai? Xin đừng nói với tôi rằng tôi phải trồng một bộ ria mép của hải mã và bắt đầu đội mũ nồi. ;)
joeqwerty

1

Theo tôi biết, không có cách nào để Windows DNS sử dụng hoststệp để xử lý phân giải tên; nhưng điều này là không cần thiết

Bạn có thể tạo một vùng trên máy chủ DNS nội bộ của mình một cách an toàn có cùng tên với vùng Internet công cộng; Điều gì sẽ xảy ra là, máy chủ của bạn sẽ xử lý các yêu cầu cho tên trong vùng đó bằng dữ liệu của chính nó, thay vì chuyển tiếp các yêu cầu đó đến các máy chủ tên có thẩm quyền cho vùng đó; điều này đôi khi được gọi là "đổ bóng", bởi vì nó làm cho khu vực công cộng "thực" không có sẵn cho máy khách nội bộ, thay vào đó trả lời bằng dữ liệu "giả mạo".

Điều bạn nên cẩn thận là, bạn nên điền vào vùng nội bộ này với tất cả các tên bạn sẽ cần, thậm chí sử dụng các địa chỉ IP công cộng khi cần thiết; mặt khác, khách hàng nội bộ sẽ không thể giải quyết các tên đó.

Giả sử khu vực công cộng của bạn trông như thế này:

www.nlscan.com    202.101.116.8
mail.nlscan.com   202.101.116.9

Bạn muốn khách hàng nội bộ giải quyết mail.nlscan.com là 172.16.0.10; không sao, vì vậy bạn tạo một vùng "nlscan.com" trên máy chủ DNS nội bộ của mình và đặt "mail.nlscan.com -> 172.16.0.10" vào đó.
Nhưng hiện tại, các máy khách nội bộ của bạn không thể giải quyết "www.nlscan.com", vì máy chủ cho rằng nó có thẩm quyền cho vùng đó, vì vậy nó sẽ không trả lời truy vấn (vì nó không biết về máy chủ đó), nhưng nó cũng sẽ không chuyển tiếp cho bất cứ ai.
Để giải quyết vấn đề này, bạn cần đặt "www.nlscan.com" bên trong khu vực nội bộ của bạn; nó có thể trỏ đến địa chỉ IP công cộng thực sự của nó nếu bạn muốn khách hàng của mình truy cập theo cách đó hoặc bạn có thể sử dụng cùng một chuyển hướng bạn đang sử dụng cho "mail.nlscan.com", nếu "www" cũng đang được tường lửa của bạn chuyển tiếp đến một số máy chủ nội bộ.
Nguyên tắc tương tự áp dụng cho bất kỳ tên trong khu vực.

Thiết lập này sẽ không có bất kỳ tác động nào đối với các máy khách bên ngoài hoặc bất kỳ người dùng nào tạm thời ở bên ngoài mạng của bạn, vì vùng "bóng tối" bên trong đó sẽ không bao giờ được nhìn thấy từ Internet.


Tôi không nghĩ bạn cần tạo một khu vực có thẩm quyền cho toàn bộ tên miền nlscan.com. Tôi nghĩ bạn có thể tạo một tên miền phụ: mailserver.nlscan.com và sau đó tạo một bản ghi A không tên. Xem bài viết của tôi để biết thêm chi tiết.
Wesley

Vâng, điều đó sẽ làm việc; và thực sự sẽ đơn giản hơn ... nếu bạn chỉ cần chuyển hướng một máy chủ duy nhất; nếu bạn cần chuyển hướng một số trong số họ, một vùng đầy đủ sẽ tốt hơn.
Massimo

thêm nlscan.com vào thư mục chuyển tiếp có điều kiện của bạn trong máy chủ DNS

1

Không bao giờ lưu trữ máy chủ lưu trữ, chỉ cần thêm một khu vực mới trong DNS mail.domain.com và thêm một máy chủ lưu trữ trong khu vực. để trống tên (nó sẽ tự động sử dụng tên của vùng) và nhập địa chỉ IP của máy chủ thư cục bộ ;-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.