Czy możesz ustawić zapasowy adres IP dla swojego serwera w DNS?


10

Czy istnieje sposób, że protokół DNS może naturalnie przechowywać kopię zapasową adresu serwera rekordów, takiego jak zapasowy serwer nazw lub rekordy serwera pocztowego? Podczas wyszukiwania tego widziałem tylko wyniki na zapasowych serwerach nazw (rekordy NS).

Jeśli nie ma sposobu, aby DNS obsługiwał rekordy tworzenia kopii zapasowej A, jaki jest najlepszy sposób na symulację wyników, aby użytkownicy zostali przekierowani na działający serwer w przypadku, gdyby serwer główny nie odpowiadał?

Odpowiedzi:


12

Tak ... w pewnym sensie.

Istnieją dwie rzeczy, które możesz tutaj zrobić: jeśli umieścisz wiele rekordów A na serwerze DNS dla danej nazwy, wówczas wszystkie zostaną dostarczone klientom, a ci klienci wybiorą jeden z zestawu, z którym się połączy, co oznacza, że ​​ruch będzie być „równomiernie” równomiernie rozmieszczone na wszystkich stronach jednocześnie. To nie jest tak naprawdę to, co wydajesz się opisywać, ale jest to powszechna sytuacja (choć z różnych powodów nie ufam).

Inną opcją jest umieszczenie tylko jednego rekordu A na serwerze DNS, a serwer DNS (lub coś pomocniczego, na przykład skrypt monitorujący) kontroluje główny adres witryny, a jeśli się nie powiedzie, serwer A DNS rekord zostanie zmieniony na inną stronę. Oznacza to, że tylko jedna witryna będzie generować ruch na raz.

Minusem tej drugiej strategii jest buforowanie DNS. Każdy, kto uzyskał stary adres witryny, będzie SOL, dopóki ich wpisy w pamięci podręcznej DNS zawierające stary adres nie zostaną usunięte. Oznacza to, że musisz utrzymywać niskie wartości TTL (zwiększając obciążenie infrastruktury DNS, chociaż rzadko jest to praktyczny problem), ale nadal występuje problem „nieuczciwych” pamięci podręcznych DNS, które nie honorują wartości TTL. To ogromny ból dla każdego kto kiedykolwiek musi zmieniać wpisy DNS, ale są milion razy gorsze dla każdego, kto musi zmieniać wpisy DNS „często” (mam nadzieję, że twoja strona nie zawiedzie się kilka razy dziennie, ale nadal…) Zasadniczo, każdy za jedną z tych źle zachowujących się pamięci podręcznych DNS zobaczysz, że Twoja witryna jest „niedostępna” przez bardzo długi czas, i po prostu spróbuj im wyjaśnić, że to ich pamięć podręczna DNS jest winna… Eugh.

Krótko mówiąc, nie zrobiłbym tego dla witryny, ponieważ istnieją lepsze sposoby ograniczenia wszelkiego ryzyka, o którym myślisz, ale musisz opisać to ryzyko, jeśli chcesz sugestii, jak je zmniejszyć.


Ryzyko polega na tym, że główny serwer ulegnie awarii (z jakiegokolwiek powodu), chcę, aby moi użytkownicy zostali przekierowani na serwer zapasowy. Mam na myśli, że w ubiegłym roku mój serwer raz się zepsuł (katastrofalny błąd nalotu). Miałem kopie zapasowe, więc dane były bezpieczne, ale moja witryna nie działała przez 12 godzin. Myślałem, że to byłby typowy problem z „właściwą” poprawką. Myślałem, że firmy będą chciały planu tworzenia kopii zapasowych.
kjones1876,

9
Nie chcesz przełączania awaryjnego DNS, potrzebujesz bardziej niezawodnego sprzętu i prawdopodobnie gorącego serwera rezerwowego.
womble

„Nieuczciwe skrzynki DNS” to opowieść starych żon. Żadne rzeczywiste oprogramowanie serwera DNS nie wykazuje działania polegającego na ignorowaniu TTL. Miejsca, w których dane DNS są buforowane w taki sposób, że powodują problemy, to aplikacje , takie jak na przykład niesławny problem buforowania odnośników w programie Netscape Navigator .
JdeBP,

