나는 DNS 루트 서버에 13개의 IP가 있고 애니캐스트를 사용하여 전 세계 800개의 실제 물리적 서버에 요청을 전파한다는 것을 알고 있습니다.
홍콩의 루트 서버가 다른 미러 서버와 동일한 IP를 가지고 있다는 것을 알고 있습니다. 인터넷에서 동일한 IP를 사용하여 물리적 주소가 다른 두 개의 서버를 갖는 것이 합법적입니까?
하지만 DNS 요청이 홍콩과 같이 내 위치에 가장 가까운 서버를 어떻게 타겟팅할지 모르겠습니다.
DNS는 서버를 어떻게 선택하며 동일한 IP를 가진 2개의 서로 다른 물리적 주소 서버를 갖는 것이 합법적입니까?
답변1
대규모 네트워크(전용 라우터가 있는 네트워크)에서는 두 컴퓨터 사이에 둘 이상의 네트워크 경로가 있을 수 있습니다. 라우터에는 중복성을 위해 서로 여러 개의 네트워크 링크가 있는 경우가 많으므로 두 링크 중 하나를 통해 패킷을 보내 동일한 대상 컴퓨터에 도달할 수 있습니다.
Anycast는 IP 주소에 대한 두 개 이상의 경로가 있는 것처럼 보이게 만들어 이를 활용하지만 실제로는 해당 경로가 완전히 다른 컴퓨터로 연결됩니다. 컴퓨터 중 하나가 오프라인 상태가 되면 경로는 사라지지만 다른 경로는 계속 사용할 수 있습니다.
작동하려면 몇 가지 구성이 필요합니다. 사이트 간에 IP를 공유하려면 BGP(ISP 수준 라우팅)를 구성해야 하며 최소 256개 IP 주소 블록에 대해서만 이를 수행할 수 있습니다. 따라서 하나의 IP에만 애니캐스트를 사용하면 최대 253개의 IP가 낭비됩니다. 사이트 내에서 모든 애니캐스트 엔드포인트를 찾을 수 있는 위치를 알 수 있도록 라우터를 구성해야 하며 이는 일반적으로 각 엔드포인트가 온라인 상태인 동안 자신의 존재를 게시하도록 하여 수행됩니다.
엔드포인트는 동일한 컴퓨터에 대한 여러 경로처럼 보이기 때문에 트래픽이 임의로 다른 경로를 사용할 수 있습니다. 일반적으로 이는 문제가 되지 않습니다(패킷은 경로가 변경되더라도 여전히 동일한 위치에 도착합니다). 애니캐스트 IP의 경우 다른 경로는 다른 목적지를 의미합니다. 이는 트래픽을 한 끝점으로 보낼 수 있으며 갑자기 패킷이 다른 끝점에 도착할 수 있음을 의미합니다.
이러한 이유로 애니캐스트는 "오래 지속되는" 프로토콜에서는 작동하지 않으며 일반적으로 상태 비저장 프로토콜에서만 사용됩니다. DNS 애니캐스트는 패킷이 작고 엔드포인트 서버가 예기치 않게 변경되더라도 문제가 되지 않기 때문에 일반적입니다. 일부 사이트에서는 한두 개의 패킷으로만 검색할 수 있는 매우 작은 파일에 대해 HTTP와 함께 애니캐스트를 사용합니다. 그러나 "경로"가 변경될 때마다 TCP 연결이 무작위로 끊어지는 것처럼 보이기 때문에 그 이상은 애니캐스트를 신뢰할 수 없게 됩니다.