सिस्को IOS में कॉन्फ़िगरेशन बैकअप (हर मिनट) को स्वचालित करें


16

मैं अपने सिस्को राउटर को स्वचालित रूप से प्रति 1 मिनट में TFTP (और फ़ील्ड्स को स्वचालित रूप से पॉप्युलेट करना) करना चाहता हूं। मैं यह भी चाहूंगा कि इसे पृष्ठभूमि में चलाया जाए। किसी को पता है कि क्या यह संभव है / यह कैसे करना है? मैं नोटपैड ++ में अपने राउटर के रनिंग कॉन्फिगर को देखने के लिए ऐसा करना चाहता हूं (जो कि रियलटाइम अपडेट करता है) बजाय इसके कि मुझे जो देखने की जरूरत हो उससे पहले 4 या 5 बार स्पेसबार को हिट करें और स्पेसबार को हिट करें। मुझे लगता है कि यह जटिल प्रयोगशालाओं के लिए असाधारण रूप से उपयोगी होगा। TFTP सर्वर कमांड इनपुट की आवश्यकता के कारण, मैक्रोज़ काम नहीं करते हैं।


3
क्या एक बार एक मिनट वास्तव में आवश्यक है? क्या आपने रनिंग कॉन्फ़िगरेशन के उन हिस्सों को फ़िल्टर करने के लिए regex के साथ CLI पर फ़िल्टरिंग में निर्मित उपयोग का भी विचार किया है जो आप देखना चाहते हैं? Ie | includeया | exclude? मैं आपके रनिंग कॉन्फिग को "रियल टाइम में" देखने में सक्षम होने की उपयोगिता को देखने के लिए संघर्ष कर रहा हूं।
जॉन जेन्सेन

मुझे अपनी टोपोलॉजी और सीएलआई विंडो (टैब्ड और लेबल) के साथ एक मॉनिटर रखना पसंद है। मेरे उपकरणों के सभी चल रहे कॉन्फ़िगरेशन के साथ मेरा दूसरा मॉनिटर वास्तविक समय है। मेरे सभी रनिंग-कॉन्फिग्स को वास्तविक-समय पर देखने में सक्षम होना कमांड प्रॉब्लम्स की तुलना करना, उनकी तुलना करना और उनकी कॉपी करना बहुत आसान बना देता है। खासकर जब रूट-मैप स्टेटमेंट और एसीएल में गहरे हो रहे हैं, तो यह एक बड़ा लाभ है कि टाइप रन रन नहीं है | विभिन्न उपकरणों के साथ कॉन्फ़िगरेशन के इस हिस्से को देखने और तुलना करने के लिए कई बार मार्ग-मानचित्र। मुझे खेद है कि आप इसे उपयोगी खोजने के लिए संघर्ष कर रहे हैं, लेकिन मुझे लगता है कि प्रत्येक अपने स्वयं के लिए।
माइकल मई

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

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

@ ChristiandelaPeña मैं आपका अनुसरण करता हूं, मैं सिर्फ यह कह रहा हूं कि विभिन्न लोग अलग-अलग तरीके से काम करते हैं। मुझे लगता है कि मैं व्यक्तिगत रूप से आपके द्वारा बताए जा रहे फैशन में लाइव अपडेटिंग कॉन्फिग की आवश्यकता नहीं देखता हूं। यह गलत नहीं है, बस जिस तरह से मैं काम नहीं करता। :) मैं आपको वह उपकरण देना चाहता हूं जो आप चाहते हैं, जिस तरह से आप चाहते हैं। जब तक आप लैब कर रहे हैं और सीख रहे हैं, वह सब मेरे लिए मायने रखता है।
ब्रेट लाइकिंस

जवाबों:


19

सिस्को डिवाइस पर इस प्रकार की कार्यक्षमता प्राप्त करने के लिए आपके पास कई विकल्प हैं। (जो आप उपयोग करते हैं वह आपकी आवश्यकताओं पर और कभी-कभी डिवाइस और आईओएस लोड पर निर्भर करता है। कुछ पुराने उपकरणों / आईओएस भार में अलग-अलग क्षमताएं होंगी।)

