BIỂU DIỄN THÔNG TIN QUẢN LÝ

Một phần của tài liệu Nghiên cứu phương pháp xây dựng hệ quản lý thông tin trên mạng máy tính Internet Intranet (Trang 49)

2.3.1. Cấu trúc thông tin quản lý SMI

Trong mô hình quản lý mạng SNMP dựa trên Manager/Agent, các đối tượng quản lý được truy cập một cách logic, nghĩa là chúng được lưu trữ tại một nơi cụ thể để SNMP có thể tìm kiếm và sửa đổi theo yêu cầu của việc quản lý. Cấu trúc thông tin quản lý SMI (Structure of Management Information) xác định các kiểu dữ liệu có thể sử dụng được trong MIB, cách thức biểu diễn, sắp xếp và đặt tên cho các tài nguyên trong MIB, qui định cấu trúc của MIB và cách xác định biến MIB. Hiện tại có hai phiên bản: SMIv1 (SMI version 1, RFC 1155) định nghĩa chính xác cách thức các đối tượng quản lý được đặt tên và đặc tả các dữ liệu kết nối với chúng; còn SMIv2 (SMI version 2, RFC 2578) hỗ trợ nâng cấp cho SNMPv2.

Việc định nghĩa các đối tượng quản lý có thể tách bạch thành ba phần: - Tên (Name), hay là định danh đối tượng (OID), định rõ một đối

tượng duy nhất. Như đã trình bày, tên có thể ở dạng số cách nhau bởi dấu chấm thập phân hoặc dạng ta có thể đọc được. Ví dụ như OID cho mgmt (management) là: 1.3.6.1.2 hoặc

- Kiểu dữ liệu và cú pháp (Type and Syntax): một kiểu dữ liệu của đối tượng quản lý được định nghĩa bằng việc sử dụng một tập các kiểu của ngôn ngữ ASN.1 (Abstract Syntax Notation One). ASN.1 là một cách đặc tả dữ liệu để mô tả và truyền giữa các Manager và Agent. ASN.1 sử dụng các ký hiệu mà không bị phụ thuộc vào hệ thống nào, điều này cho phép PC chạy hệ thống Window NT cũng có thể kết nối được với máy chạy Sun SPARC mà không phải lo lắng về sự không tương thích.

- Mã hoá (Encoding): Việc mã hoá thông tin một đối tượng quản lý thành một xâu bộ tám các ký tự sử dụng các quy tắc mã hoá cơ bản BER (Basic Encoding Rules).

Có hai loại cú pháp chuẩn là: Cú pháp trừu tượng (abstract syntax) và cú pháp truyền (transfer syntax). Cú pháp trừu tượng định nghĩa các đặc tả cho dữ liệu ký hiệu, còn cú pháp truyền định nghĩa việc mã hoá các thành phần trong cú pháp trừu tượng. SMI dùng ASN.1 để định nghĩa cú pháp trừu tượng cho thông điệp. ASN.1 định nghĩa các thành phần ngôn ngữ cơ sở và cung cấp các quy tắc cho việc kết nối các thành phần vào thông điệp. Còn BER chính là công cụ cung cấp cú pháp truyền. BER được kết hợp với cú pháp trừu tượng và cung cấp khả năng truyền mức bit (bit-level) giữa các máy trong mạng. Do điều này, nên SMI và SNMP dùng ASN.1 (ISO 8824-1) và BER (ISO 8825-1) để định nghĩa hàng loạt các vấn đề cơ sở quản lý mạng Internet.

SMIv1 định nghĩa một vài loại dữ liệu quan trọng để quản lý các đối tượng mạng. Các loại dữ liệu đó được mô tả trong bảng sau:

Kiểu dữ liệu Mô tả

INTEGER Là một kiểu nguyên 32 bit được dùng để đặc tả các kiểu đếm, như 1 là trạng thái up (của giao tiếp mạng trên bộ định tuyến), 2 là trạng thái down, 3 là trạng thái kiểm tra. Giá trị 0 không được dùng cho kiểu đếm.

OCTET STRING Là một xâu có độ dài 0 hoặc nhiều bộ tám (là các byte) các ký tự. Counter Một kiểu số 32-bit có giá trị nhỏ nhất là 0 và lớn nhất là 232-1 OBJECT

