2.2.1. Kiến trúc Manager/Agent
Qua tổng quan về kiến trúc chung mà hầu hết các hệ thống quản trị mạng ngày nay sử dụng cho thấy rằng các thành phần đƣợc phân chia khá rõ đó là phía quản trị và phía bị quản trị. Phía quản trị đại diện là gói phần mềm Manager còn phía bị quản trị đại diện là gói phần mềm Agent. Manager và Agent này sử dụng giao thức SNMP để trao đổi gói tin với nhau. Nhƣ vậy, mô hình kiến trúc quản trị Manager/Agent có thể đƣợc cụ thể hoá nhƣ trong hình 2.2.
Có thể tóm tắt kiến trúc quản trị mạng Manager/Agent gồm các thành phần chính sau:
- Hệ thống quản trị (Management System): hay còn gọi là phía Manager.
- Hệ thống bị quản trị (Managed System): hay còn gọi là phía Agent.
- Cơ sở dữ liệu thông tin quản trị (Management Database): hay còn gọi là MIB đƣợc dùng trong cả 2 phía Manager và Agent.
- Giao thức quản trị mạng (Network Management Protocol): đối với mô hình Manager/Agent sử dụng giao thức mạng đơn giản SNMP. Hệ thống quản trị: Có nhiệm vụ cung cấp giao diện giữa ngƣời quản trị mạng và các thiết bị bị quản trị. Nó cũng cung cấp các tiến trình quản trị mạng. Tiến trình quản trị thực hiện các công việc nhƣ đo lƣờng lƣu thông trên mạng hoặc ghi các tốc độ truyền và địa chỉ vật lý của giao tiếp mạng (Interface) trên bộ định tuyến. Hệ thống quản trị cũng cung cấp một vài loại báo cáo để trình diễn dữ liệu quản trị dƣới dạng đồ hoạ,…
Một hệ thống quản trị có thể có một vài trạm quản trị mạng đây chính là Manager. Manager là một máy chủ chạy các chƣơng trình có thể thực hiện một số chức năng quản trị mạng. Thông thƣờng Manager đƣợc đặt trên các máy có cấu hình tốt để xử lý thông tin và hiển thị các thông tin thời gian thực về hệ thống mạng mà nó quản trị. Manager có thể xem nhƣ là NMS. Thành phần này có nhiệm vụ cơ bản là liên tục thực hiện truy vấn, thăm dò,
thu thập các cảnh báo thông qua các sự kiện bẫy (trap) từ tác tử quản trị (Agent), xử lý các thông tin đó và hiển thị kết quả tới ngƣời dùng. Thăm dò trong việc quản trị mạng là “nghệ thuật” đặt ra các câu truy vấn đến các Agent để có đƣợc một phần thông tin nào đó. Các cảnh báo của Agent là cách mà Agent báo với NMS khi có sự cố xảy ra. Cảnh báo của Agent đƣợc gửi một cách không đồng bộ, không nằm trong việc trả lời truy vấn của NMS. NMS dựa trên các thông tin trả lời của Agent để có các phƣơng án giúp mạng hoạt động hiệu quả hơn. Ví dụ khi một đƣờng dây kết nối tới Internet bị giảm băng thông nghiêm trọng, Router sẽ gửi một thông tin cảnh báo tới NMS. NMS sẽ có một số hành động, ít nhất là lƣu lại giúp ta có thể biết việc gì đã xảy ra. Tất nhiên, các hành động này của NMS phải đƣợc cài đặt trƣớc.
Manager có thể đƣợc hiểu nhƣ thành phần trung gian mà qua đó ngƣời quản trị mạng có thể thực hiện các chức năng quản trị mạng. Hiện nay, giao diện ngƣời dùng hầu hết là dạng đồ hoạ GUI dƣới dạng Web. Thông thƣờng một Manager có nhiệm vụ sau:
- Cài đặt một giao thức quản trị mạng, ở đây là giao thức SNMP. - Làm chức năng của một trung tâm giám sát và quản trị mạng. - Thực hiện các chức năng: yêu cầu các Agent cung cấp thông tin
quản trị, nhận trả lời từ Agent, thiết lập các thông số trong Agent, nhận các sự kiện cảnh báo từ Agent.
Hệ thống bị quản trị: Gồm tiến trình Tác tử quản trị (Agent) và các đối tƣợng bị quản trị. Tiến trình Agent thực hiện các thao tác quản trị mạng nhƣ thiết lập các tham số cấu hình, các trạng thái của đối tƣợng bị quản trị,… Các đối tƣợng bị quản trị bao gồm các máy trạm làm việc, máy chủ, hub, switch, router, máy in, hoặc cũng có thể là các phần mềm ứng dụng,… Các đối tƣợng này có các thuộc tính có thể đƣợc định nghĩa tĩnh (nhƣ tốc độ giao diện mạng), động (nhƣ bảng định tuyến), hoặc các thông tin đo lƣờng (nhƣ số lƣợng gói tin truyền lỗi).
Agent thực chất là các mô đun chƣơng trình thực hiện các chức năng quản trị mạng trên những thực thể bị quản trị. Agent là một phần trong các chƣơng trình chạy trên các thiết bị mạng đó. Nó có thể là một chƣơng trình độc lập nhƣ các deamon trong Unix, hoặc đƣợc tích hợp vào hệ điều hành nhƣ IOS của Cisco trên Router. Ngày nay, đa số các thiết bị hoạt động tới
lớp IP đƣợc cài đặt SMNP Agent. Các nhà sản xuất ngày càng muốn phát triển các Agent trong các sản phẩm của họ nên công việc của ngƣời quản trị mạng đơn giản hơn. Các Agent này truy cập đến các thực thể bị quản trị trong phạm vi nó phụ trách để lấy các thông tin hoạt động của thiết bị, lƣu trữ, sau đó tập hợp lại và gửi tới Manager theo yêu cầu thông qua giao thức SNMP. Một số thiết bị thƣờng gửi một thông báo “tất cả đều bình thƣờng” khi nó chuyển từ một trạng thái xấu sang một trạng thái tốt. Điều này giúp xác định khi nào một tình trạng có vấn đề đƣợc giải quyết.
Ngày nay, Agent đã đƣợc phát triển và tích hợp vào hầu hết các thiết bị phần cứng nhƣ Switch, Router, UPS…, và các ứng dụng chuẩn nhƣ hệ điều hành Window, Unix, …. Thông thƣờng Agent còn có các tính năng sau:
- Cài đặt giao thức, ở đây là giao thức SNMP.
- Thu thập, lƣu trữ thông tin quản trị trong cơ sở dữ liệu thông tin quản trị và cung cấp các thông tin này khi đƣợc yêu cầu.
- Có khả năng thông báo các sự kiện theo những điều kiện đƣợc xác lập trƣớc đến Manager.
- Có thể thực hiện quản trị đối với các thực thể không tuân theo chuẩn giao thức SNMP (thực thể “ngoại lai”) với cơ chế uỷ quyền (Proxy).
Cơ sở dữ liệu thông tin quản trị MIB: đƣợc kết nối với cả Manager và Agent. Để định nghĩa cấu trúc dữ liệu trong MIB, ngƣời ta sử dụng cách tổ chức thông tin logic gọi là kiến trúc thông tin quản trị SMI. SMI đƣợc tổ chức thành một cây cấu trúc, bắt đầu từ gốc (root) với các nhánh là các đối tƣợng đƣợc quản trị. MIB thể hiện các đối tƣợng bị quản trị nhƣ các lá của nhánh.
MIB có 2 phiên bản MIB-I và MIB-II. MIB-I là bản gốc của MIB nhƣng ít dùng khi MIB-II đƣợc đƣa ra. Bất kỳ thiết bị nào hỗ trợ SNMP đều phải hỗ trợ MIB-II. MIB-II định nghĩa các tham số nhƣ tình trạng của Interface (tốc độ, MTU, các octet gửi/nhận,...) hoặc các tham số gắn liền với hệ thống (định vị hệ thống, thông tin liên lạc với hệ thống,...). Mục đích chính của MIB-II là cung cấp các thông tin quản trị theo TCP/IP. Có nhiều kiểu MIB cho các mục đích quản trị khác nhau:
• Frame Relay DTE Interface Type MIB (RFC 2115). • BGP Version 4 MIB (RFC 1657).
• RDBMS MIB (RFC 1697).
• RADIUS Authentication Server MIB (RFC 2619). • Mail Monitoring MIB (RFC 2249).
• DNS Server MIB (RFC 1611).
Tuy nhiên, nhà sản xuất cũng nhƣ ngƣời dùng có thể định nghĩa các biến MIB riêng cho họ trong từng tình huống quản trị.
Giao thức quản trị: cung cấp cách thức cho Manager và Agent có thể liên lạc truyền thông đƣợc với nhau. Để thiết lập quá trình kết nối, giao thức sẽ định nghĩa các thông điệp. Các thông điệp này có thể hiểu nhƣ các lệnh, các trả lời và các thông báo. Manager dùng các thông điệp này để yêu cầu các thông tin quản trị và Agent dùng chúng để trả lời. Giao thức phổ biến nhất hiện nay là giao thức quản trị mạng đơn giản SNMP.
Trong kiến trúc quản trị mạng dựa trên SNMP thì mô hình tổng quan sẽ có dạng nhƣ trong hình 2.3.
Trong mô hình này, NMS là trạm quản trị, đây chính là Manager, và đƣợc gọi là SNMP Manager. Còn tác tử quản trị sẽ là SNMP Agent.
Trong trƣờng hợp có các trạm cần quản trị nhƣng lại không tuân theo các chuẩn mà giao thức SNMP cung cấp, khi đó SNMP Agent có thể thiết lập để hoạt động nhƣ một dạng uỷ quyền (Proxy). Mô hình đƣợc thể hiện nhƣ trong hình 2.4. MIB NMS Network Agent MIB MIB NMS Agent Agent
Trong kiến trúc uỷ quyền này, NMS liên lạc với Agent uỷ quyền và chỉ ra định danh của thực thể không có hỗ trợ SNMP. Tiếp đó Agent uỷ quyền chuyển các tƣơng tác mà nó nhận đƣợc từ NMS đến thực thể đó. Trong trƣờng hợp này, MIB trong Agent uỷ quyền tƣơng ứng với thông tin quản trị hiện tại của thực thể “ngoại lai”.
Trong thực tiễn, kiến trúc quản trị mạng Manager/Agent dựa trên SNMP tổng thể có thể đƣợc thể hiện nhƣ trong hình 2.5. MIB NMS Proxy SNMP Agent Network None SNMP Manageable node (managed by proxy) Các thông điệp riêng Các thông điệp SNMP
Mô hình thực tiễn này có các trạm quản trị SNMP Manager, trạm SNMP Agent và Proxy Agent. Ngoài ra, trong hình cũng thể hiện các cơ sở dữ liệu thông tin quản trị MIB cho Agent của máy trạm thông thƣờng và Agent cho các thiết bị mạng nhƣ Router.
2.2.2. Nguyên lý trao đổi thông tin
Để hình dung rõ mối quan hệ giữa Manager và Agent dựa trên SNMP và cũng nhƣ nắm rõ nguyên lý trao đổi thông tin giữa Manager và Agent, thể hiện nhƣ trong hình 2.6. SNMP Manager (NMS) SNMP Agent Trap gửi tới NMS
Truy vấn đến Agent Trả lời truy vấn từ Agent
Hình 2.6 : Nguyên lý trao đổi thông tin giữa Manager và Agent Hình 2.5: Tổng thể mô hình Manager/Agent
Trong quá trình hoạt động, SNMP Manager (hay NMS) thƣờng gửi những tín hiệu thăm dò tới các Agent để kiểm tra trạng thái của các thiết bị. Quá trình thăm dò có thể đƣợc làm tự động hoặc ngƣời sử dụng sẽ khởi tạo tham số thăm dò. Khi nhận đƣợc các tín hiệu thăm dò, phía SNMP Agent sẽ trả lời các tín hiệu này. Để thực hiện đƣợc các tác vụ này, SNMP Agent phải đọc các thông tin của thực thể mà nó quản trị và lƣu trữ trong một cơ sở dữ liệu quản trị. Khi có yêu cầu, SNMP Agent sẽ đọc các thông tin và phản hồi lại cho phía trạm quản trị NMS.
Ví dụ: Một Agent trên Router có thể lƣu dấu các trạng thái của mỗi giao tiếp mạng: trạng thái kích hoạt (up), trạng thái không kích hoạt (down)... Khi đó Manager có thể truy vấn để lấy trạng thái về các giao tiếp mạng trên Router này, và nếu có một giao tiếp mạng nào ở trạng thái không kích hoạt (down) thì nó có thể có các hành động phù hợp để xử lý, nhƣ kích hoạt hoặc báo lỗi.
Trong trƣờng hợp, SNMP Agent phát hiện một lỗi bất thƣờng xảy ra, nó sẽ phát sinh một thông điệp trap và gửi đến SNMP Manager. Sau khi các sự cố đƣợc khắc phục, thì SNMP Agent sẽ gửi thông điệp trap mang nội dung là “All clear”, điều này rất hữu ích để chỉ ra rằng các trạng thái lỗi đó đã đƣợc khắc phục. Nhƣ mô hình quan hệ giữa Manager và Agent cho thấy các thông điệp truy vấn poll hay cảnh báo trap có thể xảy ra đồng thời. Không có một hạn chế nào khi mà SNMP Manager truy vấn hoặc SNMP Agent gửi cảnh báo.
2.3. Giao thức quản trị mạng SNMP 2.3.1. Các thành phần 2.3.1. Các thành phần
SNMP quy định trong quản trị mạng có 3 thành phần chính, đó là: - Đối tƣợng bị quản trị (managed devices, managed applications). - Các tác tử (Agents).
- Hệ quản trị (NMS).
Đối tượng bị quản trị: là các thành phần mạng hỗ trợ giao thức SNMP.
Chúng có nhiệm vụ thu thập thông tin quản trị và lƣu trữ để phục vụ cho NMS. Thành phần bị quản quản trị có thể là Router, Access server, Switch, Bridge, Hub, Printer, Web server, Mail server,….
Tác tử (Agent): là một phần mềm quản trị cài đặt trên đối tƣợng bị
quản trị. Agent hiểu đƣợc các thông tin quản trị trên các đối tƣợng đó và biên dịch sang dạng có thể hiểu đƣợc của NMS.
Hệ quản trị (NMS): có nhiệm vụ thực thi phần mềm quản trị. Trong
một hệ thống mạng, có thể có 1 hoặc nhiều NMS.
2.3.2. Các lệnh trong SNMP
SNMP sử dụng 3 lệnh cơ bản read, write, trap và một số lệnh tuỳ biến để quản trị thiết bị.
Lệnh Read đƣợc NMS dùng để đọc thông tin từ đối tƣợng bị quản trị. Các thông tin này đƣợc cung cấp qua các biến SNMP lƣu trữ trên đối tƣợng và đƣợc cập nhật bởi đối tƣợng đó.
Lệnh Write đƣợc NMS dùng để ghi các thông tin điều khiển lên đối tƣợng bằng cách thay đổi giá trị các biến SNMP.
Lệnh Trap dùng nhận các sự kiện gửi từ đối tƣợng bị quản trị tới NMS. Khi có sự kiện xảy ra trên đối tƣợng, lệnh trap sẽ đƣợc gửi tới NMS.
SNMP điều khiển, theo dõi thiết bị bằng cách thay đổi hoặc thu thập thông tin qua các biến giá trị lƣu trên đối tƣợng. Các Agent cài đặt trên đối tƣợng tƣơng tác với những chíp điều khiển hỗ trợ SNMP để lấy nội dung hoặc viết lại nội dung. Phƣơng thức hoạt động này có hai lợi ích:
- Giảm thiểu các lệnh điều khiển mà Agent phải hỗ trợ. - Không phải cài đặt nhiều thông tin về giao thức.
Việc giảm thiểu số lệnh điều khiển trực tiếp lên thiết bị giúp cho việc quản lý đƣợc an toàn hơn. Phần lớn số lệnh hiện nay là đọc nội dung biến điều khiển hoặc ghi lại nội dung mới. Bằng cách thay đổi nội dung biến điều khiển, SNMP sẽ gián tiếp điều khiển lên các thành phần mạng bị quản trị.
2.3.3. Cấu trúc gói dữ liệu
Mỗi gói tin SNMP gồm có 3 phần cơ bản: Version, Community, PDU, và đƣợc thể hiện nhƣ hình 2.7.
- Version: chỉ phiên bản của SNMP đang sử dụng (1.0, 2.0 hoặc 3.0). - Community: thể hiện các tên định danh (read-only, read-write, trap).
Một giao tiếp SNMP (Community) ứng với một quyền truy nhập: read- only (chỉ xem những cấu hình và thông tin) hoặc read-write (xem những cấu hình, thực thi những chƣơng trình & thay đổi chúng) hoặc trap (gửi những cảnh báo).
- PDU: chứa dữ liệu, các trƣờng của phần PDU này sẽ khác nhau tuỳ theo từng lệnh.
PDU có 5 kiểu lệnh
Kiểu lệnh Chức năng
GET REQUEST Đƣợc dùng để lấy thông tin từ MIB
GETNEXT REQUEST Đƣợc dùng để lần lƣợt đọc các giá trị của biến (trong trƣờng hợp đối tƣợng lƣu giữ một mảng các biến liên tục)
GET RESPONSE Đƣợc dùng để trả lời lại các gói tin GET và SET SET REQUEST Đƣợc dùng khi cần thay đổi giá trị của các biến
trong MIB, NMS gửi một bản tin có PDU dạng SETREQUEST tới Agent
TRAP Đƣợc dùng khi Agent phát hiện lỗi và muốn gửi cảnh báo đến NMS
Khuôn dạng của gói tin GET/SET PDU
PDU Var bind list Error index Error status Request ID
- Trƣờng Request ID:đƣợc dùng để định danh yêu cầu, ứng với mỗi yêu cầu sẽ có một trả lời với ID tƣơng ứng. Tại một thời điểm, có nhiều yêu cầu gửi tới agent nên cần có một ID để liên kết tƣờng minh và trả lời. - Trƣờng Error status: chỉ ra trạng thái của yêu cầu có đƣợc thực thi hay
không. Trong trƣờng hợp không, ứng với mã lỗi trả về sẽ biết lý do gây lỗi. Mã lỗi trả về có giá trị từ 0 đến 5. Nếu mã trả về là 0, yêu cầu đã đƣợc thực thi. Các mã lỗi từ 1 đến 4 sẽ chỉ ra nguyên nhân gây lỗi. Nếu trả lời lại có độ lớn vƣợt quá độ lớn của PDU, mã lỗi trả về là 1. Cụ thể nhƣ trong bảng 2.
Mã lỗi Ý nghĩa
0 Không lỗi 1 Giá trị quá lớn 2 Không có biến này
Hình 2.8: Khuôn dạng gói tin GET/SET Bảng 1: Kiểu lệnh của PDU
3 Giá trị ghi vào biến vƣợt qua khoảng xác định 4 Biến chỉ đọc (không tiếp nhận yêu cầu ghi) 5 Lỗi không rõ nguyên nhân