Pojedynczy anastastowy adres IP nie zapewnia takiej samej redundancji, jak dwa adresy IP emisji pojedynczej w różnych prefiksach IP.
Często najtrudniejszym problemem związanym z redundancją nie jest sytuacja, gdy coś zawiedzie całkowicie, ale raczej, gdy źle się zachowuje, wystarczy przejść testy stanu, ale w rzeczywistości nie działa.
Widziałem konfigurację anycast DNS, w której serwer DNS przestał działać, ale pakiety nadal byłyby kierowane do tego serwera DNS. Cokolwiek zajmowało się reklamą, prefiks może po prostu nie wiedzieć, że serwer DNS przestał działać.
Staje się to jeszcze trudniejsze, jeśli dany serwer DNS nie jest autorytatywnym serwerem DNS, ale raczej rekurencyjnym resolverem.
Taki rekurencyjny przelicznik musiałby mieć zarówno adres anycast do otrzymywania zapytań od klientów, jak i adresy emisji pojedynczej do wysyłania zapytań do autorytatywnych serwerów DNS. Ale jeśli adresy emisji pojedynczej spadną, może z łatwością wyglądać na tyle zdrowo, że nadal będą wysyłane zapytania.
Anycast to doskonałe narzędzie do skalowania i zmniejszania opóźnień. Ale w przypadku redundancji nie powinno to być samodzielne.
Wiele redundantnych pul anycast jest jednak dobrym rozwiązaniem dla dostępności. Dobrze znanym przykładem jest 8.8.8.8 i 8.8.4.4. Oba są adresami anycast, ale nigdy nie powinny być kierowane do tego samego fizycznego serwera DNS (zakładając, że Google wykonał swoją pracę dobrze).
Jeśli masz 10 fizycznych serwerów DNS, możesz skonfigurować je jako 2 pule z 5 serwerami w każdej puli lub 5 pule z 2 w każdej puli. Chcesz uniknąć posiadania jednego fizycznego serwera DNS w wielu pulach jednocześnie.
Ile adresów IP należy przydzielić? Musisz mieć adresy IP, które można skonfigurować jako anycast niezależnie od siebie. Zazwyczaj oznacza to, że musisz przydzielić całą / 24 przestrzeń adresową IPv4 lub / 48 przestrzeni adresowej IPv6 dla każdej puli. Może to bardzo ograniczyć liczbę pul, które możesz mieć.
Dodatkowo, jeśli mówimy o autorytatywnych serwerach, odpowiedź DNS ze wszystkimi twoimi rekordami NS oraz klejem A i AAAA powinna mieścić się w jednym pakiecie 512 bajtów. W przypadku serwerów głównych działało to pod 13 adresami. Ale to nie obejmowało kleju i IPv6, więc liczba, którą osiągniesz, byłaby niższa.
Każda pula powinna być rozmieszczona geograficznie, jak to możliwe. Jeśli masz 5 serwerów w Europie i 5 w Północnej Ameryce i 2 anycastowe adresy IP, nie tworzysz jednej puli obejmującej każdy kontynent. Umieszczasz 2 z Europy w puli z 3 z Ameryki Północnej, a pozostałe 5 w drugiej puli.
Jeśli masz więcej niż 2 pule anycast, możesz pozwolić serwerowi fizycznemu tymczasowo znajdować się w więcej niż jednej puli. Ale nigdy nie należy dopuszczać, aby serwer fizyczny znajdował się jednocześnie we wszystkich pulach.
Połączenie anycastu i emisji pojedynczej jest możliwe, ale należy zachować ostrożność. Jeśli masz adresy IP dla dwóch pul, nie połączyłbym się. Ale jeśli masz tylko jeden adres IP anycast do pracy, sensowne może być również dołączenie adresów IP emisji pojedynczej. Problem polega na tym, że włączenie adresów IP emisji pojedynczej nie zapewni tak dobrego opóźnienia i równoważenia obciążenia.
Jeśli fizyczny serwer jest udostępniany zarówno przez emisję pojedynczą, jak i anastastową, możesz ryzykować, że użytkownicy dotrą do tego samego serwera co serwer podstawowy i pomocniczy i utracą dostęp, jeśli ulegnie awarii. Można tego uniknąć, używając tylko adresów emisji pojedynczej serwerów spoza puli anycastów lub zawsze zapewniając użytkownikom dwa adresy emisji pojedynczej.
Im więcej adresów emisji pojedynczej wstawisz do miksu, tym mniej zapytań zostanie wysłanych na adres anycast, a tym mniej korzyści uzyskasz z anycast pod względem opóźnienia i skalowalności.