Song song với việc thuận tiện trong chia sẻ thông tin cũng là các nguy cơ trong mạng máy tính : người dùng bên trong không được phép, hay người dùng bên ngoài có thể truy cập, lấy đi các
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN MINH HIẾU
PHÁT TRIỂN, MỞ RỘNG HỆ THỐNG QUẢN TRỊ MẠNG DỰA TRÊN MÃ NGUỒN MỞ VỚI KIẾN
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày trong luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn khoa học của thầy giáo PGS TS Nguyễn Văn Tam
Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc Tôi xin chịu trách nhiệm trước pháp luật lời cam đoan của mình
Thái Nguyên, ngày 13 tháng 4 năm 2014
Học viên thực hiện
Nguyễn Minh Hiếu
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn tới trường ĐH Công nghệ thông tin và truyền thông –
ĐH Thái Nguyên, nơi các thầy cô đó tận tình truyền đạt các kiến thức quý báu cho tôi trong suốt quá trình học tập Xin cảm ơn Ban chủ nhiệm khoa và các cán bộ đã tạo điều kiện tốt nhất cho chúng tôi học tập và hoàn thành đề tài tốt nghiệp của mình
Đặc biệt, tôi xin gửi tới PGS TS Nguyễn Văn Tam, người đó tận tình chỉ bảo tôi trong suốt quá trình thực hiện đề tài, lời cảm ơn và biết ơn sâu sắc nhất Bên cạnh những kiến thức khoa học, thầy đó giúp tôi nhận ra những bài học về cách học tập, làm việc và những kinh nghiệm quý báu
Tôi xin bày tỏ lòng biết ơn tới gia đình, bạn bè, đồng nghiệp và những người thân đó động viên khích lệ tinh thần và giúp đỡ để tôi hoàn thành luận văn này
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN iv
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iv
Chương I : Kiến trúc quản trị mạng SNMP 1
1.1 Kiến trúc quản trị mạng 1
1.1.1 Quản trị mạng cơ bản 1
1.1.2 Kiến trúc quản trị mạng 2
1.1.3 Quản trị mạng tiêu chuẩn ISO 3
1.2 Kiến trúc SNMP 5
1.2.1 Giao thức SNMP 5
1.2.2 Các phiên bản của SNMP 6
1.2.3 Các thành phần của SNMP 6
1.2.4 Phương thức hoạt động của SNMP 8
1.3 Một số hệ thống quản trị mạng với SNMP 16
1.3.1 Quản trị mạng với SNMP trong hệ điều hành Microsoft, Linux 16
1.3.2 Quản trị mạng với SNMP trên môi trường Java 19
1.3.3 Cơ chế quản lý mạng tập trung theo mô hình DEN 21
1.4 Kết luận chương 23
Chương II : Kiến trúc Plugin trong hệ quản trị mạng Cacti 24
2.1 Kiến trúc của hệ quản trị mạng Cacti 24
2.1.1 Giới thiệu về hệ quản trị mạng Cacti 24
2.1.2 Kiến trúc Cacti 26
Trang 62.1.3 Hoạt động của Cacti 28
2.2 Kiến trúc Cacti Plugin 32
2.2.1 Tổng quan Plugin 33
2.2.2 Plugin Architecture trong hệ quản trị Cacti 36
2.2.3 Cacti Plugin 39
2.2.4 Khởi tạo Plugin 42
2.2.5 Một số Cacti Plugin thông dụng 45
2.3 Kết luận chương 47
Chương III : Triển khai hệ quản trị Cacti với kiến trúc Plugin trong thực tế 48
3.1 Các vấn đề về hệ thống mạng hiện tại 48
3.1.1 Tình hình hiện tại 48
3.1.2 Mô hình mạng hiện tại 48
3.1.3 Tình hình quản lý, giám sát hệ thống mạng 49
3.1.4 Nhu cầu và giải pháp 52
3.2 Thiết kế hệ thống quản trị mạng 53
3.2.1 Quy trình thực hiện của hệ thống 53
3.2.2 Sơ đồ chức năng của hệ thống 53
3.2.3 Giao diện web quản trị 54
3.2.4 Module quản lý thông tin trên thiết bị 55
3.2.5 Tiến hành ứng dụng và cài đặt 56
3.3 Kết quả và hướng phát triển 61
3.3.1 Kết quả 61
3.3.2 Hướng phát triển trong tương lai 64
3.4 Kết luận chương 65
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT
TẮT
MIB Management Information Base
SNMP Simple Network Management Protocol
ISO International Organization for Standardization
IETF Internet Engineering Task Force
NMS Network Manager Stations
Trang 91 Lý do chọn đề tài
Máy tính ra đời đánh dấu một bước lớn trong kỷ nguyên thông tin Với máy tính các công việc lưu trữ, xử lý, trao đổi thông tin trở nên tiện dụng và đơn giản hơn rất nhiều Ta có thể thấy máy tính xuất hiện ở hầu hết các lĩnh vực trong cuộc sống : văn hóa, y tế, tài chính, thể thao, giải trí Mỗi máy tính có khả năng lưu trữ, xử lý khác nhau với nhiều thông tin khác nhau và khi hai hay nhiều máy tính kết nối lại theo một tiêu chuẩn nào đó cho ta một mạng máy tính để chia sẻ, trao đổi thông tin một cách tiện lợi Internet, được sử dụng hàng ngày, và bất kỳ ai sử dụng nó đều thấy được tác dụng to lớn như thế nào, chính là mạng của các mạng,
là một hệ thống thông tin toàn cầu có thể truy cập bằng máy tính Hệ thống này truyền thông tin theo phương pháp chuyển mạch gói ( packet switching) dựa theo giao thức liên kết đã được chuẩn hóa (IP protocol) Hệ thống này bao gồm hàng ngàn các mạng máy tính nhỏ hơn của người dùng cá nhân, các doanh nghiệp, các trường đại học, các tổ chức và chính phủ các nước trên toàn thế giới Song song với việc thuận tiện trong chia sẻ thông tin cũng là các nguy cơ trong mạng máy tính : người dùng bên trong không được phép, hay người dùng bên ngoài có thể truy cập, lấy đi các thông tin quan trọng hay chỉnh sửa xóa bỏ những thông tin như thế, hay những nguy cơ về tấn công mạng với các hình thức tấn công khác nhau gây ra gián đoạn trong việc trao đổi thông tin, quá tải cho hệ thống máy chủ,
từ chối truy cập Có nhiều phương pháp để ngăn chặn, giảm thiểu các nguy cơ
ấy và sử dụng một hệ thống quản trị mạng tốt với yếu tố bảo mật cao là một phương pháp tốt được khuyên dùng Hệ quản trị Cacti là một hệ quản trị mã nguồn mở đang được chú ý và rất mạnh trong việc giám sát các tài nguyên mạng, đảm bảo việc sử dụng tài nguyên, khai thác có hiệu quả cho tất cả người sử dụng, đảm bảo an toàn, tin cậy thông tin Cacti có rất nhiều ứng dụng và vẫn đang tiếp tục phát triển như các hệ thống mã nguồn mở khác Đề tài tập trung nghiên cứu,
Trang 10tìm hiểu và xây dựng một phần mở rộng trong Cacti (PLUGIN) hay có thể nói là:
“Phát triển, mở rộng Hệ thống quản trị mạng dựa trên mã nguồn mở với kiến trúc PLUGIN”
2 Đối tượng và phạm vi nghiên cứu
- Tổng quan về mạng, hệ thống quản trị mạng
- Hệ thống quản trị mạng thử nghiệm với mã nguồn mở, thử nghiệm triển khai, mở rộng hệ thống với kiến trúc PLUGIN
3 Hướng nghiên cứu của đề tài
- Làm rõ về mạng máy tính, hệ thống quản trị mạng, kiến trúc PLUGIN
- Nghiên cứu các vấn đề liên quan để triển khai
4 Những nội dung nghiên cứu chính
Chương I : Kiến trúc quản trị mạng SNMP 1.1 Kiến trúc quản trị mạng
1.1.1 Quản trị mạng cơ bản 1.1.2 Kiến trúc quản trị mạng 1.1.3 Quản trị mạng tiêu chuẩn ISO 1.2 Kiến trúc SNMP
1.2.1 Giao thức SNMP 1.2.2 Các phiên bản của SNMP 1.2.3 Các thành phần của SNMP 1.2.4 Phương thức hoạt động của SNMP 1.3 Một số hệ thống quản trị mạng với SNMP
Trang 111.3.2 Quản trị mạng với SNMP trên môi trường Java 1.3.3 Cơ chế quản lý mạng tập trung theo mô hình DEN
Chương II : Kiến trúc Plugin trong hệ quản trị mạng Cacti 2.1 Kiến trúc của hệ quản trị mạng Cacti
2.1.1 Giới thiệu về hệ quản trị mạng Cacti 2.1.2 Kiến trúc Cacti
2.1.3 Hoạt động của Cacti 2.2 Kiến trúc Cacti Plugin 2.2.1 Tổng quan Plugin
2.2.2 Plugin Architecture trong hệ quản trị Cacti 2.2.3 Cacti Plugin
2.2.4 Một số Cacti Plugin thông dụng
Chương III : Triển khai hệ quản trị Cacti với kiến trúc Plugin trong thực tế
3.1 Các vấn đề về hệ thống mạng hiện tại 3.1.1 Tình hình hiện tại
3.1.2 Mô hình mạng hiện tại 3.1.3 Tình hình quản lý, giám sát hệ thống mạng 3.1.4 Nhu cầu và giải pháp
3.2 Thiết kế hệ thống quản trị mạng 3.2.1 Quy trình thực hiện của hệ thống 3.2.2 Sơ đồ chức năng của hệ thống 3.2.3 Giao diện web quản trị
3.2.4 Module quản lý thông tin trên thiết bị
Trang 123.2.5 Tiến hành ứng dụng và cài đặt 3.3 Kết quả và hướng phát triển 3.3.1 Kết quả
3.3.2 Hướng phát triển trong tương lai
5 Phương pháp nghiên cứu
- Thu thập, phân tích, tổng hợp các tài liệu có liên quan đến đề tài
- Xây dựng bài toán thực nghiệm để minh chứng những nghiên cứu về lý thuyết
6 Ý nghĩa Khoa học của đề tài
- Là tài liệu tham khảo trong lĩnh vực quản trị mạng với nội dung nghiên cứu và triển khai hệ thống quản trị mạng dựa trên mã nguồn mở, mở rộng với kiến trúc PLUGIN
- Nội dung nghiên cứu về tổng quan kiến trúc quản trị mạng, giao thức quản trị mạng SNMP, kiến trúc hệ thống mã nguồn mở CACTI, kiến trúc PLUGIN
- Xây dựng, thiết kế, thử nghiệm và ứng dụng quản trị mạng trong công việc của mình và triển khai ( Tại công ty liên doanh làng quốc tế Hướng Dương – TP Hải Phòng )
Trang 13Chương I : Kiến trúc quản trị mạng SNMP
1.1 Kiến trúc quản trị mạng
1.1.1 Quản trị mạng cơ bản
1.1.1.1 Quản trị mạng cơ bản
Quản trị mạng là một chủ đề rộng liên quan đến mạng máy tính Theo
Webopedia, Quản trị mạng bao gồm nhiều công việc: điều khiển, lập kế hoạch, triển khai, phân bổ, sử dụng và quản lý các tài nguyên mạng Nó liên quan đến một
số sản phẩm phần mềm và phần cứng nhằm hỗ trợ người quản trị quản lý được tốt mạng máy tính
Trong tài liệu của Cisco, quản trị mạng được hiểu là các hoạt động giám sát một mạng đơn lẻ với các giao thức, các công cụ phân tích mạng Ngoài ra, khái niệm quản trị mạng còn liên quan tới các hoạt động quản trị cơ sở dữ liệu phân tán, khả năng tự động tương tác với thiết bị mạng, hay tạo ra các khung nhìn đồ họa về cấu trúc, lưu lượng mạng theo thời gian thực
Nói chung, quản trị mạng được hiểu là công việc mà người quản trị sử dụng các công cụ, ứng dụng và thiết bị cho việc giám sát và duy trì mạng
1.1.1.2 Vài nét về lịch sử quản trị mạng
Đầu những năm 1980, có những bước tiến lớn trong việc triển khai mạng Công nghệ mạng được áp dụng, kết quả nhận được tăng lên rất nhiều thông qua các mặt lợi ích, chi phí sản xuất Vì thế các hệ thống mạng sẵn có được mở rộng một
Trang 14cách nhanh chóng và các công nghệ mới liên tục được nghiên cứu, ứng dụng Giữa những năm 1980, việc triển khai mạng gặp nhiều khó khăn do có nhiều công nghệ mạng khác nhau và đôi khi không tương thích
Các vấn đề liên quan đến việc mở rộng mạng lúc này gây ảnh hưởng đến cả hoạt động mạng hàng ngày và chiến lược phát triển mạng Mỗi công nghệ mạng mới đòi hỏi phải thiết lập riêng của các chuyên gia Và trong đầu những năm 1980, các yêu cầu quản lý nhân sự : một cá nhân quản lý hệ thống mạng lớn, không thống nhất đã gây ra rắc rối lớn cho nhiều tổ chức Vì thế phát sinh một nhu cầu cấp thiết
để quản lý mạng tự động tích hợp trên môi trường đa mạng
1.1.2 Kiến trúc quản trị mạng
Kiến trúc quản lý mạng là hệ thống phân cấp (được minh họa như hình 1.1), trong đó các thành phần bố trí, sắp xếp và tương tác theo một quy tắc nhất định Sự sắp xếp tương tự như cơ cấu quản lý tại nơi làm việc: có một người quản lý và nhóm nhân viên báo cáo cho người quản lý Có những quy tắc giao tiếp giữa người quản lý và người lao động
Trang 15Hình 1.1 : Mô hình kiến trúc mạng điển hình duy trì nhiều quan hệ
Các thành phần của kiến trúc quản lý mạng bao gồm : manager, các agent, giao thức quản trị mạng (Network management protocol), Cơ sở thông tin quản lý (MIB – Management Information Base) hay cơ sở dữ liệu quản lý (Management Database), các proxy
Manager (có thể là trạm cuối, thiết bị quản lý, hệ thống máy tính, hệ thống định tuyến ) có chứa thực thể quản lý (Management entity) được lập trình sẵn để phản ứng bằng cách thực hiện một hoặc một nhóm các hành động Manager đóng vai trò điều khiển nút mạng, chịu trách nhiệm duy trì khung nhìn về nút mạng quản
lý, thu thập thông tin từ các thành phần mạng và xử lý thông tin nếu cần thiết
Agent trong các thiết bị quản lý phản hồi tất cả các hoạt động thăm dò Các Agent là các mô-đun phần mềm làm các công việc : biên dịch thông tin về thiết bị quản lý, sau đó lưu trữ trong cơ sở dữ liệu và cuối cùng là cung cấp thông cho các thực thể quản lý trong hệ thống quản trị mạng qua giao thức quản trị mạng Có 2 giao thức quản trị mạng phổ biến là SNMP (Simple Network Management
Protocol ) và CMIP (Common Management Information Protocol)
MIB là cơ sở thông tin quản lý được lưu trữ lại trong các thiết bị mạng
Proxy (Đơn vị quản lý ủy quyền) là các thực thể cung cấp thông tin quản lý thay mặt cho các thực thể khác
1.1.3 Quản trị mạng tiêu chuẩn ISO
Theo ISO có thể phân nhóm quản trị mạng dựa trên các chức năng chính.Các chức năng chính là quản lý lỗi, cấu hình, tính toán, thực thi, bảo mật (FCAPS - Fault, Configuration, Accounting, Performance and Security)
Trang 161.1.3.1 Quản lý lỗi
Quản lý lỗi nhằm phát hiện, chẩn đoán, và thông báo các thiết bị trong tình trạng lỗi để sửa chữa, thay thế để giữ mạng hoạt động hiệu quả Quản lý lỗi bao gồm các chức năng như báo động, giám sát, xác định khu vực xảy ra lỗi, quản lý việc kiểm tra, sửa chữa các lỗi và hỗ trợ quản lý
1.1.3.2 Quản lý cấu hình
Mục tiêu của quản lý cấu hình là để giám sát mạng và thông tin cấu hình hệ thống để theo dõi, điều khiển các hoạt động mạng với các phiên bản phần cứng, phần mềm khác nhau Mỗi thiết bị mạng có nhiều thông tin phiên bản liên kết với
nó Dữ liệu về cấu hình được lưu trữ ở trong cơ sở dữ liệu nhỏ và dễ dàng truy cập Khi gặp vấn đề, đây là đầu mối để tìm ra cách giải quyết
1.1.3.4 Quản lý thực thi
Quản lý thực thi là hoạt động quản lý mạng cấp cao, là hoạt động giám sát, kiểm soát và tối ưu hóa mạng lưới tổng thể, hiệu suất Quản lý thực thi bao gồm các chức năng như thu thập thông tin thống kê, duy trì và kiểm tra các bản ghi của
Trang 17hệ thống và thay đổi chế độ hoạt động của hệ thống với mục đích thực hiện các hoạt động quản lý hiệu quả
1.1.3.5 Quản lý bảo mật
Quản lý bảo mật là để kiểm soát quyền truy cập vào tài nguyên mạng để mạng không thể bị phá hoại (cố ý hoặc vô ý) và các thông tin nhạy cảm không thể được truy cập bởi những người không có quyền thích hợp Quản lý bảo mật nhằm ngăn chặn sự xâm nhập, phát hiện xâm nhập, để hỗ trợ việc phục hồi và hạn chế hậu quả của sự xâm nhập một cách hiệu quả
1.2 Kiến trúc SNMP
1.2.1 Giao thức SNMP
SNMP (Simple Network Management Protocol) là một trong hai giao thức quản trị mạng phổ biến SMTP cung cấp phương pháp để giám sát và điều khiển các thiết bị mạng và để quản lý các cấu hình, thu thập thống kê, hiệu suất và bảo mật Giao thức này xuất hiện rất nhiều trong các thiết bị mạng như switch, router, bridge hay các hệ quản trị Window Server 2003, Cacti, Nagios
Với mô hình mạng nhỏ, ít thiết bị và tập trung ở một nơi, hiệu quả của
SNMP không được rõ ràng lắm nhưng khi sử dụng trong hệ thống lớn, thiết bị phân tán và thay đổi công việc quản trị tập trung ở một nơi mà có thể quản lý tất cả mới thấy được lợi ích của SNMP
Tổ chức IETF (Internet Engineering Task Force) đánh giá cao vai trò của SNMP trong quản trị mạng Internet IETFđã đưa ra một loạt các RFC (Requests for Comments) mà ở đó các giao thức hầu hết dựa trên cơ sở IP Và giao thức SNMP nằm ở tầng ứng dụng nó làm dễ dàng việc trao đổi thông tin giữa các thiết bị mạng
Nó hoạt động dựa trên tầng UDP của giao thức IP
Trang 181.2.2 Các phiên bản của SNMP
Có 3 phiên bản khác nhau của SNMP, được ký hiệu là SNMPv1, SNMPv2
và SNMPv3 Trình tự của các phiên bản được dựa trên sự phát triển liên tục của thiết kế SNMP với các chức năng bổ sung
SNMPv1 được đặc trưng với thiết kế gọn nhẹ của nó và nó được chứng minh
là phù hợp với quản lý mạng lưới cỡ nhỏ và không thể mở rộng mạng lớn hơn
SNMPv2 là thế hệ thứ 2 được phát triển, khắc phục những thiếu sót của SNMPv1 bằng cách mở rộng các chức năng mới trên nền tảng TCP/IP SNMPv2 làm cho SNMP trở thành một giao thức quản lý mạnh mẽ bằng cách cung cấp hiệu quả tốt hơn, kiểm soát lỗi và thông tin liên lạc quản lý-quản lý
SNMPv3 là phiên bản tập trung vào việc bảo mật, không có khả năng mở rộng
1.2.3 Các thành phần của SNMP
Trong SNMP có 3 thành phần cần quan tâm: Manager, Agent và MIB
(Management Information Base) MIB là cơ sở dữ liệu dùng phục vụ cho Manager
và Agent
+ Manager là một server có chạy các chương trình có thể thực hiện một số chức năng quản lý mạng Manager có thể xem như là NMS (Network Manager Stations) NMS có khả năng thăm dò và thu thập các cảnh báo từ các Agent trong mạng Thăm dò trong việc quản lý mạng là đặt ra các câu truy vấn đến các Agent
để có được một phần nào đó của thông tin 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 đường dây T1 kết nối tới Internet bị giảm băng thông nghiêm trọng,
Trang 19nhất là lưu lại giúp ta có thể biết việc gì đã xảy ra Các hành động này của NMS phải được cài đặt trước
+ Agent là một phần trong các chương trình chạy trên các thiết bị mạng cần quản lý 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ọ để công việc của người quản
lý hệ thống hay người quản trị mạng đơn giản hơn Các Agent cung cấp thông tin cho NMS bằng cách lưu trữ các hoạt động khác nhau của thiết bị Một số thiết bị thường gửi 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
Mối quan hệ giữa NMS và Agent:
Hình 1.2 – Mối quan hệ giữa NMS và Agent
Không có sự hạn chế nào khi NMS gửi một câu truy vấn đồng thời đến
Agent một cảnh báo
+ MIB có thể xem như là một cơ sở dữ liệu của các đối tượng quản lý mà Agent lưu trữ được Bất kỳ thông tin nào mà NMS có thể truy cập được đều được định nghĩa trong MIB Một Agent có thể có nhiều MIB nhưng tất cả các Agent đều
có một lọai MIB gọi là MIB-II, được định nghĩa trong RFC 1213 MIB-I là bản gốc
Trang 20của MIB nhưng ít dùng khi MIB-II được đưa ra Bất kỳ thiết bị nào được hỗ trợ SNMP đều phải có hỗ trợ MIB-II MIB-II định nghĩa các tham số như tình trạng của giao diện (tốc độ của giao diện, MTU, các octet gửi, các octet 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 lý theo TCP/IP Có nhiều kiểu MIB giúp quản lý cho các mục đích khác nhau:
• ATM MIB (RFC 2515)
• 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)
Nhưng 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 lý của họ
1.2.4 Phương thức hoạt động của SNMP
Protocol Data Unit (PDU) là định dạng thông điệp mà manager và agent sử dụng để gửi và nhận thông tin Có một định dạng chuẩn PDU cho các hoạt động của SNMP sau:
Get
Get-next
Get-bulk (SNMPv2 và SNMPv3)
Set
Trang 21đủ thông tin cần thiết cho lời yêu cầu, nó gửi lại cho NMS một “get-response”:
Trang 22Hình 1.4: Hoạt động của lệnh “get” trong giao thức SNMP
Get – next
“Get-next” đưa ra một dãy các lệnh để lấy thông tin từ một nhóm trong MIB Agent sẽ lần lượt trả lời tất cả các đối tượng có trong câu truy vấn của “get-next” tương tự như get”, cho đến khi nào hết các đối tượng trong dãy
Trang 23Hình 1.5: Hoạt động của Set Error Response của get, get-next, get-bulk, set
Có nhiều loại lỗi báo lại từ agent:
tooBig(1) Yêu cầu quá lớn để có thể dồn vào một câu trả
lời
noSuchName(2)
OID yêu cầu không tìm thấy, tức không tồn tại ở agent
badValue(3)” Câu lệnh “set” dùng không đúng với các object
“read-write” hay “write-only
readOnly(4) Lỗi này ít dùng Lỗi “noSuchName” tương đương
với lỗi này
genErr(5) Dùng cho tất cả các lỗi còn lại, không nằm trong
các lỗi trên
1.1: Các thông báo lỗi trong SNMPv1
Các loại lỗi của SNMPv1 mang tính chất chung nhất, không rõ ràng Do đó SNMPv2 đưa ra thêm một số loại lỗi như sau:
Trang 24wrongLength(8) Lỗi khi lệnh “set” đưa vào một giá trị có chiều dài
lớn hơn chiều dài tối đa của đối tượng
wrongEncoding(9) Lỗi khi lệnh “set” sử dụng cách mã hóa khác với
cách đối tượng đã định nghĩa
wrongValue(10)
Một biến được đặt một giá trị mà nó không hiểu
Khi một biến theo kiểu liệt kê “enumeration” được đặt một giá trị không theo kiểu liệt kê
InconsistentValue(12) Một biến MIB ở trạng thái không nhất quán và nó
không chấp nhận bất cứ câu lệnh “Set” nào
resourceUnavailable(13)
Không có tài nguyên hệ thống để thực hiện lệnh
“set”
commitFailed(14) Đại diện cho tất cả các lỗi khi lệnh “set” thất bại
undoFailed(15) Một lệnh “set” không thành công và agent không
Trang 25thể phục hồi lại trạng thái trước khi lệnh “set” bắt đầu thất bại
authorizationError(16) Một lệnh SNMP không được xác thực, khi một
người nào đó đưa ra mật mã không đúng
notWritable(17) Một biến không chấp nhận lệnh “set”
inconsistentName(18)
Cố gắng đặt một giá trị, nhưng việc cố gắng thất bại vì biến đó đang ở tình trạng không nhất quán
1.2: Các lỗi trong SNMPv2 SNMP Trap
Trap là cảnh báo của agent tự động gửi cho NMS để NMS biết có tình trạng xấu ở agent
Khi nhận được một ”trap” từ agent, NMS không trả lời lại bằng ”ACK” Do
đó agent không thể nào biết được là lời cảnh báo của nó có tới được NMS hay không Khi nhận được một ”trap” từ agent, nó tìm xem ”trap number” để hiểu ý nghĩa của ”trap” đó
1.6: Mô hình gửi Trap từ Agent
Bản tin Trap được agent tự động gửi cho manager mỗi khi có sự kiện xảy ra bên trong agent, các sự kiện này không phải là các hoạt động thường xuyên của agent mà là các sự kiện mang tính biến cố Ví dụ: Khi có một port down, khi có
Trang 26một người dùng login không thành công, hoặc khi thiết bị khởi động lại, agent sẽ gửi trap cho manager
Tuy nhiên không phải mọi biến cố đều được agent gửi trap, cũng không phải mọi agent đều gửi trap khi xảy ra cùng một biến cố Việc agent gửi hay không gửi trap cho biến cố nào là do hăng sản xuất device/agent quy định
Phương thức trap là độc lập với các phương thức request/response SNMP request/response dùng để quản lượn SNMP trap dùng để cảnh báo Nguồn gửi trap gọi là Trap Sender và nơi nhận trap gọi là Trap Receiver Một trap sender có thể được cấu hình để gửi trap đến nhiều trap receiver cùng lúc
Có 2 loại trap : trap phổ biến (generic trap) và trap đặc thù (specific trap) Generic trap được quy định trong các chuẩn SNMP, specific trap do người dùng tự định nghĩa (người dùng ở đây là hăng sản xuất SNMP device) Loại trap là một số nguyên chứa trong bản tin trap, dựa vào đó mà phía nhận trap biết bản tin trap có nghĩa gì
Theo SNMPv1, generic trap có 7 loại sau : coldStart(0), warmStart(1),
linkDown(2), linkUp(3), authenticationFailure(4), egpNeighborloss(5),
enterpriseSpecific(6) Giá trị trong ngoặc là mã số của các loại trap Ý nghĩa của các bản tin generic-trap như sau:
Trang 27warmStart (1) Thông báo agent vừa khởi tạo lại, không có biến nào bị
1.3: Các kiểu Trap SNMP Notification
SNMP Notification để chuẩn hóa định dạng PDU “trap” của SNMPv1 do PDU của “get” và “set” khác nhau, SNMPv2 đưa ra NOTIFICATION-TYPE” Định dạng PDU của “NOTIFICATION-TYPE” là để nhận ra “get” và “set”
“NOTIFICATION-TYPE” được định nghĩa trong RFC 2863
SNMP inform
SNMP inform: SNMPv2 cung cấp cơ chế truyền thông giữa những NMS với nhau, gọi là SNMP inform Khi một NMS gửi một SNMP inform cho một NMS khác, NMS nhận được sẽ gửi trả một ACK xác nhận sự kiện Việc này giống với cơ chế của “get” và “set”
SNMP report
Trang 28SNMP report: được định nghĩa trong bản nháp của SNMPv2 nhưng không được phát triển.Sau đó được đưa vào SNMPv3 và hy vọng dùng để truyền thông giữa các hệ thống SNMP với nhau
1.3 Một số hệ thống quản trị mạng với SNMP
1.3.1 Quản trị mạng với SNMP trong hệ điều hành Microsoft, Linux
Các mô hình quản lý mạng truyền thống chạy trên hệ điều hành của
Microsoft đa số sử dụng giao thức SNMP, trong đó chia làm 4 thành phần:
- Nút được quản lý (managed node)
- Trạm quản ký (management station)
- Thông tin quản lý (management information)
- Giao thức quản ký (management protocol)
Nút được quản lý có thể là máy tính, bộ định tuyến, bộ chuyển mạch, cầu nối, máy in hoặc các thiết bị mạng khác có khả năng liên lạc với bên ngoài mạng Mỗi nút chạy phần mềm quản lý gọi là SNMP agent Mỗi agent duy trì một cơ sở
dữ liệu cục bộ các biến mô tả trạng thái, lịch sử và tác vụ ảnh hưởng lên nó
Trang 29Trạm quản lý chứa một hoặc nhiều tiến trình liên lạc với agent trên mạng,
phát những câu lệnh và nhận kết quả Hình 1.7 trình bày mô hình quản lý mạng
Microsoft thông qua giao thức SNMP
Trong hình 1.7 , cơ sở dữ liệu MIB (Management Information Base) tập hợp tất cả các đối tượng trong một mạng, nó định ra những biến mà các phần tử mạng cần duy trì
Trạm quản lý (management station) tương tác với agent qua giao thức
SNMP Giao thức SNMP gồm 5 tác vụ và mỗi tác vụ được mã hóa trong một đơn
vị dữ liệu PDU (Protocol Data Unit) riêng biệt và được chuyển qua mạng bằng giao thức UDP (User Datagram Protocol) Đó là các tác vụ:
• Get-request: lấy giá trị của một hoặc nhiều biến
• Get-next-request: lấy giá trị của biến kế tiếp
• Set-request: đặt giá trị của một hoặc nhiều biến
• Get-response: trả về giá trị của một hoặc nhiều biến sau khi phát lệnh get-request hoặc get-next-request, hoặc set-request
• Trap: gửi cảnh báo cho máy trạm quản lý khi có biến cố xảy ra trên máy agent
Hình 1.8: Các tác vụ SNMP
Hình 1.8 minh họa 5 tác vụ liên lạc giữa máy trạm quản lý và máy agent,
trong đó SNMP sử dụng port 161 cho các lệnh get-request, get-next-request,
set-request và get-response, riêng lệnh trap thì sử dụng port 162
Để minh họa cách thức SNMP làm việc như thế nào, chúng ta xem ví dụ ở Hình
Trang 301.9
Giả sử có một ứng dụng quản lý SNMP chạy trên máy host 1 yêu cầu số phiên kích hoạt từ một máy Microsoft SNMP agent là host 2
1 Trình quản lý SNMP sử dụng tên máy (host name) để gửi yêu cầu qua cổng dịch
vụ UDP 161 Tên máy sẽ được phân giải bằng cách sử dụng các file HOST, DNS hoặc WINS v.v
2 Một message SNMP chứa lệnh get-request phát ra để phát hiện số phiên kích
hoạt với tên community name là public
3 Máy host 2 nhận message và kiểm tra tên nhóm làm việc chung (community
name) Nếu tên nhóm sai hoặc message bị hỏng thì yêu cầu từ phía máy host 1 bị hủy bỏ Nếu tên nhóm đúng và message hợp lệ thì kiểm tra địa chỉ IP để đảm bảo
nó được quyền truy nhập message từ máy trạm host 1
4 Sau đó, phiên kích hoạt được tạo (ví dụ là phiên số 7) và trả thông tin về cho
máy trạm quản lý SNMP
Hình 1.9: Cách thức SNMP làm việc
Nhược điểm
• Vì 4 trong 5 message SNMP là các nghi thức hồi-đáp đơn giản (máy trạm gửi
yêu cầu, máy agent phản hồi kết quả) nên SNMP sử dụng giao thức UDP Điều này nghĩa là một yêu cầu từ máy trạm có thể không đến được máy agent và hồi
Trang 31đáp từ máy agent có thể không trả về cho máy trạm Vì vậy máy trạm cần cài
đặt thời gian hết hạn (timeout) và cơ chế phát lại
• Quản lý mạng dựa trên SNMP có mức bảo mật thấp Vì dữ liệu không mã hóa
và không có thiết lập cụ thể để ngưng bất kỳ truy nhập mạng trái phép nào khi
tên community name và địa chỉ IP bị sử dụng để gửi yêu cầu giả mạo tới agent
• Quản lý mạng dựa trên SNMP có mức khả chuyển thấp giữa các kiến trúc khác
nhau Vì cấu trúc thông tin quản lý của SNMP chỉ hỗ trợ giới hạn các kiểu dữ
liệu
• Không thân thiện
1.3.2 Quản trị mạng với SNMP trên môi trường Java
Sun Microsystem đã hỗ trợ một phương thức quản lý mạng dựa trên môi
trường Java Kiến trúc Java sử dụng giao thức SNMP như giao thức quản lý mạng gồm hai thành phần: trình duyệt quản lý chạy trên hệ thống NMS (Network
Management System) và các máy Java thông minh chạy trên các phần tử mạng gọi
là các agent thông minh Dữ liệu liên lạc giữa trình duyệt và thực thể agent được định nghĩa như các lớp đối tượng trong cơ sở dữ liệu MIB, hoặc được định dạng theo cú pháp ASN.1 (Abstract Syntax Notation 1) Nó được mã hóa để truyền trên mạng dựa trên luật mã hóa cơ sở BER (Basic Encoding Rules) Hình 1.10 minh họa
cơ chế quản lý mạng hỗ trợ Java
Trang 32Hình 1.10: Quản lý mạng hỗ trợ Java
Ưu điểm
• Trình duyệt và các agent thực hiện liên lạc với nhau dựa trên những chương trình
hoặc lớp Java được mã hóa dưới dạng byte-code và thực thi thông qua các trình thông dịch Java cài sẵn Vì vậy cơ chế mã hóa theo luật BER của SNMP không cần
thiết do tự thân các lớp Java đã mã hóa dưới định dạng byte-code
• Các đơn vị dữ liệu PDU được thay bởi các lớp Java để chuyển lệnh và dữ liệu
• Giao thức UDP/IP được thay bởi giao thức TCP/IP
• Cơ sở dữ liệu theo chuẩn MIB II được hỗ trợ cho các agent
• Đặc trưng bảo mật vốn có trong mã Java byte-code cung cấp thêm một vỏ bọc an
ninh trong quản lý thông tin xuyên mạng
Trang 331.3.3 Cơ chế quản lý mạng tập trung theo mô hình DEN
Một cơ chế mới trong quản lý mạng là ứng dụng mô hình mạng thư mục DEN (Directory Enabled Network) kết hợp giao thức lưu trữ và truy nhập thư mục
LDAP (Lightweight Directory Access Protocol) để tập trung thông tin mạng cần quản lý trong một cơ sở dữ liệu duy nhất nhưng được khai thác sử dụng trên toàn mạng DEN là một đặc tả lưu trữ thông tin dưới hình thức các lớp trong một cơ sở
dữ liệu thư mục tập trung theo giao thức LDAP Giao thức này hiện đang được nhiều tổ chức, công ty phát triển và hỗ trợ trong các sản phẩm và dịch vụ của mình như trong các thiết bị đầu cuối, hệ điều hành v.v
Hiện tại, có nhiều cách xây dựng cơ chế quản lý mạng tập trung, trong đó nổi bật là cách sử dụng gói dịch vụ JNDI (Java Naming Directory Interface) được cung cấp sẵn của Sun Microsystem để cài đặt ứng dụng Thông qua ứng dụng được xây dựng trên nền tảng JNDI người quản trị có thể cập nhật thông tin khi có thêm một phần tử mới trên mạng hoặc tìm kiếm thông tin khi có nhu cầu giám sát, kiểm tra thông tin của một phần tử mạng bất kỳ Tất cả thông tin này đều được lưu trữ trong một CSDL thư mục tập trung duy nhất trên mạng và chỉ truy nhập thông qua giao thức LDAP
Tóm tắt các bước triển khai ứng dụng quản lý mạng dựa trên JNDI như sau:
• Sử dụng đặc tả DEN để mô tả thông tin các phần tử mạng dưới dạng các lớp đối
tượng (gồm cả thiết bị mạng, các lớp ứng dụng/dịch vụ mạng và các "hành vi ứng
xử" giữa các phần tử mạng)
• Thiết lập máy chủ CSDL thư mục LDAP để lưu các thông tin mạng DEN
• Sử dụng giao diện lập trình JNDI để cài đặt DEN
Mô hình quản lý mạng thông qua CSDL các lớp đối tượng DEN được thể hiện trong Hình 1.11
Trang 34Ứng dụng DEN cho phép máy khách DEN truy nhập dịch vụ tên và thư mục
để liên lạc và tìm các đối tượng và thuộc tính của nó được định nghĩa trong các lớp DEN JNDI là gói Java tùy chọn cung cấp ngữ cảnh và giao diện ngữ cảnh thư mục được sử dụng bởi máy khách DEN JNDI cung cấp truy nhập mức thấp tới giao thức LDAP dùng liên lạc giữa các ứng dụng client và server Các đối tượng DEN với những thuộc tính và liên kết có thể tích hợp trong một ngữ cảnh thư mục đơn gọi là lược đồ (schema) Thông tin này được lưu trong máy chủ phục vụ có cài đặt phần mềm quản trị LDAP (chẳng hạn OpenLDAP trên nền Linux hoặc Actice Directory trên nền MS Windows)
Trang 351.4 Kết luận chương
Hiện nay SNMP, Simple Network Management Protocol - giao thức quản trị mạng đơn giản, dễ dàng được triển khai áp dụng trên cả phần cứng và phần mềm Chỉ một thời gian ngắn sau khi ra đời, SNMP đã trở nên phổ biến bới tính đơn giản,
dễ cài đặt và áp dụng trên nhiều loại thiết bị khác nhau, nhiều hệ thống lớn, phân tán ở nhiều nơi Việc thị trường nhanh chóng chấp nhận và ứng dụng SNMP là minh chứng rõ ràng cho những ưu điểm của giao thức này Và trong chương tiếp theo, SNMP được ứng dụng trong hệ quản trị Cacti, một công cụ mã nguồn mở đang được nhiều người biết đến, một công cụ tốt cho người quản trị mạng
Trang 36Chương II : Kiến trúc Plugin trong hệ quản trị mạng
Cacti
Để duy trì hệ thống mạng ổn định, hoạt động hiệu quả, giảm thiểu các nguy
cơ, các lỗi hệ thống, người quản trị mạng cần có công cụ tốt để có thể liên tục nắm bắt được tình hình hoạt động của các thiết bị, hiệu suất làm việc, băng thông sử dụng và các thông số kỹ thuật khác Hiện nay có rất nhiều công cụ quản trị mạng có thể đáp ứng được yêu cầu ấy và Cacti là một trong những lựa chọn tối ưu bởi tính các tính năng vốn có: không mất chi phí, giao diện trực quan, khả năng tương tác với nhiều loại thiết bị, khả năng mở rộng và vẫn đang được phát triển ngày càng hoàn thiện hơn
2.1 Kiến trúc của hệ quản trị mạng Cacti
2.1.1 Giới thiệu về hệ quản trị mạng Cacti
Đôi nét về sự ra đời và phát triển của Cacti:
Vào tháng 6 năm 2001, một trong những người viết nên những dòng lệnh đầu tiên của Cacti, Ian Berry muốn tạo ra một công cụ vừa đơn giản và linh hoạt để các thể quản lý được nhiều thiết bị mạng khác nhau Trong quá trình làm việc ở một đơn vị cung cấp Internet tại Mỹ ông nhận ra rằngcông cụ RRDTool rất linh hoạt, có thể sử dụng để tạo ra đồ họa phức tạp và các báo cáo về cơ sở hạ tầng mạng,nhưng nó còn nhiều thiếu sót: cần giao diện để dễ dàng tương tác với người
sử dụng và cần một cơ sở dữ liệu để lưu trữ thêm những thông tin cần thiết Vì vậy, ông chú ý tới PHP / MySQL và tiến hành viết nên Cacti và công khai phiên bản đầu
Trang 37tiên vào ngày 21 Tháng 11 năm 2001 ( phiên bản 0.6).Ngay sau đó ứng dụng đã
được nhiều người biết đến trong cộng đồng mã nguồn mở
Năm 2004 trở đi, Cacti liên tục được phát triển ,Ian kết hợp với nhiều chuyên
gia để hoàn thiện dự án Đó là :Larry Adams, Tony Roman, J.P Pasnak, Jimmy
Conner, Reinhard Scheck và 2 thành viên có nick name là BSOD2600,
browneibraun
Hình 2.1 : Nhóm các tác giả Cacti hiện tại (Thứ tự từ trái qua phải : browneibraun, Reinhard Scheck, Tony Roman,
Larry Adams, J.P Pasnak, Ian Berry, BSOD2600, Jimmy Conner)
Hiện nay Cacti đã phát triển qua nhiều phiên bản và ngày càng hoàn thiện
hơn, thân thiện với người sử dụng, thêm các tính năng mở rộng, có thể cài đặt trên
Trang 38nhiều môi trường khác nhau và người sử dụng có thể tác động vào mã nguồn để
thay đổi, điều chỉnh cho phù hợp
2.1.2 Kiến trúc Cacti
Các thành phần của kiến trúc Cacti được mô tả trong hình 2.2:
Hình 2.2 : Sơ đồ khối kiến trúc Cacti
Người dùng (thường là các quản trị viên) làm việc với Cacti thông qua các
trình duyệt web (Browser) Với trình duyệt web, người quản trị khai báo các loại
thiết bị trong mạng, thiết lập các thông số về thiết bị cần giám sát, quản lý, khai báo
các phương thức nhận, truyền dữ liệu, đưa ra các yêu cầu về dạng sơ đồ hiển thị kết
quả
Những thông tin đăng nhập, thông số khai báo, thông tin thiết lập được
đưa vào từ người dùng sẽ được Cacti lưu lại trong cơ sở dữ liệu MySQL để duy trì,
hoạt động ở những lần sau đó
Trang 39Từ yêu cầu người dùng, Cacti sẽ xử lý các dữ liệu từ Poller Poller liên tục
lấy dữ liệu từ các thiết bị server, router, các ứng dụng (Các dữ liệu thu thập được
sẽ lưu trữ bằng các cơ sở dữ liệu RRD) Cuối cùng Cacti sẽ hiển thị kết quả dưới
dạng các sơ đồ :
Hình 2.3: Một số sơ đồ kết quả
Trên thực tế các thành phần cần cài đặt trong hệ quản trị Cacti là các gói
phần mềm: Webserver, PHP, RRDTool, MySQL, Net-snmp
Web server
Hầu hết Cacti được xây dựng trên giao diện web nên web server là thành
phần không thể thiếu Bất kỳ web server hỗ trợ PHP nào cũng có thể dùng để cài
đặt để Cacti giao tiếp nhưng Httpd của Apache hay IIS của Microsoft thì thường
được khuyên dùng hơn cả bởi tính ổn định và phổ biến