RFC 1034DNS 서버에 대해 최소 2개의 IP 주소를 할당해야 합니다. 그러나 애니캐스트 주소 지정을 사용하면 단일 IP 주소로 이미 중복성을 달성할 수 있습니다. BGP 애니캐스트는 수백 또는 수천 대의 서버로 잘 확장되는 것 같습니다.
그렇다면 DNS 서버에 여러 IP 주소가 필요한 이유는 무엇입니까? 이미 애니캐스트가 있는 경우 실제로 중복성을 향상(가용성에 기여)합니까, 아니면 단지 신화에 불과합니까?
우리는 어떤 문제와 오류에 직면할 것으로 예상할 수 있나요?단일 IP 주소만 사용한다면?
1.2.3.4
이는 보조 DNS 주소를 완전히 생략하거나 일부 설정에 최소 두 개가 필요할 때 두 번째 주소에 가짜 IP(예: )를 사용한다는 의미입니다 .
답변1
단일 애니캐스트 IP 주소는 고유한 IP 접두사에 있는 두 개의 유니캐스트 IP 주소와 동일한 중복성을 제공하지 않습니다.
종종 중복성에 대한 가장 어려운 문제는 무언가가 완전히 실패하는 경우가 아니라 상태 확인을 통과할 만큼 오작동하지만 실제로는 작동하지 않는 경우입니다.
DNS 서버가 다운되었지만 패킷이 여전히 해당 DNS 서버로 라우팅되는 애니캐스트 DNS 설정을 본 적이 있습니다. 접두사 광고를 처리하는 것은 무엇이든 DNS 서버가 다운되었다는 사실을 단순히 인식하지 못할 수도 있습니다.
문제의 DNS 서버가 권한 있는 DNS 서버가 아니라 재귀적 확인자인 경우에는 더욱 까다로워집니다.
이러한 재귀 확인자는 클라이언트로부터 쿼리를 수신하기 위한 애니캐스트 주소와 권한 있는 DNS 서버에 쿼리하기 위한 유니캐스트 주소를 모두 갖고 있어야 합니다. 그러나 유니캐스트 주소가 다운되면 여전히 쿼리가 라우팅될 만큼 충분히 건강해 보일 수 있습니다.
Anycast는 확장성과 대기 시간 단축을 위한 훌륭한 도구입니다. 그러나 중복성을 위해 단독으로 사용되어서는 안 됩니다.
그러나 다중 중복 애니캐스트 풀은 가용성을 위한 좋은 솔루션입니다. 잘 알려진 예는 8.8.8.8 및 8.8.4.4입니다. 둘 다 애니캐스트 주소이지만 동일한 물리적 DNS 서버로 라우팅되어서는 안 됩니다(Google이 해당 작업을 잘 수행했다는 가정 하에).
10개의 물리적 DNS 서버가 있는 경우 각 풀에 5개의 서버가 있는 2개의 풀 또는 각 풀에 2개의 서버가 있는 5개의 풀로 구성할 수 있습니다. 하나의 물리적 DNS 서버가 여러 풀에 동시에 존재하는 것을 피하고 싶습니다.
그렇다면 몇 개의 IP를 할당해야 할까요? 서로 독립적으로 애니캐스트로 구성할 수 있는 IP가 필요합니다. 이는 일반적으로 각 풀에 대해 IPv4 주소 공간의 전체 /24 또는 IPv6 주소 공간의 /48을 할당해야 함을 의미합니다. 이로 인해 보유할 수 있는 풀 수가 제한될 수 있습니다.
또한 권한 있는 서버에 대해 이야기하는 경우 모든 NS 레코드와 A 및 AAAA 글루가 포함된 DNS 응답은 단일 512바이트 패킷에 맞아야 합니다. 루트 서버의 경우 이는 13개의 주소로 이루어졌습니다. 하지만 여기에는 글루와 IPv6가 포함되지 않았으므로 도달할 수 있는 숫자는 더 낮을 것입니다.
각 풀은 가능한 한 지리적으로 분산되어야 합니다. 유럽에 5개의 서버, 북미에 5개의 서버가 있고 애니캐스트 IP가 2개인 경우 각 대륙에 걸쳐 하나의 풀을 생성하지 않습니다. 유럽에서 2개를 풀에 넣고 북미에서 3개를 넣고 다른 풀에 나머지 5개를 넣습니다.
애니캐스트 풀이 2개 이상인 경우 물리적 서버가 일시적으로 2개 이상의 풀에 있도록 할 수 있습니다. 그러나 물리적 서버가 동시에 모든 풀에 있도록 허용해서는 안 됩니다.
애니캐스트와 유니캐스트를 결합하는 것이 가능하지만 주의가 필요합니다. 두 개의 풀에 대한 IP가 있다면 결합하지 않을 것입니다. 그러나 작업할 애니캐스트 IP가 하나만 있는 경우 유니캐스트 IP도 포함하는 것이 합리적일 수 있습니다. 문제는 유니캐스트 IP를 포함하면 대기 시간과 로드 밸런싱이 좋지 않다는 것입니다.
물리적 서버를 유니캐스트와 애니캐스트 모두에서 사용할 수 있는 경우 사용자가 기본 및 보조 서버와 동일한 서버에 연결하고 서버가 다운되면 액세스를 잃을 위험이 있습니다. 이는 애니캐스트 풀에 없는 서버의 유니캐스트 주소만 사용하거나 사용자에게 항상 두 개의 유니캐스트 주소를 제공함으로써 방지할 수 있습니다.
더 많은 유니캐스트 주소를 혼합할수록 애니캐스트 주소로 전송되는 쿼리가 줄어들고 대기 시간 및 확장성 측면에서 애니캐스트에서 얻을 수 있는 이점이 줄어듭니다.
답변2
가장 좋은 방법은 서로 다른 접두사를 가진 최소 두 개의 주소를 사용하고 두 개의 서로 다른 TLD 아래에 이름을 지정하는 것입니다. 원하는 경우 두 주소 모두 애니캐스트될 수 있습니다. IP 주소가 하나만 있으면 단일 실패 지점이 발생합니다. 해당 주소로의 라우팅이 작동하지 않는 경우(구성 오류, 애니캐스트 인스턴스가 올바르게 작동하지 않음, 접두사가 하이재킹되는 등) 전체 도메인에 연결할 수 없게 됩니다.
모든 애니캐스트 주소 에는 BGP에서 라우팅이 가능하려면 최소한 /24
IPv4 또는 IPv6 접두사가 필요합니다. /48
더 작은(더 긴) 접두사는 일반적으로 여러 곳의 전역 라우팅 테이블에서 허용되지 않습니다.
절대항상DNS 서버로 가짜 IP 주소를 입력합니다. 이는 확인자에게 심각한 지연을 초래합니다.
답변3
RFC 1034에는 두 개의 DNS 서버가 필요하다고 명시되어 있습니다. 이는 필수 요구 사항은 아니지만 권장 사항이므로 원하는 대로 수행하세요. 그럼에도 불구하고 HA를 원할 경우 애니캐스트를 사용하여 2개의 DNS 서버에 동일한 IP를 할당할 수 있으며, 하나의 DNS 서버에 장애가 발생할 때 최종 사용자가 알 수 있는 유일한 것은 네트워크가 다시 통합될 때 일시적인 연결 부족입니다.
요약하자면, 예, 애니캐스트를 사용하는 것만으로도 RFC 1034를 준수하기에 충분합니다.