AI Briefing

[구축사례] IPFIX와 Goflow2로 구현한 kt cloud 네트워크 미터링 내재화

·2026.07.24 14:31

kt cloud가 ML2/OVN 전환 후 iptables 기반 미터링 대체를 위해 IPFIX와 Goflow2를 활용한 네트워크 과금 체계를 내재화했다.

ML2/OVN 전환으로 OVN이 라우팅을 OVS Flow로 처리하면서 기존 Neutron-metering-agent의 iptables 카운터 방식이 무력화됐다. 패킷이 리눅스 IP 스택을 타지 않아 카운터를 읽을 자리 자체가 사라진 것이다.

대안으로 sFlowIPFIX를 비교 검토했다. sFlow는 1/N 확률 샘플링 방식으로 오버헤드가 낮지만 통계적 추정에 의존해 과금 정합성이 부족하다. 반면 IPFIX는 OVS 내부에서 5-Tuple 기준으로 Flow 상태를 유지하며 패킷 수·바이트 수를 누적 집계한 뒤 Timeout 시 내보내는 구조라 실측값에 가깝다. 최종적으로 IPFIX를 채택했다.

가장 큰 난관은 IP → Project ID(Tenant ID) 매핑이었다. 레코드마다 Neutron API를 호출하면 컨트롤 플레인이 즉시 과부하에 걸리므로, Goflow2 소스코드를 직접 수정해 로컬 메모리 캐시 기반 Enrichment 모듈을 내장했다.

파이프라인은 3단계로 동작한다:

  • Initial Sync: 기동 시 OVSDB에서 FIP/NAT 리소스의 IP ↔ Project ID 매핑을 Hash Map으로 메모리에 적재
  • Watch & Update: OVSDB Monitor RPC로 변경 이벤트를 구독해 Hash Map을 실시간 갱신
  • Zero-Latency Enrichment: IPFIX 레코드 수신 시 외부 호출 없이 메모리 조회만으로 openstack_src_project_id 태깅 후 Kafka로 전송

**Sampling Rate는 1(전수 수집)**로 고정해 과금 누락을 방지했으며, OVS Flow Cache 튜닝(Active/Inactive Timeout 조정)으로 컴퓨트 노드 성능 오버헤드를 최소화했다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.