Câu trả lời:
Cũng có thể gán nhiều hơn một địa chỉ IP cho một tên máy chủ:
rr.example.com. A 192.0.2.12
rr.example.com. A 192.0.2.23
rr.example.com. A 192.0.2.34
rr.example.com. A 192.0.2.45
Khi bạn truy vấn máy chủ DNS, rr.example.com
bạn sẽ lấy lại danh sách các địa chỉ IP. Sau đó, bạn có thể chọn kết nối với một trong số họ. Nếu lần thử đầu tiên để kết nối được chủ động từ chối, chỉ cần thử lần tiếp theo.
Hầu hết các trình duyệt sẽ theo luồng này, miễn là các điểm cuối chủ động từ chối kết nối TCP. Nếu hết thời gian kết thúc, nguồn tài nguyên sẽ được coi là không thể truy cập được mặc dù không phải tất cả IP đã được thử
Vì hầu hết các ứng dụng (bao gồm trình duyệt) thường chỉ quan tâm đến 1 điểm cuối IP tại một thời điểm và chỉ chọn câu trả lời có sẵn đầu tiên, bạn có nguy cơ làm lệch tải giữa các máy chủ mục tiêu để máy chủ đầu tiên có tất cả lưu lượng truy cập trong khi các máy chủ khác có thể không hoạt động .
Để phá vỡ điều này, hầu hết các máy chủ DNS cung cấp cấu hình Round Robin, làm cho máy chủ thay thế thứ tự trả lại các bản ghi khớp nhau. Trước khi cân bằng tải là phổ biến, đây là một cách hiệu quả để cân bằng tải và phần nào thực hiện khả năng chịu lỗi trên các hệ thống mạng.
Có, nhiều tên máy chủ có thể sử dụng cùng một địa chỉ IP, cách tốt nhất là sử dụng bản ghi CNAME để trỏ đến bản ghi A
bar.example.com. CNAME foo.example.com.
foo.example.com. A 192.0.2.23
Hãy lưu ý tất cả các điểm dừng đầy đủ.
Có một tên máy chủ để đại diện cho nhiều địa chỉ IP thì phức tạp hơn một chút. Nếu chúng ta đang nói về các bản ghi MX, thì giải pháp này đã tồn tại trong DNS bằng các số ưu tiên, nếu bạn muốn nó đại diện cho nhiều bản ghi A, tốt hơn là sử dụng bộ cân bằng tải, ví dụ như HAProxy.
A
các bản ghi chứa cùng một IP có thể xuất hiện ở các vùng khác nhau, ví dụ: x.foo.com. A 1.2.3.4
và y.bar.com. A 1.2.3.4
.
A
các bản ghi ký tự đại diện , điều này cũng dẫn đến nhiều tên máy chủ trên cùng một IP.
Ngoài thay đổi CNAME như các câu trả lời khác được đề xuất, bạn cũng phải xử lý logic trên máy chủ lưu trữ của mình. Tôi sử dụng Apache và tôi đã cấu hình nó như sau:
<VirtualHost 1.2.3.4:80>
ServerName www.abc.com
ServerAlias abc.com
...
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName www.xyz.com
ServerAlias xyz.com
...
</VirtualHost>
Tôi chắc rằng các phần mềm máy chủ http khác cũng có những thứ tương tự.
Bạn cần phải rõ ràng về ý nghĩa của hai tên máy chủ. Nếu bạn có nghĩa là hai hộp vật lý có cùng địa chỉ IP thì câu trả lời thường là không. Một trường hợp bạn sẽ làm là nếu serverA và serverB hoạt động như một cụm thụ động chủ động thì bạn sẽ có mỗi máy chủ có hai địa chỉ một mảnh. Một sẽ là một địa chỉ IP dành riêng cho máy chủ đó và địa chỉ IP thứ hai sẽ là một địa chỉ được chia sẻ giữa các máy chủ nhưng chỉ có máy chủ hoạt động mới lắng nghe địa chỉ dùng chung đó. Máy chủ thụ động chỉ bắt đầu nghe trong địa chỉ dùng chung khi máy chủ hoạt động không hoạt động.
Cũng cần lưu ý rằng trong IPv6, bạn có thể gán cùng một IP cho hai hoặc nhiều máy chủ và mạng sẽ thực hiện việc cân bằng tải và chuyển đổi dự phòng cho bạn (nếu không thể truy cập được, hãy thử cái khác). Cả hai đều được coi là một điểm cuối hợp lý và không có DNS liên quan gì.
Tính năng này được gọi là Anycast .
Nhiều IP cho cùng một tên miền:
Nhiều tên miền cho cùng một IP:
Bạn cần trả lời câu hỏi tiếp theo: Có phải tất cả các Tên miền đều cung cấp cùng một dịch vụ?
Nhiều máy chủ trong viễn thông (như HSS và PCRF) sử dụng truyền tải SCTP và vì vậy các máy chủ này có nhiều địa chỉ IP. Các địa chỉ này được sử dụng cho đa hướng (mà SCTP hỗ trợ) cung cấp kết nối với dự phòng và chuyển đổi dự phòng.
serverfault.com
vàsuperuser.com
nhìn vào địa chỉ IP được trả về cho cả hai.