IDENTIFIER

Thể hiện đối tượng quản lý trong cây thư bậc các đối tượng

NULL Hiện tại không dùng trong SNMP

SEQUENCE Định nghĩa danh sách chứa không hoặc nhiều hơn các loại dữ liệu ASN.1

SEQUENCE OF Định nghĩa một đối tượng quản lý được tạo từ một SEQUENCE IpAddress Mô tả địa chỉ IPv4 32-bit

NetworkAddress Tương tự kiểu IpAddress, nhưng có thể mô tả các loại địa chỉ mạng khác nhau

Gauge Một kiểu số 32-bit với giá trị nhỏ nhất là 0 và lớn nhất là 232-1. Không giống Counter, Gauge có thể tăng và giảm. Thường dùng để thể hiện tốc độ của giao tiếp mạng.

TimeTicks Một kiểu số 32-bit với giá trị nhỏ nhất là 0 và lớn nhất là 232-1. Dùng để đo thời gian.

Opaque Cho phép bất kỳ việc mã hoá ASN.1 nào đều tạo thành một OCTET STRING

Mục đích của tất cả các loại dữ liệu này là dùng để định nghĩa các đối tượng quản lý. Việc định nghĩa các đối tượng quản lý này sẽ nằm trong cơ sở thông tin quản lý MIB.

Trong phiên bản SMIv2, cây thứ bậc các đối tượng được mở rộng bởi việc thêm nhánh snmpV2. Định danh OID cho các đối tượng nhánh đó là

1.3.6.1.6.3.1.1

hay:

iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects

Ngoài ra một vài loại dữ liệu mới được thêm vào SMIv2 như Integer32, Counter32, Gauge32, Unsigned32, Counter64, BITS. Việc định nghĩa một đối tượng trong SMIv2 cũng có thay đổi nhỏ so với SMIv1. Đó là một vài trường lựa chọn được thêm vào cho việc điều khiển truy nhập trên các đối tượng, cho phép đặt các tham số vào bảng và mô tả dễ dàng hơn.

2.3.2. Định nghĩa dữ liệu trong SMI bằng ASN.1

Trong mô hình ISO/OSI, cú pháp ASN.1 (Abstract Syntax Notation One) là một chức năng của tầng trình diễn (Presentation layer). Bởi tầng trình diễn là tầng định nghĩa định dạng của dữ liệu lưu trữ. Như vậy cả Manager và Agent điều phải hiểu cú pháp ASN.1 này để có thể trao đổi dữ liệu. ASN.1 được thiết kế để định nghĩa các dữ liệu dạng cấu trúc, nó thể hiện độc lập với biểu diễn vật lý của dữ liệu. Do đó, nó phải tự định nghĩa các loại dữ liệu cơ bản như các kiểu xâu, kiểu nguyên, và các loại dữ liệu mới dựa trên việc kết

nối các loại dữ liệu cơ bản. Vì ASN.1 thể hiện cú pháp trừu tượng nên nó được coi là một ngôn ngữ khá phức tạp.

ASN.1 định nghĩa dữ liệu như một mẫu các bit trong bộ nhớ máy tính, các ngôn ngữ lập trình bậc cao sử dụng như các biến, còn BER sẽ chuyển các mẫu bit đó thành các bit thực sự cho quá trình truyền giữa các máy tính. ASN.1 sử dụng một số thuật ngữ đặc thù để định nghĩa các thủ tục, bao gồm các kiểu, giá trị, macro và module.

* Kiểu (type) là một lớp dữ liệu dùng để định nghĩa cấu trúc dữ liệu, đó là INTEGER, OCTET STRING, OBJECT IDENTIFIER và NULL. SMI cũng sử dụng các kiểu này của ASN.1. Định nghĩa kiểu có các dạng sau:

- Kiểu đơn giản: <tên kiểu mới> ::= <kiểu đã biết> Ví dụ: RequestID ::= INTEGER

- Kiểu có cấu trúc:

<tên kiểu mới> ::= SEQUENCE { <field 1> <kiểu dữ liệu> <field 2> <kiểu dữ liệu> ……

} Ví dụ:

