Đồ án Mạng máy tính và quản trị mạng

Một giá trị object identifier được mã hoá thành một hay nhiều octet nội dung. Vì lý do quản trị phần tử đầu tiên phải nhận giá trị 0, 1 hoặc 2; Phần tử thứ hai phải nhận giá trị nhỏ hơn 40 nếu phần tử đầu là 0 hay 1. Chúng ta đã biết rằng ba cấp dưới của một nút gốc đã được định nghĩa trùng khớp với các giá trị 0, 1, 2. Vì việc đặt tên nhà uỷ quền cho các cấp dưới cư trú với ISO và CCITT, chúng tương ứng trả lời để đảm bảo rằng các cấp dưới trực tiếp không được ấn định một số lớn hơn 39. Sử dụng BER để lập những mã này: ã Hai phần tử đầu tiên ở dạng chuỗi một tên định danh con với giá trị: X*40+Y Trong đó, X là giá trị đầu tiên và Y là giá trị của phần tử thứ hai. ã Mỗi phần tử tiếp theo trong chuỗi cũng tạo dạng tên định danh phụ (Sub-Identifier) với giá trị bằng giá trị phần tử đó. Mỗi Sub-Identifier mã hoá bằng cách sử dụng biểu diễn không dấu trong một hay nhiều octet. Tuy nhiên bit quan trọng nhất của mỗi octet được thiết lập về 1 nếu một octet khác theo sau. Như vậy Sub-Identifier được biểu diễn bởi một hay nhiều giá trị 7 bit được nối với nhau và xem chuỗi kết quả các bit như là một số không dấu. Để đảm bảo một bản mã cô đọng, 7 bit đầu tiên của bản mã phải khác.

