SNMP·syslog·NetFlow의 차이: 감시로 알 수 있는 것·수집 방식·데이터 형식·프로토콜 비교

네트워크를 운영하려면 기기와 트래픽의 상태를 감시해 문제를 일찍 알아채고 원인을 조사해야 합니다. SNMP, syslog, NetFlow는 모두 기기에서 정보를 모으지만 알 수 있는 것이 다릅니다. SNMP에서는 관리하는 쪽(매니저)이 기기(에이전트)에 인터페이스 통신량이나 CPU 사용률 같은 값을 물어보므로 '얼마나'를 알 수 있습니다. syslog에서는 기기가 링크 다운, 로그인, 설정 변경 같은 이벤트를 텍스트 메시지로 로그 서버에 보내므로 '언제 무슨 일이 있었는지'를 알 수 있습니다. NetFlow(와 이를 바탕으로 표준화한 IPFIX)는 출발지·목적지 등이 같은 패킷 묶음(플로) 단위로 트래픽을 요약해 내보내므로 '누가 누구와 얼마나 통신했는지'를 알 수 있습니다. 실제로는 세 가지를 함께 씁니다.

비교 항목SNMPsyslogNetFlow(IPFIX)
알 수 있는 것기기의 상태와 양: 인터페이스 통신량과 오류 수, CPU와 메모리 사용률, 링크 상태이벤트: 링크 다운, 로그인 성공과 실패, 설정 변경, 오류트래픽의 내역: 어느 출발지와 목적지 쌍이 어떤 프로토콜과 포트로 얼마나 보냈는지
수집 방식매니저가 일정 간격으로 물어봅니다(폴링). 기기가 이상을 알림(트랩)으로 보고할 수도 있습니다이벤트가 일어나면 기기가 서버에 메시지를 보냅니다기기가 플로를 집계해, 플로가 끝날 때나 일정 간격으로 수집 서버(컬렉터)에 내보냅니다
데이터 형식MIB에 정의된 값(카운터와 상태). 객체 식별자(OID)로 지정합니다중요도(0~7), 발생원 종류(facility), 타임스탬프, 텍스트 메시지플로별 레코드: 주소, 포트 번호, 프로토콜, 패킷 수와 바이트 수, 시작·종료 시각 등. 필드는 템플릿으로 정의합니다
시간 단위폴링 간격(예: 5분)마다의 평균이벤트마다. 거의 즉시 도착합니다플로마다. 오래 이어지는 플로는 잘라서 일정 간격으로 내보냅니다
알 수 없는 것누구의 트래픽인지트래픽 양패킷의 내용(데이터). CPU 사용률 같은 기기의 값도 알 수 없습니다
기기와 회선의 부하작음작음. 다만 장애 시 메시지가 급증할 수 있습니다더 큼. 고속 회선에서는 패킷의 일부만 조사하는 샘플링을 쓰기도 합니다
규격과 포트 번호SNMPv3는 RFC 3411~3418. UDP 161번 포트(질의)와 162번 포트(트랩)RFC 5424. UDP 514번 포트, TLS를 쓰면 6514번NetFlow v9는 RFC 3954(정보 제공용 RFC)에 기술되어 있습니다. 표준화된 IPFIX는 RFC 7011, 포트 4739
보안v1과 v2c에서는 커뮤니티 문자열이 암호화되지 않은 채 전달됩니다. v3에서 인증과 암호화가 추가되었습니다UDP에서는 암호화도 도착 확인도 없습니다. TLS로 보호할 수 있습니다NetFlow v9에는 보호 기능이 없습니다. IPFIX는 TLS나 DTLS로 보호할 수 있습니다
주요 용도트래픽 그래프, 회선 사용률 파악, 기기 장애 감지장애 원인 조사, 누가 무엇을 했는지의 기록, 보안 감시(SIEM으로 수집)대역을 많이 쓰는 호스트와 애플리케이션 찾기, 이상 통신 감지, 회선 증설 계획

수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.

상황별 선택 기준

SNMP
회선과 기기의 사용률을 그래프로 계속 지켜보고 싶을 때. 기기 장애나 링크 다운을 바로 알아채려면 트랩과 조합합니다.
syslog
장애와 보안 관련 이벤트를 시각과 함께 기록해 나중에 조사할 수 있게 하고 싶을 때. 여러 기기의 로그를 대조하려면 NTP로 기기의 시계를 맞춰 둡니다.
NetFlow(IPFIX)
회선이 혼잡할 때 어느 호스트나 애플리케이션이 대역을 쓰고 있는지 찾고 싶을 때, 또는 이상한 통신 패턴을 발견하고 싶을 때.

