it-swarm-vi.tech

"Anycast" là gì và nó hữu ích như thế nào?

Tôi chưa bao giờ nghe về anycast cho đến vài giây trước khi tôi đọc " Một số thủ thuật máy chủ/mạng thú vị hoặc hữu ích là gì? ".

Bài viết " Anycast " trên wikipedia khá chính thức và không thực sự gợi lên một bức tranh tinh thần về cách sử dụng nó.

Ai đó có thể giải thích trong một vài câu không chính thức "anycast" là gì, cách bạn định cấu hình nó (chỉ theo nghĩa chung) và lợi ích của nó là gì (nó giúp gì dễ dàng hơn)?

85
username

Anycast là kỹ thuật kết nối mạng trong đó cùng một tiền tố IP được quảng cáo từ nhiều vị trí. Sau đó, mạng sẽ quyết định vị trí nào để định tuyến yêu cầu của người dùng, dựa trên chi phí giao thức định tuyến và có thể là 'sức khỏe' của các máy chủ quảng cáo.

Có một số lợi ích cho anycast. Đầu tiên, ở trạng thái ổn định, người dùng dịch vụ anycast (DNS là một ví dụ tuyệt vời) sẽ luôn kết nối với máy chủ DNS 'gần nhất' (từ phối cảnh giao thức định tuyến). Điều này giúp giảm độ trễ, cũng như cung cấp mức độ cân bằng tải (giả sử rằng người tiêu dùng của bạn được phân phối đều trên mạng của bạn).

Một ưu điểm khác là dễ quản lý cấu hình. Thay vì phải định cấu hình các máy chủ DNS khác nhau tùy thuộc vào nơi máy chủ/máy trạm được triển khai (Châu Á, Châu Mỹ, Châu Âu), bạn có một địa chỉ IP được định cấu hình ở mọi vị trí.

Tùy thuộc vào cách thức anycast được thực hiện, nó cũng có thể cung cấp mức độ sẵn sàng cao. Nếu quảng cáo của tuyến anycast có điều kiện trên một số loại kiểm tra sức khỏe (ví dụ: truy vấn DNS cho một tên miền nổi tiếng, trong ví dụ này), thì ngay khi máy chủ không thể xóa tuyến đường đó. Sau khi kết nối lại mạng, các yêu cầu của người dùng sẽ được chuyển tiếp liên tục đến phiên bản DNS gần nhất tiếp theo mà không cần bất kỳ sự can thiệp hoặc cấu hình lại thủ công nào.

Một lợi thế cuối cùng là quy mô ngang; nếu bạn thấy rằng một máy chủ đang bị tải quá mức, chỉ cần triển khai một máy chủ khác ở một vị trí cho phép nó chiếm một phần tỷ lệ yêu cầu của máy chủ bị quá tải. Một lần nữa, vì không cần cấu hình máy khách, điều này có thể được thực hiện rất nhanh.

88
Murali Suriar

Một trong những điều thường làm tôi bối rối khi hiểu "anycast" là, trong khi đó là một thuật ngữ cấp cao, trong thực thi thực tế, nó thường nắm rõ hai ví dụ:

  1. Bộ định tuyến sử dụng BGP để quảng cáo cùng một khối IP thông qua nhiều DƯỚI DẠNG đường dẫn dưới dạng thô cách hướng người dùng đến một trang web "gần gũi hơn". Đồng thời, nó cung cấp khả năng chuyển đổi dự phòng gần như minh bạch cho các trang web khác bằng cách rút lại các tuyến đường từ một trang web gặp khó khăn. Điều này có thể hữu ích cho gần như bất kỳ giao thức nào, mặc dù rõ ràng nó gây ra nhiều lo ngại về đồng bộ hóa dữ liệu phụ trợ.

  2. Quảng cáo cùng một IP dịch vụ từ nhiều điểm trong mạng riêng của bạn (thông qua định tuyến tĩnh , OSPF , EIGRP , hoặc bất cứ điều gì). Nếu các tuyến đường có trọng số khác nhau thì nó hoạt động như một cơ chế chuyển đổi dự phòng. Nếu các tuyến được tính trọng số đều , nó có thể tận dụng khả năng cân bằng tải trên mỗi gói hoặc mỗi luồng của hầu hết các bộ định tuyến của nhà cung cấp tên thương hiệu. Bạn phải cẩn thận rằng giao thức lớp ứng dụng thoải mái với điều này, đó là lý do tại sao bạn hầu như luôn nghe thấy nó được sử dụng với DNS trong đó một yêu cầu luôn là một gói và mọi thứ đều không trạng thái. Cá nhân, tôi xem đây là một sự xâm nhập của các lớp ứng dụng vào lớp mạng khi sự kết hợp giữa DNS và các bộ cân bằng tải thích hợp sẽ luôn luôn là một giải pháp tốt hơn.

32
cagenut

Chủ yếu được sử dụng cho các dịch vụ dựa trên UDP như DNS. Về cơ bản, bạn thông báo cùng một tuyến trong số nhiều trung tâm dữ liệu trên toàn thế giới. Bằng cách này, khách hàng của bạn sẽ được gửi đến trung tâm dữ liệu "tốt nhất" và "gần nhất" dựa trên các tuyến đường BGP. Tôi đặt "tốt nhất" và "gần nhất" trong dấu ngoặc kép vì các nhà cung cấp mạng có thể chơi trò chơi và định tuyến lưu lượng truy cập từ các mạng nhất định khác nhau. Nói chung, mọi thứ hoạt động tốt nhất với anycast, nhưng đó không phải là một sự đảm bảo.

