
1. Trap의 개념과 필요한 이유
네트워크 환경. 즉, 서버를 운영하는 입장에서는 항상 장비 상태를 점검(polling) 할 수 없다.
네트워크 장비를 수시로 확인한다면 그 자체로 서버의 리소스를 사용하는 것이고, 이는 장비의 트래픽 증가와 서버 부하를 초래한다.
그런데 장비가 죽거나, 포트가 다운되는 상황은 미연에 방지해야하는 문제이다.
서버의 리소스 부하, 장비의 트래픽 증가를 일으키지 않으면서, 장애 문제 발생 즉시 알림을 받아야 신속 대응이 가능하다.
이때 필요한 게 바로 SNMP Trap이다.
- 문제가 생겼을 때,
- 장비가 스스로,
- 즉시 EMS 서버(Manager)에게 알리는 것이다
Trap이 없다면?
→ polling 주기(5분, 10분)에 따라 발견이 지연되고, 장애 대응이 늦어질 수 밖에 없다.
2. Trap과 Polling의 차이
| 구분 | Polling | Trap |
| 주체 | Manager가 주기적으로 질문 | Agent(장비)가 스스로 전송 |
| 타이밍 | 일정 주기로 (ex. 5분마다) | 이벤트 발생 즉시 |
| 네트워크 부하 | 많음 (자주 요청하면 트래픽 증가) | 거의 없음 (필요할 때만 송신) |
| 신뢰성 | 상대적으로 높음 (응답 없으면 알 수 있음) | Trap이 손실될 가능성 있음 (UDP 기반) |
| 사용 예시 | 정기적 리소스 모니터링 | 장애 감지, 경고 알림 |
쉽게 이해하기 위해 Polling 과 Trap 을 비유하자면 다음과 같이 표한 할 수 있을 것 같다.
- Polling: “정기 검진”
- Trap: “심장 마비 시 바로 호출하는 응급 알림”
둘 다 필요하지만, 장애 감지는 Trap이 훨씬 빠르다.(문제가 발생하면 즉각 알리기 때문)
3. Trap 구성과 구조
Trap 메시지는 단순한 텍스트가 아니다. 구체적으로 구조화된 데이터(OID + 값) 형태로 전송된다.
Trap 기본 구조
- 타입(Type): Trap 메시지 종류
- OID: 무슨 이벤트인지 구분하는 번호
- Variable Bindings: 추가 정보(인터페이스 이름, IP 주소 등)
예시 그림
Trap Packet
├── OID: .1.3.6.1.6.3.1.1.5.3 (linkDown)
├── 인터페이스 이름: eth0
└── 에러 설명: "Interface Down"
4. 트랩의 종류 (Trap 과 Inform)
4-1.Trap
- 그냥 보내고 끝난다.
- 수신자가 받았는지 확인하지 않는다.
- 빠르고 가볍다
- 주로 단순 경고나 비긴급 장애 알림에 쓰인다.
4-2. Inform
- 보내고 나서 수신자의 수신 확인 응답(Ack) 을 기다린다
- 응답이 없으면 재전송을 시도한다
- Trap 에 비해 상대적으로 신뢰성이 더 높다
- 정말 중요한 알림 (예: 라우터 다운, 보안 침입)에는 Inform 사용한다.
긴급도가 낮으면 Trap 을 사용하는 것이 좋고 진짜 중요하면 Inform 을 사용하는 것이 좋다.
이 역시 특정 프로토콜, 수단이 확실히 좋은게 아니라, 상황에 맞게 알맞는 기술을 사용해야 하는 네트워크 기술의 정체성과 일맥상통한다!
5. 실무에서 Trap 을 어떻게 활용할 수 있을까?
| 예시 상황 | Trap 활용 방법 |
| 서버 CPU 90% 초과 | CPU 과부하 Trap 발생, EMS 경고 |
| 라우터 링크 다운 | Interface Down Trap 발생, 운영자 알림 |
| 스위치 팬 고장 | 하드웨어 장애 Trap 발생, 교체 조치 |
| 로그인 실패 반복 | 보안 침입 시도 Trap 발생, 보안팀 경고 |
| 스토리지 용량 임계 초과 | Disk Full Trap 발생, 디스크 증설 준비 |
Trap을 잘 활용하면, 장애를 미리 감지하고, 이에 대한 대응 시간을 엄청나게 줄일 수 있다.
6. 터미널로 Trap 수신해보기 (간단한 실습 해보기)
6-1. 수신 준비
Trap을 받으려면 snmptrapd라는 데몬을 실행해야 한다.
설치하기
sudo apt install snmptrapd
Trap 수신
sudo snmptrapd -f -Lo
- -f: 포그라운드 모드로 실행
- -L o: 표준 출력에 메시지 표시

