Transcription

Chương3Cơ sở thông tin quảnlý (MIB) Cấu trúc của MIB version 1 (SMIv1) Cấu trúc của MIB version 2 (SMIv2) MIB-2 (RFC1213), mib chuẩn dành cho các thiếtbị TCP/IP. Host-resources-mib (RFC2790), mib chuẩn dànhcho host. Thực hiện các phương thức SNMP bằng mộtchương trình MIB Browser trên Windows Thực hiện các phương thức SNMP bằng netsnmp-utils trên Linux

Chương 3 : Management Information BaseSNMP toàn tậpChương 2 đã trình bày cách sử dụng một số phần mềm giám sát SNMP phổ biến như PRTG haySolarwinds. Đây là các công cụ giám sát tự động, chúng định kỳ thực hiện “quét” lấy các thông tin một lượtvà hiển thị lên dạng biểu đồ thống kê theo thời gian. Mỗi lần quét chúng thực hiện một loạt các phươngthức SNMP GetRequest/GetNextRequest.Trong chương này chúng ta sẽ khảo sát cấu trúc của mib, một số mib phổ biến và cách dùng các tiện íchthực thi các phương thức SNMP để lấy các thông tin mà ta muốn. Tìm hiểu chương này sẽ giúp bạn : Hiểu được cấu trúc của mib và đặc tả các mib phổ biến như mib-2 hay host-resources-mib. Hiểu được cách các phần mềm giám sát SNMP lấy thông tin như thế nào. Sử dụng được các công cụ SNMP Browser trên Windows & Linux. Có nền tảng hỗ trợ cho việc lập trình phần mềm SNMP.1. SMIv1MIB là một cấu trúc dữ liệu định nghĩa các đối tượng được quản lý, được thiết kế để quản lý các thiết bịkhông chỉ riêng TCP/IP. RFC1155 1 mô tả cấu trúc của mib file, cấu trúc này gọi là SMI (Structure ofManagement Information). Sau này người ta mở rộng thêm cấu trúc của mib thành SMI version 2, và phiênbản trong RFC1155 được gọi là SMIv1.Trước khi đi vào tìm hiểu cấu trúc của mib, chúng ta phải đi sơ lược qua một chuẩn gọi là ASN.1 : ASN.1 (Abstract Syntax Notation One) là chuẩn mô tả các luật mã hóa dữ liệu (encoding rules) chocác hệ thống truyền thông số. Một trong 3 hệ thống luật mã hóa trong ASN.1 là BER (Basic EncodingRules). BER được SNMP dùng làm phương pháp mã hóa dữ liệu. Vì vậy trong các RFC liên quan đếnSNMP ta hay bắt gặp dòng ghi chú “use of the basic encoding rules of ASN.1”. BER mô tả nhiều kiểu dữ liệu như : BOOLEAN, INTEGER, ENUMERATED, OCTET STRING,CHOICE, OBJECT IDENTIFIER, NULL, SEQUENCE, . Chúng ta sẽ dành hẳn một chương để nói về các luật mã hóa của “BER of ASN.1” và cách đọc bảntin SNMP từ việc phân tách các byte dựa vào luật BER.Quay lại RFC1155, mỗi đối tượng bao gồm 3 phần : Name, Syntax và Encoding.NameName là định danh của object, có kiểu OBJECT IDENTIFIER. OBJECT IDENTIFIER là một chuỗi thứ tự cácsố nguyên biểu diễn các nút (node) của một cây từ gốc đến ngọn.Gốc (root node) trong mib không không có tên. Dưới root là 3 node con : ccitt(0) : do CCITT quản lý (Consultative Committee for International Telephone and Telegraph). iso(1) : do tổ chức ISO quản lý (International Organization for Standardization). joint-iso-ccitt(2) : do cả ISO và CCITT quản lý.Dưới node iso(1), tổ chức ISO thiết kế 1 node dành cho các tổ chức khác là org(3).Dưới org(3) có nhiều node con, một node được dành riêng cho US Department of Defense, dod(6).Bộ Quốc phòng Mỹ được coi là nơi sáng lập ra mạng Internet, dưới dod(6) chỉ có 1 node dành cho cộngđồng internet ngày nay, là node internet(1).Tất cả mọi thứ thuộc về cộng đồng Internet đều nằm dưới .iso.org.dod.internet, mọi object của các thiếtbị TCP/IP đều bắt đầu với prefix .1.3.6.1 (dấu chấm đầu tiên biểu diễn rằng .iso là cây con của root, và rootthì không có tên)RFC1155 định nghĩa các cây con như sau ENTIFIERIDENTIFIERIDENTIFIERIDENTIFIERIDENTIFIER:: :: :: :: :: :: {{{{{{iso org(3) dod(6) 1 }internet 1 }internet 2 }internet 3 }internet 4 }private 1 } directory : dành riêng cho tương lai nếu dịch vụ OSI Directory được sử dụng trên internet.1RFC1155 – Structure and Identification of Management Information for TCP/IP-based InternetsDIỆP THANH NGUYÊN, 2010Tran g 2

