Przede wszystkim VRRP w żaden sposób nie zależy od DNS. Aby uzyskać nadmiarowość w ramach jednej witryny, możesz dobrze uruchomić serwery DNS na wspólnym adresie VRRP.
Ale jak wspomnieli inni w komentarzach, usługi wykorzystują także routing anycast , co zasadniczo oznacza, że ten sam adres IP istnieje w wielu miejscach na całym świecie. Gdy cała witryna ulega awarii, trasy na całym świecie są ponownie obliczane, aby Twoje pakiety trafiły do innej działającej witryny.
Lepszym przykładem niż publicznego DNS Google będzie się korzeń serwerów DNS - te, które służą .
wskaźniki stref i przytrzymaj, aby com
, org
, eu
, i tak dalej - bo oni mają mapę każdej instancji 13 adresów logicznych. „L” ICANN jest obsługiwany przez 160 różnych stron!
Zauważ, że anycast nie ma nic wspólnego z round-robins opartymi na DNS (gdzie ta sama nazwa ma wiele adresów). Anycast odbywa się w zasadzie poprzez okłamywanie protokołu routingu.
Internet używa BGP do wymiany informacji o routingu między organizacjami.
BGP z natury wspiera wybieranie najlepszych spośród kilku tras do tej samej sieci, w oparciu o różne kryteria. Na przykład ten sam klient może mieć nadmiarowe łącza zwrotne do tego samego usługodawcy internetowego (ogłaszając dwie trasy różniące się tylko wagą / preferencjami). Lub klient może mieć łącza zwrotne za pośrednictwem kilku dostawców usług internetowych i wszyscy wybiorą preferowaną trasę (głównie najkrótszą ścieżkę AS) - na tym polega istota „prawdziwej” sieci WAN.
Multihoming
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter--+ │
¦ │ ¦--DNSserver │
client 2 ---ISP---│--BGProuter--+ │
└──────────────────────────┘
Jednak BGP prowadzi tylko ruch do twoich drzwi wejściowych, ale nie dba o to, co stanie się dalej. Jeśli więc wewnętrznie skonfigurujesz obie trasy w kierunku tego samego serwera, uzyskasz multihoming. Ale jeśli każde „wejście” prowadzi do innego serwera (skonfigurowanego dla tego samego adresu IP), otrzymasz anycast.
Anycast... kind of?
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ │ │
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
Co ważne, oznacza to również, że BGP nie dba o to, czy AS w ogóle nie jest sąsiadujący. Aby uzyskać ogólnoświatową redundancję, wystarczy ogłosić tę samą sieć z wielu fizycznych lokalizacji - jeśli połączysz te lokalizacje razem (tak, aby kierowały tę sieć do jednego miejsca), otrzymujesz multihoming; jeśli są wyspami, otrzymasz anycast.
Anycast
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ └──────────────────────────┘
¦
¦ ┌────────[AS 65535]────────┐
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
(W tym przypadku nie musi to być nawet ten sam AS - np. Przekaźniki 6to4 są obsługiwane przez wiele niezależnych organizacji, z których każda ogłasza własną drogę do 192.88.99.0/24
.)
Ostrzeżenia:
Anycast zapewnia nadmiarowość, ale nie zapewnia równoważenia obciążenia. Gdy BGP zbiegnie się, każdy router wybierze jedną preferowaną trasę (lub czasami kilka) i będzie ją kontynuować, dopóki sieć się nie zmieni.
Nie można jednak przewidzieć, jak długo trasy pozostaną stabilne, więc anycastowanie usług stanowych może być trudne. DNS unika go, ponieważ jest bezstanowy i używa głównie UDP (EDNS zmniejszył potrzebę połączeń TCP).
Musi istnieć koordynacja między rzeczywistą usługą a routerem BGP, aby trasa została wycofana w przypadku awarii usługi.
Zobacz także „Historia 4.2.2.2. Jaka jest ta historia?” na liście mailingowej NANOG: post 1 , post 2 .