{"id":"IL-0254","org":"Square","date":"2023-09-07","docs":[],"title":{"en":"Square's internal DNS servers failed and Square products, services and payments were unavailable for about 15 hours","ko":"내부 DNS 서버가 무너져 Square 의 제품과 서비스가 약 15시간 멈추고 결제가 되지 않았다"},"domain":["networking"],"impact":{"scope":"All Square products and services, internal tools and payment processing; Square Online websites stayed up but could not take payments, and offline-mode payments were processed hours later","users":"Square sellers and their customers","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://developer.squareup.com/blog/incident-summary-2023-09-07/","kind":"blog","archived":"https://web.archive.org/web/20251125152135/https://developer.squareup.com/blog/incident-summary-2023-09-07/"}],"summary":{"en":"Square runs in multiple data center regions, and its services find their dependencies and serve requests through DNS and mesh-based routing, so without DNS Square products, internal tools and services cannot talk to each other. A central service manages Square's host-based firewall policy and pushes it to nodes, which expand the policy into firewall rules; it uses an accelerated rollout strategy to adapt quickly to changes in the environment. On 7 September 2023 a small policy change expanded into a much larger ruleset. The large ruleset made nodes unstable, and combined with the traffic pattern of DNS and a DNS service upgrade it made the internal DNS servers start failing requests. Once node-based DNS caches expired, services could not reach their dependencies, and the outage reached internal tools needed for recovery, which lengthened it.\n\nEngineers recovered internal access first, then deployed networking changes by hand to re-enable authorization and access services and then to all data centers, while shedding traffic to the DNS servers and bringing up new ones. Adding DNS capacity did not help. The DNS servers were rebuilt from 10:06 PM ET, and a configuration based on the reverted ruleset was pushed to the DNS hosts from 11:52 PM ET. All DNS servers were healthy at 12:55 AM ET on 8 September, payment traffic had fully recovered by 2:40 AM ET, edge routing by 3:12 AM ET, and the status page incident was resolved at 5:19 AM ET. Offline-mode payments, whose processing Square deferred as a precaution, were fully processed by 1:57 PM ET on 8 September. A forensic analysis ruled out a cyberattack and found no evidence of a data breach or loss.","ko":"Square 는 여러 데이터센터 리전에서 돌고, 서비스들은 DNS 와 메시 기반 라우팅으로 의존하는 서비스를 찾는다. DNS 가 없으면 제품, 내부 도구, 서비스가 서로 통신하지 못한다. 호스트 방화벽 정책은 중앙 서비스가 데이터센터의 노드로 내려보내고, 노드가 그 정책을 방화벽 규칙으로 펼친다. 이 중앙 서비스는 환경 변화에 빨리 맞추려고 빠른 롤아웃 방식을 쓴다.\n\n9월 7일 오전 11:04 ET 에 배포한 작은 방화벽 정책 변경이 노드에서 훨씬 큰 규칙 묶음으로 펼쳐져 노드를 불안정하게 했다. 여기에 DNS 서비스 업그레이드와 DNS 의 트래픽 패턴이 겹쳐 내부 DNS 서버에 예상하지 못한 부하가 걸렸다. 그러자 DNS 요청이 실패하기 시작했다. 노드의 DNS 캐시가 만료되자 서비스들이 서로를 찾지 못해 외부 요청이 실패했고, 오후 1:54 ET 부터 Square 의 제품과 서비스를 쓸 수 없었다. 문제 해결과 복구에 쓰는 서비스도 함께 멈춰 장애가 길어졌다.\n\n엔지니어들은 DNS 서버로 가는 트래픽을 덜고 새 DNS 서버를 손으로 띄웠다. DNS 용량을 늘려도 소용이 없자 인증과 접근 서비스에 먼저, 이어서 모든 데이터센터에 네트워크 변경을 손으로 배포했다. DNS 서버를 다시 만들고, 되돌린 규칙 묶음으로 만든 새 설정을 DNS 호스트에 내보냈다. 9월 8일 오전 12:55 ET 에 모든 DNS 서버가 정상이 됐고, 오전 2:40 ET 에 결제 트래픽이 완전히 회복됐으며, 오전 5:19 ET 에 사고가 해결됐다. 오프라인 모드로 받은 결제는 예방 차원에서 몇 시간 미뤘다가 오후 1:57 ET 까지 모두 처리했다. 포렌식 분석으로 사이버 공격은 원인이 아니라고 확인했고, 데이터 유출이나 손실의 증거도 없었다."},"trigger":{"en":"At 11:04 AM ET a host-based firewall rule change was deployed to enable region communication, which increased the size of the firewall rules on nodes. Combined with a DNS service upgrade, it put unexpected load on the internal DNS servers. The timeline also lists a DNS zone change at 1:56 PM ET.","ko":"Square 는 2023년 9월 7일 오전 11:04 ET 에 리전 간 통신을 열려고 호스트 방화벽 규칙 변경을 배포했고, 오후 1:56 ET 에는 DNS 영역 변경이 있었다. 작은 정책 변경이 노드에서 훨씬 큰 규칙 묶음으로 펼쳐졌다."},"severity":"unknown","symptoms":["dns-resolution-failures","service-unavailable"],"timeline":{"detected_after":"8m","resolved_after":"15h 25m"},"date_kind":"incident","detection":{"en":"Engineers were notified of infrastructure issues at 2:02 PM ET, eight minutes after services became unavailable.","ko":"오후 2:02 ET 에 엔지니어들이 인프라 문제 알림을 받았다. 장애가 시작되고 8분 뒤였다."},"components":["dns-server","node-iptables"],"root_cause":"config-change","remediation":[{"text":{"en":"Shed network traffic to the DNS servers and started bringing up new DNS servers by hand","ko":"DNS 서버로 가는 네트워크 트래픽을 덜고, 새 DNS 서버를 손으로 띄우기 시작했다."}},{"text":{"en":"Deployed networking changes by hand to re-enable the authorization and access services","ko":"인증과 접근 서비스를 되살리려고 네트워크 변경을 손으로 배포했다."}},{"text":{"en":"Deployed the networking changes by hand to all data centers","ko":"모든 데이터센터에 네트워크 변경을 손으로 배포했다."}},{"text":{"en":"Rebuilt the DNS servers","ko":"DNS 서버를 다시 만들었다."}},{"text":{"en":"Built a new configuration from the reverted firewall ruleset and pushed it to the DNS hosts","ko":"되돌린 방화벽 규칙 묶음으로 새 설정을 만들어 DNS 호스트에 내보냈다."}}],"action_items":[{"text":{"en":"Move the DNS infrastructure onto isolated infrastructure","ko":"DNS 인프라를 격리된 인프라로 옮긴다."}},{"text":{"en":"Add monitoring and optimizations for critical networking infrastructure","ko":"핵심 네트워크 인프라에 모니터링과 최적화를 더한다."}},{"text":{"en":"Optimize dependencies between the deploy and platform infrastructure where feasible","ko":"가능한 곳에서 배포 인프라와 플랫폼 인프라 사이의 의존 관계를 최적화한다."}},{"text":{"en":"Expand support for Offline Mode and improve communication about when it is available","ko":"오프라인 모드 지원을 넓히고, 오프라인 모드를 쓸 수 있는지 판매자에게 더 잘 알린다."}}],"contributing":["no-staged-rollout","failure-delayed-by-cache","circular-dependency"],"recurrence_of":null,"symptoms_text":{"en":"From 1:54 PM ET on 7 September 2023, Square products and services were unavailable, and at 2:02 PM ET engineers were notified of infrastructure issues and began investigating DNS. Square Online websites stayed up, but their customers could not make payments.\n\nSquare's internal DNS servers were failing requests. Services kept working until the DNS caches on their nodes expired; after that they could not reach their dependencies, and external requests failed. Many of the services used for troubleshooting and recovery were also affected, so from 2:52 PM ET engineers first had to recover internal access and tooling. Internal access services came back at 6:29 PM ET, and only then could engineers work in parallel on the authorization and control plane services; the deployment pipeline recovered at 8:36 PM ET.\n\nAt 3:56 PM ET the team shed network traffic to the DNS servers and started bringing up new DNS servers by hand. Increasing DNS service capacity at 6:00 PM ET did not help. DNS recovered only after the DNS servers were rebuilt and a configuration built from the reverted firewall ruleset was pushed to the DNS hosts from 11:52 PM ET; all DNS servers were healthy at 12:55 AM ET on 8 September.","ko":"2023년 9월 7일 오후 1:54 ET 부터 Square 의 제품과 서비스를 쓸 수 없었다. 오후 2:02 ET 에 엔지니어들이 인프라 문제 알림을 받고 DNS 부터 조사하기 시작했다.\n\n내부 DNS 서버가 요청을 실패시키기 시작했다. 노드의 DNS 캐시가 만료되자 서비스들이 의존하는 서비스를 찾지 못했고 외부 요청이 실패했다. Square Online 웹사이트는 열렸지만 결제를 처리하지 못했다.\n\n문제를 살피고 복구하는 데 쓰는 내부 도구와 서비스도 함께 멈췄다. 엔지니어들은 오후 2:52 ET 부터 내부 접근과 도구를 되살리는 일부터 해야 했다.\n\n오후 6:00 ET 에 DNS 서비스 용량을 늘렸지만 나아지지 않았다."},"updated_at":"2026-11-14T12:33:50.343731Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0254","org_slug":"square"}