Tôi có thể có dấu chấm trong tên máy chủ không?


23

Tôi đang sử dụng các tên như a.alpha cho tên máy chủ của hộp linux của mình, nhưng điều này cho thấy những tên này không hoàn toàn có thể sử dụng được. Phản hồi của lệnh shell hostname là chính xác (a.alpha). Nhưng tên được in sau tài khoản người dùng của tôi là "user @ a" thay vì "user@a.alpha". Khi tôi sử dụng avahi, tôi có thể tiếp cận (theo tên máy chủ) a.alpha, nhưng không phải b.alpha. Điều đó có bình thường không?

Câu trả lời:


23

Chopper là đúng. Do cách thức hoạt động của DNS, thành phần "alpha" của "a.alpha" được coi là một 'nhãn' riêng biệt trong DNS. Sử dụng tên máy chủ có dấu chấm trong đó sẽ gây ra kết quả không nhất quán từ bất kỳ hệ thống nào sử dụng DNS.

Avahi không tương tác với tên DNS và đặc biệt là lệnh <host-name>cần có DNS FQDN của dịch vụ trong đó, do đó, nó cũng chịu sự không nhất quán của DNS với tên rải rác.

Đừng sử dụng tên chấm.


Điều này là chính xác, nhưng cần tham khảo để được coi là một câu trả lời đáng tin cậy. Ai đó nói 'Do cách DNS hoạt động' trên Stack Overflow không chứng minh được điều gì.
mikemaccana

Có phải quy tắc cứng nhắc là tên máy chủ không thể chứa '.' ?
Dinesh Kumar P

1
@DineshKumarP Vâng. Các RFC DNS mô tả ký tự dấu chấm là dấu phân cách giữa các nhãn DNS. Mặc dù các dịch vụ không phải DNS như Avahi hoặc SLP có thể cho phép, nhưng bản thân DNS thì không.
sysadmin1138