Message ::= SEQUENCE {

version INTEGER version-1(0) community OCTETSTRING

pdu PDUs

}

Trong ví dụ này, Message là một cấu trúc có ba trường version, community và pdu cùng với các kiểu của nó. Phía sau INTEGER có dấu () đại diện cho tập các giá trị hợp lệ, ở đây chỉ có một giá trị 0 được dùng để chỉ định version-1.

* Giá trị (value) xác định số lượng các kiểu, ví dụ một ứng dụng dùng kiểu INTEGER và chỉ cho phép giá trị là các trường 8-bit với khoảng giá trị phải là 0÷255, khi đó ta có thể mô tả là: INTEGER (0..255).

* Macro được dùng để định nghĩa một đối tượng, theo quy định (ISO 8824-1) thì tên macro là các ký tự hoa. Định dạng một macro như sau:

<name> OBJECT-TYPE SYNTAX <datatype>

ACCESS <either read-only, read-write, write-only, or not- accessible>

STATUS <either mandatory, optional, or obsolete> DESCRIPTION

"Textual description describing this particular managed object."

::= { <Unique OID that defines this object> }

Ví dụ, MIB-II định nghĩa đối tượng ifTable như sau: ifTable OBJECT-TYPE

SYNTAX SEQUENCE OF IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION

"A list of interface entries. The number of entries is given by the value of ifNumber." ::= { interfaces 2 }

Đối tượng ifTable thể hiện một bảng các giao tiếp mạng trên thiết bị được quản lý. Trong đó:

1) Tên đối tượng là ifTable được định nghĩa bởi macro OBJECT- TYPE

2) SYNTAX là SEQUEN OF IfENTRY, có nghĩa rằng ifTable là một bảng gồm các cột được định nghĩa trong đối tượng IfEntry.

3) ACCESS là not-accessible, nghĩa là không có cách nào truy vấn một Agent để lấy thông tin của đối tượng này.

4) STATUS là mondatory, nghĩa là một Agent phải thực thi đối tượng này tuân theo các đặc tả của MIB-II.

5) DESCRIPTION là phần mô tả thông tin về đối tượng

6) Cuối cùng là toán tử ::= và số OID của đối tượng, ở đây sẽ là 1.3.6.1.2.1.2.2, hay iso.org.dod.internet.mgmt.interfaces.2

* Module là tập hợp các mô tả thành các nhóm thích hợp. Module bắt đầu bằng tên, sau đó là phần thân nằm trong khối từ khoá BEGIN và END. Nội dung phần thân module chứa từ khoá IMPORTS, các kiểu, giá trị và macro. Ví dụ phần đầu module RMON (RFC 1757) thể hiện như sau:

RMON-MIB DEFINITIONS ::= BEGIN IMPORTS

Counter FROM RFC1155-SMI DisplayString FROM RFC1158-MIB mib-2 FROM RFC1213-MIB OBJECT-TYPE FROM RFC-1212

TRAP-TYPE FROM RFC-1215; -- Remote Network Monitoring MIB

rmon OBJECT IDENTIFIER ::= { mib-2 16 } -- textual conventions

. . . END

Trong đó, từ khoá IMPORTS được hiểu như việc mô tả các đường liên kết đến các module mà module này cần. Các ký hiệu -- thể hiện các chú thích. OBJECT IDENTIFIER thể hiện nhánh rmon được định nghĩa tại nhánh thứ 16 của cây đối tượng mib-2.

Như vậy ASN.1 cho ta cách định nghĩa các đối tượng. Trong ngữ cảnh cơ sở quản lý mạng và SNMP thì ASN.1 tỏ ra hết sức thuận tiện vì nó có thể cung cấp cú pháp trừu tượng để thể hiện thông tin quản lý ở mức chi tiết và hết sức mạch lạc.

2.3.3. Mã hoá thông điệp bằng BER

BER (Base Encoding Rules) được đặc tả trong tài liệu ISO 8825-1, là quy tắc mã hoá cơ bản cho phép mã hoá thông tin để có thể truyền được trên mạng. Tức là ứng dụng quản lý kết sinh một yêu cầu SNMP, BER sẽ mã hoá yêu cầu để có thể truyền nó trên môi trường mạng, tại máy đích việc giải mã cũng dùng các quy tắc của BER.

