Độ trễ 10 giây cho .local TLD trong Mac OS X Lion


13

Mạng công ty chúng tôi sử dụng xxx.companyname.localcho tất cả các máy chủ trên mạng cục bộ của chúng tôi. Bất cứ khi nào tôi truy cập vào một trong những máy chủ này trên máy Mac của mình, tôi sẽ bị trễ 10 giây. Tôi đã phát hiện ra rằng sự chậm trễ này là do tra cứu DNS, vì rõ ràng Lion giải quyết các tên miền .local theo thứ tự sau:

  1. kiểm tra /etc/hostsđịa chỉ IPv6
  2. kiểm tra máy chủ DNS để biết bản ghi AAAA (địa chỉ IPv6)
  3. kiểm tra qua MDNS (Bonjour) để biết bản ghi AAAA
  4. kiểm tra /etc/hostsđịa chỉ IPv4
  5. kiểm tra máy chủ DNS để biết bản ghi A (địa chỉ IPv4)
  6. kiểm tra MDNS cho bản ghi

Bây giờ, vấn đề là, chúng tôi không có mạng IPv6. Tất cả các xxx.companyname.localmáy chủ trên mạng của chúng tôi chỉ có địa chỉ IPv4 và máy chủ DNS chỉ có bản ghi A. Điều này có nghĩa là địa chỉ được giải quyết ở bước 5. Vấn đề với điều này là bước 3 mất mười giây trước khi hết thời gian! Mỗi lần tôi kết nối với wiki, máy chủ SVN, máy chủ Kerberos, v.v., sẽ có độ trễ 10 giây.

Tôi đã lừa được Lion bằng cách thêm các dòng như sau vào /etc/hosts

::FFFF:10.99.99.99 xxx.companyname.local

Nếu tôi làm điều này, Lion nghĩ rằng có một địa chỉ IPv6 cho tên miền và dừng lại sau bước 1. Tuy nhiên, cách giải quyết này hoàn toàn phá vỡ tất cả các tính năng hữu ích của DNS. Tôi không muốn theo dõi thủ công các địa chỉ IP của hàng tá tên miền nội bộ! Tôi cũng có thể ngừng sử dụng tên máy chủ và chỉ cần nhập địa chỉ IP!

Vì vậy: Có ai có ý tưởng làm thế nào để thay đổi thứ tự tra cứu này không? Hoặc vô hiệu hóa tra cứu IPv6 vì dù sao chúng tôi không có mạng IPv6?


Cảm ơn câu hỏi - Tôi đánh dấu nó dưới dạng tham chiếu độ phân giải DNS của Mac;)
Alex

Bạn sẽ được phục vụ tốt hơn rất nhiều khi cố gắng xác định lý do tại sao máy chủ DNS của bạn mất 10 giây để gửi câu trả lời được thiết lập cho AAAAbản ghi trống khi chúng (theo những gì bạn nói) không mất nhiều thời gian để trả lời Acác truy vấn cho chính nó cùng tên miền. Bạn dường như đang ở trong lãnh thổ RFC 4074 cổ điển, nơi vấn đề là các máy chủ bị hỏng . Cũng lưu ý rằng, bạn đã gặp phải một trong một số lý do nổi tiếng và được thảo luận từ lâu về việc không sử dụng local.dịch vụ DNS chia đôi. Điều đó cũng tốt hơn để sửa chữa.
JdeBP

1
Các máy chủ DNS ở bước hai trả về một bản ghi AAAA trống ngay lập tức. Vấn đề là bước 3 - truy vấn MDNS / Bonjour / Zeroconf. Lion đợi 10 giây sau khi phát sóng trước khi hết giờ. Sau khi googling một chút tôi nhận thức rõ rằng sử dụng local.là một ý tưởng tồi, nhưng bộ phận CNTT nói với tôi rằng họ nghĩ rằng việc sử dụng local.companyname.là hoàn toàn tốt và tôi thực sự không thể làm gì về điều đó.
Jakob Egger

