Incident Library

IL-0539 KT · 2021-10-25networking

잘못된 경로 정보가 IS-IS 로 전국 라우터에 퍼져 KT 인터넷이 약 89분 동안 끊겼다

KT 는 외부 네트워크와 경로를 주고받을 때 BGP 를, KT 내부 네트워크의 경로를 구성할 때 IS-IS 를 쓴다. 2021년 10월 25일 KT 부산국사에서 기업망 라우터를 교체하던 작업자가 라우팅 설정 스크립트에서 IS-IS 설정을 끝내는 exit 명령을 빠뜨렸다. 이 때문에 BGP 에서 교환할 경로 정보가 IS-IS 로 전송됐다. IS-IS 는 보통 1만 개 안팎의 경로 정보를 교환하는데, 여기에 수십만 개의 BGP 경로 정보가 올라가면서 라우팅 경로에 오류가 생겼다. IS-IS 라우터들은 서로 정보를 자동으로 주고받아 갱신하고, KT 의 IS-IS 는 잘못된 데이터 전달을 막는 장치 없이 전국을 하나로 연결하고 있었다. 그래서 부산 라우터 하나의 잘못된 경로가 전국 라우터로 연쇄 전파됐다.

장애는 11시 16분쯤 DNS 트래픽 증가로 시작했다. KT 는 11시 20분에 장애를 알아챘고 처음에는 DDoS 공격을 의심했다. 11시 40분 정부에 신고했고 11시 44분 라우팅 오류로 판단했다. 정부는 11시 56분 2단계 경보를 발령했고, 11시 57분 복구가 시작돼 12시 45분 복구 조치가 끝났다. 서비스 장애는 약 89분이었다. 복구는 문제 라우터를 먼저 고립시킨 뒤, 지역 라우터마다 접속해 문제가 된 프로세스를 지우고 다시 살리는 순서로 진행했다. KT 는 이용자에게 장애를 홈페이지에 공지했고, 문자 안내는 늦었다.

과학기술정보통신부와 민간 전문가로 꾸린 사고조사반은 관리 측면과 기술 측면의 문제를 밝혔다. KT 네트워크 관제센터가 승인한 작업 시간은 10월 26일 1~6시 야간이었지만, 작업은 KT 관리자와 협력업체 직원의 합의로 25일 주간에 진행됐다. 관리자는 다른 업무로 자리를 비웠고, 협력업체 직원들끼리 A급 시설인 부산통신센터에서 C급 시설인 부산국사의 라우터를 원격으로 작업했다. 네트워크는 연결된 채였다. 스크립트에서 exit 가 빠진 것은 KT 직원의 1·2차 사전검증에서도 걸러지지 않았다. 이 검증은 사람이 직접 검토하는 방식이었다. 망과 분리된 가상 테스트베드에서 미리 돌려 보는 단계가 없었고, 한 지역의 오류가 전국으로 번지는 것을 막는 시스템도 없었다.

심각도
–
영향 범위
KT's internet service nationwide for about 89 minutes; added load on KT's voice and text message networks
영향 사용자
–
지역
nationwide across KT's network in Korea
감지까지
4m
복구까지
1h 29m

증상

2021년 10월 25일 11시 16분쯤부터 KT 의 DNS 서버로 들어오는 트래픽이 갑자기 늘었고, 이어서 전국에서 KT 인터넷이 끊겼다. KT 는 11시 20분에 인터넷 장애를 알아챘다.

DNS 서버의 트래픽은 평시와 비교해 중앙 1차 DNS 에서 22배 이상, 2차 DNS 에서 4배 이상, 부산 DNS 에서 3.7배 이상 늘었다. 대역폭으로 보면 중앙 1차 DNS 서버 대역폭의 최대 8%, 부산 DNS 서버 대역폭의 28% 수준이었다. IP 하나가 보낸 DNS 질의는 많아야 15개 정도였고, 네이버나 다음 같은 정상 도메인을 묻는 질의뿐이었다.

부산 지역 라우터에 잘못된 라우팅 경로가 설정된 뒤, 같은 IS-IS 프로토콜로 묶인 다른 지역 라우터에도 잘못된 갱신 정보가 전달됐다. 라우터 하나의 오류가 전국 라우터에 연쇄로 번졌다. 인터넷 자체가 잘 되지 않아 복구하는 쪽에서도 지방에 있는 라우터에 접속하기 어려웠다.

IPTV 와 음성·문자 서비스망은 인터넷 서비스망과 따로 구성돼 있었다. 그런데도 인터넷이 끊기자 전화와 문자 사용이 늘고 단말 전원을 껐다 켜는 이용자가 많아져, 음성·문자망의 부하도 커졌을 것으로 조사반은 추정했다.

KT 는 처음 11시 20분대에 DDoS 공격을 의심했고, 장애는 한동안 사이버 공격으로 잘못 알려졌다. KT 는 11시 40분 과학기술정보통신부에 신고했고, 11시 44분에 DDoS 공격이 아니라 라우팅 오류라고 판단해 알렸다. 정부 조사반은 패킷과 트래픽을 분석해 DDoS 공격이 아니라고 결론 내렸다. 방화벽은 외부 공격을 막는 장치여서, 내부에서 생긴 설정 오류에는 작동하지 않았다.

증상 네트워크 도달 불가서비스 중단

원인

촉발
KT 부산국사에서 기업망 라우터를 교체하던 작업자가 IS-IS 설정 명령을 마무리하면서 exit 명령을 빠뜨렸다. 그 바람에 뒤의 설정이 BGP 와 연결돼, BGP 로 주고받아야 할 경로 정보가 IS-IS 로 전송됐다.

감지

11시 16분부터 DNS 서버 트래픽이 급증했고, KT 는 11시 20분에 인터넷 장애를 알아챘다. 정부도 네트워크 트래픽 모니터링에서 트래픽 증가를 보고 현장에 나가 조사했다. KT 는 처음에 DDoS 공격을 의심했다가 11시 44분 라우팅 오류로 판단했다.

조치

후속 조치

교훈

조사반은 이 장애를 관리 문제와 기술 문제로 나눠 정리했다. 승인된 작업 시간은 야간이었지만 작업은 주간에 관리자 없이 네트워크를 연결한 채 진행됐다. 사람이 직접 검토하는 1·2차 사전검증도 빠진 exit 를 찾지 못했다. 설정을 미리 돌려 볼 가상 테스트베드와 한 지역의 오류가 전국으로 번지는 것을 막는 장치가 없어서 라우터 하나의 실수가 전국 장애가 됐다. 정부는 3년 전 KT 아현국사 화재 뒤의 대책이 물리적이고 국지적인 재난에 맞춰져 있었고, 이번 장애는 시스템 전체에 번지는 새로운 종류였다고 밝혔다.

출처

관련 사례

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

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

AI 도구와 스크립트용

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