Máy chủ tên có thể giải quyết các địa chỉ IP một cách linh hoạt dựa trên một số chiến lược không?


11

Chúng tôi đã đăng ký một số máy chủ tên để phân giải DNS cho trang web của chúng tôi được triển khai ở một số trung tâm dữ liệu.

Chiến lược giải quyết DNS hiện tại của chúng tôi là dựa trên các địa chỉ IP máy khách khác nhau, máy chủ tên sẽ trả về các địa chỉ IP khác nhau cho cùng một tên miền. Ví dụ: nếu địa chỉ IP của khách hàng đến từ Bắc Mỹ, máy chủ tên sẽ trả về địa chỉ IP là địa chỉ IP của trung tâm dữ liệu Bắc Mỹ của chúng tôi.

Nhưng địa chỉ IP của khách hàng đôi khi không phải là địa chỉ IP thực của người dùng. Nó có thể là một địa chỉ IP của DNS thuộc về ISP hoặc máy chủ proxy. Mặt khác, nếu một trong những trung tâm dữ liệu của chúng tôi ngừng hoạt động, chúng tôi muốn máy chủ tên của chúng tôi loại trừ địa chỉ IP đó thuộc về trung tâm dữ liệu bị sập. Vì vậy, chúng tôi hy vọng rằng chúng tôi có thể có được một chiến lược năng động hơn để giải quyết DNS của mình. Có một giải pháp cho điều đó?


Điều này nghe có vẻ như một trường hợp cho anycast.
Ron Maupin

1
@RonMaupin Cần chỉ ra rằng để thực hiện bất kỳ chương trình nào, người ta phải có phân bổ khối địa chỉ Nhà cung cấp độc lập và quan trọng hơn là chạy BGP để quảng cáo tiền tố từ mỗi trung tâm dữ liệu. Đó là một cấp độ hoạt động hoàn toàn mới và không phải là thứ mà nhiều công ty "định hướng nội dung" sẽ có kinh nghiệm. Giải pháp dựa trên DNS có vẻ dễ dàng hơn nhiều.
IPX

@IPX, tôi sẽ tưởng tượng rằng một công ty có các trung tâm dữ liệu trên toàn thế giới, như trong câu hỏi, sẽ có địa chỉ độc lập với nhà cung cấp và số AS riêng. Với điều đó, anycast là miễn phí và dễ dàng.
Ron Maupin

1
@RonMaupin nếu công ty của OP thực sự vận hành nhiều trung tâm dữ liệu trên toàn thế giới thì có, nhưng có lẽ họ sẽ không hỏi một câu hỏi tương đối đơn giản ở đây. Tôi cá là họ chỉ đơn giản là cùng định vị CTNH của họ hoặc được thuê trong một số trung tâm dữ liệu thương mại và không thực sự quan tâm đến các mạng tiên tiến. Đó là những gì tôi đã thấy nhiều công ty cỡ trung bình làm dự phòng. Nếu đó là trường hợp DNS là câu trả lời, không định tuyến .
IPX

@IPX, điều tôi lượm lặt được từ câu hỏi là công ty có các trung tâm dữ liệu trên toàn thế giới và nếu một trung tâm dữ liệu gặp sự cố, lưu lượng truy cập sẽ được chuyển đến một trung tâm dữ liệu khác (" nếu một trong những trung tâm dữ liệu của chúng tôi ngừng hoạt động .. . "). Tôi chỉ đơn giản trả lời câu hỏi khi được hỏi, thay vì cố gắng đoán về lưu trữ của bên thứ ba và chúng tôi cũng thực hiện một số điều đó, nhưng vẫn có địa chỉ độc lập của nhà cung cấp riêng và số AS được sử dụng để ngang hàng với ISP. Điều đó cho phép đàm phán hợp đồng và thay đổi ISP mà không bị gián đoạn mạng.
Ron Maupin

Câu trả lời:


16

Nghe có vẻ như bạn muốn anycast. Đó là loại điều mà các trang web như Google sử dụng. Bạn có một địa chỉ (được giải quyết bằng DNS) cho tất cả các trang web của mình và bạn để giao thức định tuyến Internet (BGP) hướng người dùng đến trang web gần nhất (bằng giao thức định tuyến). Nếu một trang web bị sập, trang web gần nhất tiếp theo sẽ được BGP tự động đặt vào bảng định tuyến Internet.

