| r38 vs r39 | ||
|---|---|---|
| ... | ... | |
| 7 | 7 | == 이유 == |
| 8 | 8 | [[https://blog.cloudflare.com/18-november-2025-outage/|원본.]] |
| 9 | 9 | |
| 10 | [[파일:클플 오류1.png]] | |
| 10 | [[파일:클플 오류1.png|width=100%]] | |
| 11 | 11 | |
| 12 | 12 | 2025년 11월 18일 11:20 UTC에(이 블로그의 모든 시간은 UTC 기준), Cloudflare 네트워크에서 핵심 트래픽 전달에 심각한 장애가 발생하기 시작했습니다. 이로 인해 인터넷 사용자가 고객 사이트에 접속하려고 하면, Cloudflare 네트워크 내부에서 문제가 발생했다는 오류 페이지가 표시되었습니다. |
| 13 | 13 | |
| 14 | [[파일:클플 오류2.png]] | |
| 14 | [[파일:클플 오류2.png|width=100%]] | |
| 15 | 15 | |
| 16 | 16 | '''이 문제는 사이버 공격이나 악의적 활동과는 직접적·간접적으로도 관련이 없었습니다.''' 대신, 데이터베이스 시스템 중 하나의 권한 변경으로 인해, Bot Management 시스템에서 사용하는 “feature file”에 여러 항목이 출력되면서 문제가 발생했습니다. 그 결과, 해당 feature file의 크기가 두 배로 늘어났고, 이 커진 파일이 네트워크를 구성하는 모든 머신에 전파되었습니다. |
| 17 | 17 | |
| ... | ... | |
| 26 | 26 | '''{{{+5 장애 상황}}}''' |
| 27 | 27 | 아래 차트는 Cloudflare 네트워크에서 발생한 5xx HTTP 상태 코드의 양을 보여줍니다. 정상적으로는 이 수치가 매우 낮아야 하는데, 장애가 시작되기 전까지는 정상적으로 낮은 상태였습니다. |
| 28 | 28 | |
| 29 | [[파일:클플 오류3.png]] | |
| 29 | [[파일:클플 오류3.png|width=100%]] | |
| 30 | 30 | |
| 31 | 31 | 11:20 이전의 수치는 네트워크 전반에서 관찰된 5xx 오류의 정상 기준선입니다. 이후 급증과 변동은 잘못된 feature file을 로드하면서 시스템이 실패한 것을 보여줍니다. 흥미로운 점은 시스템이 잠시 회복되기도 했다는 것으로, 내부 오류에서는 매우 드문 현상이었습니다. |
| 32 | 32 | |
| ... | ... | |
| 52 | 52 | |
| 53 | 53 | 핵심 프록시가 작동하는 방식에 대해서는 [[https://blog.cloudflare.com/20-percent-internet-upgrade/|여기서]] 이전에 더 자세히 공유한 바 있습니다. |
| 54 | 54 | |
| 55 | [[파일:클플 오류4.png]] | |
| 55 | [[파일:클플 오류4.png|width=100%]] | |
| 56 | 56 | |
| 57 | 57 | 요청이 핵심 프록시를 통과하는 동안, Cloudflare는 네트워크에서 제공하는 다양한 보안 및 성능 기능을 실행합니다. 프록시는 각 고객의 고유한 구성과 설정을 적용하며, WAF 규칙 적용, DDoS 방어, 트래픽을 Developer Platform이나 R2로 라우팅하는 작업 등을 수행합니다. 이는 도메인별 모듈을 통해 이루어지며, 모듈이 프록시를 통과하는 트래픽에 구성과 정책 규칙을 적용합니다. |
| 58 | 58 | |
| ... | ... | |
| 74 | 74 | |
| 75 | 75 | 또한 우리를 혼란스럽게 하고 이번 사건이 공격일 수 있다고 생각하게 만든 증상 중 하나는 Cloudflare 상태 페이지가 다운된 것이었습니다. 상태 페이지는 Cloudflare 인프라와 전혀 의존성이 없는 외부에서 호스팅되고 있었습니다. 우연의 일치였지만, 일부 팀은 공격자가 시스템과 상태 페이지를 동시에 대상으로 하고 있다고 오인하게 되었습니다. 당시 상태 페이지를 방문한 사용자는 오류 메시지를 보게 되었습니다. |
| 76 | 76 | |
| 77 | [[파일:클플 오류5.png]] | |
| 77 | [[파일:클플 오류5.png|width=100%]] | |
| 78 | 78 | |
| 79 | 79 | 내부 사고 채팅방에서는, 이번 문제가 최근 발생한 대규모 [[https://blog.cloudflare.com/defending-the-internet-how-cloudflare-blocked-a-monumental-7-3-tbps-ddos/|Aisuru DDoS]] 공격의 연장일 수 있다는 우려가 있었습니다. |
| 80 | 80 | |
| 81 | [[파일:클플 오류6.png]] | |
| 81 | [[파일:클플 오류6.png|width=100%]] | |
| 82 | 82 | |
| 83 | 83 | {{{+5 쿼리 동작 변경}}} |
| 84 | 84 | |
| ... | ... | |
| 108 | 108 | |
| 109 | 109 | 위 쿼리는 (단순화한 예시처럼) 컬럼 테이블을 반환하게 됩니다. |
| 110 | 110 | |
| 111 | [[파일:클플 오류7.png]] | |
| 111 | [[파일:클플 오류7.png|width=100%]] | |
| 112 | 112 | |
| 113 | 113 | 하지만 사용자에게 추가 권한을 부여한 결과, 이제 쿼리 응답에는 r0 스키마의 모든 메타데이터가 포함되게 되었고, 그로 인해 응답 행 수가 사실상 두 배 이상 늘어나 최종 파일 출력에서 feature 수에도 영향을 미쳤습니다. |
| 114 | 114 | |
| ... | ... | |
| 120 | 120 | |
| 121 | 121 | 그런데 잘못된 파일에 200개 이상의 feature가 포함되어 서버에 배포되면서, 이 제한을 초과하게 되었고, 시스템이 panic 상태에 빠지게 되었습니다. 이 확인을 수행하고 처리되지 않은 오류의 원인이 된 FL2 Rust 코드가 아래에 표시됩니다. |
| 122 | 122 | |
| 123 | [[파일:클플 오류8.png]] | |
| 123 | [[파일:클플 오류8.png|width=100%]] | |
| 124 | 124 | |
| 125 | 125 | 이로 인해 다음과 같은 panic이 발생했고, 결국 HTTP 5xx 오류로 이어졌습니다. |
| 126 | 126 | |
| ... | ... | |
| 134 | 134 | |
| 135 | 135 | 이번 장애로 Turnstile도 영향을 받아, 활성 대시보드 세션이 없는 고객은 로그인할 수 없었습니다. 이로 인해 11:30 ~ 13:10과 14:30 ~ 15:30 두 시간대에 가용성이 감소했습니다. |
| 136 | 136 | |
| 137 | [[파일:클플 오류9.png]] | |
| 137 | [[파일:클플 오류9.png|width=100%]] | |
| 138 | 138 | |
| 139 | 139 | 첫 번째 기간인 11:30~13:10은 Workers KV에 대한 영향 때문이었으며, 일부 제어 플레인 및 대시보드 기능이 이에 의존하고 있었습니다. 13:10에 Workers KV가 핵심 프록시 시스템을 우회하도록 설정되면서 복구되었습니다. |
| 140 | 140 | |
| ... | ... |