[Network] GeoDNS와 Anycast

김강욱·2024년 12월 29일
0

Network

목록 보기
4/4
post-thumbnail

이번 포스팅에서는 지난 포스팅의 내용에 이어서 사용자의 위치에 따른 라우팅 방식 종류인 GeoDNSAnycast에 대해서 알아보도록 하겠습니다.

이전 포스팅 [Network] CDN이란?

📝 GeoDNS란?

GeoDNS사용자의 IP 주소를 기반으로 물리적으로 가장 가까운 서버로 연결되도록 DNS 레벨에서 라우팅이 이루어지는 방식입니다.

CDN에서 프록시 서버(에지 서버)마다 다른 IP 주소를 DNS에 등록한 상태에서 사용자가 DNS 요청을 보낼 때, 사용자의 IP 주소를 확인해서 가장 가까운 서버의 IP 주소를 반환하는 식의 지리적 라우팅이 바로 GeoDNS 방식입니다.

📝 Anycast란?

AnycastUnicast와 반대되는 라우팅 방식입니다.

✔️ Unicast

Unicast 라우팅 방식은 하나의 IP 주소가 하나의 서버에만 연결되는 방식입니다. 즉, 특정 서버와 IP 주소가 1:1 관계입니다. 이 IP 주소에 요청을 보내면 항상 같은 서버로 연결이 되는 방식입니다.

주로 개인 서버나 일반 웹 사이트 서버, AWS EC2 서버 등이 Unicast 방식을 사용합니다.

✔️ Anycast

Anycast 라우팅 방식은 하나의 IP 주소가 여러 서버에 공유되는 방식입니다. 즉, 하나의 IP 주소가 여러 서버와 1:N 관계를 가집니다. 이 IP 주소에 요청을 보내면, 가장 가까운 서버로 연결이 되는 방식입니다.

주로 Cloudflare나 Google DNS (8.8.8.8), AWS CloudFront 등이 Anycast 방식을 사용하고 있습니다.

📌 Anycast 동작 방식

Anycast는 BGP(Border Gateway Protocol)이라는 네트워크 라우팅 프로토콜을 사용하여 가장 가까운 경로를 찾는 방식으로 동작합니다.

예를 들어, 보통의 IP 주소는 서울에 있는 가게의 정확한 주소를 말하지만 Anycast의 IP 주소는 전국에 있는 지점 중 가장 가까운 지점의 주소를 의미합니다.

그렇다면 가장 가까운 지점의 주소는 어떻게 찾을 수 있을까요? BGP 라우팅 시스템에 대해서 알아보도록 하겠습니다.

✔️ BGP 라우팅 시스템

기본적으로 인터넷 상의 모든 라우터는 서로 연결(Peering)됩니다. 이 연결은 BGP 프로토콜을 통해 이루어집니다.

BGP 프로토콜을 통한 라우팅 시스템에서는 BGP 라우팅 테이블과 포워딩 테이블이 존재합니다.

BGP 라우팅 테이블은 라우터가 이웃 라우터로부터 받은 경로 정보를 모아놓은 데이터베이스입니다. 인터넷 전체의 경로 정보를 모두 저장하는 것이 아니라, 각 라우터가 알고 있는 경로 정보를 기반으로 유지됩니다.

포워딩 테이블은 각각의 라우터에서 최종적으로 트래픽을 전달할 경로 정보만 저장하는 테이블입니다. 포워딩 테이블은 목적지당 단 하나의 경로만 포함합니다.

BGP 라우팅 테이블에서 선택된 최적의 경로만 포워딩 테이블로 넘어갑니다.
라우터는 이 테이블을 사용해 실제로 패킷을 전달합니다.

예를 들어, 라우터 A는 "내가 192.168.0.0/24 경로에 접근할 수 있어"라고 인접한 라우터 B에게 알려줍니다. 라우터 B는 그 정보를 받아서, BGP 라우팅 테이블에 기록하게 됩니다. 그리고 업데이트된 BGP 라우팅 테이블을 바탕으로 가장 최적화된 경로를 포워딩 테이블에 반영하게 됩니다.

간단하게 정리해서 BGP 라우팅 시스템인터넷 라우터들이 서로 경로 정보를 교환하고 실시간으로 경로 정보가 변경됨에 따라 업데이트된 경로 정보를 통해 라우터 간에 "어디로 가는 길이 가장 빠른지"를 알려주는 경로 안내판 시스템이라고 볼 수 있습니다.

이러한 방식을 통해서 고정된 IP를 가지는 여러 서버 중 가장 최적화된 경로의 서버로 요청을 보낼 수 있게 됩니다.

profile
TO BE DEVELOPER

0개의 댓글

관련 채용 정보