@JdeBP: Słowami Kevina Costnera: „nieuczciwe pamięci podręczne DNS nie są mitem… Widziałem je!” Zrobiłem kopanie i widziałem szalone i oszałamiające wyniki. Najpopularniejsze z usługami ograniczonymi przepustowością i opóźnieniami w czasach, gdy tego rodzaju rzeczy były powszechne (na przykład dostawcy usług telefonicznych, dla których łącze nadrzędne to ISDN, na przykład), są obecnie w większości używane przez osoby, które słyszały o tym, że są dobre pomysł dawno temu i po prostu nie zmienił zdania od tego czasu (nie dlatego, że był to szczególnie dobry pomysł ... ale tak).
womble

6

Wydaje się, że wszyscy myślą, że mówisz o serwerach WWW, nawet jeśli wyraźnie to napisałeś

jak zapasowy serwer nazw lub serwer poczty

Często pomijaną prawdą jest to, że usługa HTTP jest wyjątkiem, a nie normą, jeśli chodzi o to. W normalnym przypadku, tak, tam jest mechanizm publikowania informacji do klientów za pośrednictwem DNS tak, że właściwie rezerwowy z serwerów podstawowych na serwery zapasowe. Mechanizm ten to SRVrekordy zasobów używane przez klientów usług w wielu innych protokołach oprócz HTTP. Zobacz RFC 2782.

Z SRV rekordom zasobów klienci otrzymują listę serwerów z priorytetami i wagami i muszą wypróbować serwery w kolejności priorytetów, wybierając spośród serwerów o równych priorytetach według wagi, wybierając serwery o wyższej wadze częściej niż o niskiej wadze te. Dzięki SRVzapisom zasobów administratorzy serwerów mogą powiedzieć klientom, jakie są serwery rezerwowe i jak rozłożyć obciążenie na zestaw serwerów o równym priorytecie.

Teraz serwery DNS zawartości są zlokalizowane według specjalnego typu własnego rekordu NSzasobów, rekordów zasobów, które nie mają informacji o priorytecie i wadze. Podobnie serwery przekaźników SMTP są zlokalizowane według własnego specjalnego typu rekordu zasobów,MX , który ma informacje o priorytecie, ale nie ma informacji o wadze. Tak więc w przypadku serwerów DNS treści nie ma przepisu dotyczącego publikowania informacji zastępczych i informacji o rozkładzie obciążenia; a jeśli ktoś używa MXrekordów zasobów, to w przypadku serwerów przekaźników SMTP nie ma możliwości publikowania informacji o rozkładzie obciążenia.

Jednak SRVistnieją już -kompatybilne MTS-y. (Pierwszym był exim, który można wprowadzać SRVod 2005 r.). W przypadku innych protokołów usług, nieobciążonych bagażem MXi NSewidencją zasobów, SRVadopcja jest o wiele dokładniejsza i powszechniejsza. Jeśli masz na przykład domenę Microsoft Windows, cały szereg usług jest zlokalizowany poprzez SRVwyszukiwania w DNS . Tak było od ponad dekady.

Problem polega na tym, że wszyscy myślą o HTTP, gdy HTTP jest zdecydowanie, obecnie w 2011 roku, wyjątkiem, a nie regułą tutaj.


Podczas gdy rekordy srv świetnie nadają się do użytku w sieci wewnętrznej, gdy środowisko jest kontrolowane, po prostu nie wycinają go dla czegoś takiego jak zewnętrzny serwer z heterogenicznymi klientami. nie wiesz, że dostęp do rekordu będzie możliwy, ponieważ nie wiesz, czy klient będzie obsługiwał dostęp do rekordów srv.
Michael Lowman,

1
Ponownie pozwalasz HTTP kierować swoim myśleniem. Dla wielu wyżej wymienionych klientów SRVrekordy są zdefiniowanym sposobem lokalizowania usług. Zauważ też, że pytanie brzmiało, czy mechanizm istnieje i co to było. Mechanizm istnieje i to jest mechanizm. Jest szeroko stosowany od dekady.
JdeBP

