370 likes | 878 Views
SNMP پروتکل. ارائه دهنده : سید ایمان علویان. استاد : مهندس مهدی زمانیان. بهار 90. فهرست مطالب. مقدمه............................................4 فصل اول : تاریخچه SNMP ...............7 فصل دوم : پروتکل SNMP ...............9
E N D
SNMP پروتکل ارائه دهنده : سید ایمان علویان استاد : مهندس مهدی زمانیان بهار 90
فهرست مطالب • مقدمه............................................4 • فصل اول : تاریخچه SNMP...............7 • فصل دوم : پروتکل SNMP...............9 • فصل سوم : دستورات موجود و تعریف متغیر در SNMP .......................................15 • فصل چهارم : نمونه کد استفاده از SNMP در جاوا..............................................20 • منابع............................................26
مقدمه • مدیریت شبکه های کامپیوتری • مديريت شبكه مفهومی است كه از ابزارها و تكنيك های مختلف به منظور مديريت شبكه ها و سيستم ها استفاده میكند. مديريت شبكه شامل پنج عملكرد اصلي است كه عبارتند از: مديريت خطا، مديريت تنظيمات، مديريت حسابداری، مديريت اجرا و مديريت امنيت
مقدمه • در شبكه های كامپيوتری كه تركيبی از روترها، سوييچ ها و سرورها هستند، به منظور مديريت همه ابزارها در شبكه بايد كاری انجام شود تا از كاركرد بهينه آنها آگاه شد. • اينجاست كهSNMP، پروتكل ساده مديريت شبكه، می تواند كمك كند.
فصل اول SNMP تاریخچه
تاریخچه • در آغاز سال 1988 نياز به يک ابزار مديريت برای شبکهاي مبتني بر TCP/IP وجود داشت • در سال 1991 به طور رسمی SNMP V1 ثبت و منتشر شد. • در سال 1993 پس از رفع ایرادات موجود در SNMP V1، SNMP V2 ارائه شد.
SNMPپروتکل فصل دوم
SNMP اجزاء پروتکل • Manager: • نقش اعمال دستورات را به عهده دارد • Agent: • درون سيستم تحت مديريت مستقر میشود • MIB: • واحدی که اشياء تحت مديريت را برای اين مجموعه معرفی میکند. (Simple Network Management Protocol)
SNMP پروتکل • Agent و Manager از طريق Ethernet با يکديگر در ارتباط هستند. • پيامهای SNMP در قالب فريمهای UDP/IP مبادله میگردند.
1 Protocol Data unit SNMP پروتکل EthernetFrame IP Packet SNMP Message CRC UDP Datagram
SNMP پروتکل • ارتباط Agent وManager • پورت 161 • Trap • پورت 162
شیء گراست؟SNMP آیا پروتکل SNMP يک مدل شئ گرا نيست زيرا در آن هيچ مفهومی تحت عنوان کلاس وجود ندارد اما شيوه برخورد با عناصر تحت مديريت به گونهای است که میتوان آنرا يک ساختار شبه شئ گرا ناميد. در اين پروتکل صرفاً متغيرهايی شناخته شده هستند که MIB را تشکيل دادهاند. هر عضو MIB به کمک يک شناسه منحصر بفرد تحت عنوانOID شناخته می شود.
فصل سوم دستورات موجود و تعریف متغیر در SNMP
تعریف متغیر • هر متغير داراي يک نوع (type) معينی است. در SNMP انواع محدودی تعريف شدهاند که مجموع متغيرهای مورد نظر بايد در محدوده آنها تعريف شوند.
systemStatusCode OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current DESCRIPTION "Description" ::= { dwdm32chMIB 1 } eventIdentification OBJECT-TYPE SYNTAX Integer32 ( -2147483648 .. 2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "Column Description" ::= { eventEntry 2 }
SNMPدستورات موجود در • دستوراتي که بين Manager وAgent در قالب SNMP و بر روي متغيرها قابل اعمال هستند در جدول زیرآمده است.
فصل چهارم نمونه کد استفاده در جاواSNMPاز
SNMP4j • اين ابزار يک ابزار متنباز مبتنی بر زبان جاوا تحت ليسانس apache بوده که کتابخانهای شامل کلاسها و متدها برای استفاده از پروتکل SNMP در محيط برنامه نويسی جاوا را فراهم می نمايد. با استفاده از اين ابزار برنامه نويس می تواند فرامين پروتکل SNMP را درون کد برنامه فراخواني نمايد.
Mibble • اين ابزار يک ابزار متنباز مبتنی بر جاوا بوده که قابليت تجزيه کردن فايلهایMIB را دارد. اين ابزار کمک می کند تا دستگاهها و کارتهای جديد را به نرمافزار شناسانده و اطلاعات آنها را دريافت نماييم.
Snmpsnmp; public void initialize() throws IOException { if (snmp == null) { OctetStringreadCommunityOctetString = newOctetString(readCommunity); OctetStringwriteCommunityOctetString = new OctetString(writeCommunity); String address = this.sysIPAddress + "/" + 161; Address targetaddress = new UdpAddress(address); transport = new DefaultUdpTransportMapping(); transport.listen(); readComtarget = new CommunityTarget(); readComtarget.setCommunity(readCommunityOctetString); readComtarget.setVersion(SnmpConstants.version2c); readComtarget.setAddress(targetaddress); readComtarget.setRetries(this.retry); readComtarget.setTimeout(this.timeOut); writeComtarget = new CommunityTarget(); writeComtarget.setCommunity(writeCommunityOctetString); writeComtarget.setVersion(SnmpConstants.version1); writeComtarget.setAddress(targetaddress); writeComtarget.setRetries(this.retry); writeComtarget.setTimeout(this.timeOut); snmp = new org.snmp4j.Snmp(transport); snmp.listen(); } }
public void loadMib() { MibLoader loader = new MibLoader(); File f = new File(Constants.MIB_FILE); try { mib = loader.load(f); } catch (IOException ex) { ex.printStackTrace(); } catch (MibLoaderException ex) { ex.printStackTrace(); } }
public void getSamplePdu() throws Exception { PDU pdu = getMyPduByType(PDU.GET); addTablePdu("systemStatusCode", 0, pdu); if (getPduResponse(pdu).get(0) == null) { throw new ServiceSnmpInstantiationException("Connection to agent can not be established"); } } public void setSamplePdu (String val) { PDU p = getMyPduByType(PDU.SET); addSetPdu(Constants.SYS_DESCRIPTION, p, val); setPduResponse(p); System.out.println("sysDescription set to " + val); } public void closeSnmpConnection () { try { snmp.close(); } catch (IOException e) { e.printStackTrace(); } }
منابع • Internet Standards 15, 16 and 17 • ASN.1 Complete, J. Larmouth, Open Systems Solutions, 1999 (available online) • SNMP : a guide to network management, S. Feit, McGraw-Hill, 1995