가끔 공부하다보면 anycast란 내용이 보이길래 요약겸 정리해논다.
Anycast
Anycast는 각각 동일한 IP 주소가 할당된 엔드포인트 그룹에 여러 라우팅 경로를 제공하는 기술 - microsoft
??? 이렇게 말하면 무슨 말인지 감이 잡히지 않는다.
보통 우리가 알고 있는 IP는 '고유한' 주소이고, Unicast IP이다.
우선 unicast가 뭔지 알고 넘어가야 될꺼 같다.
참고)
유니캐스트 (Unicast) - 1 : 1
유니캐스트는 정보를 전송하기 위한 프레임에 자신의 MAC 주소와 목적지의 MAC 주소를 첨부하여 전송
브로드캐스트 (Broadcast) 1 : N
브로드캐스트 방식은 로컬 네트워크에 연결되어 있는 모든 시스템에게 프레임을 보내는 방식
멀티캐스트(Multicast) 1: N (특정 그룹)
멀티캐스트는 네트워크에 연결되어 있는 시스템 중 일부에게만 정보를 전송하는 것으로 특정 그룹에 속해 있는 시스템에게만 한 번에 정보를 전송할 수 있는 방법
라우터가 멀티캐스트를 지원해야만 사용 가능하다는 단점
멀티캐스트 전송이 지원되면 송신자는 여러 수신자에게 한 번에 메시지가 전송되도록 하여
데이터의 중복 전송으로 인한 네트워크 자원 낭비를 최소화할 수 있게 된다.
멀티캐스트 전송을 위해서는 헤더에 수신자의 주소 대신 수신자들이 참여하고 있는 그룹 주소를 표시하여 패킷을 전송한다.
Anycast란?
Anycast IP는 서로 다른 호스트끼리 동일한 IP 주소를 가질 수 있는 개념이다.
링크 계층(L2)에서 맥 주소를 보고 데이터를 전달할때는 충돌이 일어나면 사용이 불가능하지만
라우터(L3)에서는 네트워크 라우팅 알고리즘(BGP)을 통해 가장 가까운곳으로 판단되는 쪽으로 사용 가능한 식으로 구현되어 있다.
anycast는 주로 DNS 서비스에 많이 활용되고 있다는데 지역별로 DNS 서버를 분산하고, 항상 네트워크 경로상 가까운 DNS 서버가 응답하게 된다.
왜 이런 구조를 사용하냐면 root DNS에 하위 DNS 서버들이 계층적으로 쌓여있는 기존 구조에서는 네트워크 DNS DDos 공격이나 웜 공격등으로 root DNS가 마비되게 되면 전 세계 DNS가 마비되게 된다. 그래서 DNS를 적절히 분산 구성해 분산 처리 및 가까운 거리로 인한 네트워크 지연 감소 등 여러 이유로 사용하고 있다고 한다.
가장 유명한 예시로는 구글의 public DNS IP 8.8.8.8 이 anycast로 구성되어 있고,
전세계 국가에 분산되어 있다고 한다.
장점
- L4/L7 로드밸런싱 장비 대신 쓰기 가능?(라우팅+서버)
- 사용자와 네트워크 적으로 가장 가까운 곳으로 안내
- L4/L7 이 대규모 트래픽 처리가 힘든데 서버로 바로 트래픽을 보내니 대규모 트래픽 처리에 용이
- 회선문제로 장애시 자동으로 다른곳으로 우회(회선 이중화 비용 절감)
- 오픈소스 -> 가격 X!
단점
- 네트워크 적으로 가장 가까운곳 !== 지리적으로 가까운곳
ISP 마다 라우팅 정책이 다르므로 제어가 힘들다.
- 라우터에서 라우팅만 하기 때문에 L4/L7에선 가능한? 서버의 상태 체크(죽었나 살았나)가 안된다는 단점
reference
https://docs.microsoft.com/ko-kr/windows-server/networking/dns/deploy/anycast
https://tech.kakao.com/2014/05/29/anycast/
'CS > 네트워크' 카테고리의 다른 글
URL & URI & URN (0) | 2022.02.27 |
---|---|
HTTP 메소드 멱등성, 안전한 메소드 (0) | 2022.01.31 |
[TCP] 3-way handshake와 4-way handshake (0) | 2022.01.23 |
Pooling, Long Pooling, Streaming (0) | 2022.01.23 |