संपादित करें: आप इसे हर एक मिनट में करने के बारे में पूछ रहे हैं, जैसा कि आपको इस प्रश्न के बारे में हमारी बातचीत में पता चला है, आपके राउटर को काट देगा। (विशेष रूप से GNS3 में।) नीचे दिए गए विकल्प आपके लिए पुष्टिकरण बैकअप को स्वचालित करने के लिए उपलब्ध हैं, हालांकि मैं 1 मिनट के बाद ऐसा करने की सलाह नहीं दूंगा।

आप या तो कर सकते हैं:

  1. कमांड शेड्यूलिंग के लिए सिस्को के क्रोन कार्यक्षमता का उपयोग करें । यह आपको एक निर्धारित आधार पर पूर्वनिर्धारित कमांड निष्पादित करने की अनुमति देगा। जैसा कि आपने बताया, copy run tftpफ़ाइल प्रॉम्प्ट की पुष्टि की आवश्यकता है। (जब तक आपने फ़ाइल संकेत पुष्टिकरण को बंद नहीं किया है, हालांकि मैं इसे सामान्य सेटिंग के रूप में अनुशंसित नहीं करता हूं।) पुनर्निर्देशन की पुष्टि की आवश्यकता नहीं है। तो शेड्यूलर में प्रयुक्त कमांड हैshow run | redirect tftp://$SERVERIP/$PATH/$FILE

  2. कॉन्फ़िगरेशन प्रबंधन के लिए सिस्को की पुरालेख कार्यक्षमता का उपयोग करें । पुरालेख एक क्रमिक फैशन में विन्यास की कई प्रतियों को संग्रहीत करने और पिछले संस्करण के लिए यदि आवश्यक हो तो कॉन्फ़िगर को वापस करने का एक तरीका है। क्रोन के साथ नकल पिछले विन्यास को ओवरराइट करता है, जबकि पुरालेख आपको निर्दिष्ट स्थान में 14 विभिन्न कॉन्फ़िगरेशन संस्करणों को रखने की अनुमति देता है। पुरालेख पर अधिक उपयोगी जानकारी के लिए सिस्को लर्निंग नेटवर्क पर इस लिंक को देखें । विशेष रूप से $ h और $ t टैग के साथ फ़ाइलनाम को गतिशील रूप से कैसे सेट किया जाए।

नीचे दिए गए नमूनों में से किसी में, आप अपनी आवश्यकताओं के अनुसार समय को समायोजित कर सकते हैं, ये वही हैं जो मैंने जल्दी से कुछ उत्पादन गियर से खींच लिया है।


क्रोन लिखने के लिए सैंपल कॉन्फिगर करना और उसे हफ्ते में एक बार tftp सर्वर पर वापस भेजना:

kron occurrence SaveConfig at 23:50 Mon recurring
policy-list SaveConfig
!
kron occurrence BackupRunningConfig at 23:55 Mon recurring
policy-list BackupRunningConfig
!
kron policy-list SaveConfig
cli write
!
kron policy-list BackupRunningConfig
cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt

नमूना विन्यास प्रतिदिन एक tftp सर्वर पर अपने विन्यास का संग्रह करने के लिए:

archive
 path tftp://10.10.10.10/configs/$h-$t
 time-period 1440
 maximum 14

12

नहीं है वास्तव में एक और तरीका है।

आप SNMP का उपयोग करके TFTP कॉपी को ट्रिगर कर सकते हैं। यह बहुत आगे सीधे नहीं है , लेकिन अविश्वसनीय रूप से उपयोगी है।

सबसे पहले, आपको एक TFTP सर्वर (बिना सोचे समझे) की आवश्यकता होगी। आपको कुछ ऐसी चीज़ों की भी आवश्यकता होगी जो स्नैम्प अनुरोध भेज सकती हैं। मैंने इसे लिनक्स के स्नम्प टूल्स के साथ प्रभावी रूप से किया है।

आप SNMP के लिए एक नया समुदाय सेट करना चाहते हैं जिसमें सीमित पहुंच है, और शायद इसे IP ACL के साथ आगे भी लॉक कर सकते हैं। वास्तव में आपको केवल ccCopyTableOID पर लिखने में सक्षम होना चाहिए ।

