- 네트워크 기술 하나 중 Anycast는 DNS 서비스에서 주로 사용
- 각 글로벌 POP에 비용 절감 및 고가용성 용도로도 많이 사용
1. Anycast란
- 보통 알고 사용하고 있는 IP 주소는 Unicast IP이며 이것은 고유한 IP 주소
- Anycast IP는 서로 다른 곳, 서로 다른 호스트끼리 동일한 IP 주소를 가질 수 있는 개념 → 네트워크 내 다수의 서버가 동일한 IP 주소 또는 일련의 IP 주소를 이용(Anycast 네트워크에서는 통신은 일대다)
- 동일한 IP 주소를 사용하는 경우, 충돌 발생 가능 → 충돌된 IP들의 회피 방법은 BGP와 같은 라우팅 프로토콜에 의해서 해결
- 라우팅 프로토콜에 의해 충돌난 IP에 대해서 가장 최적의 경로의 IP를 가진 서버를 1개 선택해서 라우팅함
- 같은 IP를 각 라우터들이 어나운스하며 가장 가까운 곳으로 판단되는 쪽으로 사용
- 라우팅 코스트가 가장 적은 쪽의 경로를 선택, 라우팅 코스트가 같다면 로드밸런싱함
2. Anycast DNS
- Anycast는 주로 DNS 서비스에 많이 활용
- Anycast 기법을 사용하여 DNS 서버를 지역별 분산 구성하여 DNS 질의를 요청한 클라이언트와 가장 근접한 DNS 서버가 처리하도록 하여 응답속도와 안정성을 향상함
- 항상 네트워크 경로상 가장 가까운 DNS 서버가 응답 → 가장 가까운 DNS가 장애가 발생되면 라우터에서 어나운스가 되지 않아 자동으로 빠지며 그다음 가까이 위치에 있는 DNS가 대신 처리함
- 지리적으로 가장 가까운 서버가 응답하는 Anycast DNS는 대기 시간을 줄이고, DNS 확인 서비스의 가동 시간을 늘리면서, DNS 폭주 DDoS 공격을 방지 가능
- Google public DNS를 Anycast로 구성하여 가장 가까운 지역에서 DNS서비스를 받는 과정
2.1. Anycast DNS 도입배경
- Anycast가 도입된 이유는 2002년 10월 root DNS DDoS 공격으로 전 세계 13개 root DNS 중 8개가 다운, 2003년 1.25 인터넷 대란 때 5개의 root DNS가 웜으로 DDoS 공격당하여 전 세계 DNS가 마비되어서 개선안으로 Anycast 기술을 사용하게 됨
- Anycast IP를 이용하여 DNS를 적절히 분산구성하여 한쪽 지역이 무너지더라도 다른 지역에서 서비스를 받을 수 있도록 함
2.2. Google public DNS
- Google public DNS의 IP 8.8.8.8가 대표적으로 Anycast로 구성되어 있으며 전 세계 국가에 분산되어 있고 규모가 엄청남
- Google public DNS를 쓰면 자신이 속한 지역에서 라우팅 경로가 가장 최적인 지역의 DNS 서비스를 받고, Google 서비스에 대한 서비스도 최적에 있는 지역의 서버에 서비스를 진행
- 아시아에선 Google public DNS가 대만과 홍콩에 위치
- Google public DNS 참고 자료 : https://developers.google.com/speed/public-dns/faq#locations
3. Anycast DNS의 작동 방식
- Anycast를 이용하면 DNS 확인이 훨씬 빨라짐
- Anycast DNS에서는, DNS 질의가 하나의 특정 DNS가 아닌 다른 DNS의 네트워크로 향하며, 가장 가까우면서 가용한 DNS로 질의를 보냄
- DNS 질의 및 응답은 가장 빨리 질의에 응답할 수 있도록 최적화된 경로를 따름
- Anycast는 DNS 확인 서비스의 가용성을 높이는 데도 도움이 됨
- 하나의 DNS 가 오프라인 상태가 되더라도 네트워크의 다른 DNS가 질의에 응답할 수 있음
- CDN은 Anycast이므로, DNS 질의는 네트워크 내 어떤 데이터 센터에서도 확인 가능 → 네트워크 내의 모든 DNS가 모든 DNS 질의에 응답할 수 있음
4. Anycast가 없을 때의 DNS 확인 작동 방식
- Anycast를 사용하지 않는 DNS 확인 서비스는 Unicast 라우팅을 사용하는 경우가 많음
- Unicast 라우팅에서는 모든 DNS 서버에 하나의 IP 주소가 있으며 모든 DNS 질의는 특정 서버로 향함
- 해당 DNS가 작동하지 않거나 사용할 수 없는 경우, 클라이언트는 추가 DNS에 질의해야 하는데, DNS 확인 시간이 길어지게 됨
5. Anycast DNS가 DDoS 공격에 대한 복원력을 제공하는 방식
- DDoS 공격은 DNS 폭주 공격을 통해 DNS 마비시킴
- DDoS 공격은 대개 IoT 기기로 된 대규모 봇네트를 이용해 DNS 질의로 DNS를 압도하거나 DNS에 폭주함
- DNS 폭주 공격은 개방된 DNS를 통해 DDoS 공격을 증폭시키는 DNS 증폭 공격과는 다름
- Anycast 네트워크는 트래픽을 전체 네트워크에 분산시킬 수 있으므로, DDoS 방어도 제공
- Anycast 네트워크는 특정 IP 주소로의 요청에 대해 다수의 서버가 응답하므로, 한 대의 서버를 압도할 수 있는 수천 개의 요청이 다수의 서버에 나눠지는 것
- Anycast 네트워크는 대개의 DNS 폭주 공격에 취약하지 않음
- DNS 폭주 공격 참고 자료 1 : https://www.cloudflare.com/ko-kr/learning/ddos/dns-flood-ddos-attack/
- DNS 증폭 공격 참고 자료 2 : https://www.cloudflare.com/ko-kr/learning/ddos/dns-amplification-ddos-attack/
참고 자료
'GTM과 DNS' 카테고리의 다른 글
Anycast DNS의 네트워크적 설명 (0) | 2023.09.16 |
---|---|
DNS 보안 프로토콜 → DoH와 DoT (0) | 2023.09.16 |
HTTPS 암호화된 DNS 기능 지원 → TYPE65 (0) | 2023.09.16 |
cloudflare DNS와 google DNS의 cache flush (0) | 2023.09.16 |
Bind DNS recursion 설정 (0) | 2023.09.16 |