doc87 trang | Chia sẻ: aloso | Lượt xem: 1796 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Mạng máy tính và quản trị mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
SN.1 bao gồm các kiểu ứng dụng đơn giản được sử dụng chung. Trong phạm vi lớp UNIVERSAL chỉ những kiểu sau đây được sử dụng để định nghĩa các đối tượng MIB: Interger (UNIVERSAL 2) Octetstring (UNIVERSAL 4) Null (UNIVERSAL 5) Object identifier (UNIVERSAL 6) Sequence sequence – of (UNIVERSAL 16) Bốn kiểu đầu tiên là các kiểu nguyên thuỷ và là các khối nền tảng của các kiểu khác của các đối tượng. Chú ý rằng kiểu Enumerated không bao gồm trong đó. Vì vậy khi một danh sách liệt kê các biến nguyên được định nghĩa, nó phải được thực hiện cùng với kiểu Interger. Hai qui ước liên kết với tác dụng của sự liệt kê: Giá trị 0 có thể không được sử dụng. Điều này cho phép việc phát hiện các lỗi giải mã thông thường. Chỉ các giá trị kiều nguyên được liệt kê mới có thể được sử dụng. Có một giá trị liệt kê thông thường được đặt nhãn other, hay giống như vậy, quản lý trường hợp này không điều chỉnh các nhãn liệt kê khác. Bộ định dạng đối tượng là một bộ định dạng duy nhất của một đối tượng, bao gồm tuần tự của các số nguyên được biết đến như một bộ định dạng nhỏ. Theo tuần tự đọc từ trái sang phải, định nghĩa vị trí của đối tượng trong cấu trúc cây của MIB. Ví dụ như hình vẽ trên, định danh đối tượng tcp Conn Table được dẫn suất như sau: Iso org dod internet mgmt mib2 tcp tcpConnTable 1 3 6 1 2 1 6 13 Cây định danh này có thể được viết đơn giản như sau: 1.3.6.1.2.1.6.13. Mục cuối cùng trong thứ tự của danh sách bao gồm các kiểu xây dựng Sequence và Sequence – of. Những kiểu này được sử dụng xây dựng bảng. 1.2. Application – Wide Types. Lớp Application của ASN.1 bao gồm các kiểu dữ liệu thích đáng tới một ứng dụng riêng biệt. Mỗi ứng dụng bao gồm SNMP nó chịu trách nhiệm cho việc định nghĩa các kiểu dữ liệu Application của riêng nó. Các kiểu được định nghĩa sau đây: Network Address: Kiểu này được định nghĩa sử dụng theo cấu trúc Choice, cho phép sự lựa chon của một dạng địa chỉ của các họ giao thức, hiện tại chỉ một địa chỉ được định nghĩa IP Address. IP Address: Là một địa chỉ 32 bít được sử dụng dạng chỉ định trong IP. Counter: Đây là một số nguyên không âm mà có thể tăng lên đến giá trị cao nhất nhưng không giảm. Giá trị cao nhất được chỉ định là 232 –1 (4.294.967.295). Khi mà counter đạt đến giá trị cao nhất nó khởi động lại và bắt đầu tăng từ 0. Gauge: Đây là một số nguyên không âm nó có thể tăng hoặc giảm với giá trị lớn nhất là: 232 –1. Nếu đạt tới giá trị lớn nhất, phần còn lại của Gauge bị chốt lại cho đến khi nó được thiết lập lại. Time Ticks: Đây là một số nguyên không âm đến thời gian ở đơn vị phần trăm của giây từ một vài Epoch. Khi mà một kiểu đối tượng được định nghĩa trong MIB sử dụng kiểu này, sự định nghĩa của đối tượng định dạng Epoch tham chiếu. Opaque: Kiểu này hỗ trợ khả năng chuyển qua các dữ liệu tuỳ ý. Dữ liệu được giải mã cho sự truyền dẫn như là OCTEST STRING. Dữ liệu tự nó có thể được định nghĩa bởi ASN.1 hay một vài dạng khác. 2. Đinh nghĩa đối tượng. Thông tin quản trị cơ bản bao gồm tập hợp các đối tượng. Mỗi đối tượng có một kiểu và một giá trị. Kiểu đối tượng định nghĩa loại đối tượng được quản trị riêng. Sự định nghĩa của một đối tượng vì vậy là một sự miêu tả cú pháp. ASN.1 bao gồm một số đối tượng thông thường đã được định nghĩa trước và một cú pháp cho việc định nghĩa một kiểu mới được dẫn xuất từ kiểu đang tồn tại. Một cách khác cho việc định nghĩa các đối tượng được quản trị là có thể được định nghĩa một kiểu mới gọi là Object. Sau đó mọi đối tượng trong MIB có thể là kiểu này. Ngoài ra MIB hỗ trợ cho việc định nghĩa của các bảng hai chiều hoặc các mảng của các giá trị. Vì vậy mục đích chung của các kiểu đối tượng có thể bằng cách này hay cách khác bao gồm các tham số chứa đựng tất cả những khả năng và các sự lựa chọn này. Bởi vì các đối tượng được quản trị có thể chứa trong chúng rất nhiều thông tin biểu diễn rất nhiều thực thể đang được quản trị, nó tạo nên nhiều chiều định nghĩa tập hợp mở đầu của các kiểu mới cho mỗi hạng chung của đối tượng được quản trị. Điều này có thể được làm trực tiếp trong ASN.1. Tuy nhiên sự lựa chọn này có nhiều trở ngại. Nếu chỉ hạn chế trên việc định nghĩa của một kiểu đối tượng mới là được ghi trong ASN.1, chúng ta có thể thấy nhiều dạng cần phải quan tâm của sự định nghĩa các đối tượng. Sự phong phú này gây nhiều khó khăn hơn cho người sử dụng hay vận hành của MIB để kết hợp nhiều kiểu đối tượng. Hơn nữa tác dụng của sự định nghĩa các kiểu đối tượng không có cấu trúc làm rắc rối thêm cho việc sử dụng SNMP cho truy nhập với nhau được tới các đối tượng được quản trị. Sử dụng SNMP là sử dụng Macro để định nghĩa tập hợp các đối tượng liên quan được sử dụng định nghĩa các đối tượng được quản lý. Sau đây là các mức của sự định nghĩa: Macro Detifition: Định nghĩa những thể hiện Macro hợp lệ, chỉ ra cú pháp của tập hợp các kiểu liên quan. Macro Instance: Một trường hợp cá biệt được phát sinh từ sự định nghĩa Macro đặc trưng bằng việc cung cấp đối số cho các tham số trong sự định nghĩa các Macro; chỉ định kiểu riêng. Macro instance Value: Biểu diễn một thực thể đặc trưng với các giá trị đặc trưng. Macro đã sử dụng cho các MIB SNMP được định nghĩa ban đầu trong RFC 1155 (Structure of Management Information) và sau đó được mở rộng trong RFC 1212 (Concise MIB Definition). Phiên bản RFC 1212 bao gồm nhiều thông tin hơn được sử dụng cho việc định nghĩa các đối tượng trong MIB – II và các phần thêm gần đây của MIB. 3. Định nghĩa bảng (Defining Table). SMI hỗ trợ chỉ một dạng của cấu trúc dữ liệu: Một bảng hai chiều đơn giản với các giá trị vô hướng bên trong. Sự định nghĩa của bảng bao gồm nhiều tác dụng của kiểu Sequence và Sequence of ASN.1 và IndexPart của Macro Object – Type. Cách tốt nhất để có thể giải thích được qui ước của việc định nghĩa bảng là những ví dụ. Chú ý đến kiểu đối tượng Tcp Conn Table, mà đã được đưa ra ở trên, có một bộ định danh đối tượng 1.3.6.1.2.6.13. Đối tượng này bao gồm thông tin về sự đạt được kết nối TCP phù hợp với thực thể được quản trị. Cho mỗi kết nối như vậy, những thông tin theo sau được lưu trữ trong bảng: State: Trạng thái của kết nối TCP Local Address: Địa chỉ IP của đầu này của kết nối. Local Port: Cổng TCP đầu này của kết nối Remote Address: Địa chỉ Ip của đầu kia của kết nối. Remote Port: Cổng TCP đầu kia của kết nối. Bảng kết nối của TCP là một phần của MIB và như vậy nó được đưa ra bởi trạm được quản trị cung cấp sự quan sát tới trạm quản trị của một vài thực thể được biểu diễn bên dưới bởi đối tượng được quản trị. Trong trường hợp này mỗi đầu vào của tcp Conn Table biểu diễn trạng thái của thông tin được lưu giữ trong trạm được quản trị cho một kết nối. Trạng thái của thông tin bao gồm 22 mục riêng của thông tin cho mỗi kết nối. Chỉ 5 trong số những mục này là có thể thấy được trên trên thực tế quản trị mạng bằng việc của tcp conn table. Điều này biểu diễn tầm quan trọng của SNMP trong việc giữ việc quản trị mạng được đơn giản: Chỉ một giới hạn, những tập con có ích của thông tin quản trị được bao gồm các đối tượng quản trị tương ứng. Kỹ thuật cho việc định nghĩa cấu trúc các bảng lúc nào cũng được cho tất cả các bảng và được sử dụng Sequence và Sequence of xây dựng như sau: Toàn thể bảng bao gồm một SEQUENCE OF tcp conn etry. ASN.1 xây dựng SEQUENCE OF bao gồm một hay nhiều phần tử có cùng một kiểu. Trong trường hợp này (và trong tất cả những trường hợp khác của SMI SNMP), mỗi phần tử là một hàng của bảng. Vì vậy một bảng có thể không có hàng nào hoặc nhiều hàng. Mỗi hàng bao gồm một SEQUENCE trong đó có 5 phần tử vô hướng. ASN.1 xây dựng SEQUENCE OF bao gồm một hay nhiều phần tử vô hướng, có thể có một hoặc nhiều kiểu. Trong khi ASN.1 cho phép những phần tử này trở thành tuỳ chọn, SMI giới hạn sử dụng của cấu trúc này tới chỉ những phần tử có tính bắt buộc. Trong trường hợp này mỗic hàng của bảng bao gồm các phần tử có kiểu Interger, Ip Address, Interger (.. 65535). Cuối cùng thành phần Index của định nghĩa đầu vào xác định rõ các giá trị của đối tượng nào được sử dụng để phân biệt một hàng trong bảng. Trong TCP, một socket đơn (địa chỉ IP, cổng TCP) có thể được hỗ trợ cho nhiều kết nối, nhưng trong một thời điểm nào đó có thể có một kết nối đơn giữa một cặp socket. Vì vậy 4 phần tử cuối cùng trong hàng là cần thiết và để phân biệt rõ ràng của một hàng đơn từ bảng. III. Cơ sở thông tin quản trị MIB. MIB II (RFC 1213) định nghĩa phiên bản thứ hai cơ sở thông tin quản trị cơ bản; phiên bản đầu tiên, MIB – I được đưa ra trong RFC 1156. MIB – II là sự mở rộng của MIB – I, với việc thêm vào một số đối tượng và nhóm. Thiết kế MIB II theo những tiêu chuẩn sau cho một đối tượng trong phiên bản mới hơn. Một đối tượng cần thiết cho cả lỗi và cả cấu hình quản trị. Chỉ các đối tượng có tính chất yếu mới được cho phép. Tiêu chuẩn này phản ánh các nhân tố mà các giao thức quản trị hiện tại không có khả năng bảo vệ và làm tăng hiệu quả của các thao tác điều khiển. Các đối tượng phải đáp ứng nhu cầu các chức năng hiện tại đang được sử dụng. Khi MIB I được phát triển, con số của các đối tượng có xu hướng bị giới hạn trong khoảng 100. Điều này sẽ không gây khó khăn cho các nhà sản xuất giới thiệu phần mềm của họ. Trong MIB II, giới hạn này đã gây ra sự loại trừ hầu hết công nghệ đang vận hành MIB I. Tránh các biến rườm rà, không đối tượng nào có thể được dẫn xuất từ những đối tượng khác bao gồm trong MIB I. Những đối tượng bổ xung đặc biệt được thi hành. Sự phát triển chấp nhận tránh giới thiệu rườm rà các phần tiêu chuẩn của mã. Dòng giới thiệu chung là một bộ đếm cho một tiêu chuẩn của một tầng. Từ khi MIB II bao gồm chỉ những đối tượng này mà việc thiết kế cho thấy sự cần thiết của nó, không một đối tượng nào trong các đối tượng là tuỳ chọn. Nhóm MIB II được phân phát thành những nhóm sau: System: Gồm toàn bộ thông tin về hệ thống. Interfaces: Thông tin về mỗi giao diện từ hệ thống tới các mạng nhỏ. at (chuyển đổi địa chỉ; được thay thế): Sự miêu tả của bảng chuyển đổi địa chỉ cho liên mạng tới bản đồ địa chỉ mạng nhỏ. Ip: Thông tin liên quan đến sự vận hành và hoạt động của ICMP trên hệ thống này. Icmp: Thông tin liên quan đến sự vận hành và hoạt động của ICMP trên hệ thống này. Tcp: Thông tin liên quan đến sự vận hành và hoạt động của TCP trên hệ thống này. Udp: Thông tin liên quan đến sự vận hành và hoạt động của UDP trên hệ thống này. Egp: Thông tin liên quan đến sự vận hành và hoạt động của EGP trên hệ thống này. Dot3 (Transmission): Thông tin về các phương thức truyền và các giao thức truy nhập tại mỗi hệ thống giao diện. Snmp: Thông tin liên quan đến sự vận hành và hoạt động của SNMP trên hệ thống này. Tổ chức nhóm là thuận tiện cho tổ chức các đối tượng được quản trị theo như chức năng của các thực thể được quản trị bên dưới. Ngoài ra nó cung câp sự chỉ dẫn cho sự vận hành của các tác nhân được quản lý biết được đối tượng nào phải được bổ xung. Với MIB-I và MIB-II, phương pháp như sau : Nếu ngữ nghĩa của một nhóm có khả năng ứng dụng tới một sự bổ xung, sau đó nó phải bổ xung tất cả các đối tượng trong nhóm đó. Ví dụ như là một sự bổ xung phải bao gồm tất cả các đối tượng trong nhóm tcp nếu là nhóm đó và chỉ nếu nó vận hành giao thức TCP; vì vậy, 1 bridge hay một router không cần thiết bổ xung nhóm tcp. Một sự chấp nhận cho quy luật này là nhóm chuyển đổi địa chỉ. Sau đây là MIB tiêu chuẩn cho Internet. 1. System Group Nhóm System cung cấp thông tin chung về hệ thống được quản trị. Các đối tượng trong nhóm này là tự nó đã rất rõ ràng. System OBJECT IDENTIFIER := {mib 1} SysDescr : sự miêu tả của thực thể như phần cứng, hệ thống điều hành, etc... SysObjectID : định danh của các hệ thống quản trịmạng nhỏ đã bao gồm trong thực thể. SysUpTime : thời gian bắt đầu của hệ thống quản trị từ lúc bắt đầu. SysContact : sự định danh và thông tin liên hệ của người tiếp xúc cho nut được quản trị. SysName : tên quản trị được gán cho nút được quản trị. SysNAme: vị trí địa lý của nút được quản trị. SysServices :giá trị chỉ ra sự thiết lập của dịch vụ trên sự đề nghị thực thể căn bản. 2. Interface Group Nhóm interface bao gồm những thông tin chung về những giao diện vật lý của thực thể, bao gồm thông tin cấu hình và thống kê trên các sự kiện xảy ra tại mỗi giao diện. Mỗi giao diện được kết nối vào hệ thống mạng nhỏ, mặc dù một giao diện tới kết nối điểm - điểm cũng được cho phép. Sự bổ xung của nhóm này có tính bắt buộc cho mọi hệ thống. Nhóm này gồm hai đối tượng mức đỉnh: Số lượng của Interface Interface kết nối ở nút và một bảng đơn chứa thông tin trên các Interface đó. 3. Nhóm chuyển đổi địa chỉ Nhóm chuyển đổi địa chỉ bao gồm một bảng đơn. Mỗi hàng tương ứng với một trong những giao diện vật lý của hệ thống. Mỗi hàng cung cấp sự sắp đặt từ địa chỉ mạng tới địa chỉ vật lý. Thông thường địa chỉ mạng là địa chỉ IP cho hệ thống tại mỗi giao diện. Nhóm này là Deprecated trong MIB II và được bao gồm tương thích cho các nút MIB I. Trong MIB II thông tin chuyển đổi địa chỉ được cung cấp trong phạm vi mỗi nhóm giao thức mạng. Có hai lý do cho sự thay đổi này: Sự cần thiết hỗ trợ cho nhiều nút: Khi một nút hỗ trợ cho nhiều giao thức mạng, sau đó có nhiều mức địa chỉ mạng sẽ được kết hợp với mỗi giao diện vật lý. Sự cần thiết cho hai cách sắp xếp: Bảng địa chỉ trong nhóm chuyển đổi địa chỉ c định nghĩa cho phép sắp xếp xảy ra từ địa chỉ mạng sang điạ chỉ vật lý. Một vài giao thức như hệ thống đầu ISO cho đến giao thức đường dẫn hệ thống tức thời, Cũng yêu cầu sắp xếp từ địa chỉ vật lý tới địa chỉ mạng. Trong MIB-II ( và các MIB trong tương lai), bảng địa chỉ được đặt trong phạm vi các nhóm giao thức mạng thich hợp. Mỗi nhóm co thể có một hay hai bảng hỗ trợ cho việc sắp đặt cho cả hai hướng.tác dụng của hai bảng cho phép không ràng buộc sự bổ xung nhưng không ngăn chặn việc sử dụng cấu truc dữ liệu đơn ở bên trong được thể hiện bên cạnh như hai bảng. 4. If Group Nhóm này chứa thông tin thích hợp cho bổ xung và vận hành của IP tại nút. Từ khi IP được vận hành trên hai đầu của hệ thống (host) và các hệ thống trung gian (router), không phải tất cả các đối tượng trong nhóm này là thích hợp cho hệ thống đưa ra. Các đối tượnglà không thích hợp có các giá trị NULL. 5. ICMP Group Giao thức IPMP(internet control message protocol) (được định nghĩa trong RFC 972) là một phần tổ hợp của giao thức TCP/IP. Nó đi cùng với IP.Có nghĩa tất cả hệ thống vận hành IP cũng phải cung cấp ICMP. ICMP nghĩa là cho việc chuyển đổi thông báo từ các bộ dẫn đường và các host khác tới một host. Thực chất, nó cung cấp thông tin phản hồi về vấn đề trong môi trường giao tiếp. Thí dụ như tác dụng của nó bao gồm: Khi một datagram không thể đến được đích của nó, khi mà bộ dẫn đường không có khả năng lưu trữ datagram đến trước và khi bộ dẫn đường có thể chỉ dẫn host gửi khả năng chuyển tải trên đường dẫn ngắn hơn. Trong hầu hết trường hợp, một thông báo ICMP được gửi trả lời tới datagram, bằng bộ dẫn đường hay host đích đã được dự định. Nhóm ICMP chứa thông tin liên quan sự cài đặt và vận hành của ICMP tại nút. Nhóm này bao gồm các kiểu bộ đếm đơn của các kiểu thông báo ICMP được gửi và được nhận. 6. TCP Group Nhóm TCP chứa thông tin liên quan tới sự cài đặt và vận hành của TCP tại nút. Chỉ có bảng là phần của nhóm này la tcpConn Table. Khi thực thể TCP truyền một đoạn ,nó chờ để ở bên nhận một sự nhận biết. Nếu đoạn này bị mất hay bị hỏng, hay sự đáp ứng của nhận biết bị mất hay bị hỏng, bên gửi thực thể TCP không nhận được thông báo nhận biết và thậm chí hết thời gian và truyền lại đoạn dữ liệu. Mất khá nhiều thời gian cho bên thực thể TCP gửi để trước khi bắt đầu truyền lại được quản lý bởi một thuật toán. 7. UDP Group Nhóm chứa thông tin liên quan đến sự bổ xung và vận hành của UDP tại nút. Ngoài ra còn chứa thông tin về các datagram được gửi và nhận, nhóm UDP bao gồm UDP table. Bảng này chứa thông tin về các điểm cuối UDP của thực thể trên ứng dụng địa phương hiện tại đang chấp nhận các datagram.Cho mỗi người sử dụng UDP như vậy, bảng chứa địa chỉ IP và cổng UDP cho người sử dụng . 8. egp Group Nhóm EGP chứa thông tin liên quan đến sự bổ xung và vận hành của giao thức EGP(external Gateway Protocol) tại nút. Ngoài ra còn chứa thông tin về các thông báo EGP được gửi và được nhận, nhóm egp bao gồm egpNeigh Table. Bảng được biểu diễn bởi egpNeigh Addr là địa chỉ IP cho getway bên cạnh. 9. Nhóm truyền Nhóm này được dự định chứa các đối tượng cung cấp chi tiết về môi trường truyền bên dưới cho mỗi giao diện trên hệ thống. Trong thực tế thì nó không phải là nhóm, nhưng thường là nút bên dưới phân cấp MIB-II là các nhóm giao diện đặc biệt phong phú được đặt ở đó. Ngược lại nhóm Interfaces chứa thông tin chung cung cấp tới tất cả các giao diện. Những giao diện của MIB đặc biệt này chứa thông tin đặc biệt liên quan tới kiểu riêng biệt của mạng nhỏ. IV. Giao thức quản trị mạng SNMP Chỉ những sự hoạt động được hỗ trợ trong SNMP là được giao thức thay đổi và kiểm tra. Đặc biệt, 3 mục đích vận hành chung có thể được cho phép trên các phần tử vô hướng: Get : trạm quản trị lấy các giá trị đối tượng vô hướng từ trạm được quản trị. Set: trạm quản trị cập nhật giá trị các đối tượng vô hướng trong trạm được quản trị. Trap: trạm được quản trị gửi một giá trị đối tượng vô hướng tự nguyện tới trạm quản trị. Không thể thay đổi được cấu trúc của MIB bằng việc thêm hay xoá đicc đối tượng đặc biệt (thêm hay xoá đi các dòng của bảng ). Và cũng không thể đưa ra các lệnh cho một hành động được thực thi. Hơn nữa, việc truy cập được cung cấp chỉ những lá trong cây định danh đối tượng. Có nghĩa là không thể truy nhập hoàn toàn một bang hay một hàng của bảng với một đơn vị hành động. Những giới hạn này làm đơn giản hoá rất nhiều sự vận hành của SNMP. Nói cách khác, chúng giới hạn khả năng của hệ thống quản trị mạng. 1. Các nhóm và các tên nhóm (Communities and Community Names) Quản trị mạng có thể xem như là việc phân phối các ứng dụng. Giống như là việc phân phối các ứng dụng, quản trị mạng bao gồm sự tương tác của giao thức ứng dụng tới số các thực thể ứng dụng đã được hỗ trợ. Trong ttrường hợp quản trị mạng dựa trên SNMP, các thực thể ứng dụng là các ứng dụng trạm quản trị và các ứng dụng trạm được quản trị( tác nhân) sử dụng SNMP là giao thức hỗ trợ. Quản trị mạng SNMP có một vài đặc tính không giống như việc phân phát các ứng dụng . Các ứng dụng này liên quan tới quan hệ một- nhiều giữa các trạm quản trị và một tập các trạm được quản trị: trạm quản trị có thể lấy và thiết lập các đối tượng trong trạm được quản trị và nhận cac trap từ các trạm được quản trị.Vì vậy từ điểm quan sát vận hành và điều khiển, trạm quản trị quản lý một số trạm được quản trị. Có thể có một số trạm quản trị, một trong chúng quản lý tất cả hay một tập nhỏ các trạm được quản trị trong cấu hình quản trị. Các tập nhỏ này có thể giới hạn sự truy nhập tới MIB của các trạm được quản trị chồng lên nhau. Mỗi trạm được quản trị điều khiển MIB cục bộ của riêng nó và phải được điều khiển việc sử dụng của MIB đó bằng một số trạm quản trị. Có ba khía cạnh cho điều khiển này: authentication service: trạm được quản trị có thể mong muốn giới hạn sự truy nhập MIB của các trạm được quản trị uỷ quyền. Access policy: trạm được quản trị có thể mong muốn đem lại các đặc quyền truy nhập khác nhau tới các trạm quản trị khác nhau. Proxy service: một trạm được quản trị đóng vai trò như một sự uỷ quyền tới các trạm được quản trị khác. Tất cả các khía cạnh này liên quan tới việc bảo mật. Trong 1 môi trường chịu trách nhiệm cho thành phần mạng bị phân tách, như là số các thực thể quản trị, trạm được quản trị cần phải tự bảo vệ chúng và MIB của chúng từ những truy nhập không cho phép và không mong muốn. SNMP được định nghĩa trong RFC 1157, cung cấp chỉ khả năng bảo vệ thô sơ và bị giới hạn. Một nhóm SNMP là một mối quan hệ giữa tác nhân SNMP và một tập hợp các hệ thống dcd quản trị định nghĩa sự xác nhận, điều khiển truy nhập, và các đặc tính uỷ nhiệm, ý tưởng của nhóm là một địa phương, được định nghĩa tại hệ thống được quản trị. Hệ thống được quản trị thiết lập 1 nhóm cho mỗi sự kết nối mong muón của xác nhận, điều khiển truy nhập, và các đặc tính uỷ nhiệm. Mỗi nhóm được đưa ra tên nhóm duy nhất (trong phạm vi tác nhân này) và trạm quản trị trong phạm vi nhóm đó được cung cấp với và phải dùng tên nhóm trong tất cả các toán tử get và set. Tác nhân có thể thiết lập một số nhóm, với các thành viên của trạm quản trị xếp chồng lên nhau. Từ khi các nhóm được định riêng tại các tác nhân, cùng một tên có thể được sử dụng trong nhiều tác nhân khác nhau. Sự phân biệt của tên là không liên quanvà không chỉ ra một sự giống nhau nào giữa các nhóm được định nghĩa. Vì vậy trạm quản trị phải giữ sự theo dõi của tên nhóm hay các tên đã liên quan tới mỗi trong các tác nhân mà chúng mong muón truy nhập. 2. Dịch vụ xác nhận (Authentication service) Một dịch vụ xác nhận được liên quan tới việc chắc chắn rằng một giao tiếp là xác nhận. Trong trường hợp một thông báo SNMP, chức năng của một dịch vụ xác nhận có thể sẽ chắc chắn bên nhận nhận được thông báo là từ nguồn nơi mà chúng được thỉnh cầu. Tất cả các thông báo từ trạm quản trị tới một tác nhân bao gồm tên nhóm. Chức năng này của các tên như là password, và thông báo thì được giả sử như là xác nhận nếu bên gửi biết password. Với khuôn dạng đã được giới hạn này của sự xác nhận, nhiều người quản trị mạng sẽ bị miễn cưỡng cho phép một vài thứ hơn việc giám sát mạng: đó là, các sự thao tác Get và Trap. Điều khiển mạng, theo một thao tác Set, rõ ràng là một sự nhạy cảm hơn. Tên của nhóm có thể được sử dụng khởi động một thủ tục xác nhận, với chức năng tên đơn giản như là một sự khởi tạo thiết lập password trên màn hình. 3. Phương thức truy nhập (Access Policy) Bằng việc định nghĩa một nhóm, một tác nhân giới hạn truy nhập tới một tập đã được chọn của các trạm quản trị. Bằng việc sử dụng nhiều hơn một nhóm, tác nhân có thể cung cấp các hạng truy nhập khác nhau của MIB tới các trạm quản trị. Có 2 khía cạnh cho việc điều khiển truy nhập này: SNMP MIB view: một tập hợp nhỏ của các đối tượng trong phạm vi MIB. Các khung nhìn khác nhau cho MIB có thể định nghĩa cho mỗi nhóm. Tập các đối tượng trong khung nhìn không cần phải thuộc về các cây nhỏ của MIB. SNMP access mode: một phần tử của tập {READ-ONLY, READ-RITE}. Một kiểu truy nhập được định nghĩa cho mỗi nhóm. Sự kết hợp của một MIB view và một kiểu truy nhập được đề cập như là một sơ lược nhóm SNMP. Vì vậy, một nhóm sơ lược bao gồm tập con đã được định nghĩa của MIB tại tác nhân, thêm một kiểu truy nhập cho các đối tượng đó. Kiểu truy nhập SNMP được cung cấp giống nhau cho tất cả các đối tượng trong khung nhìn MIB. Vì vậy , nếu kiểu truy nhập READ-ONLY được chọn, nó cung cấp tới tất cả các đối tượng trong khung nhìn và giới hạn sự truy nhập của các trạm quản trị tới khung nhìn cho thao tác read-only. Trong phạm vi sơ lược nhóm, 2 giới hạn truy nhập riêng phải được điều hoà. Định nghĩa của mỗi đối tượng MMIB bao gồm một mệnh đề ACCESS của đối tượng với kiểu truy nhập SNMP đã chịu đựng cho khung nhìn. Tất cả các quy luật đều không phức tạp. Tuy nhiên, chú ý rằng thậm chí nếu một đối tượng được khai báo như là read-only, nó có thể với SNMP đọc đối tượng đó; đây là một nội dung bổ xung đặc biệt. Mô tả sơ lược của nhóm được liên hệ với mỗi nhóm đã được định nghĩa bởi một tác nhân; sự kết hợp của nhóm SNMP và mô tả sơ lược nhóm SNMP là được đề cập đến như là một phương thức truy nhập. Hạng MIB ACCESS Kiểu truy nhập SNMP READ-ONLY READ-WRITE Read-only Sẵn sàng cho các thao tác get và trap Read-only Sẵn sàng cho các thao tác get và trap Sẵn sàng cho các thao tác get và trap Write-only Sẵn sàng cho các thao tác get và trap, nhưng giá trị là sự vận hành đặc biệt Sẵn sàng cho các thao tác get và trap, nhưng giá trị là sự vận hành đặc biệt cho các thao tác get và trap Không truy nhập Không sẵn sàng Hình 4.5: Mối quan hệ giữa hạng truy nhập MIB và kiểu truy nhập SNMP SNMP agent Set of SNMP managers SNMP MIB view SNMP community SNMP Access mode SNMP Access policy SNMP community (community name) Hình 4.6: Các khái niệm quản trị 4. Dịch vụ uỷ quyền (Proxy Service) Nhóm cũng có tác dụng trong việc hỗ trợ cho dịch vụ uỷ quyền. Thông thường các thiết bị khác là ở bên ngoài trong đó chúng không hỗ trợ TCP/IP và SNMP. Trong một vài trường hợp, hệ thống được uỷ quyền có thể hỗ trợ SNMP nhưng sự uỷ quyền được sử dụng tối thiểu tác động qua lại giữa thiết bị được uỷ quyền và các hệ thống quản trị mạng. Cho mỗi thiết bị mà hệ thống uỷ quyền biểu diễn, nó đạt được một phương thức truy nhập SNMP. Vì vậy sự uỷ quyền biết các đối tượng MIB nào được sử dụng để quản lý hệ thống đã uỷ quyền (the MIB view) và kiểu truy nhập của chúng. 5. Các khuôn dạng SNMP (SNMP Formats) Với SNMP, thông tin được trao đổi giữa một trạm quản trị và một tác nhân trong dạng của một thông báo SNMP. Mỗi thông báo bao gồm một version number chỉ ra phiên bản của SNMP, một tên nhóm được sử dụng cho sự trao đổi này và một trong 5 kiểu của khối dữ liệu giao thức (UDP). Chú ý rằng các GetRequest, GetNextRequest và SetRequest PDU cũng có cùng dạng giống như là GetResponse PDU với trường error-status và error-index luôn gán giá trị 0. Quy ước này giảm xuống bởi 1 trong số của các dạng PDU khác nhau với thực thể SNMP phải phân phát. Mặc dù trường PDU type được miêu tả trong hình vẽ bên, không có trường PDU type được định nghĩa trong ASN.1. Tuy nhiên, mỗi 1 trong 5 PDU khác nhau được định nghĩa như là một kiểu ASN riêng biệt. 6. Sự truyền dẫn của một thông báo SNMP Theo nguyên tắc, một thực thể SNMP thực thi những hành động sau để truyền 1 trong 5 kiểu PDU tới thực thể SNMP khác: 1. PDU được xây dựng sử dụng cấu trúc ASN.1 đã định nghĩa trong RFC1157. 2. Khối PDU này sau đó được đưa tới một dịch vụ xác nhận cùng với nguồn và đích của địa chỉ truyền tải và tên nhóm. Dịch vụ xác nhận sau đó tiến hành vài sự biến đổi cần thiết cho sự trao đổi này, như là sư mã hoá dữ liệu hay kể cả một mã xác nhận, và trả lại kết quả. 3. Thực thể giao thức sau đó xây dựng một thông báo, bao gồm trường version, tên nhóm, và kết quả từ bước 2. 4. Đây là một đối tượng ASN.1 mới được giải mã ngay sau đó sử dụng các luật giải mã cơ bản và đưa tới dịch vụ truyền tải. Version Community SNMP PDU PDU type Request-id 0 0 Variablebinding PDU type Request-id error-status Error-index Variablebinding PDU type enterprise Agent-addr Erneric-trap Specific-trac Time-stap Variablebinding Name1 Value1 Name2 Value2 € Namen Valuen (a) SNMP Message (b)GetRequest PDU, GetNextRequst PDU, and SetRequest PDU (c)GetResponse PDU (d)Trap PDU (e)Variablebindings Hình 4.7: Các khuôn dạng SNMP Version: Phiên bản của SNMP Community: Một cặp của một tác nhân SNMP với một vài tập tuỳ ý của các thực thể ứng dụng SNMP Request-id: Được sử dụng để phân biệt một vài yêu cầu bên ngoài bằng việc cung cấp mỗi yêu cầu với một ID duy nhất Error-status: Được sử dụng chỉ sự ngoại lệ đã sảy ra trong yêu cầu tiến trình; các giá trị là noError(0), tooBig (1). NoSuchName (2), badvalue (3), readOnly (4), genErr (5) Error-index: Khi error-status ở trạng thái khác 0, có thể cung cấp thông tin thêm bằng việc chỉ ra biến trong mệnh đề của sự loại trừ Variablebindings: Danh sách của các tên biến và các giá trị tương ứng Enterprise: Kiểu của các đối tượng phát sinh Trap; dựa trên sysObjectID Agent-addr: Địa chỉ của các đối tượng phát sinh trap Gerneric-trap: Kiểu của trap chung; giá trị là coldStar (0), warmStar (1), linkDown (2), linkUp (3), authentication-Failure (4), egpNeighborLoss (5), enterprise-Specific (6) Speccific-trap: Mã trap đặc biệt Time-stamp: Thời gian trôi qua giữa 2 lần khởi tạo cuối cùng của thực thể mạng và sự phát sinh của trap; chứa giá trị của sysUpTime. 7. Quá trình nhận của một thông báo SNMP Theo nguyên tắc, một thực thể SNMP thực hiện các công việc sau vào lúc nhận được thông báo SNMP: Kiểm tra cú pháp cơ bản của thông báo và loại bỏ thông báo nếu nó phân tích hỏng. Phân loại phiên bản và loại bỏ thông báo nếu nó không phù hợp. Thực thể giao thức sau đó nhận tên người sử dụng, phần PDU của thông báo và địa chỉ truyền tải của nguồn và đích tới một dịch vụ xác nhận. Nếu sự xác nhận thất bại, dịch vụ xác nhận đánh dấu thực thể SNMP phát sinh trap và loại bỏ thông báo. Nếu xác nhận thành công, dịch vụ xác nhận trả lại một PDU trong dạng của một đối tượng ASN.1 thích hợp đã được định nghĩa trong RFC 1157. Thực thể giao thức kiểm tra cú pháp cơ bản của PDU và loại bỏ PDU đó nếu phân tích thất bại. Nói cách khác sử dụng tên nhóm, phương thức truy nhập SNMP là sự chọn lựa và PDU được xử lý như trên. Sau đây là định nghĩa của RFC 1157 về các dạng của SNMP: RFC 1157-SNMP DEFINTION::=BEGIN IMPORT ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks FROM RFC 1157-SMI; --thông báo mức cao nhất Message ::= SEQUENCE {version INTEGER [version-1 (0) ] , Community OCTET STRING, Data ANY } --các khối dữ liệu giao thức PDUs ::=CHOICE {get-request GetRequest-PDU , Get-next-request GetNextRequest-PDU , Get-response GetResponse-PDU , Set-request SetRequest-PDU , Trap Trap-PDU } -- các PDU GetRequest – PDU ::= [0] IMPLICIT PDU GetNextRequest PDU ::= [1] IMPLICIT PDU GetResponse PDU ::= [2] IMPLICIT PDU SetRequestPDU ::= [3] IMPLICIT PDU PDU ::= SEQUENCE { request – id INTEGER Error – Status INTEGER { NoError (0) TooBig (1) NoSuchName (2) BadValue (3) ReadOnly (4) GenError (5)} Error – index INTEGER, Variable – binding VarBindList } Trap – PDU ::= [4] IMPLICIT SEQUENCE { Enterprise OBJECT IDENTIFIER, Agent – addr NetwworkAddress, Generic – trap INTEGER { ColdStart (0), WarmStart (1), LinkDown (2), LinkUp (3), AuthenticationFailure (4), EgpNeighborLoss (5), EnterpriseSpecific (6)} Specific – trap INTEGER, Time – stamp TimeTicks, Variable – bindings VarBindList} -- Liên kết biến VarBindList ::=SEQUENCE OF VarBind END. 8. Các liên kết biến Tất cả các hoạt động của SNMP đều liên quan tới truy nhập một thể hiện đối tượng. Chỉ các lá của cây định danh đối tượng có thể được truy nhập; đó chỉ là các đối tượng vô hướng. Tuy nhiên trong SNMP có thể nhóm các một số các thao tác trong cùng một kiểu (get, set, trap) thành một thông báo đơn. Vì vậy nếu một trạm quản trị muốn có được các giá trị của các đối tượng vô hướng trong một nhóm riêng tại một tác nhân nào đó, nó có thể gửi thông báo đơn, yêu cầu tất cả các giá trị, và đạt được một đáp ứng đơn, danh sách tất cả các giá trị Vận hành sự trao đổi nhiều đối tượng, tất cả các PDU SNMP bao gồm trường variablebindings. Trường này bao gồm một tuần tự các tham chiếu tới các thể hiện đối tượng, cùng với các giá trị của các đối tượng này. Một vài PDU được liên quan tới tên của thể hiện đối tượng. Trong trường hợp này thực thể giao thức nhận được bỏ qua các giá trị đầu vào trong trường variablebindings. 8.1 GetRequest PDU GetRequest PDU được đưa ra bởi một thực thể SNMP thay cho ứng dụng quản trị mạng. Thực thể gửi bao gồm những trường sau đây trong PDU: PDU type: Chỉ ra rằng đây là GetRequest PDU. Request – id: Thực thể gửi gán các số mỗi yêu cầu nổi bật tới cùng một tác nhân được định danh duy nhất. Mỗi trường Request – id cho phép ứng dụng SNMP tương quan tới các đáp ứng yêu cầu nổi bật. Nó cũng cho phép thực thể SNMP đối phó với các bản sao của PDU đã được tái sinh bởi dịch vụ truyền tải không đáng tin cậy. Variablebinding: Trường này đưa ra danh sách của các thể hiện thực thể mà các giá trị của chúng được yêu cầu. Thực thể nhận SNMP đáp ứng tới một Getrequest PDU với một Getrequest PDU chứa cùng Request – id. Sự vận hành Getrequest là phần nhỏ: Tất cả các giá trị hoặc là được nhận hoặc là không. Nếu thực thể đáp ứng có thể cung cấp các giá trị cho tất cả các biến được lên danh sách trong danh sách trường Variablebinding đến, sau đó GetResponse PDU bao gồm trường Variablebinding với giá trị đã cung cấp cho mỗi biến. Nếu ít nhất một trong các biến không được cung cấp sau không có giá trị được trả lại. 8.2 GetNextRequest PDU. GetNextRequest PDU hầu hết giống hệt GetRequest PDU. Nó có cùng mẫu trao đổi PDU và cùng dạng giống như là GetRequest PDU. Chỉ có một sự khác nhau sau đây: Trong GetRequest PDU, mỗi biến của danh sách Variablebinding đề cập tới một thể hiện đối tượng mà giá trị của chúng được trả lại Trong GetNextRequest PDU với mỗi biến, sự đáp ứng là trả giá trị của thể hiện đối tượng là thứ tự trong từ điển. (a) Get value (b) Get value (d) Get value (c) Get value Hình 4.8. SNMP PDU 8.3 SetRequest PDU SetRequest PDU được đưa ra bởi một thực thể SNMP đại diện cho ứng dụng trạm quản trị mạng. Nó có cùng phần trao đổi PDU và cùng dạng như là GetRequest PDU. Tuy nhiên SetRequest được sử dụng viết một đối tượng hơn là đọc một đối tượng. Vì vậy Variablebinding đưa ra danh sách trong SetRequest PDU bao gồm cả hai bộ định danh thể hiện đối tượng và giá trị được gán cho chúng. Thực thể nhận SNMP đáp ứng tới một SetRequest PDU với một GetResponse PDU chứa cùng một Request – id. Hoạt động của SetRequest là nguyên tử: hoặc tất cả các biết được cập nhật hoặc không có biến nào. Nếu một thực thể phản ứng cá thẻ thiết lập các giá trị của tất cả các biến đã được liệt kê trong danh sách Variablebindings, sau đó không giá trị nào được trả lại và không có giá trị nào được cập nhật. Cùng một điều kiện lỗi được sử dụng trong trường hợp GetRequest có thể được trả lại (noSuchName, tooBig, genErr). Một điều kiện lỗi khác có thể được thông báo: badValue. Nó sẽ được trả lại nếu SetRequest chứa ít nhất một cặp tên biến và giá trị không nhất quán. Sự không nhất quán có thể là kiểu, độ dài, hay giá trị thực tế của giá trị được cung cấp. 9.Trap PDU Trap PDU được đưa ra bởi một thực thể SNMP đại diện cho tác nhân quản trị mạng. nó được sử dụng cung cấp cho một trạm quản trị với một sự thông báo không đồng bộ của một vài sự kiện có ý nghĩa. Khuôn dạng của nó thực sự khác so với các PDU khác. Các trường là: PDU type: chỉ ra trap PDU Enterprise: định danh một hệ thống quản trị mạng nhỏ tạo ra trap (giá trị của trap được lấy từ sysObjectID trong nhóm System). Agent-addr: địa chỉ IP của nhóm phát sinh đối tượng. Generic-trap: một trong những kiểu trap được định nghĩa trước. Specific-trap: một mã chỉ ra sự tự nhiên của trap một cách mạch lạc rõ ràng. Time-stamp: thời gian giữa lần khởi tạo (hoăc khởi tạo lại) cuối cùng của thực thể mạng đã đưa ra trap và tái phát sinh của trap. Variablebindings: thông tin thêm liên quan đến trap ( sự quan trọng nhât của trường này là sự vận hành đặc biệt). Trường generic-trap có thể có một trong 7 giá trị sau: coldStart (0): thực thể SNMP tự nó khởi tạo như là cấu hình của tác nhân hay sự vận hành thực thể giao thức có thể được thay đổi. Thông thường đây là điều không mong muốn bắt đầu lại tăng lên một sai hỏng hay một lõi cơ bản. WramStart (1): thực thể SNMP tự nó khởi tạo lại không như là cấu hình của tác nhânhay là sự vận hành của thực thể giao thức bị thay đổi. Thông thường thì đây là thủ tục khởi tạo lại. LinkDown (3): báo hiệu một sự thất bại của kết nối giao tiếp của tác nhân. Phần tử thứ nhất trong trường Variablebindings là tên và giá trị của ifindex cá biệt cho giao diện tham chiếu. LinkUp (3): LinkDown (3): báo hiệu cho biết một trong những kết nối của tác nhân tăng lên. Phần tử thứ nhất trong trường Variablebindings là tên và giá trị của ifindex cá biệt cho giao diện tham chiếu. AuthentificationFailure (4): sự báo hiệu này thể hiện thực thể giao thức gửi đã nhậndc thông báo giao thức có xác nhận thất bại. EgpNeighborLooss (5): sự báo hiệu này thể hiện một EGP hàng xóm gửi thực thể giao thức là một EGP ngang hàng đã ghi và quan hệ ngang hàng không tồn tại lâu. EnterpriseSpecific (6): báo hiệu rằng thực thể giao thức gửi đi nhận ra một vài sự kiện đặc biệt đã sảy ra. Trường specific-trap chỉ ra kiểu của trap. Không giống như là GetRequest, GetNextRequest và SetRequest PDU, Trap PDU không đưa ra đáp ứng từ phía khác. 9.1. Gửi một trap PDU Khi một sự kiện ngoại lệ xuất hiện, tác nhân nhận diện những trạm quản trị mà nó gửi đến, chọn một nhóm thích hợp và gửi một trap PDU đến trạm quản trị đó. 9.2. Nhận một trap PDU Dựa vào trap PDU trạm quản trị xử lý thông báo một cách thích hợp. 10. SNMP Group Nhóm SNMP đã định nghĩa giống như một phần của MIP-II chứa thông tin liên quan đến sự vận hành và thao tác của SNMP. Một vài đối tượng đã được định nghĩa trong nhóm được gán giá trị 0 trong những sự vận hành của SNMP chỉ hỗ trợ các chức năng trạm quản trị SNMP hay là chỉ các chức năng của tác nhân SNMP. Loại trừ đối tượng cuối cùng của nhóm, tất cả các đối tượng là bộ đếm có chức năng chỉ đọc. Đối tượng SNMPEnableAuthen trap có thể được thiết lập bởi trạm quản trị. Nó chỉ ra chăng tác nhân được cho phép phát sinh các trap xác nhận thất bại. Điều này thiết lập dẫn xuất thông tin cấu hình riêng của tác nhân. Vì vậy, nó cung cấp một ý nghĩa là nhờ đó tất cả các trap xác nhận thất bại có thể bị vô hiệu hoá. Sau đây là định nghĩa các đối tượng của nhóm snmp. SnmpInPkts: tổng số các thông báo được phân phát tới thực thể SNMP từ dịch vụ truyền tải. SnmpOutPkts: tổng số các thông báo đưa đến từ thực thể SNMP tới dịch vụ truyền tải. SnmpInBadVersion: tổng số các thông báo SNMP đã phân phát tới thực thể SNMP được sử dụng một tên nhóm SNMP không biết đến thực thể. SnmpInBacommunityuSes: Tổng số thông báo SNMP đã phân phát tới thực thể SNMP được biểu diễn sự vận hành SNMP không được chob phép bởi nhóm SNMP đã được đặt tên trong thông báo. SnmpInASNParseErrs: Tổng số các lỗi ASN.1 hay BER được phát hiện khi giải mã thông báo SP nhận được. SnmpInTooBigs:Tổng số các PDU SNMP Được phân phát tới thực thể SNMP cho giá trị của trường error-status là tooBig. SnmpInNoSuchNames: tổng số các PDU SNMP được phân phát tới thực thể SNMP cho giá trị của trường error-status là noSuchName. SnmpInbadvalues: tổng số các PDU SNMP được phân phát tới thực thể SNMP cho giá trị của trường error-status là badValue. SnmpInReadOnlys: tổng số các PDU SNMP được phân phát tới thực thể SNMP cho giá trị của trường error-status là readOnly. SnmpInGenerrs: tổng số các PDU SNMP được phân phát tới thực thể SNMP cho giá trị của trường error-status là genErr. SnmpIn TotalReqVars: tổng số các đối tượng đã phục hồi thành công bởi thực thể SNMP như là kết quả của các Get-Request và Get-Next PDU SNMP hợp lệ nhận được. Snmp TotalSetVars: tổng số các đối tượng đã phục hồi thành công bởi thực thể SNMP như là kết quả của các Set-Request PDU SNMP hợp lệ nhận được. SnmpInGetRequests: tổng số các Get-Request PDU SNMP đã được chấp nhận và được tiến hành bởi thực thể SNMP SnmpGetNexts: tổng số các Get-Next PDU SNMP đã được chấp nhận và được tiến hành bởi thực thể SNMP. SnmpInSetRequests: tổng số các Set-Request PDU SNMP đã được chấp nhận và xử lý bởi thực thể SNMP. SnmpInGetResponses: tổng số các Get-Response PDU SNMP đã được chấp nhận và xử lý bởi thực thể SNMP. SnmpInTrap: tổng số các Trap PDU SNMP đã được chấp nhận và xử lý bởi thực thể SNMP. SnmpOutTooBigs: tổng số các PDU SNMP đã phát sinh bởi thực thể SNMP cho giá trị trong trường error-status là tooBig. SnmpOutNoSuchNames: tổng số các PDU SNMP đã phát sinh bởi thực thể SNMP cho giá trị trong trường error-status là noSuchName. SnmpOutBadValues: tổng số các PDU SNMP đã phát sinh bởi thực thể SNMP cho giá trị trong trường error-status là badValue. SnmpOutGenErrs: tổng số các PDU SNMP đã phát sinh bởi thực thể SNMP cho giá trị trong trường error-status là genErr. SnmpOutRequests: tổng số các Get-Request PDU SNMP đã phát sinh bởi thực thể SNMP. SnmpOutGetNexts: tổng số các Get-Next PDU SNMP đã phát sinh bởi thực thể SNMP. SnmpOutSetRequests: tổng số các Set-Request PDU đã phát sinh bởi thực thể SNMP. SnmpGetResponses: tổng số các Get-Response đã phát sinh bởi thực thể SNMP. SnmpOutTraps: tổng số các Trap PDU đã phát sinh bởi thực thể SNMP. Snmp EnableAuthnertaps: các trap xác nhận thất bại có khả năng hay không có khả năng. V. Mã hóa dữ liệu 1. Mức đỉnh. ở mức đỉnh, BER mô tả làm thế nào để lập một kiểu ASN.1 đơn. Đây là một kiểu đơn giản như là một số INTERGER hoặc một kiểu phức tuỳ ý. Sử dụng BER, mỗi kiểu ASN.1 được mã hoá thành ba đường: Tag: cho biết kiểu ASN.1. Lenght: cho biết kích thước của bản mã giá trị ASN.1 Value: là bản giá trị ASN.1. Như vậy kiểu ASN.1 được mã hoá thành ba trường. Tag Lenght Value Vì vậy SN.1 có thể được dùng để định nghĩa các kiểu tuỳ ý, BER phải có khả năng cung cấp bản mã tạp tuỳ ý. BitOdering (thứ tự bit) Theo cách nhìn của BER, mỗi octet chứa 8 bit, hoặc bit cao hơn được gọi là bit 8, bit bậc thấp gọi là bit 1. 8 7 6 5 4 3 2 1 octet To network Biểu diễn số: Phần lớn các trường đã lập mã bằng BER là các giá trị INTEGER được biểu diễn thành các số nhị phân. Có 2 cách biểu diễn các số này phụ thuộc vào các số được biểu diễn là âm hay không. Để mã hoá một số nguyên có giá trị bất kỳ (âm, dương hoặc zero), người ta sử dụng một biểu diễn bù 2. Trong lược đồ này, một chuỗi các octet được dùng để biểu diễn số. Bít 8 của byte đầu tiên là bit quan trọng nhất và bit của byte cuối cùng ít quan trọng nhất. Một octet nội dung đơn có thể được dùng để mã hoá một số nguyên có giá trị trong khoảng -128 đ127. Còn một octet nội dung kép có thể được dùng để mã hoá một số nguyên có giá trị trong khoảng -65536 đ65535. Để đảm bảo các bản mã này là đặc dày đặc, BER không cho phép 9 bit dầu tiên bằng không hoặc zero hoặc điểm 1. Biểu diễn thứ hai được dùng để lập các mã giá trị nguyên không âm. Đây đâu là một phương án đơn giản, gọi là unsigned reprentation (biểu diễn không dấu). Trong đó, bit bậc cao góp phần vào bộ đếm nhiều hơn lượng giảm bớt từ chúng. Dẫn đầu được điểm 0 (để tương thích với CCITT x 409). 1.1. Tag Field Trường tag được mã hoá thành một số octet định danh tương ứng với các định nghĩa của kiểu ASN.1. Có 4 lớp tag trong ASN.1: universial tags: Dùng cho những kiểu dữ liệu quen biết. application-wide tags: được địng nghĩa với một đơn vị đo ASN.1 đơn. contex specific tags: được dùng để cung cấp thông tin phân biệt trong các kiểu cấu trúc. private-use tags: được sử dụng với sự thoả thuận của các bộ phận. Ngoài việc thuộc về một trong các lớp này, một tag còn kết hợp với số nguyên không âm. Như vậy, trường tag được gọi một cách chính thức là indentifier octets (các octet định danh). Trương tag gồm có một hay nhiều octet. Octet đầu tiên mã hoá của lớp tag. Cùng với dấu hiệu việc lập mã là cấu trúc hay không. Vì cô 4 lớp tag, có thể biểu diễn bằng 2 bit (bit 7 và bit 8) của octet. Bit tiếp theo để biểu thị dấu hiệu sơ cấp hay cấu trúc (gọi tắt là f). Class number f 8 7 6 5 4 3 2 1 Mã hoá hai bit cao (7và 8) là: Class Bit 8 Bit 7 Universal Application-wide Context-specific Private 0 0 1 1 0 1 0 1 Như vậy, 5 bit còn lại để mã hoá một số không âm. Những số này có thể được dùng để lập mã một số nguyên không âm từ 0 đến 63. Nhưng có thể có nhiều hơn 64 kiểu nên BER sử dụng luật sau: Nếu Tag nhỏ hơn 31 thì nó mã hoá 5 bit còn lại, sử dụng biểu diễn không dấu. Các trường hợp còn lại từ bit 5 đến bit 1 được thiết lập về 1, các số tiếp theo chứa số của tag. Như vậy nhiều trường hợp, một octet đơn đủ để mã hoá trường tag. Trong các trường còn lại một hoặc nhiều octet tiếp ngay sau octet đầu tiên này được dùng để mã hoá tag. Khi đó, nếu bit 8 của octet tiếp theo được thiết lập về không thì biểu thị octet đặc biệt này là octet cuối cùng của trường tag. Class f 1 1 1 1 1 1 1 0 Trong trường hợp số tag lớn hơn hoặc bằng 31 thì giá trị được mã hoá sử dụng số nguyên không dấu được tìm thấy bằng cách nối giá trị 7 bit theo sau các octet định danh đầu. 1.2 Lenght field. Trường độ dài được mã hoá thành một số octet độ dài. Bản mã này biểu thị có bao nhiêu octet tiếp theo tạo nên giá trị của kiểu ASN.1 được mã hoá. Nếu không tính trước được giá trị của trường độ dài thì BER có hai cách giải quyết cho tình huống này: Giải pháp thứ nhất là cung cấp một giá trị đặc biệt trường độ dài gọi là Indentifinite form (dạng bất định). Điều này có nghĩa là độ dài bản mã là không biết trước và như vậy tiến trình nhận cần phải tìm kiếm một chuỗi đặc biệt các octet biểu thị cuối của giá trị, gọi là end-of-contents. Một cách hiển nhiên BER đảm bảo rằng không có bản mã của kiểu ASN nào có thể sinh ra chuỗi có giá trị như vậy. Giải pháp thứ hai tạo ra cuộc truyền: Cuộc thứ nhất để tính toán độ dài, cuộc thứ hai để mã hoá thực sự. Nếu độ dài bản mã được biết thì bản mã này được gọi là difinite form (dạng xác định). Trong trường hợp này trường độ dài chứa một hay nhiều octet mã hoá gia trị nguyên. Nếu số octet của bản mã nhỏ hơn 128, một octet đơn có thể được dùng để lập mã độ dài: 8 7 6 5 4 3 2 1 lenght 0 Nếu độ dài dài hơn thì sử dụng nhiều octet hơn. Octet đầu tiên có 8 bit được thiết lập về một. 7 bit còn lại chứa một số cho biết có bao nhiêu octet tiếp theo trong trường độ dài (từ 1 đến 256 octet). Độ dài được mã hoá bằng cách sử dụng biểu diễn số nguyên không dấu được tìm thấy bằng cách nối các octet theo sau các octet độ dài ban đầu. BER cung cấp một khả năng mở rộng: Nếu một bản mã nhất định được sử dụng, trường độ dài gồm có một octet đơn mà có bit 8 được thiết lập về 1 và các bit còn lại được thiết lập về 0. Sau octet này, trường giá trị được mã hoá có thể gồm 0 hay nhiều mã Asn.1. Để đánh dấu kết thúc một bản mã, các octet end-of-content được gửi . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Nhãn end-of-content đơn giản là 2 octet giá trị đơn. Điều này tương đương với việc mã hoá một kiểu ASN.1 với universial tag giá trị 0 và không có độ dài. Vì không có kiểu ASN.1 đuôi này, BER không bao giờ tạo ra một bản mã nhập nhằng. Để giải nghĩa cho các octet này một cách chính xác BER phải biết bắt đầu từ đâu. Vì vậy, độ dài bất định chỉ có thể được sử dụng với bản mã cấu trúc. SMNP đặc biệt cấm sử dụng dạng độ dài không xác định cho tất cả các thông tin có chứa thông tin quản trị. 1.3. Value field Các kiểu ASN.1 được sử dụng trong framework quản trị đã mã hoá các trường giá trị của nó thành một hay nhiều octet nội dung. 2. Kiểu đơn giản-Integer Một giá trị Integer được mã hoá thành một hay nhiều octet nội dung. Giá trị được mã hoá bằng cách sử dụng bản mã thành hai thành phần mà không cần cấm 9 bit đầu tiên là 0 hoặc điền 2. Ví dụ: Giá trị 100 trong hệ 10 được mã hoá là. Class f length 00 0 1 2 26 + 25 + 22 = 100 content 0 1 1 0 01 0 0 3. Kiểu đơn giản- octet string Một giá trị octet string được mã hoá thành một số octet nội dung dạng sơ cấp hoặc ở dạng cấu trúc. Dạng cấu trúc của một giá trị octet string đơn giản là một tập các octet string nhỏ hơn. Mỗi chuỗi con có trường tag của nó nhận giá trị cho octet string. Chú ý rằng SMI cấm sử dụng dạng cấu trúc khi lập mã các thể hiện của kiểu dữ liệu ipAddress. 4. Các kiểu đơn giản ‘NULL Một giá trị null được mã hoá như là các octet chứa 0. Nó đơn giản về cú pháp đối với các octet end-of-content nhưng có các tag khác nhau: Class f number length 0 0 5 0 0 5. Các kiểu đơn giản- object identifier. Một giá trị object identifier được mã hoá thành một hay nhiều octet nội dung. Vì lý do quản trị phần tử đầu tiên phải nhận giá trị 0, 1 hoặc 2; Phần tử thứ hai phải nhận giá trị nhỏ hơn 40 nếu phần tử đầu là 0 hay 1. Chúng ta đã biết rằng ba cấp dưới của một nút gốc đã được định nghĩa trùng khớp với các giá trị 0, 1, 2. Vì việc đặt tên nhà uỷ quền cho các cấp dưới cư trú với ISO và CCITT, chúng tương ứng trả lời để đảm bảo rằng các cấp dưới trực tiếp không được ấn định một số lớn hơn 39. Sử dụng BER để lập những mã này: Hai phần tử đầu tiên ở dạng chuỗi một tên định danh con với giá trị: X*40+Y Trong đó, X là giá trị đầu tiên và Y là giá trị của phần tử thứ hai. Mỗi phần tử tiếp theo trong chuỗi cũng tạo dạng tên định danh phụ (Sub-Identifier) với giá trị bằng giá trị phần tử đó. Mỗi Sub-Identifier mã hoá bằng cách sử dụng biểu diễn không dấu trong một hay nhiều octet. Tuy nhiên bit quan trọng nhất của mỗi octet được thiết lập về 1 nếu một octet khác theo sau. Như vậy Sub-Identifier được biểu diễn bởi một hay nhiều giá trị 7 bit được nối với nhau và xem chuỗi kết quả các bit như là một số không dấu. Để đảm bảo một bản mã cô đọng, 7 bit đầu tiên của bản mã phải khác. 6. Các kiểu xây dựng. Ngôn ngữ ASN.1 đã định nghĩa các kiểu phức tạp từ các kiểu đơn giản thì BER cũng mã hoá các kiểu phức tạp bằng việc mã hoá một tổ hợp mà phần giá trị của nó gồm các mã của các kiểu đơn giản. 6.1. Các kiểu xây dựng Sequence. Mỗi giá trị Sequence được mã hoá thành một số octet nội dung và luôn luôn ở dạng xây dựng. Về cơ bản thì trường tag và trường length được tạo ra. Khi đó mỗi phần tử xuất hiện trong Sequence, ber được áp dụng lặp đi lặp lại. Thứ tự của bản mã phải phù hợp với thứ tự mà các phần tử đã được định nghĩa trong module ASN.1 cho kiểu này. 6.1.1.Các kiểu xây dựng-SEQUENCE OF Một giá trị SEQUENCE OF được mã hoá đồng nhất với một giá trị SEQUENCE, thậm chí các tag cũng như nhau. Các kiểu TAGED. Kiểu TAGED có dạng: SomeTyme ::= [tag] IMPLICIT OtherType Kiểu này được xây dựng bằng các luật như đối với OtherType nhưng chỉ khác là có một giá trị mới trong trường tag. Kết luận Nhận xét và đánh giá kết quả nghiên cứu. Bản đồ án này đã trình bày tương đối đầy đủvà hệ thống về các vấn đề sau đây: Tổng quan về mạng máy tính. Giao thức TCP/IP. Quản trị mạng, cấu trúc thông tin quản trị mạng, cơ sở thông tin quản trị mạng. Giao thức SNMP, quản trị mạng sử dụng giao thức SNMP. Tuy nhiên vì thời gian và trình độ có hạn và chưa có kinh nghiệm thực tế cho nên bản đồ án sẽ không tránh khỏi những thiếu sót và hạn chế. Khả năng phát triển của đề tài. Trong những năm tới nhu cầu phát triển và lắp đặt các mạng máy tính vừa và nhỏ cho các văn phòng và công sở, nhà máy ngày càng tăng. Ngoài ra mạng Internet sẽ được mở rộng ra toàn quốc. Nhu cầu cài đặt phần mềm quản trị mạng tại các trạm quản trị cũng như tại các tác nhân ngày càng tăng lên. Vì vậy, sự lựa chọn phần mềm quản trị mạng riêng là hết sức cần thiết. Từ những kết quả nghiên cứu sơ bộ của bản đồ án này ta có thể xây dựng một phần mềm quản trị mạng hoàn chỉnh phù hợp với điều kiện hoàn cảnh và yêu cầu của các mạng trong thực tế. Mục lục

Các file đính kèm theo tài liệu này:

  • doc28613.doc
Tài liệu liên quan