quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tin,quản trị phần mềm công nghệ thông tinquản trị phần mềm công nghệ thông tinquản trị phần mềm công nghệ thông tin
Trang 1Thế giới ngày nay đã có nhiều tiến bộ mạnh mẽ về công nghệ thông tin (CNTT) từ một tiềm năng thông tin đã trở thành một tài nguyên thực sự, trở thành sản phẩm hàng hoá trong xã hội tạo ra một sự thay đổi to lớn trong lực lượng sản xuất, cơ sở hạ tầng, cấu trúc kinh tế, tính chất lao động và cả cách thức quản lý trong các lĩnh vực của xã hội
Trong những năm gần đây, nền CNTT nước ta cũng đã có phát triển trên mọi lĩnh vực trong cuộc sống cũng như trong lĩnh vực quản lý xã hội khác Với trình độ phát triển như vậy việc ứng dụng CNTT vào các công việc hằng ngày được xem như là điều bắt buộc tại Tuy nhiên với việc phát triển một mạng lưới máy tính nhanh như vậy đã gây ra những khó khăn nhất định trong việc quản lý các hệ thống mạng này Công việc quản lý hệ thống mạng có những yêu cầu đặt ra là làm sao để có thể tận dụng tối đa các tài nguyên có trong hệ thống và tăng độ tin cậy đối với hệ thống Do
đó, vấn đề quản trị mạng hiện nay là không thể thiếu được Trong đó quản trị mạng theo giao thức SNMP là phương pháp được sử dụng rộng rãi nhất
Với những nhu cầu thiết thực như vậy, và để hiểu rõ hơn sự quan trọng của việc quản lý hệ thống mạng, trong khóa luận thực tập tốt nghiệp tôi đã tiến hành tìm hiểu
về giao thức SNMP và tổ chức xây dựng chương trình mô phỏng giám sát lưu lượng các cổng giao tiếp trong thiết bị mạng
Nội dung của đồ án bao gồm 3 phần chính:
Chương 1: Tổng quan về hệ thống quản lý mạng
Chương 2: Giao thức quản lý mạng đơn giản
Chương 3: Xây dựng chương trình mô phỏng giám sát lưu lượng các cổng giao tiếp trong thiết bị mạng
Cuối cùng, tôi xin chân thành cảm ơn tới thầy Th.s Phạm Văn Hiệp tạo mọi điều
kiện, giúp đỡ tôi có đủ khả năng để hoàn thành đồ án
Trang 2LỜI NÓI ĐẦU 1
THUẬT NGỮ VIẾT TẮT & KÝ HIỆU 4
DANH MỤC CÁC HÌNH 5
CHƯƠNG 1 TỔNG QUAN VỀ QUẢN LÝ HỆ THỐNG MẠNG 6
1 Giới thiệu chung về quản lý hệ thống mạng 6
2 Các yêu cầu quản lý hệ thống mạng 7
3 Kiến trúc quản lý mạng 8
4 Cơ chế quản lý mạng 9
CHƯƠNG 2 GIAO THỨC QUẢN LÝ MẠNG ĐƠN GIẢN 10
1 Sự ra đời và phát triển của SNMP 10
2 Một số vấn đề cơ bản về SNMP 11
3 SNMP Communities 16
4 Các phương thức của SNMP 17
4.1 GetRequest: 18
4.2 GetNextRequest: 19
4.3 GetBulkRequest: 21
4.4 SetRequest: 22
4.5 GetResponse: 23
4.6 Trap: 26
4.7 Notification: 28
4.8 InformRequest: 29
4.9 Report: 29
5 Cấu trúc quản lý thông tin (SMI) 29
5.1 Đặt tên OIDs 30
5.2 Định nghĩa OIDs 31
5.3 Object Access 33
MỤC LỤC
Trang 37 Cấu trúc bản tin SNMP 35
7.1 Cấu trúc của PDU GetRequest 38
7.2 Cấu trúc của PDU GetResponse 39
7.3 Cấu trúc của PDU: 40
7.4 Cấu trúc của PDU SetRequest 41
7.5 Cấu trúc của PDU Trap 42
7.6 Cấu trúc Bulk PDU 43
8 Tổng kết 44
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG GIÁM SÁT LƯU LƯỢNG CÁC CỔNG GIAO TIẾP TRONG THIẾT BỊ MẠNG 45
1 Chuẩn bị lập trình SNMP 45
2 Giới thiệu chương trình ADSL Router Traffic Monitor 47
3 Cách sử dụng chương trình ADSL Router Traffic Monitor 48
4 Mã nguồn SNMP Traffic Monitor 49
4.1 Ý tưởng thực hiện 49
4.2 Thiết kế giao diện 49
4.3 Các module chính trong chương trình 50
5 Đánh giá 55
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57
TÀI LIỆU THAM KHẢO 58
Trang 4THUẬT NGỮ VIẾT TẮT & KÝ HIỆU
ADSL : Asymmetric Digital Subscriber Line API : Application Program Interfaces
ASN.1 : Abstract Syntax Notation 1
CCITT : International Telegraph and Telephone Consultative Committee
CS-MARS : Cisco Security Monitoring, Analysis, and Response System
DSI : Dynarnic Skeleton Invocation
FTP : File Transfer Protocol
HTTP : HyperText Transfer Protocol
IETF : Intemet Engineering Task Force
IIOP : Intemet Inter-ORB protocol
IOR : Interoperable Object Reference
IOS : International Organization for Standardization
IOS : Internetworking Operating System
RMON : Remote Network Monitoring
SMTP : Simple Mail Transfer Protocol
SMI : Structure of Management Information
SNMP : Simple Network Management Protocol
Trang 5
DANH MỤC CÁC HÌNH
4 Hình 2.4 - Giám sát lưu lượng trên các port của switch, router 11
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ QUẢN LÝ HỆ THỐNG MẠNG
1 Giới thiệu chung về quản lý hệ thống mạng
Sự phát triển và hội tụ mạng trong những năm gần đây đã tác động mạnh mẽ tới tất cả các khía cạnh của mạng lưới, thậm chí cả về những nhận thức nền tảng và phương pháp tiếp cận Quản lý mạng cũng là một trong những lĩnh vực đang có những sự thay đổi và hoàn thiện mạnh mẽ trong cả nỗ lực tiêu chuẩn hoá của các tổ chức tiêu chuẩn lớn trên thế giới và yêu cầu từ phía người sử dụng dịch vụ Mặt khác các nhà khai thác mạng, nhà cung cấp thiết bị và người sử dụng thường áp dụng các phương pháp chiến lược khác nhau cho việc quản lý mạng và thiết bị của mình Mỗi nhà cung cấp thiết bị thường đưa
ra giải pháp quản lý mạng riêng cho sản phẩm của mình Trong bối cảnh hội tụ mạng hiện nay, số lượng thiết bị và dịch vụ rất đa dạng và phức tạp đã tạo ra các thách thức lớn trong vấn đề quản lý mạng
Nhiệm vụ của quản lý mạng rất rõ ràng về mặt nguyên tắc chung, nhưng các bài toán quản lý cụ thể lại có độ phức tạp rất lớn Điều này xuất phát từ tính đa dạng của các hệ thống thiết bị và các đặc tính quản lý của các loại thiết bị, và xa hơn nữa là chiến lược quản lý phải phù hợp với kiến trúc mạng và đáp ứng yêu cầu của người sử dụng Một loạt các thiết bị điển hình cần được quản lý gồm: Máy tính cá nhân, máy trạm, server, máy vi tính cỡ nhỏ, máy vi tính cỡ lớn, các thiết bị đầu cuối, thiết bị đo kiểm, máy điện thoại, tổng đài điện thoại nội bộ, các thiết bị truyền hình, máy quay, modem, bộ ghép kênh, bộ chuyển đổi giao thức, CSU/DSU, bộ ghép kênh thống kê, bộ ghép và giải gói, thiết bị tương thích ISDN, card NIC, các bộ mã hoá và giải mã tín hiệu, thiết bị nén dữ liệu, các gateway, các bộ xử lý front-end, các đường trung kế, DSC/DAC, các bộ lặp, bộ tái tạo tín hiệu, các thiết bị chuyển mạch, các bridge, router và switch, tất cả mới chỉ là một phần của danh sách các thiết bị sẽ phải được quản lý
Toàn cảnh của bức tranh quản lý phải bao gồm quản lý các tài nguyên mạng cũng như các tài nguyên dịch vụ, người sử dụng, các ứng dụng hệ thống, các cơ sở dữ liệu khác nhau trong các loại môi trường ứng dụng Về mặt kĩ thuật, tất cả thông tin trên được thu thập, trao đổi và được kết hợp với hoạt động quản lý mạng dưới dạng các số liệu quản lý bởi các kĩ thuật tương tự như các kĩ thuật sử dụng trong mạng truyền số liệu Tuy nhiên
sự khác nhau căn bản giữa truyền thông số liệu và trao đổi thông tin quản lý là việc trao
Trang 7cũng như các mô hình thông tin chuyên biệt, các kỹ năng chuyên biệt để có thể thiết kế, vận hành hệ thống quản lý cũng như biên dịch các thông tin quản lý về báo lỗi, hiện trạng
hệ thống, cấu hình và độ bảo mật
2 Các yêu cầu quản lý hệ thống mạng
Các cơ chế quản lý mạng được nhìn nhận từ hai góc độ, góc độ mạng chỉ ra hệ thống quản lý nằm tại các mức cao của mô hình OSI và từ phía người điều hành quản lý hệ thống mạng Mặc dù cá rất nhiều quan điểm khác nhau về mô hình quản lý hệ thống nhưng đều thống nhất bởi ba chức năng quản lý cơ bản gồm: giám sát, điều khiển và đưa
ra báo cáo tới người điều hành
+ Chức năng giám sát có nhiệm vụ thu thập liên tục các thông tin về trạng thái của các tài nguyên được quản lý sau đó chuyển các thông tin này dưới dạng các sự kiện và đưa ra các cảnh báo khi các tham số của tài nguyên mạng được quản lý vượt quá ngưỡng cho phép
+ Chức năng quản lý có nhiệm vụ thực hiện các yêu cầu của người quản lý hoặc các ứng dụng quản lý nhằm thay đổi trạng thái hay cấu hình của một tài nguyên được quản lý nào
đó
+ Chức năng đưa ra báo cáo có nhiệm vụ chuyển đổi và hiển thị các báo cáo dưới dạng
mà người quản lí có thể đọc, đánh giá hoặc tìm kiếm, tra cứu thông tin được báo cáo Dưới góc độ của người điều hành quản lý mạng, một số yêu cầu cơ bản thường được đặt
ra gồm:
+ Khả năng giám sát và điều khiển mạng cũng như các thành phần của hệ thống
thiết bị từ đầu cuối đến đầu cuối
+ Có thể truy nhập và cấu hình lại từ xa các tài nguyên được quản lý
+ Dễ dàng trong việc cài đặt, vận hành và bảo dưỡng hệ thống quản lý cũng như
các ứng dụng của nó
+ Bảo mật hoạt động quản lý và truy nhập của người sử dụng, bảo mật truyền thông các thông tin quản lý
Trang 8+ Có khả năng đưa ra các báo cáo đầy đủ và rõ nghĩa về các thông tin quản lý
+ Quản lý theo thời gian thực và hoạt động quản lý hàng ngày được thực hiện một cách
Quản lý mạng gồm một tập các chức năng để điều khiển, lập kế hoạch, liên kết,
triển khai và giám sát tài nguyên mạng Quản lý mạng có thể được nhìn nhận như một cấu trúc gồm nhiều lớp:
+ Quản lý kinh doanh: Quản lý khía cạnh kinh doanh của mạng ví dụ như: ngân
sách/ tài nguyên, kế hoạch và các thỏa thuận
+ Quản lý dịch vụ: Quản lý các dịch vụ cung cấp cho người sử dụng, ví dụ các dịch vụ cung cấp bao gồm việc quản lý băng thông truy nhập, lưu trữ dữ liệu và các ứng dụng cung cấp
+ Quản lý mạng: Quản lý toàn bộ thiết bị mạng trong mạng
+ Quản lý phần tử: Quản lý một tập hợp thiết bị mạng, ví dụ các bộ định tuyến truy nhập hoặc các hệ thống quản lý thuê bao
+ Quản lý phần tử mạng: Quản lý từng thiết bị đơn trong mạng, ví dụ bộ định tuyến, chuyển mạch, Hub
Quản lý mạng có thể chia thành hai chức năng cơ sở: truyền tải thông tin quản lý qua
hệ thống và quản lý các phần tử thông tin quản lý mạng Các chức năng này gồm các nhiệm vụ khác nhau như: Giám sát, cấu hình, sửa lỗi và lập kế hoạch được thực hiện bởi nhà quản trị hoặc nhân viên quản lý mạng
Trang 94 Cơ chế quản lý mạng
Cơ chế quản lý mạng bao gồm cả các giao thức quản lý mạng, các giao thức quản lý mạng cung cấp các cơ chế thu thập, thay đổi và truyền các dữ liệu quản lý mạng qua mạng
Các cơ chế giám sát nhằm để xác định các đặc tính của thiết bị mạng, tiến trình giám sát bao gồm thu thập được và lưu trữ các tập con của dữ liệu đó Dữ liệu thường được thu thập thông qua polling hoặc tiến trình giám sát gồm các giao thức quản lýmạng
Xử lý dữ liệu sau quá trình thu thập thông tin quản lý mạng là bước loại bỏ bớt các thông tin dữ liệu không cần thiết đối với từng nhiệm vụ quản lý Sự thể hiện các thông tin quản lý cho người quản lý cho phép người quản lý nắm bắt hiệu quả nhất các tính năng
và đặc tính mạng cần quản lý Một số kĩ thuật biểu diễn dữ liệu thường được sử dụng dưới dạng ký tự, đồ thị hoặc lưu đồ (tĩnh hoặc động)
Tại thời điểm xử lý thông tin dữ liệu, rất nhiều các thông tin chưa kịp xử lý được lưu trữ tại các vùng nhớ lưu trữ khác nhau Các cơ chế dự phòng và cập nhật lưu trữ luôn được xác định trước trong các cơ chế quản lý mạng nhằm tránh tối đa tổn thất dữ liệu Các phân tích thời gian thực luôn yêu cầu thời gian hỏi đáp tới các thiết bị quản lý trong khoảng thời gian ngắn Đây là điều kiện đánh đổi giữa số lượng đặc tính và thiết bị mạng với lượng tài nguyên (khả năng tính toán, số lượng thiết bị tính toán, bộ nhớ, lưu trữ) cần thiết để hỗ trợ các phân tích
Thực hiện nhiệm vụ cấu hình chính là cài đặt các tham số trong một thiết bị mạng để điều hành và điều khiển các phần tử Các cơ chế cấu hình bao gồm truy nhập trực tiếp tới các thiết bị, truy nhập từ xa và lấy các file cấu hình từ các thiết bị đó Dữ liệu cấu hình được thông qua các cách sau:
+ Các câu lệnh SET của SNMP
+ Truy nhập qua telnet và giao diện dòng lệnh
+ Truy nhập qua HTTP
+ Truy nhập qua kiến trúc CORBA
+ Sử dụng FTP/TFTP để lấy file cấu hình
Trang 10CHƯƠNG 2 GIAO THỨC QUẢN LÝ MẠNG ĐƠN GIẢN
1 Sự ra đời và phát triển của SNMP
Giao thức Simple Netwok Management Protocol (SNMP) ra đời vào năm 1988 để đáp ứng đòi hỏi cấp bách về một chuẩn chung cho quản trị mạng Internet SNMP cung cấp cho người dùng một tập các lệnh đơn giản nhất để có thể quản trị được các thiết bị từ xa Được phát triển từ giao thức Simple Gateway Monitoring Protocol (SGMP), SNMP đã được mở rộng cho phù hợp với các yêu cầu của một hệ thống quản trị mạng đa dụng Ban đầu, SNMP chỉ được xem như là một giải pháp tạm thời cho việc quản trị các mạng máy tính dựa trên nền TCP/IP trong khi chờ đợi chuyển hẳn sang một giao thức dựa trên kiến trúc mạng của OSI
Tuy nhiên, do sự phát triển mạnh mẽ của các ứng dụng trên nền TCP/IP, nhất là từ năm
1990, đã khiến cho TCP/IP trở thành một giao thức truy nhập mạng de factor của thế
giới Điều đó cũng khiến cho SNMP trở thành giao thức quản trị mạng được sử dụng chính và không còn bị xem là một giải pháp tạm thời nữa [Stallings 96]
Các hoạt động và quy cách dữ liệu của SNMP được chỉ định dựa trên các tiêu chuẩn được đưa ra trong các bộ RFC (Request For Comment) và hiện chúng vẫn đang được phát triển Trong số các RFC xây dựng nên chuẩn SNMP, có ba bộ tiêu chuẩn quan trọng được dùng làm cơ sở cho SNMP
Chúng là:
• RFC 1156 - Cấu trúc và định danh của các thông tin quản trị của internet trên nền TCP/IP (Structure and Identification of ManagementInformation for TCP/IP based internets)
• RFC 1157 - A Simple Network Management Protocol (SNMP)
• RFC 1213 – Cơ sở thông tin quản trị mạng cho Internet trên nền TCP/IP
Trang 11Phiên bản đầu tiên của SNMP (SNMPv1) ra đời năm 1988 được quy định trong RFC
1157 Ở phiên bản đầu tiên này, tiêu chí của SNMP đúng như tên gọi của nó, đó là sự đơn giản trong thực thi [Stallings 96] Đó là lý do chính khiến cho tính bảo mật trong SNMPv1 rất lỏng lẻo, phụ thuộc vào một xâu chia sẻ tương tự như mật khẩu ở dạng thuần văn bản gọi là “commutitiy string” Điều này cho phép tất cả các ứng dụng SNMP nếu biết xâu này có thể truy cập thông tin quản trị trên thiết bị Mặc dù chuẩn SNMPv1
đã thuộc về quá khứ (historical standard) nhưng hiện nay nó vẫn là phiên bản mà rất nhiều các nhà sản xuất hỗ trợ Phiên bản tiếp theo của SNMP là SNMPv2 hay SNMPv2c Được quy định trong RFC 3416, RFC 3417 và RFC 3418, SNMPv2 thêm các khuôn dạng
dữ liệu, các MIB và PDU mới, làm tăng khả năng cho giao thức
Tuy nhiên hai phiên bản đầu tiên này của SNMP vẫn thiếu các tính năng bảo mật, xác thực cần thiết nên vẫn có thể dễ dàng bị khai thác [Stallings 96] SNMPv3 là phiên bản cuối cùng, chủ yếu tăng cường bảo mật trong quản trị mạng [Stallings 98] Phiên bản này
hỗ trợ giao thức xác thực mạnh và kênh giao tiếp được mã hóa giữa các thực thể được quản trị Năm 2002, phiên bản này được chuyển từ bản hảo sang thành chuẩn, bao gồm các RFC 3410, RFC 3411, RFC 3412, RFC 3413, RFC 3414, RFC 3415, RFC 3416, RFC
3417, RFC 3418, và RFC 2576 Vì NMPv3 là chuẩn mới được công bố, do vậy chỉ có một số hãng lớn như Cisco mới hỗ trợ SNMPv3 Tuy nhiên với nhu cầu ngày càng cao của bảo mật trong quản trị mạng, sẽ có thêm ngày càng nhiều các hãng hỗ trợ SNMPv3 trong các sản phẩm của mình
2 Một số vấn đề cơ bản về SNMP
Bản chất của SNMP là tập hợp một số lệnh đơn giản và các thông tin mà lệnh cần thu thập để giúp người quản trị thu thập dữ liệu và thay đổi cấu hình của các thiết bị tương thích với SNMP
Ví dụ, SNMP có thể dùng để kiểm tra tốc độ hay ra lệnh shutdown một cổng Ethernet, theo dõi nhiệt độ của switch và cảnh báo khi nó lên quá cao.…SNMP có thể quản trị rất nhiều thiết bị, từ phần cứng đến phần mềm như Web server hay cơ sở dữ liệu, từ thiết bị đắt tiền như router đến một số hub rẻ tiền, hay các hệ thống Unix, Window, các máy in, nguồn điện… miễn là các thiết bị đó hỗ trợ SNMP Các thiết bị được gọi là hỗ trợ hay
Trang 12tương thích SNMP tức là nó được cài đặt một phần mềm để có thể thu thập một số thông tin và trả lời các yêu cầu của người quản trị
Trong SNMP có 3 vấ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 Management và Agent
Management 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 Management 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 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 MNS dựa trên 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
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, 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ị mạng hoạt động tới lớp IP được cài đặt SNMP 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 trị hệ thống 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ữ bằng cách lưu trữ các hoạt động khác nhau của thiết
bị
Mỗi quan hệ giữa NMS và Agent được thể hiện như sơ đồ sau:
Không có sự hạn chế nào khi NMS gửi một câu truy vấn đồng thời agent gửi một cảnh báo
Quan điểm quản lý Manager - Agent cho rằng chức năng quan trọng nhất trong quản
lý là quan hệ giữa thực thể quản lý và thực thể bị quản lý Điều này dựa trên mô hình phản hồi Manager sẽ yêu cầu từ Agent các thông tin quản lý đặc trưng và thực thể bị
Hình 2-1: Mối quan hệ NMS và Agent
Trang 13quản lý , thông qua Agent, sẽ được quản lý lại bằng thông tin chứa đầy đủ các yêu cầu Nếu thông tin yêu cầu phản hồi được sử dụng liên tục để tìm kiếm mỗi Agent và các đối tượng bị quản lý tương ứng thì cơ chế này gọi là polling và lần đầu tiên được ứng dụng
để quản lý trong môi trường internet dựa trên giao thức quản lý mạng đơn giản SNMP
MIB: Không có sự hạn chế nào khi NMS gửi một truy vấn đồng thời Agent gửi 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 loại MIB gọi là MIB-II được định nghĩa trong RFC 1213 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
Hình 2.2 - Mô hình quản lý Manager - Agent
- Đọc và thay đổi cấu hình
- Đọc và thay đổi trạng thái
- Đọc hiệu suất hoặc thông tin
về thống kê lỗi
Quản lý mạng (Network Management station)
PHẦN MỀM QUẢN LÝ
Trang 14MIB-II định nghĩa các tham số như tình trạng interface (tốc độ của interface, MTU, các octet gửi, các octet nhận,…) hoặc các tham số gắng 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 TCI/IP
Để hiểu rõ hơn về giao thức quản lý mạng đơn giản, chúng ta sẽ đề cập đến 3 bài toán phổ biến nhất trong các ứng dụng của SNMP, điều này sẽ cho các bạn thấy ứng dụng SNMP giải bài toán đó trông như thế nào
Bài toán thứ nhất : Giám sát tài nguyên máy chủ
+ Giả sử bạn có hàng ngàn máy chủ chạy các hệ điều hành (HĐH) khác nhau Làm thế nào có thể giám sát tài nguyên của tất cả máy chủ hàng ngày, hàng giờ để kịp thời phát hiện các máy chủ sắp bị quá tải ? Giám sát tài nguyên máy chủ nghĩa là theo dõi tỷ
lệ chiếm dụng CPU, dung lượng còn lại của ổ cứng, tỷ lệ sử dụng bộ nhớ RAM, … + Bạn không thể kết nối vào từng máy để xem vì số lượng máy nhiều và vì các HĐH khác nhau có cách thức kiểm tra khác nhau
+ Để giải quyết vấn đề này bạn có thể dùng một ứng dụng SNMP giám sát được máy chủ, nó sẽ lấy được thông tin từ nhiều HĐH khác nhau Ứng dụng này có thể trông giống như hình dưới đây :
Hình 2.3 - Giám sát tài nguyên máy chủ
Trang 15Bài toán thứ hai : Giám sát lưu lượng trên các port của switch, router
+ Bạn có hàng ngàn thiết bị mạng (network devices) của nhiều hãng khác nhau, mỗi thiết bị có nhiều port Làm thế nào để giám sát lưu lượng đang truyền qua tất cả các port của các thiết bị suốt 24/24, kịp thời phát hiện các port sắp quá tải ?
+ Bạn cũng không thể kết nối vào từng thiết bị để gõ lệnh lấy thông tin vì thiết bị của các hãng khác nhau có lệnh khác nhau
+ Để giải quyết vấn đề này bạn có thể dùng một ứng dụng SNMP giám sát lưu lượng,
nó sẽ lấy được thông tin lưu lượng đang truyền qua các thiết bị của nhiều hãng khác nhau Ứng dụng này có thể trông giống như hình dưới đây :
Bài toán thứ ba : Hệ thống tự động cảnh báo sự cố tức thời
+ Bạn có hàng ngàn thiết bị mạng và chúng có thể gặp nhiều vấn đề trong quá trình hoạt động như : một port nào đó bị mất tín hiệu (port down), có ai đó đã cố kết nối (login) vào thiết bị nhưng nhập sai username và password, thiết bị vừa mới bị khởi động lại (restart), … Làm thế nào để người quản trị biết được sự kiện khi nó vừa mới xảy ra ? + Vấn đề này khác với hai vấn đề ở trên Ở trên là làm thế nào cập nhật liên tục một
số thông tin nào đó (biết trước sẽ lấy cái gì), còn ở đây là làm thế nào biết được cái gì xảy
ra (chưa biết cái gì sẽ đến)
Hình 2.4 - Giám sát lưu lượng trên các port của switch, router
Trang 16+ Để giải quyết bài toán này bạn có thể dùng ứng dụng thu thập sự kiện (event) và cảnh báo (warning) bằng SNMP, nó sẽ nhận cảnh báo từ tất cả các thiết bị và hiện nó lên màn hình hoặc gửi email cho người quản trị Ứng dụng này có thể trông giống như hình dưới đây :
3 SNMP Communities
SNMPv1 và SNMPv2 sử dụng khái niệm community để thiết lập sự tin tưởng giữa manager và agent Một agent được cấu hình với 3 mức: read-only, read-write, và trap Tên community có thể được xem như mật khẩu Có 3 chuỗi community kiểm soát các loại hoạt động khác nhau Giống như tên của chúng, ta có thể thấy, chuỗi read-only chỉ cho phép ta đọc giá trị của dữ liệu và không cho phép thay đổi các giá trị đó Ví dụ, cho phép đọc số gói dữ liệu truyền thông trên một cổng của router nhưng không cho phép ta xóa hay thay đổi giá trị đó Chuỗi read-write cho phép đọc và thay đổi giá trị dữ liệu Cuối cùng, chuỗi trap cho phép nhận traps từ agent
Hầu hết các nhà sản xuất bán thiết bị của họ trong đó chuỗi community được
gán mặc định, thông thường public nghĩa là read-only và private là read-write Chúng ta nên thay đổi giá trị mặc định này trước khi sử dụng thiết bị để đảm bảo
tính bảo mật cho truyền thông SNMP giữa các thiết bị Khi cấu hình một SNMP
agent, ta sẽ muốn cấu hình địa chỉ trap, là địa chỉ mà thiết bị sẽ gửi trap đến Thêm
vào đó, do chuỗi community được gửi dạng bản rõ, ta nên cấu hình agent gửi một
chứng thực SNMP trap, khi có ai đó cố gắng truy vấn thông tin thiết bị sẽ không
biết được giá trị của chuỗi community nên không thể truy vấn thành công Điều này giúp tăng tính bảo mật hệ thống
Hình 2.5 - Hệ thống cảnh báo sự cố tức thời
Trang 17Do bản chất của chuỗi community giống như mật khẩu vì thế ta nên áp dụng
các quy tắc đặt mật khẩu an toàn: từ không có trong từ điển, độ dài lớn, kết hợp kí
tự hoa, thường, đặc biệt… Như đã đề cập ở trên, chuỗi community được gửi dưới
dạng không mã hóa nên rất dễ để người khác biết được, do đó giao thức SNMPv3
đã có nhiều cải tiến nhằm tăng tính bảo mật cho hệ thống trong quá trình truyền
thông giữa các thiết bị SNMP
Có nhiều cách để giảm nguy cơ bị tấn công Sử dụng tường lửa hay bô lọc gói tin có thể giảm thiểu cơ hội người khác gây hại đến hệ thống bằng cách tấn công
thông qua SNMP Ví dụ, ta có thể cho phép truyền thông trên cổng UDP 161 (truy
vấn SNMP) trong mạng chỉ khi nó đến từ địa chỉ IP của máy NMS, tương tự với cổng UDP 162 cho gói tin trap Tường lửa không thể ngăn chặn 100% nguy cơ bị
tấn công, nó chỉ góp phần giảm thiểu nguy cơ bị tấn công cho hệ thống
Điều quan trọng cần biết là một khi có người biết được chuỗi community read-write trên các thiết bị, người này có thể chiếm quyền điều khiển các thiết bị (như thay đổi cấu hình của router hay switch…) Có một cách để đảm bảo chuỗi community là sử dụng Virtual Private Network (VPN) để đảm bảo dữ liệu được mã
hóa khi truyền Một các khác là thay đổi chuỗi community thường xuyên (cách này không khả thi trong môi trường mạng lớn) Một giải pháp đơn giản là viết một Perl script để thay đổi chuỗi community trên thiết bị
4 Các phương thức 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 phương thức của SNMP sau:
Trang 184.1 GetRequest:
GET được gửi từ NMS yêu cầu tới agent Agent nhận yêu cầu và xử lý với khả năng tốt
nhất có thể Nếu một thiết bị nào đó đang bận tải nặng, như router, nó không có khả năng trả lời yêu cầu nên nó sẽ hủy lời yêu cầu này Nếu agent tập hợp đủ 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”:
Để agent hiểu được NMS cần tìm thông tin gì, nó dựa vào một mục trong ”get” là " variable binding” hay varbind Varbind là một danh sách các đối tượng của MIB mà NMS muốn lấy từ agent Agent hiểu câu hỏi theo dạng: OID=value để tìm thông tin trả lời Câu hỏi truy vấn cho trường hợp trong hình 2-7:
$ snmpget cisco.ora.com public 1.3.6.1.2.1.1.6.0
Hình 2-6: Mô hình phương thức của SNMP
Hình 2-7: Mô hình phương thức của lệnh GetRequest
Trang 19system.sysLocation.0 = ""
Đây là một câu lệnh ”snmpget” trên Unix ”cisco.ora.com” là tên của thiết bị, ”public”
là chuỗi chỉ đây là yêu cầu chỉ đọc (read-only), ”.1.3.6.1.2.1.1.6.0” là OID
”.1.3.6.1.2.1.1” chỉ tới nhóm ”system” trong MIB ”.6” chỉ tới một trường trong ”system”
là ”sysLocation” Trong câu lệnh này ta muốn hỏi Cisco router rằng việc định vị hệ thống
đã được cài đặt chưa Câu trả lời system.sysLocation.0 = "" tức là chưa cài đặt Câu trả lời của ”snmpget” theo dạng của varbind: OID=value Còn phần cuối trong OID ở
”snmpget”; ”.0” nằm trong quy ước của MIB Khi hỏi một đối tượng trong MIB ta cần chỉ rõ 2 trường ”x.y’, ở đây là ”.6.0” ”x” là OID thực tế của đối tượng Còn ”.y” được dùng trong các đối tượng có hướng như một bảng để hiểu hàng nào của bảng, với trường hợp đối tượng vô hướng như trường hợp này ”y” = ”0” Các hàng trong bảng được đánh
số từ số 1 trở đi
Câu lệnh ”get” hữu ích trong việc truy vấn một đối tượng riêng lẻ trong MIB Khi muốn biết thông tin về nhiều đối tượng thì ”get” tốn khá nhiều thời gian Câu lệnh get-next giải quyết được vấn đề này
4.2 GetNextRequest:
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 Ví dụ ta dùng lệnh
”snmpwalk”.”snmpwalk’ tương tự như ”snmpget’ nhưng không chỉ tới một đối tượng mà chỉ tới một nhánh nào đó:
$snmpwalk cisco.ora.com public system system.sysDescr.0 = "Cisco Internetwork Operating System Software IOS (tm) 2500 Software (C2500-I-L), Version 11.2(5), RELEASE SOFTWARE (fc1) Copyright (c) 1986-1997 by cisco Systems, Inc Compiled Mon 31-Mar-97 19:53 by ckralik"
Trang 20system.sysObjectID.0 = OID: enterprises.9.1.19 system.sysUpTime.0 = Timeticks: (27210723) 3 days, 3:35:07.23 system.sysContact.0 = ""
system.sysName.0 = "cisco.ora.com"
system.sysLocation.0 = ""
system.sysServices.0 = 6
Ở đây ta muốn lấy thông tin của nhóm ”system”, agent sẽ gửi trả toàn bộ thông tin của
”system” theo yêu cầu Quá trình tìm nhóm ”system” trong MIB thực hiện theo cây từ gốc, đến một nút nếu có nhiều nhánh thì chọn nhánh tìm theo chỉ số của nhánh từ nhỏ đến lớn:
Hình 2-8: Sơ đồ đường đi OID
Trang 214.3 GetBulkRequest:
"Get-bulk" được định nghĩa trong SNMPv2 Nó cho phép lấy thông tin quản lý từ nhiều
phần trong bảng Dùng ”get” có thể làm được điều này Tuy nhiên, kích thước của câu hỏi có thể bị giới hạn bởi agent Khi đó nếu nó không thể trả lời toàn bộ yêu cầu, nó gửi trả một thông điệp lỗi mà không có dữ liệu Với trường hợp dùng câu lệnh ”get-bulk”, agent sẽ gửi càng nhiều trả lời nếu nó có thể Do đó, việc trả lời một phần của yêu cầu là
có thể xảy ra Hai trường cần khai báo trong ”get-bulk” là: ”nonrepeaters” và repetitions” ”nonrepeaters” báo cho agent biết N đối tượng đầu tiên có thể trả lời lại như một câu lệnh ”get” đơn ”max-repeaters” báo cho agent biết cần cố gắng tăng lên tối đa
”max-M yêu cầu ”get-next” cho các đối tượng còn lại:
$ snmpbulkget -v2c -B 1 3 linux.ora.com public sysDescr ifInOctets ifOutOctets
system.sysDescr.0 = "Linux linux 2.2.5-15 #3 Thu May 27 19:33:18 EDT
1999 i686"
interfaces.ifTable.ifEntry.ifInOctets.1 = 70840 interfaces.ifTable.ifEntry.ifOutOctets.1 = 70840 interfaces.ifTable.ifEntry.ifInOctets.2 = 143548020 interfaces.ifTable.ifEntry.ifOutOctets.2 = 111725152 interfaces.ifTable.ifEntry.ifInOctets.3 = 0
interfaces.ifTable.ifEntry.ifOutOctets.3 = 0
Hình 2-9: Mô hình lấy thông tin của get-bulk
Trang 22Ở đây, ta hỏi về 3 varbind: sysDescr, ifInOctets, và ifOutOctets Tổng số varbind được tính theo công thức :
N + (M * R)
N: nonrepeater, tức số các đối tượng vô hướng
M: max-repeatition
R: số các đối tượng có hướng trong yêu cầu chỉ có sysDescr là vô hướng là N = 1
M có thể đặt cho là 3 , tức là 3 trường cho mỗi ifInOctets và ifOutOctets Có 2 đối tượng có hướng là ifInOctets và ifOutOctets là R = 2
Trang 23$ snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = ""
$ snmpset cisco.ora.com private system.sysLocation.0 s "Atlanta, GA"
system.sysLocation.0 = "Atlanta, GA"
$ snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = "Atlanta, GA"
Câu lệnh đầu là dùng ”get” để lấy giá trị hiện tại của ”system.sysLocation” Trong câu lệnh ”snmpset” các trường ”cisco.ora.com” và ”system.sysLocation.0” có ý nghĩa giống với ”get” ”private” để chỉ đối tượng ”read-write’, và đặt giá trị mới bằng: ”s "Atlanta, GA"” ”s” tức là đặt giá trị của ”system.sysLocation.0” thành string, và giá trị mới là
"Atlanta, GA" Varbind này được định nghĩa trong RFC 1213 là kiểu string tối đa 255 ký tự:
Error Response của get, get-next, get-bulk, set
Có nhiều loại lỗi báo lại từ agent:
- Với phiên bản SNMPv1 bao gồm các thông báo lỗi:
Trang 24Error Meseger SNMPv1 Mô tả
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
- Còn phiên bản SNMPv2 có các lỗi theo bảng dưới:
Error Meseger SNMPv2 Mô tả
Hình 2-11: Bảng các thông báo lỗi trong SNMPv1
Trang 25wrongValue(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ê
noCreation(11) Lỗi khi cố đặt một giá trị cho một biến không tồn
tại hoặc tạo một biến không có trong MIB inconsistentValue 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
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
thể phục hồi lại trạng thái trước khi lệnh “set” bắt đầu thất bại
Trang 26authorizationError(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
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
Hình 2-12: Bảng các thông báo lỗi trong
SNMPv2
Hình 2-13: Các thông báo lỗi trong SNMPv2
Trang 27agent mà là các sự kiện mang tính biến cố Ví dụ: Khi có một port down, khi có mộ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:
Số và tên kiểu Trap Định Nghĩa
coldStart (0)
Thông báo agent vừa khởi động lại Tất cả các biến quản lý sẽ được reset, các biến kiểu
“Counters” và “Gauges” được đặt về 0
“coldStart” dùng để xác định một thiết bị mới gia nhập vào mạng Khi một thiết bị khởi động xong,
nó gửi một “trap” tới NMS Nếu địa chỉ NMS là đúng, NMS có thể nhận được và xác định xem có quản lý thiết bị đó hay không
warmStart (1) Thông báo agent vừa khởi tạo lại, không có biến nào bị reset linkDown (2) Gửi đi khi một interface trên thiết bị chuyển sang
trạng thái “down”
linkUp (3) Gửi đi khi một interface trở lại trạng thái “up”
Trang 28authenticationFailure (4) Cảnh báo khi một người nào đó cố truy cập vào agent đó mà không được xác thực
egpNeighborLoss (5) Cảnh báo một EGP lân cận bị “down”
enterpriseSpecific (6)
Đây là một “trap” riêng, chỉ được biết bởi agent
và NMS tự định nghĩa riêng chúng NMS sử dụng phương pháp giải mã đặc biệt để hiểu được thông điệp này
”trap” được định nghĩa trong MIB là ”rdbmsOutOfSpace”:
::= 2
Giá trị của ENTERPRISE là rdbmsTraps, thông tin mô tả của Trap có trong
DESCRIPTION và giá trị của Trap là 2
4.7 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:
Trang 29transitioned into some other state (but not into the notPresent state) This other state is indicated by the included value of ifOperStatus."
::= { snmpTraps 3 }
OID của “trap” này là 1.3.6.1.6.3.1.1.5.3, tức
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTraps.linkDown
4.8 InformRequest:
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”
Chú ý: SNMP inform có thể dùng để gửi SNMPv2 Trap đến 1 NMS Trong trường hợp này agent sẽ được thông báo khi NMS nhận được Trap
4.9 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
Tóm lại, Cốt lõi của giao thức quản lý mạng (SNMP) là một tập hợp các hoạt động, chức năng, giúp nhà quản trị mạng có thể quản lý, theo dõi, thay đổi trạng thái của
các thiết bị trên hệ thống
5 Cấu trúc quản lý thông tin (SMI)
Structure of Management Information (SMI) cung cấp cách định nghĩa các đối tượng được quản lý và hành vi của chúng Một agent sở hữu một danh sách các đối tượng mà nó theo dõi (các đối tượng đó có thể là trạng thái hoạt của một cổng trên router hay dung lượng ổ cứng máy tính…) Danh sách này định nghĩa chung các thông tin mà NMS có thể dùng để xác định tình trạng của thiết bị mà agent tồn tại