Để định nghĩa dữ liệu trình diễn, đầu tiên BER đặc tả các bit đầu và cuối cho mỗi octet (bộ tám các bit) được truyền. Đó là bit ở vị trí đầu octet: LSB (Least Significant Bit), và vị trí cuối octet: MSB (Most Significant Bit). Tiếp đó là cấu trúc dữ liệu mã hoá gồm ba trường: Type, Length và Value. Cấu trúc mã hoá này được gọi là mã hoá Kiểu - Độ dài - Giá trị (TLV: Type - Length - Value).

* Trường Type chứa một định danh cho cấu trúc mã hoá, nó mã hoá các thẻ ASN.1 (cả các lớp và số) sẽ được chứa trong trường Value. Một trường con trong Type được gọi là bit P/C thể hiện kiểu dữ liệu là nguyên thuỷ (P/C=0, Primitive ) hay là được khởi dựng (P/C=1, Contructed). Trên hình 2.12 thể hiện mã hoá trường Type.

Có hai loại trường Type, việc sử dụng loại nào tuỳ thuộc vào số lượng các thẻ (tag). Nếu số lượng tag nằm trong khoảng [0,30] thì trường Type chỉ chứa một octet, còn nếu số lượng tag ≥ 31 thì trường Type sẽ chứa nhiều octet. Octet đầu tiên sẽ chứa ba trường con là Class, bit P/C và số lượng thẻ. Trường con Class (gồm hai bit ở vị trí 8 và 7) chứa mã hoá của bốn lớp kiểu dữ liệu và được mã hoá ở bit 8 và 7 của các octet như sau:

- Universal (00): dùng để mã hoá các kiểu dữ liệu phổ biến như INTEGER, OCTET STRING,…

- Application (01): mã hoá các kiểu định nghĩa như IpAddresss, Counter,…

- Context-specific (10): dùng để mã hoá các lệnh của SNMP như: GetRequest, GetResponse,…

- Private (11) : mã hoá một kiểu định nghĩa riêng nào đó

Ví dụ, các dữ liệu sẽ được mã hoá như bảng sau:

Lớp Kiểu Giá trị trƣờng Type

Universal Integer 00000010 = 02H

Universal SEQUENCE 00110000 = 30H

Application IpAddress 01000000 = 40H

Application TimeTicks 01000011 = 43H

Context-Specific GetRequest 10100000 = A0H Context-Specific GetResponse 10100010 = A2H

Context-Specific Trap 10100100 = A4H

Ở đây, các ứng dụng SNMP chỉ sử dụng ba lớp dữ liệu đầu, và chỉ dùng số các thẻ trong khoảng [0,30]. Còn số lượng thẻ sẽ nằm trong trường con thứ ba của octet đầu tiên. Và bit 5 sẽ là MSB của thẻ và bit 1 là LSB.

* Trường Length là trường tiếp theo trường Type, nó chỉ ra số lượng octet mà trường Value sẽ chứa. SNMP sử dụng hai kiểu trường Length: kiểu ngắn chỉ ra độ dài trong khoảng [0,127] octet; kiểu dài chứa nhiều hơn 127 octet.

Kiểu trường Length dài dùng nhiều octet để thể hiện độ dài tổng. Trong kiểu này, octet đầu tiên sẽ có bit 8 = 1, các bit tiếp theo thể hiện số lượng các octet tiếp theo. Số lượng này nằm trong khoảng [1,126], còn 127 chưa được

sử dụng (dùng cho tương lai). Bit 8 của octet thứ hai chứa giá trị MSB của trường Length, và tiếp theo là tất cả các octet như độ dài đã chỉ ra.

* Trường Value chứa không hoặc nhiều octet chứa nội dung dữ liệu. Nội dung dữ liệu ở đây chính là nội dung thông tin đã mã hoá như các số nguyên, ký tự ASCII, hay OID của đối tượng.

Để hình dung rõ hơn, ta sẽ xem xét ví dụ về cách mã hoá của BER. Số nguyên là một kiểu cơ sở sẽ được mã hoá với trường Value chứa các octet nội dung. Ví dụ với số nguyên 75 (tức Value = “75”) thì các trường: Type = 02H, Length = 01H, Value = 4BH. Thể hiện dạng bit như hình 2.14.