Ví dụ cổ điển là 8.8.8.8cho DNS. Nó phân giải đến các vị trí khác nhau trên toàn cầu và nếu một vị trí bị hỏng, thì nó sẽ chuyển đến vị trí gần nhất tiếp theo.

Câu trả lời không phải là DNS, nó là định tuyến.


2
Anycast thường không hữu ích cho các giao thức dựa trên TCP, vì các gói thuộc cùng một kết nối có thể đi đến các máy chủ khác nhau.
Paŭlo Ebermann

2
@ PaŭloEbermann không phải là vấn đề khi bạn thực hiện với định tuyến BGP, vì các tuyến thường không thay đổi khi được thông báo (chỉ thay đổi nhỏ)
Ferrybig

2
@ PaŭloEbermann Bạn có thể thực hiện bất kỳ chương trình cân bằng tải nào dựa trên DSR miễn là tất cả các bộ cân bằng tải của bạn đồng ý về cách chọn phụ trợ.
kasperd

3
@ PaŭloEbermann, đó là một quan niệm sai lầm. Tất cả lưu lượng truy cập từ một máy chủ sẽ đi đến một máy chủ, trừ khi máy chủ đó bị hỏng, khi đó lưu lượng sẽ được chuyển đến một máy chủ khác. Vâng, điều đó sẽ phá vỡ kết nối TCP, nhưng đó sẽ là trường hợp bất cứ khi nào máy chủ mà bạn kết nối bị hỏng. Anycast không phải là một loại vòng tròn. Định tuyến là xác định, do đó anycast là xác định.
Ron Maupin

2
@RonMaupin Định tuyến Anycast không ổn định như bạn đang ngụ ý. Và Google không sử dụng anycast theo cách bạn đang nói. Nếu bạn muốn biết Google thực sự làm điều này như thế nào, hãy xem trang 227 trong Sổ làm việc về độ tin cậy của trang web được xuất bản bởi Google. Nói tóm lại, lớp cân bằng tải phía sau định tuyến anycast bù cho những thay đổi không thể tránh khỏi trong định tuyến sẽ phá vỡ các kết nối TCP.
kasperd

9

Những gì bạn cần là chính xác những gì dịch vụ DNS của Amazon Route53 cung cấp:

Bạn không phải lưu trữ trang web của mình trên AWS để có thể sử dụng Route53, nó sẽ hoạt động vui vẻ với các dịch vụ được triển khai trên các trung tâm dữ liệu cá nhân.

Trừ khi bạn là một giá của Facebook hoặc Google không nên là một vấn đề, bắt đầu từ $ 0,40 trên một triệu yêu cầu (xem chi tiết về giá ).

Mong rằng sẽ giúp :)


Bạn đã bao giờ sử dụng bất kỳ sản phẩm không phải của Amazon cho việc này chưa?
gà con

@chicks tôi không có. Tôi luôn có xu hướng sử dụng công cụ tốt nhất cho công việc và Route53 phù hợp với hóa đơn trong hầu hết các trường hợp. Tuy nhiên, nếu bạn google một cái gì đó như "dịch vụ dns địa lý", bạn sẽ nhận được một số tùy chọn. Tôi đã nhanh chóng xem xét một vài thứ nhưng chúng có vẻ khá đắt (khoảng $ 50 / tháng - nhiều hơn nhiều so với số tiền bạn có thể chi tiêu với AWS Route53).
MLu

2
Tôi sẽ mở rộng quan điểm của mình hơn một chút trước khi gọi công cụ đầu tiên tôi tìm thấy công cụ tốt nhất cho hầu hết các trường hợp. Route53 có thể là tốt nhất cho mọi người, nhưng làm sao bạn biết nếu bạn chưa thử bất cứ điều gì khác?
gà con

-1

Tôi đã có ý tưởng này và đã bắt đầu viết mã nhưng chưa bao giờ kết thúc vì nhu cầu đã bốc hơi trước.

Máy chủ DNS có tên máy chủ và địa chỉ MAC của tất cả các máy trong mạng LAN của nó và cách để tiếp cận chúng. Khi nhận được yêu cầu cho một máy mà nó biết, nó sẽ gửi ARP ngược cho địa chỉ IP được cung cấp địa chỉ MAC và sử dụng phản hồi để tạo câu trả lời DNS.