Những người trong bộ phận CNTT của bạn đang bị đánh giá thấp. Điều này đã được biết là rất nhiều không "hoàn toàn tốt" trong giới quản trị mạng trong khoảng nửa thập kỷ. Bạn có thể khuyến khích giáo dục kiến ​​thức mạng của mọi người trong bộ phận CNTT của bạn vào thế kỷ 21. Bạn có thể nhắc nhở họ rằng công việc của họ không phải là sắp xếp các vấn đề sao cho máy tính của công ty không hoạt động đúng. ☺
JdeBP

@JdeBP Chưa hết, Apple đã quyết định sử dụng nó ... Bạn sẽ lưu ý rằng Microsoft cũng sử dụng nó và khuyến nghị đây là cách tốt nhất. Vậy ... Ai nói không phải vậy?
Cơ bản

Câu trả lời:


8

Ngăn chặn bộ phận CNTT của bạn lạm dụng local..

Như đã thảo luận, việc lạm dụng một tên miền mà công ty của bạn không sở hữu và do đó không nên cho rằng nó có thể tạo các tên miền phụ của công ty, là sai và là một nửa của vấn đề ở đây. Nếu các máy tính của công ty bao gồm Macintosh (hoặc bất cứ thứ gì khác sử dụng DNSSD cho vấn đề đó), thì chắc chắn không cho rằng đó local.là của bạn để tự do gây rối theo cách này.

Nâng cấp máy Macintosh của bạn.

MacOS 10.4 thực sự sẽ đối xử xxx.companyname.local.như bạn mô tả. Nhưng điều này đã thay đổi trong các phiên bản sau của hệ điều hành. MacOS 10.5 chỉ chuyển tên hai nhãn cho Multicast DNS. Tên ba nhãn như xxx.companyname.local.không được xử lý bởi MDNS. MacOS 10.6 thực hiện điều này hơn nữa và cố gắng phát hiện xem máy chủ DNS có bị cấu hình sai để có một local. vùng và hành động tương ứng hay không.

Ít tối thiểu bạn nên cấu hình Macintosh của bạn để có một /etc/resolver/CompanyName.local tập tin với search_order 1trong đó liệt kê rằng địa chỉ IP hiện tại (es) của máy chủ DNS proxy của bạn (s). Tuy nhiên, điều này sẽ không hoạt động tốt với các địa chỉ IP máy chủ DNS được gán DHCP thay đổi, như Apple nói.

Trên bàn tay hấp dẫn

Những thứ này chỉ đơn giản là dần dần phức tạp hơn để phù hợp với sai lầm. Để trích dẫn Marc Krochmal của Apple, "sẽ luôn có một số vấn đề" khi mọi người lạm dụng local.theo cách mà công ty của bạn đang làm. Nó đã được biết là sai từ khi (một tìm kiếm nhanh cho tôi biết) năm 2002, nếu không phải trước đó. Đừng làm điều đó .

đọc thêm


2
Không có thông tin nào trong số này giải quyết các vấn đề của tôi với độ phân giải DNS trong Lion (Mac OS X 10.7). Hơn nữa, /etc/resolver/companyname.localdường như bị bỏ qua trong Lion.
Jakob Egger

0

Tôi không biết mac nên thực sự không giúp được gì, nhưng tôi đã nảy ra một ý tưởng giải quyết thông minh: Nếu bạn thiết lập ở đâu đó trên internet, "somedomain.com DNAME companyname.local"nó sẽ bắt gặp DNAME ở bước 2. Bây giờ tôi không chắc điều gì sẽ xảy ra tiếp theo, nó vẫn sẽ quay trở lại bonjour, hoặc vì nó đã ở giữa một số quy trình DNS, có lẽ nó sẽ gắn bó với DNS.


Tôi có thể tình nguyện tạo DNAME cho bạn nếu bạn muốn :)
Alex
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.