Chương 3 : Management Information BaseSNMP toàn tập mgmt (management) : tất cả các mib chuẩn chính thức của internet đều nằm dưới mgmt. Mỗi khi mộtRFC mới về mib ra đời thì tổ chức IANA (Internet Assigned Numbers Authority) sẽ cấp cho mib đó mộtobject-identifier nằm dưới mgmt. experimental : dùng cho các object đang trong quá trình thử nghiệm, được IANA cấp phát. private : dùng cho các object do người dùng tự định nghĩa, tuy nhiên các chỉ số cũng do IANA cấp. Tấtcả các đơn vị cung cấp hệ thống mạng có thể đăng ký object-identifier cho sản phẩm của họ, chúng đượccấp phát dưới node private.enterprises.iso (1)ccitt (0)iso-ccitt (2)org (3)dod (6)internet (1)directory (1)1.3.6.1.1mgmt (2)1.3.6.1.2experimental (3)1.3.6.1.3private (4)1.3.6.1.4enterprises (1)1.3.6.1.4.1Hình : SMIv1 (RFC1155)SyntaxSyntax mô tả kiểu của object là gì. Syntax được lấy từ chuẩn ASN.1 nhưng không phải tất cả các kiểuđều được hỗ trợ. SMIv1 chỉ hỗ trợ 5 kiểu nguyên thủy (primitive types) lấy từ ASN.1 và 6 kiểu định nghĩathêm (defined types).Primitive types : INTEGER, OCTET-STRING, OBJECT-IDENTIFIER, NULL, SEQUENCE.Defined types : NetworkAddress : kiểu địa chỉ internet (ip). IpAddress : kiểu địa chỉ internet 32-bit (ipv4), gồm 4 octet liên tục. Counter : kiểu số nguyên không âm 32-bit và tăng đều, khi số này tăng đến giới hạn thì phải quaylại từ 0. Giá trị tối đa là 232-1 (4294967295). Gauge : kiểu số nguyên không âm 32-bit, có thể tăng hoặc giảm nhưng không tăng quá giá trị tốiđa 232-1. TimeTicks : kiểu số nguyên không âm, chỉ khoảng thời gian trôi qua kể từ một thời điểm nào đó,tính bằng phần trăm giây. VD từ khi hệ thống khởi động đến hiện tại là 1000 giây thì giá trịsysUpTime 100000. Opaque : kiểu này cho phép truyền một giá trị có kiểu tùy ý nhưng được đóng lại thành từngOCTET-STRING theo quy cách của ASN.1.EncodingCơ chế Encoding như đã nói, là chuẩn BER trong ASN.1 – sẽ được trình bày trong chương 5.Cấu trúc kiểu OBJECT-TYPERFC1155 quy định cấu trúc của một record “định nghĩa đối tượng quản lý” (a managed object definition),kiểu dữ liệu này gọi là OBJECT-TYPE, các tài liệu mib khác khi viết định nghĩa cho một managed object nàođó thì phải theo quy định của SMI. Một “Managed Object Definition” có kiểu OBJECT-TYPE bao gồm cáctrường :DIỆP THANH NGUYÊN, 2010Tran g 3

