Giao thức quản lý mạng SNMP và phát triển ứng dụng

7 1.9K 21
Giao thức quản lý mạng SNMP và phát triển ứng dụng

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giao thức quản lý mạng SNMP và phát triển ứng dụng

Lĩnh vực Công nghệ thông tin GIAO THứC QUảN MạNG SNMPPHáT TRIểN ứNG DụNG KS.Đinh Kim Cờng, KS. Nguyễn Hải Hà Trung tâm Công nghê thông tin 1. Mở đầu ới sự phát triển mạnh mẽ của máy trạm, máy chủ mạng LAN đã làm thay đổi mạng máy tính liên tục. Mặt khác do sự mua bán các hệ thống thiết bị, phần mềm của các nhà sản xuất khác nhau. Do vậy các nhà sản xuất thiết bị hoặc phần mềm phải cung cấp phần mềm giao tiếp với thiết bị để có thể cấu hình quản chúng. nh vậy, mỗi một nhà sản xuất ít nhất là phải có một phần mềm quản riêng với nguyên tắc hoạt động riêng cho sản phẩm của mình. Điều này gây ra nhiều bất tiện. Do vậy, ngời ta xây dựng các giao thức quản thiết bị chung cho tất cả các nhà sản xuất. Trong các giao thức đó, thì giao thức đợc biết đến nhiều nhất là giao thức SNMP (Simple Network Management Protocol). Các thiết bị dù đơn giản hay phức tạp đều chứa phần mềm SNMP dùng để tham gia vào việc quản mạng. V Hiện nay, các đơn vị nghiên cứu phát triển trong lĩnh vực viễn thông trong nớc nói chung CDiT nói riêng đã có nhiều sản phẩm đợc sử dụng trên mạng lới. Tuy nhiên việc quản các sản phẩm này vẫn cha đợc thực hiện theo tiêu chuẩn quốc tế nh các sản phẩm nhập hay chuyển giao từ nớc ngoài. Trên thế giới việc nghiên cứu ứng dụng thủ tục SNMP trong việc quản các hệ thống thiết bị viễn thông đã làm từ lâu, việc ứng dụng SNMP vào quản là mặc định. Đứng trớc cơ hội hội nhập quốc tế, thì việc áp dụng một giao thức tiêu chuẩn quốc tế vào quản sản phẩm là cần thiết vì nó thống nhất đợc giao diện quản trên mạng, tạo điều kiện thuận lợi cho việc cung cấp giao diện quản chuẩn khi phát triển các hệ thống thiết bị viễn thông trong nớc. Trong phạm vi của bài báo, tác giả trình bày về các phần cơ bản của giao thức SNMP một số kỹ thuật phát triển ứng dụng. 2. Giao thức SNMP 2.1. Giới thiệu về giao thức SNMP Các thiết bị mạng chứa thông tin về bản thân chúng, các thông tin này có thể là các tham số lựa chọn cấu hình thiết bị, trạng thái hoạt động hiện tại của thiết bị, các thông tin về thống kê nh lu lợng vào ra của các gói thông tin hoặc các thông tin về lỗi của thiết bị. Để có thể quản đợc hệ thống hoặc mạng thì cần phải có những thiết bị có khả năng biết đ- ợc các thông tin của các thiết bị khác tồn tại xung quanh nó. Nh vậy, thực chất của việc quản các thiết bị chính là việc quản các thông tin mà các thiết bị bị quản lu trữ. Tất cả các thông tin này là trung tâm của giao thức SNMP. Ta cần quản những thông tin gì? Các chuyên gia đã thiết kế ra một tập hợp các thông tin chung mà tất cả các thiết bị thuộc các hãng khác nhau đều có, chúng đợc tiêu chuẩn hoá các nhà sản xuất khác nhau đều cung cấp các thông tin này để quản thiết bị của họ. Còn nếu nhà sản xuất muốn quản những đặc điểm đặc thù của sản phẩm của họ thì các chuyên gia đã giành cho các nhà sản xuất một nhánh thông tin riêng, trong đó mỗi nhà sản xuất lại có một nhánh riêng để phát triển. Để quản thông tin thì mỗi thông tin phải có một tên riêng biệt duy nhất. Cách đặt tên đó nh thế nào? Khi đã có tên cho mỗi thông tin, thì làm thế nào để có thể lấy thông tin đó hoặc thay đổi thông tin đó? Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 SNMP là một giao thức chỉ ra cách đặt tên biến cách lấy thông tin, cách thay đổi thông tin của thiết bị bị quản lý. Hỡnh 1. Trao đổi bản tin SNMP giữa trạm quản thiết bị bị quản lý. 2.2 Mô hình quản Giao thức SNMP ban đầu đợc phát triển để quản mạng TCP/IP, do vậy các thông tin thờng liên quan đến mạng TCP/IP nh các thông tin liên quan đến chuyển đổi địa chỉ IP TCP/IP ra địa chỉ vật lý, lu lợng IP datagram đến đi, số các kết nối TCP, .Sau đây là mô hình quản mạng TCP/IP. Trạm quản mạng (Network management station) ứng dụng ứng dụng Phần mềm quản agent - Đọc thay đổi cấu hình - Đọc thay đổi trạng thái - Đọc hiệu suất hoặc thông tin về thống kê lỗi - Đáp ứng các yêu cầu - Báo các vấn đề nghiêm trọng hoặc các sự kiện quan trọng xảy ra - Dữ liệu cấu hình - Các tham số trạng thái - Các thông số thống kê Hỡnh 2. Mô hình quản internet. Từ mô hình quản lý, ta thấy một hệ thống quản bao gồm ít nhất hai đối tợng, chủ thể quản (trạm quản lý) đối tợng quản (agent). Phần mềm agent đợc cài đặt tại mỗi thiết bị. Agent nhận các bản tin yêu cầu từ trạm quản lý. Các bản tin yêu cầu này là các bản tin yêu cầu lấy thông tin hoặc yêu cầu thay đổi thông tin của các thiết bị. Các agent thực hiện các yêu cầu đó gửi trả lại các đáp ứng chứa các thông tin thích hợp mà trạm quản yêu cầu. Tuy nhiên agent không phải luôn luôn phải đợi các yêu cầu gửi đến mới gửi thông tin về trạm quản lý, mà khi xảy ra một vấn đề nghiêm trọng nào đó xảy ra trong thiết bị thì agent gửi một bản tin (đợc gọi là bản tin trap) tới một hoặc nhiều trạm quản lý. Trạm quản đợc cài đặt một phần mềm quản lý, gửi các yêu cầu tới các agent, thu các bản tin đáp ứng bản tin trap do agent gửi đến. Học viện Công nghệ BCVT Lĩnh vực Công nghệ thông tin 2.3 Giao thức SNMP Để hiểu đợc giao thức SNMP, ta cần tìm hiểu các phần sau đây của giao thức. - Kho thông tin quản MIBs. - Cấu trúc nhận dạng thông tin quản SMI. - Các bản tin hoạt động của giao thức SNMP. - Ngoài ra phải tìm hiểu về ngôn ngữ ASN.1, luật mã hoá cơ bản BER (Base Encoding Rules) (phần này tham khảo trong: "ASN.1 Complete" của Professor John Larmouth , có thể download tại ). a. Cấu trúc nhận dạng thông tin quản SMI (Structure of Management Information). Nh ta đã biết mỗi: - Mối thiết bị chứa một cơ sở dữ liệu thông tin MIB (Management Information Base). - SNMP định nghĩa một tập các bản tin đơn giản cho phép ta đọc/ghi cơ sở dữ liệu, nhận các bản tin trap từ các agent. Tuy nhiên: - Định nghĩa miêu tả các thông tin nh thế nào? - Các thông tin khác nhau liên quan đến nhau nh thế nào? - Làm thế nào để nhận dạng một biến mà ta muốn đọc/ghi? - Các thông tin đợc biểu diễn nh thế nào? Các câu hỏi này đợc trả lời trong SMI. - Các thông tin trong MIB đợc định nghĩa miêu tả bằng cách sử dụng một ngôn ngữ định dạng kiểu dữ liệu ASN.1. Giống nh các ngôn ngữ khác nh C, Pascal ., ASN.1 cho phép định nghĩa các cấu trúc dữ liệu cần thiết. - Trong thông tin trong MIB, đợc tổ chức thành các đối tợng. Mỗi đối tợng gồm: tên của đối tợng, các thuộc tính các thao tác mà có thể đợc thực hiện trên đối tợng đó (đọc/ghi). - Các thuộc tính của đối tợng gồm có: kiểu dữ liệu, miêu tả thông tin đó là thông tin gì, trạng thái thông tin (đã qua thời gian thử nghiệm hay cha?). - Kiểu dữ liệu đợc sử dụng trong SNMP là các kiểu dữ liệu cơ bản của ngôn ngữ ASN.1 (Abstract Syntax Notaion 1) nh: OBJECT IDENTIFIER, INTEGER, OCTET STRING, NULL. Tuy nhiên SMI lại sử dụng các kiểu dữ liệu cơ bản này để tạo nên các kiểu dữ liệu mới phù hợp với SNMP. - Thông tin quản mạng đợc hợp nhất thành một cây thông tin đợc quản bởi ISO CCITT. Cấu trúc cây giúp ta thấy đợc mối quan hệ giữa các tham số với nhau. Điều này cũng dễ dàng khi ta mở rộng cây thông tin khi cần thiết. - Việc xác định tên các thông tin đợc rút ra từ cây thông tin. Mỗi nút trên cây thông tin đợc gán một số nhận dạng không trùng với các nút cùng cấp với nó. Tên của biến là một chuỗi các số cùng với đờng dẫn từ gốc của cây th mục tới tham số đó (tên của đối tợng còn đợc gọi là: OBJECT IDENTIFIER). - Sử dụng luật mã hoá cơ bản BER để chuyển các giá trị của các tham số dới dạng ASN.1 sang dạng truyền dẫn cố định. Khi dữ liệu đợc truyền giữa các agent manager, thì dữ liệu đợc định dạng theo cùng một cách.Các agent manager chuyển đổi dữ liệu giữa dạng chuẩn này dạng thích hợp với hệ thống của nó. b. Kho thông tin quản MIB Tất cả các thông tin về một thiết bị tạo thành một cơ sở dữ liệu, các thông tin này có thể là thông tin về cấu hình, trạng thái, thông tin thống kê, thông tin về bộ đếm phần cứng, các thông tin về tài nguyên hệ thống, thông tin về nhà sản xuất, phiên bản của hệ thống, . Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 root ccitt 0 iso 1 joint-iso-ccitt 2 org 3 dod 6 internet 1 mib-2 1 enterprises 1 system 1 interface 2 at 3 ip 4 icmp 5 tcp 6 udp 7 egp 8 snmp 11 directory 1 mgmt 2 experimental 3 private 4 security 5 snmpV2 6 Hỡnh 3. Cây thông tin Trong SNMP, đây là cơ sở dữ liệu logic của thông tin quản mạng đợc gọi là MIB. Ta không quan tâm nhiều đến dữ liệu chứa bên trong MIB cũng nh dạng vật của dữ liệu, mà ta quan tâm chủ yếu đến khả năng truy cập dữ liệu. Chính điều này cũng đã góp phần làm nên sự đơn giản trong giao thức SNMP. Nh trong phần trên đã nói, thông tin quản là trung tâm của giao thức, vì vậy, khi thiết kế kho thông tin quản thì thiết kế càng đơn giản thì khả năng truy cập thông tin càng tốt. Câu hỏi đặt ra là những thông tin nào nên đợc lu trữ trong MIB? Làm thế nào chuẩn hoá các thông tin mà không làm ảnh hởng đến việc thêm cũng nh mở rộng các thông tin cần thiết? Các chuyên gia đã sử dụng phơng pháp tiến hoá để thiết kế kho thông tin MIB: - Định nghĩa các nhóm gồm các thông tin hữu ích. - Sau một thời gian thử nghiệm, tiến hành loại bỏ dần những tham số không hữu ích. - Định nghĩa các thông tin chung mà nhiều nhà sản xuất đều sử dụng tiến hành chuẩn hoá chúng. - Các nhà sản xuất có thể thêm phần mở rộng của mình cho phù hợp với đặc điểm của thiết bị. Để đạt đợc những yêu cầu trên thì phải căn cứ vào cấu trúc nhận dạng thông tin quản để định nghĩa module MIB. Có thể sử dụng phần mềm MG-SOFT SNMP để soạn thảo module MIB có thể biên dịch. Ta có thể soạn thảo module MIB trên file text, sau đó sử dụng các công cụ của phần mềm quản để tải các file MIB. Sau khi tải vào, ta sử dụng chức năng MIB Browser để hiển thị cây thông tin ta vừa tải vào. Lúc này, nếu viết song phần mềm subagent tơng ứng cho MIB, ta Học viện Công nghệ BCVT Lĩnh vực Công nghệ thông tin có thể sử dụng các lệnh get_request, get_next_request, . để lấy hoặc cập nhật dữ liệu dữ liệu. Hình vẽ sau minh hoạ điều này. Hỡnh 4. Cây thông tin kết quả trả ra khi sử dụng lệnh get_request. Tuy nhiên phần mềm này MG-SOFT SNMP phải có đăng ký bản quyền thì mới sử dụng đợc đầy đủ các chức năng của nó. c. Giao thức SNMP. Giao thức SNMP xác định: Loại bản tin mà có thể đợc gửi đi giữa một trạm quản (manager) trạm bị quản (agent). Các bản tin này đợc đóng gói trong đơn vị thông tin PDU. Dạng của bản tin. Các giao thức truyền thông đợc sử dụng để vận chuyển bản tin SNMP. Các loại bản tin: get request: Đợc sử dụng để lấy giá trị của một hoặc nhiều biến trong MIB. get next request: Đợc sử dụng để lấy các giá trị liên tục nhau. Thờng đợc sử dụng để lấy một bảng các giá trị. Sau khi lấy hàng đầu tiên bằng bản tin get request , thì get next request đợc sử dụng để đọc các hàng còn lại. set request: Đợc sử dụng để cập nhật một hoặc nhiều biến trong MIB. get response: Đợc sử dụng để trả lời các bản tin get request, get next request hoặc set request. Trap: đợc sử dụng để hỗ trợ các sự kiện quan trọng xảy ra tại trạm bị quản lý, nh việc khởi động lại của thiết bị hoặc đứt liên kết TCP với thiết bị. Từ các bản tin trên ta giải thích đợc tại sao lại gọi SNMP là simple. Ta có thể đọc giá trị của một biến thông qua bản tin get, có thể lấy các giá trị của các biến từ đầu cho đến cuối một bảng trong MIB bằng bản tin get next, có thể thay đổi giá trị của tham số bằng bản tin set, bản tin response dùng để gửi trả lại kết quả của các bản tin yêu cầu. thiết bị đợc quản Học viện Công nghệ BCVT Hội nghị Khoa học lần thứ 5 có thể báo cáo các vấn đề nghiêm trọng đã xảy ra bằng cách gửi các bản tin trap tới trạm quản lý. Tuy nhiên các bản tin này tạo ra một cơ chế rất mạnh. Ví dụ nh bằng cách gửi bản tin set để thay đổi một tham số nào đó của một thiết bị, thì có thể làm cho thiết bị đó đợc kích hoạt hoặc không kích hoạt, hoặc đợc khởi động lại . NETWORK MANAGEMENT STATION APPLICATION MANAGER PROTOCOL get get next set Response Trap (Alert) UDP socket UDP socket (port 162) AGENT PROTOCOL MANAGED SYSTEM UDP socket UDP socket (port 161) MIBs MASTER AGENT Hỡnh 5. Hoạt động của giao thức SNMP. Dạng của bản tin có thể tham khảo: SNMP - A Guide to Network Management. Dr. Sidnie M. Feit. 1999. Giao thức SNMP sử dụng giao thức UDP làm giao thức vân chuyển bản tin SNMP. Các agent nhận bản tin yêu cầu của trạm quản tại cổng 161/UDP. Trạm quản nhận các bản trap tại cổng 162/UDP. Trong giao thức SNMP sử dụng community name nh là một mật khẩu để các agent nhận thực các trạm quản lý. Hình vẽ 5 minh hoạ hoạt động của giao thức SNMP. 3. Công cụ phát triển giao thức SNMP Từ mô hình quản lý, ta thấy trong một hệ thống quản cần hai phần mềm: - Phần mềm quản - Phần mềm agent. Hiện tại trên thị trờng tồn tại rất nhiều phần mềm quản có sẵn do vậy ta không quan tâm nhiều đến các phần mềm này. Phần mềm agent gồm có các phần mềm sau: - SNMP service (WinNT), snmpd (Linux) đóng vai trò là master agent. - Subagent hoặc SMUX peer. Trên hệ điều hành WinNT hoặc Linux, đã có sẵn các phần mềm master agent. Do vậy, công việc còn lại là phải phát triển các subagent hoặc SMUX peer tơng ứng cho mỗi hệ thống. Học viện Công nghệ BCVT Lĩnh vực Công nghệ thông tin Hiện nay, SMUX peer không còn đợc hỗ trợ trên hệ điều hành WinNT. Mặt khác do việc phát triển ứng dụng dựa vào SMUX peer cũng phức tạp hơn so với phát triển subagent, do vậy ta nên chọn theo hớng phát triển ứng dụng SNMP theo hớng phát triển các subagent. Trên hệ điều hành WinNT ta sử dụng các hàm API để phát triển các subagent. Trên hệ điều hành Linux, ta sử dụng các hàm API trong các th viện của gói phần mềm ucd-snmp để phát triển subagent. Tuy nhiên có sự khác nhau trong khi phát triển subagent trên hai hệ điều hành khác nhau. Trên WinNT có duy nhất một cách là viết subagent thành một th viện liên kết động (*.dll), mỗi khi SNMP service khởi động thì nó tải th viện liên kết động này vào, còn trên Linux thì có hai cách có thể viết thành file chạy hoặc thành th viện liên kết động (*.so). Khi các subagent đợc tải vào, thì công việc đầu tiên của subagent là đăng ký MIB mà nó quản lý. Khi có yêu cầu gửi đến, thì master agent căn cứ vào MIB đã đăng ký, nó chuyển yêu cầu tới subagent tơng ứng, subagent có nhiệm vụ thực hiện yêu cầu, sau đó trả kết quả lại cho master agent master agent gửi trả lại cho trạm quản lý. Để có thể cấu hình sao cho SNMP service hoặc snmpd tải đợc các th viện liên kết động thì ta phải cấu hình, trên hệ điều hành WinNT, ta cấu hình bằng registry, trên hệ điều hành Linux ta sử dụng file snmpd.conf để cấu hình Viết phần mềm subagent, có thể tham khảo trong MSDN, gói phần mềm ucd-snmp (hoặc net-snmp tên mới của gói phần mềm ucd-snmp) của hệ điều hành Linux. 4. Kết luận. Trong khuôn khổ hạn hẹp của bài báo, tác giả đã trình bày về nhu cầu cần thiết phải ứng dụng SNMP để quản hệ thống, những đặc điểm chính của giao thức SNMP. B ài báo cũng đề cập đến hớng phát triển ứng dụng SNMP đó là sử dụng các subagent, đây là h- ớng mà các nhà sản xuất hiện nay đang sử dụng thờng biên dịch subagent thành các th viện liên kết động để SNMP service hoặc snmpd tự động tải vào mỗi khi nó khởi động. Mục đích của việc nghiên cứu giao thức SNMP là áp dụng một tiêu chuẩn quốc tế để quản một hệ thống, bớc đầu đã xây dựng một giao diện hỗ trợ SNMP áp dụng vào hệ thống MUCOS, tuy những thông tin quản hệ thống cha phong phú nhng đã thành công trong việc quản hệ thống. Tài liệu tham khảo RFC 1213, RFC 1155, RFC 1157, RFC 1212. Đề tài Nghiên cứu xây dựng giao diện hỗ trợ SNMP áp dụng vào hệ thống MUCOS. SNMP - A Guide to Network Management. Dr. Sidnie M. Feit. 1999. Học viện Công nghệ BCVT

Ngày đăng: 26/04/2013, 10:40

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan