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 모니터링 알림이 울렸다. 그러나 앞서 다루던 내부 네트워크 사고가 모니터링 시스템에 소음을 많이 만들고 있어 엔지니어들은 이 알림을 오탐으로 잘못 읽었고, 알림을 다시 판단하기까지 시간이 걸렸다.
조치
–
후속 조치
- DNS 서버가 제대로 동작하지 않을 때 노드를 서비스에서 빼는 방식을 고친다.
- 노드 설정을 고치고, 한 노드가 여러 클러스터의 주소를 알리지 않는지 확인하는 모니터링을 둔다.
- 모니터링과 내부 교육, 조직 운영을 다시 짠다.
- DNS 서버 소프트웨어의 버그를 찾아냈고, 고친 판을 배포하고 있다.
교훈
–
출처
- https://status.gandi.net/incidents/4km3l92vtjvq · official-status · 보관본
관련 사례
같은 원인 · 공통 DNS 서버와 레코드
IL-0150DynamoDB DNS 자동화의 경쟁 조건이 us-east-1 리전 엔드포인트의 DNS 레코드를 비워 DynamoDB 와 EC2 인스턴스 시작이 실패했고, 그 여파로 EKS, ECS, Fargate 의 컨테이너 시작과 클러스터 스케일링이 14시간 넘게 막혔다Amazon Web Services · 2025같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 BGP 라우팅
같은 원인 · 공통 BGP 라우팅
같은 원인 · 공통 BGP 라우팅
IL-0250slack.com 에 DNSSEC 를 켠 뒤 일부 재귀 리졸버에서 slack.com 이름이 풀리지 않아 일부 사용자가 24시간 동안 Slack 에 접속하지 못했다Slack · 2021같은 원인 · 공통 DNS 서버와 레코드
IL-0222유지보수 자동화가 여러 위치의 네트워크 제어 평면 작업을 한꺼번에 내려 미국 Google Cloud 리전의 네트워크가 심하게 혼잡해졌다.Google Cloud · 2019같은 원인 · 공통 BGP 라우팅
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0359
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0359/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.