Sau đây ta xem xét cách mã hoá thông điệp SNMP của BER. Ví dụ một thông điệp SNMP chưa mã hóa có các thông tin như sau:

version = 0 community = public command = get-request requestID = 0 error status = 0 error index = 0 object = (1.3.6.1.2.1.1.3.0) (sysUpTime.0) value = NULL object = (1.3.6.1.2.1.2.1.0) (ifNumber.0) value = NULL

Cách mã hoá thông điệp được thể hiện trong bảng sau:

Nội dung Chuỗi mã hoá

SNMP MESSAGE

SEQUENCE Length = 52 30 34

VERSION (0)

INTEGER Length = 1 Value = 0 02 01 00

COMMUNITY

OCTETSTRING Length = 6 Value = public 04 06 70 75 62 6C 69 63 GET-REQUEST

get-request Length = 39 A0 27

REQUESTID

INTEGER Length = 1 Value = 0 02 01 00

ERROR STATUS

INTEGER Length = 1 Value = 0 02 01 00

ERROR INDEX

INTEGER Length = 1 Value = 0 02 01 00

SEQUENCE (object identifier,value)

SEQUENCE Length = 28 30 1C

SEQUENCE (object identifier, value )

SEQUENCE Length=12 30 0C OBJECT IDENTIFIER Length = 8

.1.3.6.1.2.1.1.3.0 06 2B 06 01 02 01 01 03 00 08 VALUE

NULL Length = 0 05 00

SEQUENCE (object identifier,value )

SEQUENCE Length=12 30 0C OBJECT IDENTIFIER Length = 8

.1.3.6.1.2.1.2.1.0 062B 06 01 02 01 02 01 00 08 VALUE

NULL Length = 0 05 00

Kết quả chuỗi octet được tạo ra sau khi mã hóa thông điệp là:

30 34 02 01 00 04 06 70 - 75 62 6C 69 63 A0 27 02 - 01 00 02 01 00 02 01 00 - 30 1C 30 0C 06 08 2B 06 - 01 02 01 01 03 00 05 00 - 30 0C 06 08 2B 06 02 01 - 01 02 01 00 05 00

Sau khi tạo ra dòng bit này, các thông điệp có thể được truyền trên bất cứ môi trường truyền nào. Khi thông điệp tới máy đích, quá trình biên dịch ngược sẽ cho lại nguyên bản thông điệp ban đầu.

Như vậy, trên đây ta đã nghiên cứu kiến trúc, cơ sở, cách thức biểu diễn thông tin thông tin quản lý, cũng như nguyên lý hoạt động của một hệ quản lý mạng dựa trên giao thức SNMP. Đó là các kiến thức cơ sở hết sức quan trọng, yêu cầu ta phải nắm được trước khi bắt ta thiết kế bất kỳ một hệ thống quản lý mạng nào. Chương tiếp theo ta sẽ ứng dụng các kiến thức này để nghiên cứu và thực hiện một tác tử quản lý mạng cụ thể.

CHƯƠNG 3 – XÂY DỰNG HỆ TÁC TỬ QUẢN TRỊ TÍCH HỢP

3.1. YÊU CẦU CHUNG

Ngày nay, cùng với sự phát triển nhanh chóng của Internet thì các kỹ thuật về quản lý mạng cũng đã được phát triển ở mức cao, điều này có thể minh chứng bằng sự phát triển của rất nhiều ứng dụng quản lý mạng nổi tiếng như HP-Openview, Castle Rock’s SNMPc,… đây là các sản phẩm thương mại. Ngoài các sản phẩm thương mại, cũng có nhiều sản phẩm về quản lý mạng miễn phí và mã nguồn mở như: OpenNMS, Nino, Jffnms,… Tuy nhiên, các sản phẩm đó chỉ phục vụ cho phía trạm quản lý, còn các ứng dụng cho phía tác tử quản lý thì chỉ có để phục vụ cho các yêu cầu chung như các hệ

Một phần của tài liệu Nghiên cứu phương pháp xây dựng hệ quản lý thông tin trên mạng máy tính Internet Intranet (Trang 49)

Tải bản đầy đủ (PDF)

(90 trang)