Chương 3 : Management Information BaseSNMP toàn tập SYNTAX : kiểu của object, là một trong các primitive types hoặc defined types ở trên. ACCESS : mức truy nhập của object, mang một trong các giá trị read-only, read-write, write-only, notaccessible. STATUS : mang một trong các giá trị mandatory (bắt buộc phải hỗ trợ), optional (có thể hỗ trợ hoặckhông), obsolete (đã bị thay thế). Một agent nếu hỗ trợ một chuẩn mib nào đó thì bắt buộc phải hỗ trợ tấtcả các object có status mandatory, còn status optional thì có thể hỗ trợ hoặc không. DESCRIPTION : dòng giải thích cho ý nghĩa của object.Ví dụ định nghĩa cho object sysUpTime trong RFC1213 :sysUpTime OBJECT-TYPESYNTAX TimeTicksACCESS read-onlySTATUS mandatoryDESCRIPTION"The time (in hundredths of a second) since thenetwork management portion of the system was lastre-initialized.":: { system 3 }2. Mib-2 (RFC1213)RFC1155 mô tả cách trình bày một mib file như thế nào chứ không định nghĩa các object. RFC1213 làmột chuẩn định nghĩa nhánh mib nằm dưới iso.org.dod.internet.mgmt.mib-2 (tất nhiên phải theo cấu trúcmà RFC1155 quy định). Chúng ta sẽ khảo sát một phần RFC1213 để hiểu ý nghĩa của một số object trướckhi dùng công cụ để đọc chúng.RFC1156 là đặc tả mib chuẩn cho các thiết bị TCP/IP, được coi là Internet-Standard Mib (mib version 1).RFC1213 là đặc tả mib chuẩn version 2, thường gọi là mib-2. Chú ý phân biệt mib-1 và mib-2 là các chuẩnđặc tả định nghĩa của các object, còn SMIv1 và SMIv2 là đặc tả cấu trúc của mib file. Mib-1 và mib-2 sửdụng cấu trúc của SMIv1.Mib-2 là một trong những mib được hỗ trợ rộng rãi nhất. Nếu một thiết bị được tuyên bố là có hỗ trợSNMP thì hãng sản xuất phải chỉ ra nó hỗ trợ các RFC nào, và thường là RFC1213. Nhiều bạn chỉ biết thiết bịcủa mình “có hỗ trợ SNMP” nhưng không rõ hỗ trợ các RFC nào, và dùng phần mềm giám sát SNMP hỗ trợRFC1213 để giám sát thiết bị nhưng không thu được kết quả. Lý do là phần mềm thì hỗ trợ RFC1213 nhưngthiết bị thì không.Vị trí của MIB-2 trong mib như sau :.internet (1)directory (1)1.3.6.1.1mgmt (2)1.3.6.1.2experimental (3)1.3.6.1.3enterprises (1)1.3.6.1.4.1mib-2 (5)private 11)Các kiểu dữ liệu mới được định nghĩa trong mib-2 gồm : Display String : kế thừa từ kiểu OCTET STRING nhưng chỉ bao gồm các ký tự in được (printablecharacters) và dài không quá 255 ký tự. Physical Address : giống kiểu OCTET STRING, được dùng để biểu diễn địa chỉ vật lý của thiết bị.DIỆP THANH NGUYÊN, 2010Tran g 4

