DNS 서버는 이미 애니 캐스트를 사용합니다. IP를 더 추가하면 확장 성이 향상됩니까?


9

RFC 1034를 사용 하려면 DNS 서버에 대해 적어도 두 개의 IP 주소를 할당해야합니다. 그러나 애니 캐스트 주소 지정을 사용하는 경우 단일 IP 주소로 중복성을 이미 얻을 수 있습니다. BGP 애니 캐스트는 수백 또는 수천 대의 서버로 확장되는 것으로 보입니다.

그렇다면 왜 DNS 서버에 여러 IP 주소가 필요한가요? 이미 캐스트가있는 경우 실제로 중복성을 강화합니까 (가용성에 기여), 아니면 신화일까요?

단일 IP 주소 만 사용하면 어떤 문제와 오류가 발생할 수 있습니까?

따라서 2 차 DNS 주소를 완전히 생략하거나 1.2.3.4일부 설정에서 2 개 이상이 필요할 때 두 번째 주소에 가짜 IP (예 :)를 사용하는 것을 의미합니다 .

답변:


16

단일 애니 캐스트 IP 주소는 별개의 IP 접두사에있는 두 개의 유니 캐스트 IP 주소와 동일한 중복성을 제공하지 않습니다.

중복성에 대한 가장 어려운 문제는 무언가가 완전히 실패 할 때가 아니라 여전히 상태 점검을 통과하기에 충분히 오작동하지만 실제로 기능하지 않는 경우입니다.

DNS 서버가 다운되는 애니 캐스트 DNS 설정을 보았지만 패킷은 여전히 ​​해당 DNS 서버로 라우팅됩니다. 접두사 광고를 처리하는 것은 DNS 서버가 다운되었다는 사실을 단순히 알지 못할 수도 있습니다.

문제의 DNS 서버가 신뢰할 수있는 DNS 서버가 아니라 재귀 적 해결 자라면 더욱 까다로워집니다.

이러한 재귀 해결 프로그램에는 클라이언트로부터 쿼리를 수신하기위한 애니 캐스트 주소와 신뢰할 수있는 DNS 서버를 쿼리하기위한 유니 캐스트 주소가 모두 있어야합니다. 그러나 유니 캐스트 주소가 다운되면 여전히 라우팅 된 쿼리가 될 정도로 충분히 건강 해 보일 수 있습니다.

애니 캐스트는 확장 성과 지연 시간을 줄이는 훌륭한 도구입니다. 그러나 중복성을 위해 독립형이되어서는 안됩니다.

그러나 다중 중복 애니 캐스트 풀은 가용성을위한 좋은 솔루션입니다. 잘 알려진 예는 8.8.8.8 및 8.8.4.4입니다. 둘 다 애니 캐스트 주소이지만 동일한 물리적 DNS 서버로 라우팅해서는 안됩니다 (Google이 잘 수행했다고 가정).

실제 DNS 서버가 10 개인 경우 각 풀에 서버가 5 개있는 풀 2 개 또는 각 풀에 2 개가있는 5 개의 풀로 구성 할 수 있습니다. 하나의 실제 DNS 서버가 여러 풀에 동시에 존재하지 않게하려고합니다.

그렇다면 얼마나 많은 IP를 할당해야합니까? 서로 독립적으로 애니 캐스트로 구성 할 수있는 IP가 있어야합니다. 이는 일반적으로 각 풀에 대해 전체 / 24의 IPv4 주소 공간 또는 / 48의 IPv6 주소 공간을 할당해야 함을 의미합니다. 이는 보유 할 수있는 풀 수를 제한 할 수 있습니다.

또한 신뢰할 수있는 서버와 대화하는 경우 모든 NS 레코드와 A 및 AAAA 접착제가 포함 된 DNS 응답이 단일 512 바이트 패킷에 맞아야합니다. 루트 서버의 경우 13 개의 주소로 해결되었습니다. 그러나 글루 및 IPv6은 포함되지 않았으므로 도달하는 수가 적습니다.

각 풀은 가능한 지리적으로 분산되어 있어야합니다. 유럽에 5 대의 서버가 있고 북미에 5 개의 서버가 있고 2 개의 애니 캐스트 IP가있는 경우 각 대륙에 걸쳐 하나의 풀을 만들지 않습니다. 유럽에서 2 개를 풀에, 북미에서 3 개를, 다른 5 개를 다른 풀에 넣습니다.

애니 캐스트 풀이 두 개 이상인 경우 실제 서버가 일시적으로 둘 이상의 풀에있게 할 수 있습니다. 그러나 실제 서버가 동시에 모든 풀에있게해서는 안됩니다.

애니 캐스트와 유니 캐스트를 결합 할 수 있지만주의를 기울여야합니다. 두 개의 풀에 대한 IP가 있다면 결합하지 않습니다. 그러나 애니 캐스트 IP가 하나만있는 경우 유니 캐스트 IP도 포함하는 것이 좋습니다. 문제는 유니 캐스트 IP를 포함하면 대기 시간과로드 밸런싱이 우수하지 않다는 것입니다.