लिनक्स की तरफ, आपको निम्न MIB की आवश्यकता होगी (कार्यक्षमता के बजाय पठनीयता के लिए)

CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC

लिनक्स पर आपके एसएनएमपी कॉन्फ़िगरेशन के लिए प्रासंगिक स्थान पर स्थापित एमआईबी के साथ, आपको इस प्रकार स्नैप्ट के साथ कनेक्टिविटी का परीक्षण करने में सक्षम होना चाहिए:

snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries

आपको आमतौर पर राउटर को कॉपी करने के लिए TFTP सर्वर पर फ़ाइल को प्री-क्रिएट करना होगा।

TFTP कॉपी को ट्रिगर करने के लिए, आपको एक पंक्ति सम्मिलित करनी होगी ccCopyTable

snmpset आपको यह करने की अनुमति देता है।

# snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyProtocol.23 i tftp \
> ccCopySourceFileType.23 i runningConfig \
> ccCopyDestFileType.23 i networkFile \
> ccCopyServerAddress.23 a 192.168.1.100 \
> ccCopyFileName.23 s router.conf

CISCO-CONFIG-COPY-MIB::ccCopyProtocol.23 = INTEGER: tftp(1)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.23 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.23 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.23 = IpAddress: 192.168.1.100
CISCO-CONFIG-COPY-MIB::ccCopyFileName.23 = STRING: router.conf

एक बार जब आप ऐसा कर लेते हैं, तो आपको पहले कमांड को फिर से चलाने में सक्षम होना चाहिए, और ccCopyTable में कॉपी कमांड को देखना चाहिए।

snmptable -v 2c -c writeCommunity 192.168.1.1 ccCopyTable

SNMP table: CISCO-CONFIG-COPY-MIB::ccCopyTable

 index Protocol SourceFileType DestFileType ServerAddress    FileName UserName
    23     tftp  runningConfig  networkFile     192.168.1.100 router.conf        ?

SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 2

 index UserPassword NotificationOnCompletion State TimeStarted TimeCompleted
    23            ?                    false     ?           ?             ?

SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 3

 index FailCause EntryRowStatus ServerAddressType ServerAddressRev1
    23         ?              ?              ipv4       "192.168.1.100"

जब तक आप पंक्ति को सक्रिय करने के लिए ccCopyTable पर एक और कॉलम सेट नहीं करेंगे तब तक कुछ नहीं होगा।

 snmpset  -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active

यदि आप फिर से ccCopyTable की जांच करते हैं, तो आपको यह देखना चाहिए कि फ़ाइल को कॉपी करने के लिए स्टेट और टाइमस्टार्ट को अपडेट किया गया है।

नीचे दिए गए स्रोत लिंक में अधिक विवरण हैं, जिसमें ccCopyTable को खाली कैसे करें (यदि आप चाहें) सहित।

मैंने एक स्क्रिप्ट में उसी विधि का उपयोग लिनक्स सर्वर से एक TFTP कॉपी को ट्रिगर करने के लिए किया है, फिर फाइल को git करने के लिए प्रतिबद्ध किया है, और इसे रिपॉजिटरी में वापस ला दिया है, सभी एक स्विफ्ट प्रोसेस में।

स्रोत: http://www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/

और http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/


2
यह वह तरीका है जो मैंने सालों तक किया है, पंचो का उपयोग करते हुए, जब तक कि मैंने हाल ही में अधिक डिवाइस समर्थन प्राप्त करने के लिए रैंकिड पर स्विच नहीं किया। रैंडी की अत्यधिक सिफारिश की जाती है, विशुद्ध रूप से क्योंकि आपको संस्करण नियंत्रण भी मिलता है - 'svn blame' का उपयोग यह पता लगाने के लिए कि जब इंटरफ़ेस पूर्ण द्वैध से ऑटो में बदल गया, या साबित करें कि x महीनों के लिए कुछ भी नहीं बदला है।
हाईवे

क्या SVN के बजाय RITID Git में जा सकता है?
टॉम ओ'कॉनर