Chương 3 : Management Information BaseSNMP toàn tậpTrong mib-2 có 10 group, tài liệu này chỉ trình bày định nghĩa các object trong group system vàinterfaces do chúng ta sẽ thực hành dùng các công cụ đọc mib để đọc các object này. Để có được mô tảđầy đủ các bạn hãy tham khảo RFC1213.NameSyntaxDescriptionInternet-standard mib version 2 (RFC1213)OID : ingDòng văn bản mô tả node hiện đang hỗ trợ mibnày, có thể bao gồm tên, version, kiểu phầncứng, hệ điều hành, sysObjectID(2)Object identifierĐịnh danh đã được đăng ký của hảng sản xuấthệ thống. Giá trị này phải khó nhầm lẫn và miêutả được đây là loại thiết bị gìsysUpTime(3)TimeTicksThời gian tính từ khi module quản trị mạng củahệ thống khởi động lại (kiểu TimeTicks tínhbằng phần trăm giây)sysContact(4)DisplayStringDòng văn bản chỉ định người cần liên lạc nếu cócác vấn đề đối với hệ thốngsysName(5)DisplayStringTên được gán cho node để quản lýsysLocation(6)DisplayStringVị trí vật lý đặt nodeIntegerChỉ ra node có thể hoạt động ở các layer nàocủa OSI. Giá trị của nó là tổng tất cả các 2(Layer-1)với Layer là số lớp OSI. VD một router hoạtđộng ở lớp 3 thì giá trị này sẽ là 2(3-1) 4ifNumber(1)IntegerTổng số giao tiếp mạng hiện có trong hệ thốngifTable(2)SequenceDanh sách các thông tin của từng interfaceifEntryMột entry chứa các object mang thông tin củamột interace trong danh sáchifIndex(1)IntegerGiá trị duy nhất của mỗi interface, giá trị nàychạy từ 1 đến ifNumber, và không thay đổi ítnhất cho đến khi hệ thống khởi động lạiifDescr(2)DisplayStringDòng text mang thông tin của một interfaceifType(3)IntegerKiểu interface, dựa vào giao thức (6), fddi(15), e1(19), atm(37),sonet(39), v35(45), ifMtu(4)IntegerKích thước của datagram lớn nhất có thểtruyền/nhận trên interfaceifSpeed(5)GaugeBăng thông hiện tại của interface, tính bằng bitper secondifPhysAddress(6)PhysicalAddressĐịa chỉ vật lý của interfaceifAdminStatus(7)IntegerTrạng thái mong muốn của interfaceifOperStatus(8)IntegerTrạng thái hoạt động thực tế của interfaceifLastChange(9)TimeTicksGiá trị của sysUpTime tại thời điểm interface đivào trạng thái hoạt động như hiện tạiifInOctets(10)CounterTổng số octet đã nhận trên �P THANH NGUYÊN, 2010Tran g 5