이 상태로 네트워크에서 오는 Trap을 실시간으로 볼 수 있다. (대기중인 상태!)
6-2. Trap 보내는 방법
테스트로 Trap을 보내려면 새 터미널창을 열고 아래의 명령어를 입력한다.
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3
이건 linkDown 이벤트를 의미하는 Trap이다. (.1.3.6.1.6.3.1.1.5.3은 linkDown OID) 이렇게 새로운 터미널 창에서 Trap 메시지를 입력하면 수신 터미널에 트랩 메시지가 출력된다!


뭔가 기대한 문구가 나타나지 않아 터미널의 메시지를 다시 분석해보니
NET-SNMP version 5.9.4.pre2 AgentX subagent connected
Warning: no access control information configured.
(Config search path: /etc/snmp:/usr/share/snmp:/usr/lib/x86_64-linux-gnu/snmp:/root/.snmp)
This receiver will *NOT* accept any incoming notifications.
NET-SNMP version 5.9.4.pre2
No access configuration - dropping trap.
No access configuration - dropping trap.
-터미널 메시지 분석
- NET-SNMP version 5.9.4.pre2 AgentX subagent connected
→ snmptrapd가 정상적으로 실행됨. - Warning: no access control information configured.
→ access control 설정이 없어서 trap을 받아도 무시(drop) 하겠다는 경고. - No access configuration - dropping trap.
→ trap을 수신하긴 했지만, access control이 없기 때문에 버렸다(drop) 는 뜻.
Trap 은 정상적으로 실행 되었으나, 설정 문제 때문에 출력이 제대로 되지 않았다는 것을 알았다!
6-3 설정파일 만들고 설정 적용하기
- 설정파일을 연다 (없으면 만든다)
sudo vi /etc/snmp/snmptrapd.conf
- 아래 내용을 추가한다.
authCommunity log,execute,net public

- authCommunity → SNMP v1/v2c community 기반 허용
- log → trap 내용을 로그로 출력
- execute → trap을 기반으로 스크립트 실행 가능 (선택)
- net → 네트워크로 trap 재전송 가능 (선택)
- public → 수신 허용하는 커뮤니티 이름
- snmptrapd를 재시작 한다.
sudo snmptrapd -f -Lo


1. 2025-05-12 20:45:49 localhost [UDP: [127.0.0.1]:37486->[127.0.0.1]:162]:
- 날짜/시간: 2025년 5월 12일 20시 45분 49초에
- 송신 IP/포트: 127.0.0.1:37486 → 127.0.0.1:162 로
- Trap이 수신되었다는 것을 의미 즉, 로컬 컴퓨터(127.0.0.1) 에서 trap이 162번 포트로 정상 발송된 된 것
2. iso.3.6.1.2.1.1.3.0 = Timeticks: (243835) 0:40:38.35
- sysUpTime이라는 필드
- 의미: 장비가 부팅된 이후 지난 시간을 나타낸다.
- 0:40:38.35 → 부팅 후 40분 38초 지났다는 뜻.
sysUpTime은 모든 Trap에 기본으로 포함되는 필수 항목 즉, Trap이 언제 발생했는지 상대적인 시간을 기록함
3. iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.6.3.1.1.5.3
- 이게 Trap의 실제 타입을 나타내는 OID 이다.
- iso.3.6.1.6.3.1.1.5.3은 "linkDown" 트랩을 의미
종합적인 결론은 ( 실험을 위해 만들어낸 Trap 이지만 ) 부팅 후 40분이 지난 시점에 인터페이스가 끊어졌다는 의미이다.
7. 마무리 및 요약
SNMP Trap은 서버나 장비가 스스로 비상벨을 울리는 시스템이다. Polling은 정기점검, Trap은 긴급신호 라고 비유할 수 있겠다. Trap을 통해 실시간으로 장애를 감지하고, 빠르게 대응하는 것은 네트워크 인프라 환경을 관리하는 입장에서 매우 중요한 개념이자 기능이다. 실무에서는 Trap 수신 시스템을 EMS/NMS에 반드시 구축하여 장애에 대응한다.
'네트워크 공부 & 실습 > 네트워크 이론' 카테고리의 다른 글
| [Network] 무정전 전원 공급 장치 - UPS 에 대해 알아보자 (0) | 2025.05.30 |
|---|---|
| [Network] PTN 장비란 무엇인가? (0) | 2025.05.29 |
| [Network] MIB 와 OID 란 무엇일까? (0) | 2025.05.09 |
| [Network] syslog 란 무엇인가? (개념편) (3) | 2025.05.02 |
| [Network] Kafka 란 무엇인가? (개념편) (0) | 2025.05.01 |