2024. 11. 14. 16:19ㆍNetwork
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 |