자주 묻는 질문

SNMP 카운터로 통신 속도는 어떻게 구하나요?

인터페이스의 수신 또는 송신 바이트 카운터를 일정 간격으로 읽고, 이전 값과의 차이를 비트로 바꿔 간격의 초 수로 나눕니다. 예를 들어 5분(300초) 동안 카운터가 3,750,000,000 늘었다면 3.75×10⁹ × 8 ÷ 300 = 1×10⁸ bit/s로, 평균 100 Mbps입니다. 32비트 카운터는 약 43억에서 0으로 돌아가 고속 회선에서는 금방 한 바퀴를 돌므로 64비트 카운터를 씁니다. 결과는 간격 안의 평균이므로 짧은 순간의 급증은 보이지 않습니다.

SNMP의 폴링과 트랩은 어떻게 구분해 쓰나요?

매니저가 일정 간격으로 값을 읽는 폴링은 트래픽 그래프처럼 변화를 계속 기록하는 데 적합합니다. 링크 장애 같은 일이 생기면 기기가 보내는 트랩은 바로 알아챌 수 있지만, UDP로 보내므로 손실될 수 있습니다. 확인 응답이 있는 알림(인폼)도 있습니다. 대부분은 둘을 조합합니다.

syslog 메시지의 중요도란 무엇인가요?

RFC 5424는 메시지의 중요도를 0(Emergency: 시스템을 쓸 수 없음)부터 7(Debug: 디버그 수준의 메시지)까지 8단계로 나타냅니다. 숫자가 작을수록 중요하며, 기기마다 정한 중요도 이상의 메시지만 서버에 보내도록 설정할 수 있습니다.

NetFlow는 패킷 캡처와 무엇이 다른가요?

패킷 캡처는 내용을 포함한 패킷 자체를 기록하므로 자세한 분석이 가능하지만 데이터 양이 매우 많아집니다. NetFlow는 패킷의 내용을 기록하지 않고 플로별 패킷 수와 바이트 수 같은 요약만 내보내므로, 데이터 양을 크게 줄여 장기적인 경향을 보는 데 적합합니다. 암호화된 통신이라도 주소, 포트 번호, 양은 보입니다.

이해도 확인

SNMP로 라우터 인터페이스의 수신 바이트 수를 세는 64비트 카운터를 5분(300초)마다 읽었더니, 지난번이 1,200,000,000, 이번이 4,950,000,000이었다. 이 5분 동안의 평균 수신 속도에 가장 가까운 것은?

  1. A12.5 Mbps
  2. B100 Mbps
  3. C500 Mbps
정답과 해설 보기

정답: B. 100 Mbps

5분 동안 수신한 것은 4,950,000,000 − 1,200,000,000 = 3,750,000,000바이트이고, 비트로 고치면 3.75×10⁹ × 8 = 3×10¹⁰비트입니다. 이를 300초로 나누면 1×10⁸ bit/s, 즉 100 Mbps입니다. SNMP에서는 관리하는 쪽(매니저)이 기기의 에이전트에 MIB 값을 질의하고, 이처럼 카운터의 차이로 통신량을 구해 그래프로 만듭니다. 32비트 카운터는 2^32 ≈ 4.29×10⁹바이트에서 0으로 돌아가며, 100 Mbps에서는 약 344초 만에 한 바퀴를 돌아 버리므로, 고속 인터페이스에서는 64비트 카운터를 씁니다.

라우터를 지나는 통신에 대해, 어느 출발지와 목적지의 조합(주소, 포트 번호, 프로토콜)의 통신이 얼마만큼의 바이트 수를 차지하고 있는지를 통신 묶음마다 집계하여 조사하고 싶다. 사용할 구조로 가장 적절한 것은?

  1. ASNMP
  2. Bsyslog
  3. CNetFlow(IPFIX)
정답과 해설 보기

정답: C. NetFlow(IPFIX)

NetFlow나 이를 바탕으로 표준화된 IPFIX는 출발지와 목적지의 주소나 포트 번호, 프로토콜이 같은 패킷의 묶음(플로)마다 패킷 수나 바이트 수, 시각 등을 기록하여 수집용 서버로 보내는 구조입니다. 어느 단말이나 애플리케이션이 대역폭을 쓰고 있는지, 평소와 다른 통신이 없는지를 조사하는 데 씁니다. SNMP는 기기의 인터페이스별 통신량이나 CPU 사용률 등의 값을 질의하거나, 이상을 통지(트랩)하게 하는 프로토콜로, 누구의 통신인지까지는 알 수 없습니다. syslog는 링크 다운이나 로그인 등의 사건을 문자 메시지로서 기록용 서버로 보내는 구조입니다.

