DDoS 공격 시 OVS 커널 데이터패스 성능 붕괴 원인 및 대응 분석

·2026.10.14 10:14

핵심 내용

Upcall Storm과 Mask Explosion으로 처리량이 Mpps에서 Kpps로 급감하는 구조를 분석했다.

자세히 보기

무작위 패턴의 DDoS 공격은 Open vSwitch(OVS) 커널 데이터패스의 트래픽 locality 전제를 무너뜨려 성능을 붕괴시킨다. 주요 원인은 Upcall Storm, Mask Explosion, Cache Thrashing 세 가지다.

성능 저하 메커니즘

Upcall Storm은 무작위 헤더로 인해 모든 패킷이 플로우 미스(Flow Miss)를 유발하면서 발생한다. 커널은 Generic Netlink을 통해 유저스페이스의 ovs-vswitchd로 업콜을 실행해야 하며, 이 과정에서 문맥 교환과 넷링크 직렬화 오버헤드로 인해 처리량이 초당 수백만 패킷(Mpps)에서 수만 패킷(Kpps) 단위로 급락한다.

Mask Explosion은 완화 규칙 설치 시 커널의 와일드카드 매칭 복잡도가 증가하는 현상이다. **TSS(Tuple Space Search)**의 조회 시간 복잡도가 마스크 개수 N에 따라 O(N)으로 증가하여, 규칙 수에 비례해 지연 시간이 선형적으로 늘어난다.

Cache Thrashing은 무작위 패킷으로 인해 하드웨어 RSS가 변동되어 CPU별 mask_cache의 O(1) 성공률이 0%에 가까워지는 현상이다. 백그라운드 재균형기가 핫 마스크 우선순위를 정하느라 CPU 자원을 낭비하고 RCU 동기화 오버헤드를 유발한다.

대응 및 완화 전략

성능 붕괴를 방지하려면 패킷이 OVS 인그레스 로직에 도달하기 전 단계에서 방어해야 한다. 가장 효율적인 방법은 **XDP(Express Data Path)**를 이용해 NIC 드라이버 레벨에서 악성 트래픽을 차단하는 것이다. XDP 단계의 드롭 처리는 메모리 할당과 TSS 엔진을 우회하므로 OVS 내부 드롭보다 10~20배 빠르다.

XDP를 지원하지 않는 환경에서는 TC ingress 후크에 eBPF를 적용하거나, NIC의 플로우 디렉터(ntuple 필터)를 활용한 하드웨어 오프로드를 통해 CPU 자원 사용 없이 공격 패턴을 차단할 수 있다. 운영자는 ovs-dpctl show 명령어로 TSS 효율성(패킷당 평균 마스크 검사 수), 활성화된 마스크 수, 데이터패스 미스율, 캐시 적중률 등을 모니터링해 공격 징후를 탐지해야 한다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.