유니 캐스트와 애니 캐스트 모두에서 물리적 서버를 사용할 수있게되면 사용자가 기본 및 보조 서버와 동일한 서버에 도달하여 다운 될 경우 액세스 권한을 잃을 수 있습니다. 애니 캐스트 풀에없는 서버의 유니 캐스트 주소 만 사용하거나 항상 두 개의 유니 캐스트 주소를 사용자에게 제공하여이를 방지 할 수 있습니다.

혼합에 넣은 유니 캐스트 주소가 많을수록 애니 캐스트 주소로 전송되는 쿼리 수가 줄어들고 대기 시간 및 확장 성 측면에서 애니 캐스트에서 얻는 이점이 줄어 듭니다.


확장 성을 달성하는 가장 좋은 방법은 애니 캐스트를 사용하는 대신 많은 보조 유니 캐스트 주소 (일명 ns1.domain, ns2.d, ns3.d ... ns300.d를 설정하는 기존 방법)를 사용하는 것입니까?
Pacerier

@Pacerier 아니오, 그건 제 말이 아닙니다. 나는 내 대답에서 그것을 분명히 할 것입니다.
kasperd

+1. 라우팅 오류는 유니 캐스트를 지옥으로 만들 수도 있습니다 (막 다른 골목). 두 번째로 별도의 주소를 갖는 것은 그에 대한 "티켓"이 두 개 이상 있음을 의미합니다.)
TomTom

2
+1 2 차 주소로 가짜 IP를 추가하는 것은 끔찍한 아이디어처럼 들립니다.
Reaces

1
@Pacerier 여러 유니 캐스트 주소를 사용하여 부하 분산을 얻습니다. 문제는 대기 시간입니다. 클라이언트는 어떤 IP가 근처에 있고 어떤 IP가 멀리 있는지 알 수 없습니다. 또한 확장 할 수 없습니다. A 및 AAAA 글루 레코드를 512 바이트에 맞추려면 약 5 대의 서버 만 사용하십시오. 애니 캐스트 주소보다 유니 캐스트 주소에 더 많은로드가있을 수 있으므로 하나의 애니 캐스트와 여러 유니 캐스트를 결합하면로드 밸런싱에 문제가 있습니다.
kasperd

4

가장 좋은 방법은 다른 접두사에서 적어도 두 개의 주소를 사용하고 두 개의 다른 TLD 아래에 이름을 지정하는 것입니다. 원하는 경우 두 주소를 모두 애니 캐스트 할 수 있습니다. IP 주소가 하나만 있으면 단일 장애 지점이 발생합니다. 해당 주소로의 라우팅이 작동하지 않으면 (구성 오류, 애니 캐스트 인스턴스가 올바르게 작동하지 않거나 접두사가 도용되는 등) 전체 도메인에 도달 할 수 없게됩니다.

모든 애니 캐스트 주소는 BGP에서 라우팅 할 수 있도록 최소한 /24IPv4 또는 /48IPv6 접두사가 필요합니다. 더 작은 (더 긴) 접두사는 일반적으로 여러 위치의 전역 라우팅 테이블에서 허용되지 않습니다.

절대 DNS 서버로 가짜 IP 주소를 넣어 없습니다. 리졸버에 심각한 지연이 발생합니다.


더 나쁜 것은, 그 "가짜"IP 주소는 다른 사람의 주소입니다. 그들은 질문을 받고있을 것입니다. 모든 트래픽에 대해 짜증이 나면 TTL이 높은 응답을 보내 한동안 사라지게 할 수 있습니다.
kasperd

@kasperd, 아무도 소유 하지 않은 특별한 예약 된 IP 주소는 어떻습니까?
Pacerier

1
@Pacerier RFC 1918, 4193 또는 6598 주소 공간을 사용하면 피해가 제한됩니다. 그러나 여전히 해상도가 느려지거나 실패 할 수 있습니다.
kasperd

3

RFC 1034에는 두 개의 DNS 서버 만 필요하다고 명시되어 있습니다. 이것은 필수 요구 사항은 아니지만 권장 사항이므로 원하는대로 수행하십시오. 그럼에도 불구하고 HA를 원한다면 Anycast를 사용하여 2 개의 DNS 서버에 동일한 IP를 할당 할 수 있으며, 하나의 DNS 서버가 실패 할 때 최종 사용자가 알 수있는 것은 네트워크가 수렴함에 따라 일시적으로 연결되지 않는 것입니다.

요약하자면, anycast를 사용하는 것이 RFC 1034를 준수하기에 충분합니다.


흠, 단일 IP 주소 만 필요한 경우 Google은 왜 DNS 서버에 두 개의 주소 ( 8.8.8.88.8.4.4)를 제공 합니까? 그들은 이미 애니 캐스트를 가지고 있으므로 단순히 하나의 주소를 제공하지 않는 이유는 8.8.8.8무엇입니까?
Pacerier

1
추측하자면 네트워크 컨버전스 중에 연결을 중단하지 않겠다고 말하고 싶습니까? 그들은 글로벌 플레이어이며 가능한 실패 지점을 제거하기 위해 가능한 한 광범위하게 범위를 넓히기를 원합니까? 확실하지는 않지만 Google이 될 수는 없습니다. :)
Reaces
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.