2012-02-07 7 views
5

मैं एक नया स्नातक हूं और मुझे हांगकांग में प्रोग्रामर के रूप में अपना पहला काम मिला है। विषय के अनुसार, मुझे सिस्को स्विच पर बंदरगाहों को नियंत्रित करने के लिए सी # का उपयोग करने की आवश्यकता है।मैं सी # के साथ सिस्को उत्प्रेरक 2 9 60 में बंदरगाहों को सक्षम/अक्षम कैसे कर सकता हूं?

मेरे पास काफी समय से खोज और अध्ययन है इसलिए मेरे पास एसएनएमपी और एमआईबी के बारे में बुनियादी जानकारी है। मैं कुछ लेखों को सिस्को स्विच को प्रबंधित करने के तरीके के बारे में बात कर सकता हूं लेकिन उनमें से कोई भी निर्दिष्ट नहीं है कि मैं बंदरगाहों को कैसे सक्षम और अक्षम कर सकता हूं। इस समय मुझे लगता है कि मुझे स्विच कॉन्फ़िगर करने की आवश्यकता है ताकि यह एसएनएमपी सेवा को सक्षम कर सके, तो मुझे विशेष बंदरगाह को चालू/बंद करने के लिए एक एसएनएमपी सेट पैकेट भेजना चाहिए। क्या यह सही है?

किसी के पास इसका कुछ अनुभव है और मेरे साथ साझा करना पसंद है? कृपया कुछ सुझाव छोड़ दें। और यदि आपने पहले कुछ उपयोगी वेबसाइटें पढ़ी हैं, तो कृपया यहां यूआरएल छोड़ दें ताकि मैं भी एक नज़र देख सकूं।

आपके ध्यान के लिए बहुत बहुत धन्यवाद।

उत्तर

7

मैं तीन तरीकों पता (मैं पहले से ज्यादातर शौकीन हूँ):

विकल्प 1:
एक आम तरीका है स्वचालित टेलनेट (या स्वचालित ssh) उचित आदेश भेजने कुछ इस तरह से संपर्क करना । आईओएस अधिकांश भाग के लिए काफी मानकीकृत है और इस तरह से काफी अच्छी तरह से काम करता है-
टीसीएल का Expect पैकेज इस तरह की चीज़ के लिए बिल्कुल सही है ... मुझे लगता है कि एक सी # कार्यान्वयन है।

यह सबसे अच्छा काम करता है यदि आप पहले ही आईओएस सिंटैक्स से परिचित हैं।

विकल्प 2:
यह शायद तुम क्या चाहते है:

इंटरफ़ेस यूपी:
अगर-एमआईबी :: ifAdminStatus SNMP के माध्यम से लिखने योग्य है (यहां नेट-SNMP का उपयोग कर एक उदाहरण है)
snmpset -v1 -c समुदाय होस्टनाम अगर-एमआईबी :: ifAdminStatus.interface मैं 1

इंटरफ़ेस नीचे:
snmpset -v1 -c समुदाय होस्टनाम अगर-एमआईबी :: ifAdminStatus.interface मैं 2

(जहाँ 'इंटरफ़ेस' अंक है कि एक इंटरफेस का प्रतिनिधित्व करता है, मूल्य में एक ही MIB- 1.3.6.1.2.1.2.2.1.2 पर टहलने करना इंटरफ़ेस मूल्यों और विवरण पता लगाने के लिए उपलब्ध है।)