Điều này không hoàn toàn đúng. DNS hoàn toàn hài lòng khi cho phép các dấu chấm trong nhãn, mặc dù điều đó cho thấy sự phù hợp với một cú pháp bị hạn chế ("quy tắc LDH"; xem tools.ietf.org/html/rfc1035#section-2.3.1 ). Các ứng dụng của DNS - chẳng hạn như lưu trữ tên máy chủ trong DNS - là nơi các hạn chế về cú pháp nhãn DNS xuất hiện.
Tony Garnock-Jones

17

Bạn đang yêu cầu sự cố với sơ đồ đặt tên đó do DNS, thay vào đó hãy xem xét a-alpha.


Tôi sẽ hỏi cùng một câu hỏi trên Askubfox và không ai có thể trả lời tôi cả. Vì vậy, tôi sẽ sử dụng phương pháp này
benzen

1

Như những người khác đã đề cập, bạn chắc chắn muốn tránh các dấu chấm trong tên máy chủ của mình do DNS và tôi cũng thấy rằng điều này có thể gây ra sự cố nếu bạn đang sử dụng chứng chỉ ký tự đại diện để thực hiện SSL, vì các ký tự đại diện sẽ chỉ ký tự đại diện cho một cấp độ tên miền phụ. Vì vậy, nếu chứng chỉ ký tự đại diện của bạn là dành cho * .mycompany.com, nhưng bạn có tên máy chủ là a.alpha, chứng chỉ ký tự đại diện có thể không hoạt động nếu nó coi "alpha" là tên miền phụ.


1

Tên máy chủ đầy đủ của máy chủ IS thường là FQDN được trang bị tên miền (tên miền đủ điều kiện) và trong linux cuối cùng sẽ là đầu ra của host --fqdn, với phần trước dấu chấm đầu tiên được coi là biệt danh của máy chủ lưu trữ. Tuy nhiên, các hệ thống khác nhau (Linux, SunOS, bất cứ điều gì) đã triển khai khái niệm "hostnick" theo nhiều cách khác nhau. Nhu la:

  • / etc / hostname chỉ chứa hostnick và phần còn lại nằm trong / etc / domainname
  • / etc / hostname chứa toàn bộ FQDN và tên miền cũng nằm trong / etc / domainname
  • Tên miền chỉ tồn tại trong cấu hình YP / NIS
  • Tên miền chỉ tồn tại trong một số hệ thống con nhất định thay vì là một hệ thống toàn cầu
  • (khác, nói chung là cách tiếp cận lạ hơn)

Ngoài ra, ý tưởng của một hostnick là một biến nhỏ:

  • Một phần của FQDN trước dấu chấm đầu tiên
  • Một số phần bên trái của FQDN, được biểu thị riêng mà không có dấu chấm
  • Một phần của FQDN trước tên miền thực tế (như được đặt ở đâu đó)

Và, để làm phức tạp thêm mọi thứ, hostlệnh từ bind9-host vi phạm các tiêu chuẩn DNS bằng cách có một -N <int>tùy chọn để kiểm soát xem các miền tìm kiếm có được sử dụng hay không. Điều này phá vỡ tra cứu DNS theo nhiều cách khác nhau tùy thuộc vào kịch bản. DNS có nghĩa vụ phải tìm kiếm bất kỳ tên nào có dấu chấm theo nghĩa đen là tìm kiếm theo nghĩa đen và đối với các tên khác, để tìm kiếm chúng với các tên miền được nối thêm /etc/resolv.confcho đến khi tìm thấy kết quả khớp hoặc tất cả đều thất bại (những tên miền đó hoàn toàn có một dấu chấm). [Đây là từ bộ nhớ, vui lòng nhận xét nếu quy trình chung bị thay đổi trong RFC tôi đã bỏ lỡ]

Như vậy, nếu bạn sử dụng dấu chấm trong máy chủ lưu trữ của mình, hostlệnh có thể sẽ làm hỏng mọi thứ, phá vỡ các tập lệnh sử dụng nó để tra cứu. Cá nhân tôi thấy không thể tin hostđược rằng nó đã bị hỏng và dường như ngay cả ngày nay cũng đang phá vỡ một hệ thống tra cứu trên hệ thống trong nhà của tôi, vì tôi có cả IPv4 và -v6 ở nhà và có tên như .v4. dưới dạng bổ sung, các biểu mẫu ngắn dành riêng cho phiên bản, hostkhông tìm kiếm được mặc dù pingthấy chúng chỉ tốt.

Dù sao thì việc thử đặt dấu chấm vào hostnicks là cực kỳ hiếm, vì vậy ngay cả khi không có bản hostlĩnh, tôi vẫn khuyên bạn nên bám vào các hostnicks không có dấu vết ngay cả từ góc độ ngữ nghĩa đơn giản.


0

Câu trả lời đúng chắc chắn "không làm điều đó", như đã nêu ở trên.

Đối với một số cách đọc có thể hữu ích và chắc chắn, vui lòng tiếp tục:

Bạn đang nói về độ phân giải dns hoặc dấu nhắc dòng lệnh của bạn? Nếu bạn muốn sửa lời nhắc dòng lệnh của mình, chỉ cần sử dụng $ PS1 (hoặc tương đương không bash / sh tương tự nếu có).

Nếu bạn thực sự muốn có a.alpha là tên máy chủ phân giải thành địa chỉ IP trên các interwebs, bạn có thể làm điều đó, nhưng điều đó có thể liên quan đến một tên miền phụ cho mỗi hậu tố tên máy chủ (EG alpha, beta, v.v.).

Thậm chí có khả năng bạn có thể định cấu hình máy chủ DNS của mình để hoạt động mà không cần tạo tên miền phụ. Bạn có thể phục vụ địa chỉ IP của các máy chủ tên của tên miền phụ trong các tệp vùng của miền mẹ, vì vậy nó có thể "chỉ hoạt động". Điều này là do khi ai đó hỏi máy chủ DNS của bạn cho địa chỉ IP của a.alpha.examaple.com, họ hỏi máy chủ DNS cho example.com và nếu máy chủ DNS đó có địa chỉ treo xung quanh, nó sẽ trả lời bằng câu trả lời , thay vì cố gắng giao bạn cho máy chủ có thẩm quyền của tên miền phụ. Nó có thể bị cản trở xung quanh SOA bị thiếu ... vì vậy, có thể bạn thêm một bản ghi A cho mỗi tiền tố máy chủ và một SOA cho mỗi hậu tố máy chủ. Vâng, đó là vé ...

Mọi thứ trên internet vẫn sẽ nghĩ tên máy chủ của bạn là 'a' và tên miền của bạn là alpha.example.com.

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.