SNMP - What I Know
GIAO THỨC SNMP
Giới thiệu
- Simple Network Management Protocol (SNMP) là một giao thức chuẩn dùng cho internet (internet standard), nằm ở tầng ứng dụng (application layer), được mô tả lần đầu trong IETF RCF 1157.
- Dùng để thu thập, quản lý thông tin của các thiết bị mạng và có thể thay đổi những thông tin đó để điều chỉnh hành vi của thiết bị.
- SNMP hỗ trợ nhiều loại thiết bị từ có dây đến không dây như modems, routers, switches, servers, workstations, máy in, thiết bị IOT,…
Các phiên bản
- v1
- Hỗ trợ những tính năng cơ bản nhất.
- Chỉ sử dụng giao thức UDP.
- Sử dụng community strings để xác thực.
- v2c
- Được sử dụng rộng rãi nhất.
- Bổ sung 2 phương thức mới: GETBULK và INFORM.
- Có thể sử dụng giao thức TCP nhưng mặc định vẫn là UDP.
- v3
- Tăng cường bảo mật và tính riêng tư bằng cách băm (hash) địa chỉ MAC với MD5 hoặc SHA để xác thực cùng DES-56 để mã hoá dữ liệu.
- Mặc định sử dụng giao thức TCP.
Các thành phần chính
- Các thiết bị mạng được quản lý
- Agent
- Phần mềm chạy trên thiết bị được quản lý.
- Thu thập thông tin của thiết bị và gửi chúng về hệ thống quản lý.
- Manager / Network management station (NMS)
- Quản lý hệ thống mạng thông qua các agents.
- Management information base (MIB)
- Mô tả các tài nguyên mà hệ thống quản lý.
Cách thức hoạt động
Các phương thức chính của SNMP
- GET: Được gửi từ manager để lấy một thông số nào đó, thông qua OID.
- GETNEXT: Được gửi từ manager để lấy giá trị của OID tiếp theo trong cây MIB.
- GETBULK: Được gửi từ manager để lấy một lượng lớn thông tin. Có từ phiên bản v2c.
- SET: Được gửi từ manager để thay đổi một thông số nào đó của agent.
- RESPONSE: Agent hồi đáp yêu cầu từ manager, chứa giá trị của thông số được yêu cầu.
- TRAP: Agent tự động gửi về manager mà không được yêu cầu. Thường là thông báo lỗi.
- INFORM: Tương tự như TRAP, nhưng yêu cầu xác nhận (acknowledgement) từ manager. Có từ phiên bản v2c.
MANAGEMENT INFORMATION BASE (MIB)
- Để định vị mỗi tài nguyên mà SNMP quản lý, người ta dùng hệ thống MIB. Mỗi tài nguyên ấy được định danh bởi một object identifier (OID).
- Hệ thống MIB có thể được mô tả như một cây có gốc không tên (nameless root).
- Các file MIB được lưu trữ trong
/usr/share/snmp/mibs
dưới dạng text (.txt). - Mỗi OID được thể hiện qua standard dotted naming system. Ví dụ với OID 1.3.6.1.4.1.77 ta có:
- 1: International Organization for Standardization (ISO)
- 3: Organization (ORG)
- 6: Department of Defense (DoD)
- 1: Internet
- 4: Private
- 1: Enterprises
- 77: LAN Manager MIB II
NET-SNMP
Giới thiệu
- Là một bộ ứng dụng hỗ trợ việc cài đặt (implement) và sử dụng giao thức SNMP.
- Hỗ trợ cả IPv4 và IPv6.
- Hỗ trợ cả 3 phiên bản giao thức SNMP.
- Hỗ trợ cả Windows và các hệ điều hành Unix-based như Linux và MacOS. Tuy nhiên, một số tính năng có thể khác nhau trên mỗi nền tảng.
Các thành phần chính
- Các ứng dụng CLI
- Truy vấn thông tin từ agents:
snmpget
,snmpgetnext
,snmpwalk
,snmptable
,snmpdelta
. - Thay đổi thông số của agents:
snmpset
. - Truy vấn những thông số cố định của agents:
snmpdf
,snmpnetstat
,snmpstatus
. - Trình duyệt MIB:
snmptranslate
. - Hỗ trợ cấu hình:
snmpconf
,net-snmp-config
,net-snmp-create-v3-user
.
- Truy vấn thông tin từ agents:
- Trình duyệt MIB
tkmib
- Là ứng dụng giao diện đồ hoạ.
- Daemon
snmptrapd
- Nhận và log TRAPs.
- Agent daemon
snmpd
- Hỗ trợ sẵn (built-in) nhiều MIB information modules.
- Có thể được mở rộng.
- Thư viện hỗ trợ phát triển ứng dụng SNMP
- Hỗ trợ ngôn ngữ C và Perl.
Cấu hình (Configuration)
Nơi lưu trữ files cấu hình của Net-SNMP có thể khác nhau giữa các hệ điều hành và bản phân phối (distribution/distro). Với Arch-based distros, chúng thường được tổ chức như sau:
$HOME/.snmp/snmpd.conf
: Chỉ cho một người dùng nhất định và có mức ưu tiên cao nhất./usr/share/snmp/snmpd.conf
: Cho tất cả người dùng trong hệ thống./etc/snmp/snmpd.conf
: Thường chỉ cho phiên bản v1 và v2c./var/net-snmp/snmpd.conf
: Được sinh ra bởisnmpd
và bị ghi đè mỗi khisnmpd
khởi động. Vì vậy, người dùng không được tự ý lưu cấu hình vào đây, trừ "createUser" tokens.