Mụ hỡnh phỏt triển

Một phần của tài liệu (LUẬN văn THẠC sĩ) quản trị mạng IP luận văn ths công gnghệ thông tin 1 01 10 (Trang 75 - 81)

Chương 2 CễNG NGHỆ IP

3.2.1.4 Mụ hỡnh phỏt triển

Udp : UDP Target : Target Oid : Oid Vb : VB (Variable

Binding)

Pdu : PDU Snmp : Snmp

Hỡnh 3.15 Mụ hỡnh phỏt triển

1. Bước 1: Lập thụng số địa chỉ thiết bị Agent, khởi tạo lớp UDP. Cỏc thụng số bao gồm:  ID: Địa chỉ IP của thiết bị Agent

 Port: Thụng số cổng dựng cho giao thức UDP

2. Bước 2: Lập thụng số phần Header của gúi tin theo cấu trỳc SNMP, khởi tạo lớp Target dựa trờn lớp UDP. Cỏc thụng số bao gồm:

 Community: Thụng số cộng đồng.

3. Bước 3: Khởi tạo lớp Oid với địa chỉ thụng tin cần tương tỏc theo cấu trỳc địa chỉ bảng MIB được ban hành kốm theo thiết bị. Cỏc thụng số bao gồm:

 String: Xõu chứa địa chỉ thụng tin bảng MIB

4. Bước 4: Khởi tạo lớp Vb mang đối tượng Oid được tạo ở bước trước và thụng số mang giỏ trị của đối tượng Oid chuẩn bị để đọc thụng tin từ thiết bị Agent. Mỗi lần gửi thụng tin yờu cầu theo giao thức SNMP cú thể mang nhiều đối tượng định nghĩa địa chỉ kốm theo giỏ trị của nú. Cỏc thụng số bao gồm:

 Oid: Đối tượng thuộc lớp Oid

 Value: Giỏ trị tương ứng với đối tượng Oid.

5. Bước 5: Khởi tạo lớp PDU mang cỏc thụng số của cấu trỳc giao thức SNMP. Bao gồm:  Vb: Thụng số giỏ trị cựng với địa chỉ thụng tin Oid.

 Pdu_Type: Kiểu tương tỏc giữa thiết bị Manager và thiết bị Agent.

6. Bước 6: Tập hợp cỏc đối tượng PDU và Target đĩ được khởi tạo ở bước trước thực hiện giai đoạn cuối cựng đú là gửi gúi dữ liệu mang giao thức SNMP từ thiết bị Manager và đọc thụng bỏo mang kết quả trả về từ thiết bị Agent. Cỏc tỏc vụ bao gồm:

 Get()  Get_Next()  Set()  Get_response()  Trap() Phỏt triển chương trỡnh using System; using System.Collections; using System.Reflection; using Org.Snmp.Snmp_pp; namespace Org.Snmp.Snmp_pp {

public sealed class MSystemWalkExample {

private static readonly Hashtable SYSOID2NAME_; static MSystemWalkExample()

{

#if REQUIRES_CRT_INIT

CRT.Auto.Initialize(); #endif

SYSOID2NAME_ = new Hashtable();

SYSOID2NAME_.Add("1.3.6.1.2.1.1", "system"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.1.0", "sysDescr");

SYSOID2NAME_.Add("1.3.6.1.2.1.1.4.0", "sysContact"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.5.0", "sysName"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.6.0", "sysLocation"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.7.0", "sysServices"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.8.0", "sysORLastChange"); SYSOID2NAME_.Add("1.3.6.1.2.1.1.9.0", "sysORTable"); foreach (object key in ((Hashtable)

SYSOID2NAME_.Clone()).Keys) {

object name = SYSOID2NAME_[key]; Oid oid = new Oid(key.ToString()); SYSOID2NAME_.Add(oid, name);

SYSOID2NAME_.Add(name, oid); }

}

private MSystemWalkExample() {}

public static void Main(string[] args) { args[0]="127.0.0.1"; args[1]="public"; if (args.Length < 2) { Console.Error.WriteLine("SNMP++.NET {0} built on {1}; SNMP++ v. {2}\n\n"

+ "Usage: {3} <ip> <readCommunity> [<debugMark>]",Assembly.GetAssembly(typeof(Snmp)), Snmp.BuildTime, Snmp.Snmp_ppVersion, Environment.GetCommandLineArgs()[0]); Environment.Exit(1); }

string ip = args[0], community = args[1];

bool debug = args.Length > 2 && args[2].Length > 0; try

{

SnmpTarget.DefaultTimeout = 10000; SnmpTarget.DefaultRetries = 2; Snmp.DebugLogLevel =0;

using (Snmp snmp = new Snmp(false)) {

UdpAddress udp = new UdpAddress(ip); SnmpVersion ver = SnmpVersion.SNMPv1; CTarget target = new CTarget(udp, ver, community, community);

Oid systemOid = (Oid) SYSOID2NAME_["system"]; Vb vb = new Vb(systemOid);

Pdu pdu = new Pdu(PduType.GetNext, vb); while (true) { if (debug) { Console.WriteLine("Sending : " + pdu + " to " + target); }

Pdu resp = snmp.Invoke(pdu, target); if (debug)

Console.WriteLine("Received: " + resp);

}

vb = resp[0]; Oid oid = vb.Oid;

if (!oid.StartsWith(systemOid)) {

break; }

SnmpSyntax val = vb.Value;

Console.WriteLine("{0}({1}): {2} ({3})", oid, SYSOID2NAME_[oid], val,

val.SmiSyntax); pdu = pdu.Clone(vb); } } Console.ReadLine(); } catch (SnmpException e) { Console.WriteLine("SnmpException:" + "\nstatus : " + e.ErrorStatus + "\nindex : " + e.ErrorIndex + "\nmessage: " + e.Message); } catch (Exception e) { Console.WriteLine(e); } } } }