मुझे ऐसा नहीं लगता। सीवीएस डिफ़ॉल्ट है। एसवीएन एक विकल्प है। चूँकि यह केवल लिखने योग्य, एकल-शाखा, एकल-उपयोगकर्ता (RANCID) संस्करण-नियंत्रण की स्थिति है, इसलिए किसी अन्य चीज़ का उपयोग करने का कोई विशेष लाभ नहीं है। रैंस 3 अभी काम करता है, हालांकि, इसलिए यह संभव है कि उन्होंने उस हिस्से को अपडेट किया है। यह सॉफ्टवेयर का एक अपेक्षाकृत पुराने जमाने का टुकड़ा है - पर्ल, उम्मीद और शेल।
हनीहॉक

बस की जाँच की और बासी 3 नए कुलपति विकल्पों उल्लेख नहीं है, यहाँ में: gossamer-threads.com/lists/rancid/users/6555#6555
AnotherHowie

2

आप ईईएम का उपयोग कर सकते हैं

उदाहरण:

event manager applet dumpconfig
 event timer {absolute time time-value | countdown time time-value | cron cron-entry cron-entry | watchdog time time-value} [name timer-name]
 action 1.0 cli command "enable"
 action 2.0 cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt
 action 998.0 cli command "end"
 action 999.0 cli command "exit"

केवल NX-OS पर, मुझे संदेह है ...
टॉम ओ'कॉनर

1
@ टॉम, मेरे पास नेक्सस नहीं है (दुर्भाग्य से ;-)), IOS में यह समर्थित है ... मुझे लगता है कि EEM सभी राउटरों और सभी स्विचों से समर्थित है: उदाहरण के लिए, मेरे पास केवल एक मॉडल है, जो EEM का समर्थन नहीं करता है। 2950, ​​लेकिन 2960 में, 3560, 3750 (ई और ई नहीं), 4500, 4948, 6500 यह समर्थित है।
pyatka

2

आप ऐसा करने के लिए RANCID का उपयोग कर सकते हैं ।

आपको कुछ अन्य अच्छी चीजें मिलती हैं जैसे कि कॉन्फ़िगरेशन का संस्करण नियंत्रण, ईमेल भिन्न और अन्य अच्छी चीजें (डिफ़ॉल्ट रूप से यह एक हार्डवेयर इन्वेंट्री लेता है, ताकि यदि हार्डवेयर बदलता है तो आपको इसके साथ अलर्ट मिल जाए)।

यह मेरे द्वारा अब तक फेंके गए हर स्विच और राउटर के साथ काम करता है (सिस्को / जुनिपर / डेल) जो एक और प्लस है।


1

आप एक पर्ल स्क्रिप्ट का उपयोग कर सकते हैं, जैसे कि यह एक । उपयोग:perl cisco_backup.pl "my-enable-password"


1
लिंक-केवल पोस्ट उनकी उपयोगिता में सीमित हैं। क्या आप इस समाधान के प्रासंगिक अंशों को अपने उत्तर में जोड़ सकते हैं?
रयान फोली

यदि संभव हो तो कभी भी कमांड लाइन पर पासवर्ड न डालें। इसके बजाय पर्यावरण का उपयोग करें।
कौगर

0

इसके लिए एक और उपकरण है fetchconfig:

fetchconfig कई उपकरणों के विन्यास को पुनः प्राप्त करने के लिए एक पर्ल स्क्रिप्ट है। यह लिनक्स और विंडोज के तहत परीक्षण किया गया है, और वर्तमान में सिस्को IOS, सिस्को उत्प्रेरक, सिस्को एएसए, सिस्को पीआईएक्स, फोर्टीगेट फायरवॉल, प्रो कर्व, अल्काटेल ईथरनेट राउटर्स (उर्फ रिवरस्टोन), डेल पॉवरकनेक्ट स्विचेस, टेरियन 3200 / सहित विभिन्न उपकरणों का समर्थन करता है। 3500 CMTS, Datacom DmSwitch Switches, HP MSR Routers, Mikrotik Routers, Tellabs MSR Routers, Juniper EX Switch JunOS, Oracle Acme Packet, Audiocodes Mediant, Cisco ROS XR, NEC Univerge IX।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.