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/mibsdướ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ởi- snmpdvà bị ghi đè mỗi khi- snmpdkhở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.