534. SNMP Trap - 에이전트 주도 자발적 통지
핵심 인사이트: 매니저가 1분마다 "온도 어때?" 묻는 건 평소엔 괜찮지만, 불이 났을 때 다음 질문을 기다리면 다 타버린다. 트랩(Trap)은 매니저가 묻지 않아도 에이전트(장비)가 스스로 위기 상황을 감지하고 즉각 "불났어요!" 하고 비상 알람을 쏘아 올리는 생명줄이다.
Ⅰ. SNMP Trap의 개념
SNMP 프레임워크에서 관리 대상 장비(Agent)가 사전에 정의된 특정 이벤트(장애, 임계치 초과, 링크 다운 등)를 감지했을 때, 매니저(NMS)의 요청(Get)을 기다리지 않고 자발적으로 즉시 전송하는 비동기식 경보 메시지입니다.
Ⅱ. Polling(Get)과 Trap의 비교
네트워크 관리는 이 두 가지 방식이 상호 보완적으로 작동해야 완벽해집니다.
| 구분 | Polling 방식 (Get / GetNext) | Trap 방식 (Trap) |
|---|---|---|
| 주도권 | Manager (매니저가 물어봄) | Agent (장비가 스스로 보냄) |
| 목적 | 평상시 트래픽, CPU 등 주기적 데이터 수집 | 포트 다운, 팬 고장 등 긴급 장애 실시간 알림 |
| 방식 | 동기식 (요청-응답) | 비동기식 (단방향 통보) |
| 포트 | UDP 161 | UDP 162 |
| 단점 | 간격(예: 1분) 사이에 발생한 1초짜리 장애를 놓칠 수 있음 | 매니저가 트랩을 제대로 받았는지 장비는 알 길이 없음 (v2c Inform으로 개선) |
Ⅲ. Trap 메시지의 구조 (SNMPv1 기준)
에이전트가 트랩을 쏠 때 빈 껍데기만 쏘는 것이 아니라, 장애 상황을 설명하는 구체적인 정보(PDU)를 담아 보냅니다.
- Enterprise: 어떤 벤더(Cisco, Juniper 등)의 장비인지 (OID)
- Agent Address: 트랩을 보낸 장비의 IP 주소
- Generic Trap Type: 표준 경보 유형 (0: 콜드 부트, 1: 웜 부트, 2: 링크 다운, 3: 링크 업, 4: 인증 실패 등)
- Specific Trap Type: 벤더 제조사가 정의한 특수 경보 유형
- Time Stamp: 장비가 부팅된 후 트랩이 발생할 때까지 걸린 시간 (언제 발생했는지)
- Variable Bindings: 현재 온도 값이나 어느 포트가 죽었는지에 대한 세부 MIB 데이터
Ⅳ. SNMPv2c의 Inform Request (Trap의 한계 극복)
전통적인 Trap은 UDP의 특성상 매니저에게 도달했는지 확인하지 않습니다(Fire & Forget). 만약 네트워크 혼잡으로 Trap 패킷이 유실되면 매니저는 장비가 죽은 줄도 모릅니다.
- 이를 해결하기 위해 SNMPv2c에서 Inform Request가 추가되었습니다. Inform은 에이전트가 경보를 보내면, 매니저가 반드시 "잘 받았어(Response)"라고 대답해 주어야 하며, 응답이 없으면 에이전트가 경보를 재전송하는 '신뢰성 있는 트랩'입니다.
📢 섹션 요약 비유: 건물 경비 시스템입니다. 1시간마다 경비원이 순찰을 돌며 "이상 없습니까?" 확인하는 것이 폴링(Get)이라면, 순찰 사이의 공백 시간에 창문이 깨졌을 때 도둑 침입을 즉각 경비실(UDP 162)에 알리는 자동 비상벨(센서)이 바로 트랩(Trap)입니다.