Incident Library

IL-0359 Gandi · 2020-07-16networking

Gandi LiveDNS 노드 두 대가 멈춰 그 노드로 간 DNS 질의가 타임아웃됐다

Gandi 는 이중화를 위해 DNS 인프라에 Anycast 를 쓰며, DNS 노드의 주소를 BGP 로 알린다. 2020-07-16 13:26 UTC 에 LiveDNS 의 DNS 노드 두 대에서 DNS 서버 소프트웨어 버그가 장애를 일으켜 서버가 멈췄다. DNS 서버가 죽으면 그 노드의 경로 알림을 멈춰야 했는데, 이를 맡은 안전장치가 동작하지 않아 멈춘 노드가 계속 경로를 알렸다.

LiveDNS 의 Anycast 주소는 ns-206-a.gandi.net. 173.246.100.207, ns-64-b.gandi.net. 213.167.230.65, ns-110-c.gandi.net. 217.70.187.111 세 개다. 설정 결함 때문에 이 두 노드는 예정보다 많은 IP 주소를 알렸다. 보통은 ns-x-a 가 답하지 못하면 ns-x-b, 그다음 ns-x-c 로 재시도하지만, 세 주소를 같은 고장 노드가 모두 알리면서 질의와 재시도가 모두 실패했고 이중화가 동작하지 않았다.

DNS 사고가 나기 전부터 Gandi 는 내부 네트워크 사고를 다루고 있었다. 그 사고가 모니터링 시스템에 소음을 많이 만들어 엔지니어들은 DNS 서버의 알림을 오탐으로 여겼고, LiveDNS 모니터링 알림을 다시 판단하는 데 시간이 걸려 장애가 길어졌다. 장애는 13:48 UTC 까지 이어졌고, 상태 페이지에는 13:49 에 해결로 올라갔다. Gandi 는 DNS 서버 소프트웨어의 버그를 찾아냈고, 고친 판을 배포하고 있다고 밝혔다.

심각도
–
영향 범위
DNS queries for domains on Gandi LiveDNS ({abc}.dns.gandi.net) that reached the two failed nodes timed out
영향 사용자
–
지역
FR customers, per the status page
감지까지
–
복구까지
22m

증상

2020-07-16 13:26 UTC 부터 Gandi LiveDNS 의 DNS 노드 두 대로 간 질의가 타임아웃으로 실패했다. 상태 페이지에는 13:26 에 FR 고객에게 영향이 있다는 글이 올라갔다.

LiveDNS 를 쓰는 도메인은 ns-x-a.gandi.net, ns-x-b.gandi.net, ns-x-c.gandi.net 같은 이름의 서버가 응답한다. 보통은 ns-x-a.gandi.net 이 답하지 못하면 ns-x-b.gandi.net, 그다음 ns-x-c.gandi.net 으로 재시도한다. 이번에는 고장 난 노드 하나가 세 주소를 모두 알리고 있어서 질의와 재시도가 모두 실패했다.

DNS 서버에서 알림이 울렸지만, 앞서 다루던 내부 네트워크 사고가 모니터링 시스템에 소음을 많이 만들고 있었다. 엔지니어들은 이 알림을 오탐으로 여겼고, LiveDNS 모니터링 알림을 다시 판단하는 데 시간이 걸려 장애가 길어졌다.

증상 DNS 조회 실패

원인

촉발
LiveDNS 노드 두 대의 DNS 서버 소프트웨어에서 버그가 장애를 일으켜 서버가 멈췄다.

감지

DNS 서버에서 LiveDNS 모니터링 알림이 울렸다. 그러나 앞서 다루던 내부 네트워크 사고가 모니터링 시스템에 소음을 많이 만들고 있어 엔지니어들은 이 알림을 오탐으로 잘못 읽었고, 알림을 다시 판단하기까지 시간이 걸렸다.

조치

–

후속 조치

교훈

–

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: DNS 서버와 레코드, BGP 라우팅. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.