533. SNMP 명령 - Get, GetNext, Set
핵심 인사이트: SNMP 매니저가 라우터를 관리할 때 쓰는 명령어는 아주 단순하다. "이거 값 줘(Get)", "다음 값도 줘(GetNext)", "이걸로 값 바꿔(Set)". 이 3개의 기본 동사만으로 전 세계 모든 장비의 모니터링과 제어가 이루어진다.
Ⅰ. SNMP의 기본 통신 방식 (Polling)
SNMP의 기본 통신은 관리 시스템(Manager)이 주기적으로(예: 1분마다) 수많은 장비(Agent)들에게 "너 괜찮아? 온도 몇 도야?"라고 묻고 답을 받는 폴링(Polling) 방식으로 이루어집니다. 이 폴링 과정에서 사용되는 핵심 명령어가 Get과 Set입니다.
Ⅱ. 주요 SNMP 명령어 상세
| 명령어 | 방향 | 역할 및 설명 |
|---|---|---|
| GetRequest | Manager ➔ Agent | 가장 많이 쓰이는 기본 조회 명령입니다. 매니저가 특정 OID(예: CPU 점유율)를 하나 콕 집어서 현재 값을 달라고 요청합니다. |
| GetNextRequest | Manager ➔ Agent | 테이블 구조의 데이터를 읽을 때 씁니다. OID 트리 구조상에서 내가 방금 물어본 OID의 "바로 다음 순서 OID" 값을 달라고 요청합니다. 라우팅 테이블처럼 데이터가 몇 개인지 모를 때 반복해서 씁니다. |
| SetRequest | Manager ➔ Agent | 장비의 설정을 변경하는 제어 명령입니다. 매니저가 "장비 이름을 'Router-A'로 바꿔라", 혹은 "특정 인터페이스를 셧다운시켜라"라고 값을 주입합니다. (보안상 매우 위험하여 쓰기 권한(RW)이 필요함) |
| GetResponse | Agent ➔ Manager | 요청에 대한 응답입니다. 매니저가 보낸 Get이나 Set 명령을 에이전트가 처리한 후 그 결과값(성공, 값, 에러 등)을 담아서 매니저에게 반환합니다. |
| GetBulkRequest | Manager ➔ Agent | (SNMPv2c부터 추가됨) GetNext를 수십 번 반복하면 네트워크 부하가 심하므로, "여기서부터 100개 다 가져와!" 라고 한 번에 대량의 데이터를 긁어오는 고속 조회 명령입니다. |
Ⅲ. 통신 포트
위에서 설명한 모든 명령(Get, GetNext, Set)과 그에 대한 응답(Response)은 UDP 포트 161번을 통해 이루어집니다.
📢 섹션 요약 비유: 카페 사장님(Manager)이 알바생(Agent)에게 "포스기 매출액 얼마야?(Get)", "아메리카노 다음으로 많이 팔린 건 뭐야?(GetNext)", "지금부터 에어컨 온도 20도로 맞춰!(Set)"라고 지시하는 것과 같습니다. 알바생은 이 지시를 들을 때마다 "매출액 5만 원입니다, 18도로 맞췄습니다(Response)"라고 꼬박꼬박 대답해 줍니다.