Một ví dụ về điều này sẽ là liệt kê các máy chủ DNS của bạn là 1.2.3.4 và 1.2.3.5. Các bộ định tuyến của bạn sẽ thông báo một tuyến đường cho 1.2.3/24 trong số nhiều trung tâm dữ liệu. Nếu bạn ở Nhật Bản và có một trung tâm dữ liệu ở đó, rất có thể bạn sẽ kết thúc ở đó. Nếu bạn ở Mỹ, bạn sẽ được gửi đến trung tâm dữ liệu tại Hoa Kỳ. Một lần nữa, nó dựa trên định tuyến BGP chứ không phải định tuyến địa lý thực tế, nhưng đó thường là cách mọi thứ bị phá vỡ.

16
diq

Theo phản hồi ban đầu của tôi, tôi vừa đăng thêm hai bài viết trên blog của mình có tên: Anycast DNS - Phần 3, Sử dụng RIP và Anycast DNS - Phần 3, Sử dụng RIP (tiếp theo). Phần sau sẽ đi sâu vào chi tiết hơn, nhưng tại www.netlinxinc.com/netlinx-blog.html bạn sẽ tìm thấy các công thức thực tế về cách định cấu hình bộ định tuyến của Cisco và phần mềm định tuyến dựa trên máy chủ mã nguồn mở Quagga cho Anycast DNS bằng RIP.

Tôi hiện đang làm việc để viết bài thứ tư trong loạt bài. Điều này sẽ cung cấp cho người nhận về cách triển khai Anycast DNS bằng OSPF. Cuối cùng trong loạt bài này, tôi sẽ hiển thị các công thức để triển khai Anycast DNS bằng BGP.

Anycast DNS - Phần 1, Tổng quan

Anycast DNS - Phần 2, Sử dụng các tuyến tĩnh

Anycast DNS - Phần 3, Sử dụng RIP

Anycast DNS - Phần 3, Sử dụng RIP (tiếp theo)

9
netlinxman

Cho rằng đây chủ yếu là DNS tại thời điểm này ...

Một cách không chính thức, nó làm cho dịch vụ của bạn trở nên linh hoạt hơn và với khả năng truy cập/độ trễ/tốc độ mạng tốt hơn bằng cách cho phép bạn thiết lập cùng một dịch vụ ở nhiều địa điểm trên toàn thế giới bằng cùng một địa chỉ. Khi ai đó truy vấn địa chỉ đó, họ sẽ đưa ra lộ trình gần nhất/tốt nhất.

Từ góc độ máy chủ:

Nếu unicast là bạn sẽ đến với một người, và multicast là bạn sẽ đến một vài người, và phát sóng là bạn sẽ đến với tất cả mọi người, thì anycast đang bị tâm thần phân liệt và có nhiều tính cách phù hợp nhất với từng người. Hừm. Không phải là sự tương tự tốt nhất.

4
Alex

Một ứng dụng thực sự thú vị của anycast là DNS. Bạn có thể đặt 5 máy chủ DNS khác nhau ở các vị trí mạng và vật lý khác nhau nhưng chia sẻ một địa chỉ (hoặc đôi khi cả DNS chính và phụ). Tùy thuộc vào vị trí của nguồn, chúng được chuyển đến nút gần nhất. Điều này thực hiện một số cân bằng lưu lượng cộng với nó cung cấp dự phòng nếu máy chủ DNS chết.

3
dexedrine

Cũng cần lưu ý rằng Anycast không tốt hoặc đáng tin cậy đối với một số kết nối TCP không thể tồn tại khi đặt lại hoặc bất kỳ cuộc hội thoại dài nào.

Các IP Anycast, sử dụng BGP, nói với internet rằng có 2, 3 hoặc nhiều đường dẫn đến một Máy chủ cụ thể, tuy nhiên trên thực tế, đây là KHÔNG phải cùng một Máy chủ, chúng chính xác bản sao của máy chủ được quảng cáo trên nhiều trung tâm dữ liệu để đạt được kết nối độ trễ thấp hơn.

Ví dụ: tôi có 3 máy chủ thực hiện chuyển hướng 301 không www cho 198.251.86.133, nếu bạn ping Máy chủ này, bạn có thể nhận được phản hồi DUPLICATE đôi khi, hoặc thậm chí giảm tùy thuộc vào vị trí của bạn, vì máy chủ của tôi là US-East, US -West và EUR. đối với các kết nối có thời gian ngắn (như 301 là bộ đệm của trình duyệt), điều này mang lại phản hồi nhanh bởi máy chủ cục bộ trong trung tâm dữ liệu gần nhất.

Từ quan điểm dự phòng, không có điểm nào được tích hợp vào anycast, bạn vẫn sẽ cần dự phòng độc lập tại mỗi trang vì IP đó (trong các kịch bản điển hình) sẽ luôn trỏ đến các trung tâm dữ liệu đó.

2
Jacob Evans

Theo một trong những đồng nghiệp của tôi, nó cũng hữu ích như một kỹ thuật giảm thiểu tấn công DoS, vì mọi người chỉ có thể tấn công địa chỉ IP anycast "gần nhất", vì vậy, nếu có rất nhiều zombine ở Hoa Kỳ, trang web Euro của bạn sẽ là hầu như không bị ảnh hưởng, vì họ thực sự không thể gửi các gói đến nó.

Ngoài ra, có thể sử dụng nó như một cách để lọc các gói giả mạo (hơi ngây thơ) nếu chúng rõ ràng đến từ nơi nào đó không được quảng cáo trong BGP là tuyến chính xác (ví dụ: các gói đến châu Âu khi ASN chỉ ra N American khối).

2
MarkR