SNMP

2024. 11. 14. 16:19Network

SNMP는 

(Simple Network Management Protocol)의 약자로

네트워크 모니터링을 위한 오픈스탠다드 프로토콜이다.

라우터, 스위치, 서버 등 거의 모든 장치에 사용이 가능하다

 

 

 

SNMP 매니저 , SNMP 서버, NMS(Network Management System)

세가지 모두 SNMP 서버를 의미한다.

SNMP agent로 부터 정보를 수집하고 정리할 수 있고

라우터나 스위치에서 실행된다.

 

SNMP Agent는 SNMP의 클라이언트라고 생각하면 된다!

 

 

 

SNMP 매니저는 Agent로 부터

Get 또는 Trap이 가능한데

장치에서 서버로 정보를 가져오는 기능이다.

 

두개의 차이점은 

Get은

에이전트로부터 정보를 요청하는 것이고

Trap은

에이전트가 특정 이벤트 발생 능동적으로 정보를 전송하는 것이다!

 

예를 들어

Get으로는 각 장비의 호스트네임이나 인터페이스 상태를 알고 싶을때

직접 정보를 가져올 수 있고

 

Trap으로는 특정 에이전트의 정보를 열람하거나

HSRP의 이중화 상태 변경시 알림을 받을 수 있다!

 

 

MIB

(Management Information Base)

SNMP의 다양한 변수들은 MIB에 저장된다.

(ex: 라우팅 프로토콜 정보, 인터페이스 상태 등)

즉, 다양한 장치에서 수집한 정보들로 이뤄진 데이터베이스이다.

 

MIB 는 장치의 유형 별로 달라진다!

스위치, 라우터나 서버에 요구하는 유형도 다르기 때문

(SNMP 매니저는 각 MIB를 이해할 수 있다)

 

SNMP의 간단하게 그림으로 표현해 보았다.

위 사진처럼 Agent들이 변경된 정보(MIB)를 알리기 위해

Trap으로 정보를 Push 하거나

SNMP 매니저가

Get 등으로 필요한 정보를 Pull할 수 있다.

 

SNMP매니저가 Push 사용하여 정보를 변경할 수도 있으나 일반적으로 사용되지 않는다고 한다.

 

 

 

Version

SNMP에는 v1~v3 까지 세가지 버전이 존재한다.

각 버전의 차이점을 알아보자

 

SNMPv1

매니저, 에이전트 간에 커뮤니티 문자열로인증하는데

이를 평문으로 전송한다.

암호화 되지 않음을 의미하며 트래픽을 누구나 읽을 수 있다.

 

SNMPv2c

v1과 같이 평문 커뮤니티 문자열로 인증하지만

대량의 정보전송을 지원한다.

 

SNMPv3

사용자 이름과 암호를 사용하여 상대적으로 강력한 보안 인증을 지원한다.

제일 안전한 버전이지만 모든 장비에서 지원하는 것은 아니다.

 

 

 

SNMPv1, v2c 실

매니저와 에이전트 양쪽에 동일한 커뮤니티 문자열 값으로 서로를 인증한다.

read only (ro)문자열과

read / write (rw) 커뮤니티 문자열이 존재한다

 

ro는 매니저가 정보를 읽는데 사용되고

rw는 정보를 설정하려는데 사용된다.

패킷 트레이서로 위와 같은 예시로 SNMP를 구성해보겠다.

Router(config)#snmp-server community doghj1 ro
%SNMP-5-WARMSTART: SNMP agent on host Router is undergoing a warm start
Router(config)#snmp-server community doghj2 rw

Switch(config)#snmp-server community doghj1 ro
Switch(config)#snmp-server community doghj2 rw

위처럼 각 장비에 snmp 커뮤티니 값을 입력해주었다.

 

이제 패킷트레이서의 PC를 클릭해보자

MIB Browser를 클릭!

위와 같이 advanced 를 클릭하여 SNMP 에이전트의 정보를 입력해주자

버전은 v1, v2 둘다 비슷하기 때문에 상관없다.

우리는 라우터의 인터페이스 상태를 Get 해볼 것이다.

 트리의 ifAdminStatus를 선택하고 오른쪽 위의

Operations를 Get 으로 두고 Go를 눌러주자

 

각 인터페이스의 up/down 상태를 알 수 있다.

 

( up이 두개인 이유는 내가 한 포트를 더 연결해두어서 그렇다. 실제 예시 토폴로지를 따랐다면 한개만 뜰 것이다.) 

위 사진처럼 트리의 다른 부분에서 Get을 실행하면

장치의 호스트네임 등도 알 수 있다!

 

 

 

패킷트레이서에선 각 네트워크 장치에서 커뮤니티 값만 설정할 수 있다.

실제 장비는 더 많은 기능이 있는데

SW_TEST(config)#snmp-server ?
  accounting           SNMP Accounting parameters
  cache                Enable SNMP cache
  chassis-id           String to uniquely identify this chassis
  community            Enable SNMP; set community string and access privs
  contact              Text for mib object sysContact
  context              Create/Delete a context apart from default
  dbal                 snmp database access layer
  drop                 Silently drop SNMP packets
  enable               Enable SNMP Traps
  engineID             Configure a local or remote SNMPv3 engineID
  file-transfer        File transfer related commands
  group                Define a User Security Model group
  hc                   hc
  host                 Specify hosts to receive SNMP notifications
  ifindex              Enable ifindex persistence
  inform               Configure SNMP Informs options
  ip                   IP ToS configuration for SNMP traffic
  location             Text for mib object sysLocation
  manager              Modify SNMP manager parameters
  packetsize           Largest SNMP packet size
  password-policy      SNMP v3 users password policy
  priority             priority
  queue-length         Message queue length for each TRAP host
  source-interface     Assign an source interface
  sparse-tables        Turn on snmp sparse table implementation
  system-shutdown      Enable use of the SNMP reload command
  tftp-server-list     Limit TFTP servers used via SNMP
  trap                 SNMP trap options
  trap-authentication  trap authentication
  trap-frequency       set SNMP Traps frequency of repeat
  trap-source          Assign an interface for the source address of all traps
  trap-timeout         Set timeout for TRAP message retransmissions
  user                 Define a user who can access the SNMP engine
  view                 Define an SNMPv2 MIB view

직접 실제 L3 스위치 3850에서

snmp-server 관련 명령어들을 살펴본 것이다.

 

커뮤니티 값을 지정할 뿐만 아니라 host 서버를 지정해줄 수도 있고

어떤 변경점을 trap으로 push 할 것인지 등 다양하게 설정 가능하다!

 

SW_TEST(config)#snmp-server enable traps config

위 명령어는 실제 snmp trap 관련 설정의 예시이다.

 

이 명령어로 이제부터  SW_TEST 장비에

누군가가 conf t 명령어를 입력하면

그때마다 SNMP 서버로  알림을 보내줄 것이다.

 

 

즉,

SNMP를 사용하 장비들 상태 모니터링, 관리가 가능해지는 것이다.

(리눅스 등의  장비들은 특정 소프트웨어를 설치해야할 수 있다)

'Network' 카테고리의 다른 글

syslog  (0) 2024.11.19
Network 17. HSRP  (0) 2024.03.29
Network 16. VTP  (0) 2024.03.28
Network 15 . VLAN  (0) 2024.03.27
Network 14. OSPF 심화  (0) 2024.03.19