(फिर से वहाँ की संभावना होगा snmpset की एक सी # कार्यान्वयन आप लाभ उठा सकते हैं हो सकता है ... और आप पहले से डिवाइस पर SNMP समुदायों कॉन्फ़िगर करना होगा)

विकल्प 3:।
यह trigger को एक अपलोड या डाउनलोड की SNMP उपयोग करना संभव है एक टीएफटीपी सर्वर के माध्यम से विन्यास।
यह कभी कभी इस क्रम में प्रयोग किया जाता है:
1. डाउनलोड चल config
2. बदल कि config
3. अपलोड config
4।चल config पर अपलोड config कॉपी (अधिलेखित कर देता है डिवाइस पर क्या सक्रिय है)

+0

धन्यवाद निएल, आपकी जानकारी बहुत उपयोगी है। मैं अब उन पर अध्ययन करने जा रहा हूं। आप सही हैं, मुझे लगता है कि दूसरा विकल्प शायद मैं जो सोच रहा हूं। लेकिन जैसा कि आपने पहले सुझाव दिया था, मैं इसे आजमाने की कोशिश कर रहा हूं। : पी – tingfungc

+0

मदद की खुशी है। –

+0

मैंने टेलनेट कनेक्शन को सक्षम करने और स्विच से सफलतापूर्वक कनेक्ट करने का प्रयास किया है। तो बंदरगाह स्विचिंग करने के लिए एक सी # प्रोग्राम लिखना काफी सरल होगा। आपके विकल्प 1 के लिए धन्यवाद niall। इसके अलावा, मेरे मालिक अभी भी इस समस्या में एसएनएमपी का उपयोग करना चाहते हैं, इसलिए मैं अब विकल्प 2 का प्रयास करने जा रहा हूं। तो 1.3.6.1.2.1.2.2.1.7 लक्ष्य ओआईडी है और यह एक पूर्णांक प्रकार मान है। लेकिन मेरे पास पूरी तरह से 24 बंदरगाह हैं (फास्टइथरनेट 1-24), तो 24 मूल्य और ओआईडी होना चाहिए? – tingfungc

0

आप और इस तरह से गूगल "MinimalisticTelnet" के लिए टेलनेट प्रोग्राम का उपयोग उदाहरण उपयोग कर सकते हैं इस समाधान

एक और तरीका समझने के लिए SNMP के लिए इस्तेमाल होता है इस उदाहरण के रूप में प्रोटोकॉल: नोटिस: SNMP के साथ काम करने के लिए मैं परिवर्तन लाने के लिए और SnmpSharpNet पुस्तकालय को अनुकूलित, और मेरे कार्यक्रम में इसे कहते

using SnmpSharpNet; 

फिर 1 से 6 तक अक्षम बंदरगाहों के लिए इस कोड को लिखें:

Console.WriteLine("Ports Disabler "); 
      UdpTarget target = new UdpTarget((IPAddress)new IpAddress("192.168.1.200")); 
      Pdu pdu = new Pdu(PduType.Set); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.1"), new Integer32(2)); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.2"), new Integer32(2)); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.3"), new Integer32(2)); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.4"), new Integer32(2)); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.5"), new Integer32(2)); 
      pdu.VbList.Add(new Oid("1.3.6.1.2.1.2.2.1.7.6"), new Integer32(2)); 
      AgentParameters aparam = new AgentParameters(SnmpVersion.Ver2, new OctetString("2645")); 
      SnmpV2Packet response; 
      try 
      { 
       // Send request and wait for response 
       response = target.Request(pdu, aparam) as SnmpV2Packet; 
      } 
      catch (Exception ex) 
      { 
       // If exception happens, it will be returned here 
       Console.WriteLine(String.Format("Request failed with exception: {0}", ex.Message)); 
       target.Close(); 
       return; 
      } 
      // Make sure we received a response 
      if (response == null) 
      { 
       Console.WriteLine("Error in sending SNMP request."); 
      } 
      else 
      { 
       // Check if we received an SNMP error from the agent 
       if (response.Pdu.ErrorStatus != 0) 
       { 
        Console.WriteLine(String.Format("SNMP agent returned ErrorStatus {0} on index {1}", 
         response.Pdu.ErrorStatus, response.Pdu.ErrorIndex) + response.ToString()); 
       } 
       else 
       { 
        // Everything is ok. Agent will return the new value for the OID we changed 
        Console.WriteLine(String.Format("Agent response {0}: {1}", 
         response.Pdu[0].Oid.ToString(), response.Pdu[0].Value.ToString())); 
       } 
      } 

मुझे आशा है कि यह उत्तर उपयोगी हो सकता है और आप मदद कर सकते हैं,

1

मैं कई पीओई स्विच (सिस्को और ZYXEL) कि पीओई राज्य में हेरफेर करने के SNMP स्ट्रिंग

SNMPv2-SMI है के लिए मिल गया है :: एमआईबी-2.105.1.1.1.3.1.x एक्स के साथ वांछित बंदरगाह (24 पोर्ट स्विच 1 ~ 8 के लिए 24 पोर्ट स्विच 1 ~ 24)

उल्लिखित आईएफ-एमआईबी :: ifAdminStatus.interface अधिनियम केवल सक्षम/अक्षम बंदरगाह के लिए - लेकिन मुख्य लक्ष्य रात/सप्ताहांतसे अधिक बिजली लागत को रीसेट या कम करना हैदसियों/एक्सेस अंक के सैकड़ों/वीओआईपी फोन के साथ एक वातावरण में इस ऊर्जा

आदेश बंदरगाह पर पीओई को रोकने के लिए की एक बहुत कुछ बचा सकता है

snmpset -v 2c -c setcomunity मेजबान SNMPv2-SMI है :: एमआईबी- 2.105.1.1.1.3.1.xi 2

आदेश बंदरगाह पर पीओई शुरू करने के लिए

snmpset -v 2c -c setcomunity मेजबान SNMPv2-SMI :: एमआईबी- 2.105.1.1.1.3.1 है .xi 1

यदि आप संस्करण 3 का उपयोग करते हैं तो आपको प्रमाणीकरण की भी आवश्यकता होगी

संबंधित मुद्दे

 संबंधित मुद्दे