Z pewnością masz rację, srv jest z pewnością poprawnym mechanizmem i faktycznie robi inne rzeczy, których, jak myślałem, DNS nie mógł zrobić, ale chciałbym, żeby mógł. Niestety nie ma obsługi przeglądarki srv. Również pytanie dotyczyło HTTP, ponieważ powiedziałem „jak zapasowy serwer nazw lub serwer poczty”, co oznacza, że ​​istnieją już dla nich rozwiązania do tworzenia kopii zapasowych.
kjones1876

1

jeśli serwujesz zawartość dynamiczną i nie jest praktyczne, aby dwa serwery jednocześnie dawały zawartość, drugą opcją jest posiadanie wielu rekordów w systemie DNS i skonfigurowanie serwera zapasowego tak, aby port ICMP był niedostępny dla klientów, którzy próbują się z nim połączyć ; jeśli w którymś momencie główny serwer ulegnie awarii, po prostu usuniesz blok portu 80 na kopii zapasowej, a ruch zacznie nadchodzić.

Jedynym innym (budżetowym) sposobem, w jaki będziesz w stanie to zrobić, jest skonfigurowanie osobnej maszyny (lub dwóch) do wykonywania NAT na żądanie, więc jeśli serwer internetowy umrze, możesz po prostu usunąć dla niego regułę NAT.


Pierwotnie zmęczyłem twój pierwszy pomysł, właśnie wyłączyłem apache na głównym serwerze, ale przeglądarka i tak próbowała się połączyć. Ale czy zmiana kursu Apache na błąd ICMP? Jeśli nie, w jaki sposób mogę zrobić serwer przez błąd ICMP?
kjones1876,

nie, połączenie się skończy, powinieneś
poprosić

iptables -I WEJŚCIE -p tcp --port 80 -j REJECT --reject-with icmp-port-unreachable
Olipro

Zmęczyłem się tym i ludzie po prostu nie mogli się połączyć ... Odłączyłem nawet serwer, na którym testowałem.
kjones1876,

Pytający nie mówił konkretnie tylko o serwerach WWW. Rzeczywiście, xe wyraźnie wymieniło serwery poczty i nazw.
JdeBP

0

Nie ma żadnych zapasowych kopii A, ale może być kilka rekordów A, które są wydawane w losowej kolejności.

Większość przeglądarek jest w stanie wypróbować inny serwer, jeśli ulegnie awarii. (Zobacz: Odporność sieci z Round Robin DNS )

Możesz mieć jeden adres IP klastra wspierany przez kilka serwerów z VRRP lub CARP . Serwer zapasowy przejmuje adres w przypadku awarii serwera podstawowego.


Pytający nie mówił konkretnie tylko o serwerach WWW. Rzeczywiście, xe wyraźnie wymieniło serwery poczty i nazw.
JdeBP

@JdeBP: Oh. Wydaje mi się, że jestem ślepy. Przepraszamy: P
jkj

0

Tak, ale musisz to zrobić sam ;-)

Czy możesz podać więcej informacji na temat tego, dlaczego chcesz utworzyć „kopię zapasową rekordu” oraz jak iw jakich okolicznościach chcesz przejść do kopii zapasowej.

Pomocne byłoby również poznanie relacji z perspektywy sieci między hostem podstawowym a zapasowym.


0

To dość stare pytanie, ale w odpowiedziach nie poruszono dwóch dość znaczących technologii: Dynamic DNS i CDN.

Dynamiczny DNS jest skonfigurowany tak, aby rekordy DNS mogły być modyfikowane prawie w czasie rzeczywistym, dzięki czemu klient monitorujący może wywoływać zmiany w publicznych rekordach DNS A, zależnie od dostępności usług. (Oczywiście Twoja usługa hostingu DNS musi obsługiwać Dynamiczny DNS).

Sieci CDN można również wykorzystywać do dostarczania DNS, jak na przykład Cloudflare (który, jak sądzę, został uruchomiony w 2010 roku).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.