Như đĩ giới thiệu ở phần đầu, giao thức SNMP hiện nay đĩ được tớch hợp trờn hầu hết cỏc thiết bị mạng (Switch, Router, Bridge, vv ...) và trờn cỏc hệ điều hành phiờn bản gần đõy (Windows, Linux) dựa trờn nền giao thức TCP/IP. Vỡ vậy để vận hành hệ thống Quản trị mạng dựa trờn nền giao thức SNMP cỏc thiết bị cần quản lý phải được cài đặt và cấu hỡnh dịch vụ SNMP. Trong phần Phụ lục sẽ trỡnh bày cỏch thức cài đặt dịch vụ SNMP trờn cỏc mụi trường khỏc nhau.

3.2.2 Vận hành hệ thống

Sau khi đĩ thiết lập xong cấu hỡnh giao thức SNMP tại thiết bị Manager và Agent, sử dụng hệ thống chương trỡnh đĩ được thiết kế như phần trờn, ta sẽ vận hành để bước đầu hồn thành việc xõy dựng nền tảng của giao thức SNMP.

Với 1 tập cỏc thụng số đầu vào để thiết lập bắt tay giữa thiết bị Manager và thiết bị Agent bao gồm:

 Địa chỉ cần lấy thụng tin hoặc tương tỏc theo cấu trỳc bảng MIB của thiết bị Agent.  Tỏc vụ yờu cầu đối với thiết bị Agent.

 Cỏc thụng số phụ: Thời gian TimeOut, Số lần thử lại, Debug, ... Chỳng ta sẽ vận hành được hệ thống giao thức SNMP theo đỳng yờu cầu.

Giả sử chỳng ta vận hành hệ thống trờn 1 mạng mỏy tớnh LAN thụng thường, giữa cỏc mỏy trạm là cỏc mỏy tớnh cỏ nhõn trờn nền hệ điều hành Window. Trờn 2 thiết bị Manager và Agent, sau khi thiết lập cấu hỡnh giao thức, chỳng ta vận hành hệ thống trờn thiết bị Manager để lấy thụng tin hoặc điều khiển cỏc tỏc vụ đối với thiết bị Agent với cỏc thụng số sau:

 Địa chỉ IP của thiết bị Agent: 192.168.1.25  Tờn cộng động: community

 Địa chỉ cần lấy thụng tin hoặc tương tỏc theo cấu trỳc bảng MIB của thiết bị Agent: “1.3.6.1.2.1.1”. Đõy là địa chỉ gốc của cõy địa chỉ trong bảng MIB trong hệ điều hành Window, từ đú cú thể phỏt triển tồn bộ cõy thụng tin theo nhiều nhỏnh với cỏc chức năng quản lý khỏc nhau của hệ điều hành.

 Tỏc vụ yờu cầu đối với thiết bị Agent: Get_Next()  Cỏc thụng số phụ:

o TimeOut: 10000 o Retries: 2 o Debug: 0

Như trờn chỳng ta cú thể nhận thấy với 1 địa chỉ xỏc định, thụng tin trờn thiết bị Agent được lấy thụng qua giao thức SNMP nhờ việc vận hành hệ thống mà chỳng ta đĩ thiết kế ở phần trờn.

Với 1 số tỏc vụ khỏc (Get, Set, Response, Trap) và cỏc địa chỉ thụng tin xỏc định, chỳng ta cũng vận hành tương tự. Từ đú phỏt triển 1 hệ thống quản trị mạng IP đầy đủ và trực quan, trợ giỳp người quản trị giỏm sỏt và điều khiển cỏc thiết bị trong hệ thống mạng.

Một phần của tài liệu (LUẬN văn THẠC sĩ) quản trị mạng IP luận văn ths công gnghệ thông tin 1 01 10 (Trang 75 - 81)

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

(98 trang)