Có thể cho hai tên máy chủ chia sẻ cùng một địa chỉ IP?


35

Bất cứ ai cũng có thể giải thích liệu hai tên máy chủ có thể chia sẻ cùng một địa chỉ IP không?

Và nếu một tên máy chủ đại diện cho nhiều hơn một địa chỉ IP thì điều đó có khả thi không? Tại sao?


18
Bạn muốn một ví dụ thực tế nơi nó xảy ra? Ping serverfault.comsuperuser.comnhìn vào địa chỉ IP được trả về cho cả hai.
Scott Chamberlain

1
Tất cả các tên máy chủ đã chia sẻ địa chỉ 127.0.0.1, loại ...
jlliagre

Câu trả lời:


45

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.combạ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.


7
Không phải là câu hỏi hỏi ngược lại sao?
mowwwalker

2
Có hai câu hỏi. @Sirch đã trình bày phần đầu tiên khá tốt
Mathias R. Jessen

Ồ, tôi hiểu rồi, tôi đã bỏ qua phần mô tả. Cảm ơn bạn đã trả lời btw!
mowwwalker

1
Các trình duyệt / ngăn xếp mạng thường thử địa chỉ đầu tiên nhận được? Hay họ sẽ thử một cách ngẫu nhiên? Sẽ có ý nghĩa khi chọn ngẫu nhiên các IP thứ tự được máy chủ DNS của bạn trả về để cố gắng cân bằng tải?
Tom Marthenal

Phụ thuộc vào việc thực hiện khách hàng cụ thể. Hầu hết các máy chủ sẽ chọn ngẫu nhiên thứ tự các địa chỉ IP được trả về (đây là hành vi được gọi là "quay vòng"). Những câu hỏi thú vị thực sự, tôi nghĩ rằng tôi sẽ mở rộng câu trả lời một chút
Mathias R. Jessen

35

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.


6
Điều đáng chú ý, và tôi đã thấy trên Internet thực sự, các chuỗi CNAME đã phá vỡ các trình phân giải tên. Bởi vì một CNAME có thể trỏ đến một CNAME khác. Ngay cả các vòng lặp CNAME là có thể.
PP.


Cũng đáng chỉ ra rằng Acá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.4y.bar.com. A 1.2.3.4.
Blrfl

Câu trả lời này quên nói về Acá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.
Izzy

Này Sirch, thỏa thuận với fullstops là gì?
JonoRR

6

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ự.


2

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.


2

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 .


1

Nhiều IP cho cùng một tên miền:

  • Có, rất có thể và rất phổ biến: Nếu một máy chủ (có ip A) rơi xuống, bạn có thể kết nối với IP tiếp theo của thanh ghi DNS và truy cập vào một máy chủ khác (có ip B) để nhận dịch vụ.

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ụ?

  • Nếu có: đó cũng là một cấu hình rất phổ biến: rất nhiều công ty mua rất nhiều tên miền với tên miền hàng đầu quốc gia khác nhau: xxx.com, xxx.net, xxx.org, v.v. Và tất cả đều chỉ đến cùng một dịch vụ, đó là , vào cùng một danh sách IP.
  • Nếu không: Có thể nhưng không phổ biến và không được đề xuất. Một số công ty lưu trữ chỉ cho phép dịch vụ HTTP sử dụng NAT / Proxy để dự phòng IP. Nhưng tất nhiên, điều đó có nghĩa là một Proxy "hiểu" HTTP để nhận dạng dịch vụ đích.

0

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.

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.