Trước hết, VRRP không phụ thuộc vào DNS dưới bất kỳ hình thức nào. Để dự phòng trong một trang web, bạn có thể chạy các máy chủ DNS trên địa chỉ VRRP được chia sẻ.
Nhưng như những người khác đã đề cập trong các bình luận, các dịch vụ cũng sử dụng định tuyến anycast , điều đó có nghĩa là cùng một địa chỉ IP tồn tại ở nhiều nơi trên thế giới. Khi toàn bộ trang web ngừng hoạt động, các tuyến đường trên toàn thế giới được tính toán lại để các gói của bạn kết thúc đến một trang web làm việc khác.
Một ví dụ tốt hơn so với DNS công cộng của Google sẽ là gốc máy chủ DNS - những người mà phục vụ .
con trỏ khu vực và giữ để com
, org
, eu
, và vân vân - bởi vì họ có một bản đồ của tất cả các thể hiện của 13 địa chỉ logic. "L" của ICANN được phục vụ bởi 160 trang web khác nhau!
Lưu ý rằng anycast không liên quan gì đến các vòng tròn dựa trên DNS (trong đó cùng tên có nhiều địa chỉ). Anycast được thực hiện chủ yếu bằng cách nói dối với giao thức định tuyến.
Internet sử dụng BGP để trao đổi thông tin định tuyến giữa các tổ chức.
BGP vốn đã hỗ trợ lựa chọn một trong những tuyến tốt nhất trong cùng một mạng, dựa trên các tiêu chí khác nhau. Ví dụ: cùng một khách hàng có thể có các liên kết dự phòng đến cùng một ISP (thông báo hai tuyến chỉ khác nhau về trọng lượng / sở thích). Hoặc khách hàng có thể có liên kết thông qua một số ISP và mọi người sẽ chọn tuyến ưa thích của họ (chủ yếu là đường AS ngắn nhất) - đó là ý chính của đa mạng "thực".
Multihoming
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter--+ │
¦ │ ¦--DNSserver │
client 2 ---ISP---│--BGProuter--+ │
└──────────────────────────┘
Tuy nhiên, BGP chỉ dẫn lưu lượng truy cập đến cửa ra vào của bạn nhưng không quan tâm những gì xảy ra ngoài đó. Vì vậy, nếu bạn thiết lập nội bộ cả hai tuyến tới cùng một máy chủ, bạn sẽ nhận được nhiều lượt truy cập. Nhưng nếu mỗi "lối vào" dẫn đến một máy chủ khác nhau (được định cấu hình cho cùng một IP), bạn sẽ nhận được bất kỳ thông tin nào.
Anycast... kind of?
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ │ │
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
Điều quan trọng, điều này cũng có nghĩa là BGP không quan tâm nếu AS không tiếp giáp nhau. Để có được sự dư thừa trên toàn thế giới, chỉ cần thông báo cùng một mạng từ nhiều vị trí thực tế - nếu bạn kết nối các vị trí đó với nhau (để chúng định tuyến mạng đó đến một nơi), bạn sẽ nhận được nhiều lần; nếu chúng là đảo, bạn sẽ nhận được bất cứ điều gì.
Anycast
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ └──────────────────────────┘
¦
¦ ┌────────[AS 65535]────────┐
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
(Đối với vấn đề đó, nó thậm chí không cần phải giống AS - ví dụ: rơle 6to4 được điều hành bởi nhiều tổ chức độc lập, mỗi tổ chức đều thông báo lộ trình của riêng mình 192.88.99.0/24
.)
Hãy cẩn thận:
Anycast cung cấp dự phòng, nhưng không cân bằng tải. Khi BGP hội tụ, mỗi bộ định tuyến sẽ chọn một tuyến ưa thích duy nhất (hoặc đôi khi là một vài) và sẽ tiếp tục sử dụng nó cho đến khi mạng thay đổi.
Tuy nhiên, bạn không thể dự đoán thời gian các tuyến sẽ duy trì ổn định, do đó, bất kỳ dịch vụ trạng thái nào có thể gây khó khăn. DNS bị loại bỏ do không trạng thái và sử dụng chủ yếu UDP (EDNS giảm nhu cầu kết nối TCP).
Phải có sự phối hợp giữa dịch vụ thực tế và bộ định tuyến BGP, để tuyến đường được rút nếu dịch vụ gặp sự cố.
Xem thêm "Lịch sử 4.2.2.2. Câu chuyện là gì?" trên danh sách gửi thư của NANOG: bài 1 , bài 2 .