Chương 3 : Management Information BaseSNMP toàn tậpifInUcastPkts(11)CounterSố gói unicast được đưa đến giao thức lớp caohơnifInNUcastPkts(12)CounterSố gói nonunicast được đưa đến giao thức lớpcao hơn (broadcast, multicast)ifInDiscards(13)CounterSố gói tin nhận được bị hủy (kể cả các góikhông bị lỗi) để ngăn không cho chúng đến tầngxử lý cao hơn, vd khi tràn bộ đệm nhận.ifInErrors(14)CounterSố gói tin nhận được có chứa lỗiifInUnknownProtos(15)CounterSố gói tin nhận được từ interface nhưng bịdiscard vì nó thuộc giao thức không được hỗ trợifOutOctets(16)CounterTổng số octet đã truyền ra interfaceifOutUcastPkts(17)CounterTổng số gói tin unicast mà tầng giao thức caohơn yêu cầu truyền ra (kể cả các gói sẽ bịdiscard)ifOutNUcastPkts(18)CounterTổng số gói tin non-unicast mà tầng giao thứccao hơn yêu cầu truyền ra (kể cả các gói sẽ bịdiscard)ifOutDiscards(19)CounterSố gói tin cần truyền ra bị hủy (kể cả các góikhông bị lỗi) để ngăn không cho chúng đến tầngxử lý cao hơn, vd khi tràn bộ đệm phátifOutErrors(20)CounterSố gói tin không thể truyền ra do có lỗiifOutQLen(21)GaugeĐộ dài của hàng đợi bản tin truyền điObject identifierTham chiếu đến định nghĩa mib dành riêng choloại media của interface. VD nếu interface thuộcethernet thì giá trị này chỉ ra tài liệu mô tả cácobject của riêng ethernet. Nếu node không cungcấp được thông tin này thì giá trị của ifSpecificphải là .0.0ifSpecific(22)Cấu trúc của mib là dạng cây, để xác định object identifier của một object bạn phải đi từ gốc đến objectđó. Ví dụ : bandwidth của interface thứ 3 trên thiết bị thì có OID là b-2.interfaces.ifTable.ifEntry.ifSpeed.3).Chú ý : mặc dù mib-2 đã quy định index của từng interface phải liên tục và chạy từ 1 đến ifNumber,nhưng trong thực tế nhiều thiết bị không đặt index liên tục mà đặt theo cách riêng để dễ quản lý. Do đó đốivới C2950 thì interface thứ 3 có index là 3, nhưng đối với thiết bị khác thì interface thứ 3 có thể có indexkhác 3, thậm chí là số rất lớn. Chẳng hạn một switch có nhiều card, mỗi card có 12 port thì port1-card1 cóindex là 101, port12-card1 có index là 112, port1-card2 có index là 201.3. Sử dụng iReasoning MIB Browser trên WindowsiReasoning MIB BrowserĐể lấy thông tin của một object trong mib ta cần có một phần mềm có thể thực hiện các phương thứcSNMP (Get, GetNext, Set). Các phần mềm này gọi chung là MIB Browser, hiện có rất nhiều và hầu hết đềucó phiên bản miễn phí.Một trong những công cụ mib browser dễ sử dụng là iReasoning MIB Browser. Phần mềm này được viếttrên Java nên có thể chạy trên Windows lẫn Linux, nó cung cấp cả giao diện đồ họa và dòng lệnh. Phiên bảnhiện tại là Personal Edition 6.33, download tại http://www.ireasoning.com/download.shtmlTrong phần này chúng ta sẽ dùng iReasoning MIB Browser để lấy thông tin của một switch Cisco Catalyst2950. Thông tin được lấy thuộc đặc tả mib-2.DIỆP THANH NGUYÊN, 2010Tran g 6

SNMP toàn tậpChương 3 : Management Information BaseSau khi cài đặt và khởi động, giao diện của phần mềm như sauLấy thông tin bằng Get/GetNextRequest dùng MIB BrowserĐầu tiên bạn khai báo đầy đủ tính năng SNMP agent trên C2950 như chương 2 đã trình bày. Kế tiếp trêniReasoning MIB browser bạn khai báo như sau : nhập IP của switch vào ô [Address]; nhấn nút [Advanced],nhập các thông tin Read/Write Community (mặc định là public/private), chọn version SNMP là 1 (các versionkhác chúng ta sẽ thực hiện sau), nhấn [OK].Sau đó, mở cây RFC1213.system, chọn object sysDescr; bên phải màn hình chọn Operation là GET vànhấn nút, MIB Browser sẽ gửi bản tin GetRequest có OID là 1.3.6.1.2.1.1.1.0 (sysDescr.0) đến thiếtbị, thiết bị gửi lại bản tin GetResponse và phần mềm hiển thị thông tin trả lời lên màn hình.

lý (MIB) Cấu trúc của MIB version 1 (SMIv1) Cấu trúc của MIB version 2 (SMIv2) MIB-2 (RFC1213), mib chuẩn dành cho các thiết bị TCP/IP. Host-resources-mib (RFC2790), mib