UDP의 특징으로 올바른 것은?

  1. A연결을 설정하지 않고 재전송이나 순서 제어를 하지 않으므로 헤더가 작고, 보내기 전까지의 대기도 없다
  2. B연결을 설정하고, 도달하지 못한 데이터를 재전송하며, 수신 측에서 순서도 맞춘다
  3. CIP 주소를 사용하지 않고 MAC 주소만으로 목적지 단말에 전달한다
정답과 해설 보기

정답: A. 연결을 설정하지 않고 재전송이나 순서 제어를 하지 않으므로 헤더가 작고, 보내기 전까지의 대기도 없다

UDP는 IP 위에 포트 번호와 간단한 오류 검출(체크섬)만 더한 가벼운 프로토콜로, 헤더는 8바이트입니다(TCP는 옵션 없이 20바이트). 연결 절차가 없고 도달 확인이나 재전송도 하지 않으므로, 조금 손실되더라도 지연되지 않는 편이 좋은 음성 통화나 라이브 영상, 한 번의 질의와 응답으로 끝나는 DNS 등에 사용됩니다. 신뢰성이 필요하면 애플리케이션 쪽에서 보완합니다. 예를 들어 HTTP/3에서 사용되는 QUIC은 UDP 위에서 재전송과 암호화를 구현합니다. 연결 설정, 재전송, 순서 제어를 수행하는 것은 TCP입니다.

네트워크 설계와 운용 문제 풀기

주요 용어 설명

SNMP(Simple Network Management Protocol)
Simple Network Management Protocol의 약자. 라우터나 스위치 등 기기의 상태를 감시·관리하기 위한 프로토콜. 관리하는 쪽(매니저)이 기기의 에이전트에 MIB로 정해진 값(인터페이스 통신량의 카운터, CPU 사용률 등)을 질의하고, 기기는 이상을 트랩으로 알린다. 통신량은 카운터 값을 일정 간격으로 읽어 그 차이로 구한다. 인증과 암호화를 쓸 수 있는 SNMPv3가 권장된다.
UDP(사용자 데이터그램 프로토콜)
User Datagram Protocol의 약자. 전송 계층의 비연결형 프로토콜. 헤더는 8바이트이며, 포트 번호, 길이, 체크섬만 가진다. 연결 절차도, 확인 응답이나 재전송도, 순서 제어도 하지 않으므로 지연이 작다. DNS 질의, 음성이나 영상 통화, 온라인 게임, DHCP, QUIC 등에 쓰인다.
포트 번호(Port Number)
TCP나 UDP에서 단말 안의 어느 애플리케이션으로 가는 통신인지를 구별하는 0~65535의 번호. HTTP의 80, HTTPS의 443, DNS의 53 등 0~1023은 잘 알려진 포트(well-known port)라고 한다.
패킷(Packet)
통신으로 보낼 데이터를 일정 크기 이하로 나누고, 목적지 등의 제어 정보를 적은 헤더를 붙인 것. 1개의 회선을 많은 통신이 나눠 쓸 수 있고(패킷 교환), 오류가 있어도 그 부분만 다시 보낼 수 있다. 계층에 따라 IP에서는 패킷, TCP에서는 세그먼트, 이더넷에서는 프레임으로 구분해 부르는 경우가 많다. PCI Express나 온칩 네트워크에서도 데이터를 패킷으로 만들어 보낸다.
라우터(Router)
서로 다른 네트워크 사이에서 패킷을 중계하는 네트워크 계층(3계층)의 기기. 받은 패킷의 목적지 IP 주소를 라우팅 테이블과 대조하여, 다음에 넘길 라우터(넥스트 홉)와 출구 인터페이스를 정해 내보낸다. 가정용 라우터는 NAPT나 DHCP 서버, 방화벽 기능도 함께 가진다.
SIEM(보안 정보 및 이벤트 관리)
Security Information and Event Management의 약자. 방화벽, 서버, EDR, 클라우드 서비스, 인증 기반 등의 로그를 한곳에 모아 형식과 시각을 맞추고, 여러 사건을 조합한 규칙(상관 분석)으로 공격의 의심을 탐지하여 경고로 제시하는 구조. 조사를 위한 로그 검색이나, 규정에서 요구하는 로그의 장기 보존에도 사용된다. SOC(보안 관제 센터)의 분석가가 감시에 사용하는 중심적인 도구 중 하나이다.
TLS
Transport Layer Security의 약자. 통신의 암호화, 변조 검출, 인증서에 의한 서버 인증을 수행하는 프로토콜. HTTPS는 HTTP를 TLS로 보호한 것이다.

관련 비교