Làm thế nào để làm DNS khu vực như CDN?


15

Tôi đoán câu hỏi này có thể được đưa ra, làm thế nào để CDN hoạt động ở cấp DNS nhưng vấn đề thực sự tôi gặp phải là công ty của tôi có các trung tâm dữ liệu ở ba châu lục và chúng tôi phải có europe.example.com us.example.com và á.example năm

CDN thường gửi bạn đến trung tâm dữ liệu địa phương mà tôi tưởng tượng tùy thuộc vào địa chỉ IP của bạn. Đây phải là một điều DNS nơi bạn có máy chủ DNS ở Hoa Kỳ gửi bạn đến trung tâm dữ liệu Hoa Kỳ cho cùng một tra cứu DNS của example.com?

Tôi có lầm không? Nếu tôi sai về điều này, làm thế nào tôi có thể làm điều này một cách hiệu quả và nếu có thể mà không có máy chủ trung tâm (không phải DNS)?


Câu trả lời:


12

Vấn đề với CDN là họ không chỉ dẫn bạn dựa trên địa chỉ IP của chính bạn - họ chỉ dẫn bạn dựa trên địa chỉ IP của máy chủ DNS của bạn ... Điều đó có thể hoàn toàn sai. Và hãy đọc bài viết ACM của Paul Vixie , đó là tiền.

Dù sao đi nữa, nếu bạn đã region.example.comthiết lập và chạy, bạn có thể xem xét thực hiện chuyển hướng HTTP từ example.commáy chủ web có liên quan, dựa trên địa chỉ IP của máy khách.

Đó là khá nhiều những gì Google làm, đó là làm thế nào tôi kết thúc tại google.co.ukđã gõ vào google.com.

Cũng đảm bảo rằng bạn cung cấp một phương tiện cho khách hàng để có được các biến thể khác. Khách hàng không thích nó khi họ bị ép buộc vào một trang web cụ thể, cho dù do lỗi trong cơ sở dữ liệu Geo hoặc đơn giản vì họ thực sự cần phải xem trang web từ một khu vực khác.


5

Các CDN mới hơn (Cloudflare, MaxCDN, fast.ly) sử dụng anycast cho cả DNS và máy chủ nội dung thực tế. Điều này có phần tốt hơn so với việc cố gắng sử dụng IP nguồn của truy vấn DNS và cơ sở dữ liệu ánh xạ luôn thay đổi.

Về lý thuyết, sử dụng anycast cho cả DNS và máy chủ nội dung cho phép chính mạng tìm được máy chủ "gần nhất" với máy khách. Trong thực tế, điều này hầu hết là đúng, nhưng một số trường hợp kỳ lạ phát sinh khi người dân ở Singapore sẽ tấn công các máy chủ ở California thay vì Hồng Kông do mối quan hệ tiên phong luôn thay đổi giữa các ISP.

Anycast rất khó để làm tốt .

CDN cũ hơn như Akamai và Limelight thường sử dụng anycast để đưa bạn đến máy chủ DNS gần nhất, nhưng sau đó thực hiện phương pháp đoán dựa trên nguồn-IP-đoán. Điều này không hoạt động tốt theo kinh nghiệm của tôi, đặc biệt nếu một khách hàng đang sử dụng các máy chủ DNS không thực sự gần đó về mặt cấu trúc mạng. Tuy nhiên, một CDN khổng lồ được thành lập như Akamai có hàng trăm vị trí máy chủ nội dung, do đó, việc trả lại câu trả lời "đủ gần" sẽ mang lại trải nghiệm tốt cho người dùng. Rõ ràng, có hàng trăm trang web là rất tốn kém, đó là lý do tại sao không ai trong số các CDN hoàn toàn chọn tuyến đường đó. Do đó, họ cũng không tính phí nhiều cho dịch vụ tương đương.


1

Có một số cách để xử lý vấn đề này, nhưng tất cả đều sôi sục để tìm ra địa chỉ IP ở đâu và chỉ ra địa chỉ đó. Ví dụ: bạn có thể chỉ định một loạt IP cho Bắc Mỹ và một cho Châu Âu. Nếu IP yêu cầu thông tin (từ DNS, máy chủ web, máy chủ nội dung của bạn, v.v.) nằm trong phạm vi châu Âu, thì máy chủ châu Âu của bạn sẽ nhận được yêu cầu.


Ben, ý bạn là gì? Ý bạn là tôi có một máy chủ DNS ở Mỹ và một máy chủ ở Anh. Khi tôi nghĩ về DNS, tôi chỉ cần thiết lập bản ghi A của mình và tôi đã hoàn thành. Làm cách nào tôi có thể chỉ định các máy chủ DNS này trên cơ sở khu vực?
Stewart Robinson

Tôi tin rằng những gì anh ấy đề cập đến là một cái gì đó như quan điểm trong ràng buộc. Bạn có thể thiết lập các chế độ xem khác nhau trong DNS khớp với địa chỉ IP của máy khách, có thể được xác định đại khái là thuộc về một khu vực địa lý. Có nhiều dịch vụ có sẵn mà bạn có thể chuyển yêu cầu tới API và nhận vị trí từ đó. Nhìn xung quanh một cách ngắn gọn, bạn có thể thử hostip.info/dl/index.html để có tùy chọn thấp hơn / không mất phí.
Greeblednort

chỉ tình cờ chạy ngang qua này trong trình duyệt buổi tối của tôi: blogs.techrepublic.com.com/networking/...
Greeblesnort

@Stewart - không, bạn sẽ không chạy một máy chủ DNS cho mỗi vùng. Chà, bạn có thể, nhưng điều đó sẽ là dự phòng, vì bản thân hệ thống DNS là vị trí-bline. Câu trả lời của @ greeblednort gần giống như tên của anh ấy. :-)
Ben Doom

0

Bạn có thể thiết lập một trang chính mặc định tại example.com. Lần đầu tiên ai đó truy cập họ chọn khu vực họ muốn được hướng đến. Đây là cách tương tự như www.ups.com hoạt động.

Người dùng có thể chọn một hộp kiểm để đưa ra lựa chọn mặc định của mình từ thời điểm đó, do đó lưu trữ lựa chọn trong cookie.

Điều này mang lại cho bạn lợi ích của việc sử dụng DNS theo cách nó được thiết kế theo Paul Vixie, đồng thời cho phép người dùng của bạn đưa ra quyết định chính xác nhất về trung tâm dữ liệu mà họ nên được hướng đến.


0

Nếu bạn có một trang web được lưu trữ ở nhiều vùng thì bạn không cần phải làm gì ở cấp DNS. Bạn có thể sử dụng API như http://ipinfo.io để lấy quốc gia của khách truy cập và sau đó chuyển hướng họ đến URL thích hợp.

Nếu chúng ta không nói về một trang web, hoặc bất kỳ giao thức nào xử lý các chuyển hướng, thì có một vài tùy chọn ở cấp DNS. Bạn có thể thực hiện cùng một tra cứu quốc gia IP và sau đó trả về một bản ghi khớp với vùng (DNS dựa trên định vị địa lý) hoặc bạn có thể có bản đồ về độ trễ giữa các mạng khác nhau và trả về một bản ghi thể hiện độ trễ thấp nhất cho người dùng (độ trễ DNS dựa trên). Dịch vụ DNS Route53 của Amazon cung cấp cả hai.

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.