Điều này không có gì để làm với những gì bạn đang cố gắng làm, nhưng nó minh họa điểm. Về lý thuyết, một máy chủ DNS có thể được mã hóa để thực hiện bất kỳ lược đồ mới nào bạn muốn phân giải tên thành địa chỉ IP.

Câu hỏi thực tế dường như là làm thế nào để có được địa chỉ IP của khách hàng để quyết định nơi gửi chúng. Đây là một chút nhỏ của một vấn đề XY. Những gì bạn thực sự muốn là ISP của khách hàng định vị địa lý và bạn có thể nhận được điều đó bằng cách thực hiện trực tiếp địa chỉ IP theo yêu cầu, giả sử đó không phải là 8.8.4.4 hoặc một số dịch vụ chuyển hướng DNS khác. Theo tôi, giải pháp tốt nhất cho các bộ chuyển hướng DNS là bỏ qua vấn đề và thực hiện định vị địa lý tự thân (nghĩa là từ máy chủ DNS cố gắng xác định vị trí địa chỉ IP gọi) và chuyển hướng phù hợp. Xem tại đây để biết cách định vị địa lý: /programming/2574542/location-detecting-techniques-for-ip-addresses

Bạn thực sự thực sự không muốn anycast ở đây nhưng một cái gì đó lành mạnh hơn. Anycast có thuộc tính gây phiền nhiễu là nó có thể định tuyến lại các gói ở giữa luồng TCP của bạn gây ra sự nhầm lẫn hàng loạt.

Ron Maupin tuyên bố rằng anycast là tuyến đáng tin cậy cho TCP. Đây là traceroute hiển thị khác:

 3  cr1-rhe-a-be153.bb.as11404.net (174.127.183.14)  20.657 ms  20.763 ms  19.660 ms
 4  cr1-che-b-be-2.as11404.net (192.175.29.161)  22.550 ms  23.562 ms  23.538 ms
 5  * cr1-9greatoaks-hu-0-6-0-20-0.bb.as11404.net (192.175.28.108)  24.409 ms  38.083 ms
 6  72.14.222.146 (72.14.222.146)  40.038 ms  39.106 ms  39.125 ms
 7  108.170.242.225 (108.170.242.225)  37.930 ms 108.170.243.1 (108.170.243.1)  35.434 ms 108.170.242.225 (108.170.242.225)  33.694 ms
 8  209.85.240.249 (209.85.240.249)  33.476 ms 108.170.232.65 (108.170.232.65)  31.683 ms 108.170.234.155 (108.170.234.155)  30.754 ms
 9  google-public-dns-b.google.com (8.8.4.4)  30.491 ms  28.644 ms  25.718 ms

Nếu bạn cố gắng định vị địa chỉ IP ngược dòng theo cách rõ ràng bạn sẽ nhận được cả hai đều ở Wichita. Điều này là không chính xác theo đó một trình diễn vật lý đơn giản sẽ đủ.

Phạm vi đến 8.8.4.4 được đo tại 30ms trong đó 18ms đầu tiên là hình phạt cục bộ (hop 3 là bộ định tuyến cục bộ của ISP của tôi). khoảng cách của tôi để Wichita là 1297 dặm. Do đó, thời gian tối thiểu là chuyến đi vòng (1297 * 2 dặm / 225.000 km mỗi giây (tốc độ ánh sáng trong thủy tinh)) đó là 18.55ms. Do đó, tôi sẽ không nhận được phản hồi nhanh hơn 28ms nhưng tôi đã nhận lại được sau 25ms.

Các gói đang đến Google bằng hai tuyến BGP khác nhau. BGP đã không chọn gần nhất.



Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Phường - Tái lập Monica

Tôi đã chuyển tất cả các nhận xét để trò chuyện, nhưng vì có rất nhiều và một số được tự động di chuyển, tôi không chắc liệu cuộc trò chuyện sau này có tất cả không. Trong mọi trường hợp, thảo luận thêm về tính hợp lệ của câu trả lời này và cách các bộ định tuyến hoạt động, v.v., không nên có ý kiến, hãy giữ nó trong một trong các phòng trò chuyện. Bất kỳ ý kiến ​​thêm ở đây sẽ bị xóa.
Phường - Phục hồi Monica

-2

Những gì bạn cần có thể đạt được với một số kết hợp DNS anycast và RFC-7871.


1
Chi tiết hơn sẽ cải thiện câu trả lời của bạn
Dave M
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.