एसडीएसएम खत्म हो गया है, लेकिन लिखने की अनियंत्रित इच्छा बनी हुई है।

कई सालों तक, हमारे भाई को दिनचर्या के काम के प्रदर्शन का सामना करना पड़ा, कमिट करने से पहले अपनी उंगलियों को पार कर गया, और रात के रोलबैक के कारण नींद की कमी हो गई।
लेकिन काला समय समाप्त हो रहा है।
इस लेख के साथ, मैं एक श्रृंखला शुरू करूंगा कि
मैं स्वचालन कैसे देखता
हूं ।
इस प्रक्रिया में, हम स्वचालन के चरणों से निपटेंगे, चर को स्टोर करेंगे, डिजाइन को औपचारिक करेंगे, रेस्टापी, NETCONF, YANG, YDK के साथ और हम बहुत कार्यक्रम करेंगे।
इसका मतलब
यह है कि ए) यह एक उद्देश्य सत्य नहीं है, ख) बिना शर्त सबसे अच्छा तरीका नहीं है ग) पहली से अंतिम लेख के लिए आंदोलन के दौरान भी मेरी राय बदल सकती है - ईमानदार होने के लिए, मसौदा चरण से प्रकाशन तक मैंने पूरी तरह से दो बार सब कुछ दोबारा से लिखा है।
सामग्री
- लक्ष्यों
- नेटवर्क एकल जीव की तरह है
- कॉन्फ़िगरेशन परीक्षण
- वर्ज़निंग
- निगरानी और स्व-चिकित्सा सेवाएं
- धन
- इन्वेंटरी प्रणाली
- आईपी अंतरिक्ष प्रबंधन प्रणाली
- नेटवर्क सेवा विवरण प्रणाली
- डिवाइस आरंभीकरण तंत्र
- विक्रेता अज्ञेय विन्यास मॉडल
- विक्रेता-विशिष्ट ड्राइवर
- डिवाइस को कॉन्फ़िगरेशन देने के लिए तंत्र
- सीआई / सीडी
- बैकअप और विचलन तंत्र
- निगरानी प्रणाली
- निष्कर्ष
मैं ADSM को SDSM से थोड़े अलग प्रारूप में रखने की कोशिश करूंगा। बड़े विस्तृत संख्या में लेख दिखाई देते रहेंगे, और उनके बीच मैं हर रोज़ के अनुभव से छोटे नोट प्रकाशित करूँगा। मैं यहाँ पूर्णतावाद से लड़ने की कोशिश करूँगा और उनमें से प्रत्येक को नहीं चाटूँगा।
कितना मज़ेदार है कि दूसरी बार आपको उसी तरह जाना होगा।
सबसे पहले, मुझे इस तथ्य के कारण नेटवर्क के बारे में लेख लिखना पड़ा कि वे RuNet में नहीं थे।
अब मुझे एक व्यापक दस्तावेज नहीं मिला जो स्वचालन के दृष्टिकोण को व्यवस्थित कर सके और उपरोक्त तकनीकों का विश्लेषण करने के लिए सरल व्यावहारिक उदाहरणों का उपयोग कर सके।
शायद मुझसे गलती हुई है, इसलिए, उपयुक्त संसाधनों के लिंक को फेंक दो। हालांकि, यह लिखने के लिए मेरे दृढ़ संकल्प को नहीं बदलेगा, क्योंकि मुख्य लक्ष्य खुद कुछ सीखना है, और मेरे पड़ोसी के लिए जीवन को आसान बनाना एक सुखद बोनस है जो अनुभव के प्रसार के लिए जीन को लाड़ करता है।
हम एक मध्यम आकार के LAN DC डेटा केंद्र को लेने और संपूर्ण स्वचालन योजना का काम करने का प्रयास करेंगे।
मैं आपके साथ लगभग पहली बार कुछ चीजें करूंगा।
यहां वर्णित विचारों और उपकरणों में, मैं मूल नहीं होगा। दिमित्री फिगोल में इस विषय पर धाराओं के साथ एक उत्कृष्ट चैनल है ।
कई पहलुओं के लेख उनके साथ ओवरलैप होंगे।
LAN DC में 4 DC, लगभग 250 स्विच, आधा दर्जन राउटर और कुछ फायरवॉल हैं।
फेसबुक नहीं, लेकिन स्वचालन के बारे में गहराई से सोचने के लिए पर्याप्त है।
हालाँकि, यह राय है कि यदि आपके पास 1 से अधिक उपकरण हैं, तो आपको पहले से ही स्वचालन की आवश्यकता है।
वास्तव में, यह कल्पना करना कठिन है कि अब कोई व्यक्ति कम से कम घुटने के ऊंचे लिपियों के बिना रह सकता है।
हालांकि मैंने सुना है कि ऐसे कार्यालय हैं जहां आईपी पते एक्सेल में रखे जाते हैं, और हजारों नेटवर्क उपकरणों में से प्रत्येक को मैन्युअल रूप से कॉन्फ़िगर किया गया है और इसका विशिष्ट अद्वितीय कॉन्फ़िगरेशन है। यह, निश्चित रूप से, समकालीन कला के रूप में पारित किया जा सकता है, लेकिन इंजीनियर की भावनाओं को निश्चित रूप से नाराज किया जाएगा।
लक्ष्यों
अब हम सबसे अमूर्त लक्ष्य निर्धारित करेंगे:
- नेटवर्क एकल जीव की तरह है
- कॉन्फ़िगरेशन परीक्षण
- नेटवर्क स्थिति संस्करण
- निगरानी और स्व-चिकित्सा सेवाएं
बाद में इस लेख में हम विश्लेषण करेंगे कि हम किस अर्थ का उपयोग करेंगे, और निम्नलिखित में, लक्ष्यों और साधनों पर विस्तार से।
नेटवर्क एकल जीव की तरह है
चक्र का परिभाषित वाक्यांश, हालांकि पहली नज़र में यह इतना महत्वपूर्ण नहीं लग सकता है:
हम नेटवर्क को कॉन्फ़िगर करेंगे, न कि व्यक्तिगत उपकरणों को ।
पिछले कुछ वर्षों में, हम नेटवर्क को एक इकाई के रूप में मानने की दिशा में एक बदलाव का अवलोकन कर रहे हैं, इसलिए
सॉफ्टवेयर ने नेटवर्किंग ,
मंशा से संचालित नेटवर्क और हमारे जीवन में आने वाले
स्वायत्त नेटवर्क को
परिभाषित किया है।
आखिरकार, नेटवर्क से अनुप्रयोगों द्वारा विश्व स्तर पर क्या आवश्यक है: अंक ए और बी (अच्छी तरह से, कभी-कभी + बी-जेड) के बीच कनेक्टिविटी और अन्य अनुप्रयोगों और उपयोगकर्ताओं से अलगाव।

और इस प्रकार, इस श्रृंखला में हमारा कार्य
एक ऐसी प्रणाली का
निर्माण करना है जो
पूरे नेटवर्क के वर्तमान कॉन्फ़िगरेशन का समर्थन करता है, जो पहले से ही प्रत्येक डिवाइस पर वर्तमान कॉन्फ़िगरेशन में अपनी भूमिका और स्थान के अनुसार विघटित है।
नेटवर्क प्रबंधन प्रणाली का तात्पर्य यह है कि परिवर्तन करने के लिए हम इसे चालू करते हैं, और यह, बदले में, प्रत्येक डिवाइस के लिए वांछित स्थिति की गणना करता है और इसे कॉन्फ़िगर करता है।
इस प्रकार, हम अपने हाथों में सीएलआई का उपयोग लगभग शून्य तक कम कर देते हैं - डिवाइस सेटिंग्स या नेटवर्क डिज़ाइन में किसी भी बदलाव को औपचारिक और दस्तावेज बनाया जाना चाहिए - और उसके बाद ही आवश्यक नेटवर्क तत्वों को रोल आउट करें।
उदाहरण के लिए, यदि हमने तय किया है कि अब से कज़ान में रैक-माउंट स्विच पर एक के बजाय दो नेटवर्क की घोषणा करनी चाहिए, तो
- पहले हम सिस्टम में बदलावों का दस्तावेज बनाते हैं
- हम सभी नेटवर्क उपकरणों के लक्ष्य विन्यास उत्पन्न करते हैं
- हम नेटवर्क कॉन्फ़िगरेशन अपडेट प्रोग्राम शुरू करते हैं, जो गणना करता है कि प्रत्येक नोड पर क्या हटाया जाना है, क्या जोड़ना है और नोड्स को वांछित स्थिति में लाना है।
उसी समय, हमारे हाथों से हम केवल पहले चरण में परिवर्तन करते हैं।
कॉन्फ़िगरेशन परीक्षण
यह ज्ञात है कि 80% समस्याएं कॉन्फ़िगरेशन परिवर्तन के दौरान होती हैं - इसका अप्रत्यक्ष प्रमाण यह है कि नए साल की छुट्टियों के दौरान, सब कुछ आमतौर पर शांत होता है।
मैंने व्यक्तिगत रूप से एक मानवीय त्रुटि के कारण दर्जनों वैश्विक गिरावट देखीं: गलत कमांड, कॉन्फ़िगरेशन गलत शाखा में निष्पादित किया गया था, समुदाय भूल गया, राउटर पर विश्व स्तर पर एमपीएलएस को ध्वस्त कर दिया, लोहे के पांच टुकड़े कॉन्फ़िगर किए, और छठे त्रुटि को नोटिस नहीं किया, किसी अन्य व्यक्ति द्वारा किए गए पुराने परिवर्तनों को प्रतिबद्ध किया। । परिदृश्य अंधकारमय है।
स्वचालन हमें कम गलतियाँ करने की अनुमति देगा, लेकिन बड़े पैमाने पर। तो आप एक डिवाइस को नहीं, बल्कि पूरे नेटवर्क को एक ही बार में बंद कर सकते हैं।
पुराने समय से, हमारे दादाजी ने तेज आंख, स्टील के अंडे और उन्हें रोल आउट करने के बाद नेटवर्क की दक्षता के साथ किए गए परिवर्तनों की शुद्धता की जांच की।
उन दादाओं, जिनके काम के कारण डाउनटाइम और विनाशकारी नुकसान हुए, कम संतानों को छोड़ दिया और समय के साथ मर जाना चाहिए, लेकिन विकास एक धीमी प्रक्रिया है, और इसलिए अभी भी हर कोई पहले से प्रयोगशाला में परिवर्तन की जांच नहीं करता है।
हालांकि, उन लोगों में सबसे आगे, जिन्होंने कॉन्फ़िगरेशन के परीक्षण की प्रक्रिया को स्वचालित किया, और नेटवर्क के लिए इसके आगे के अनुप्रयोग। दूसरे शब्दों में, मैंने डेवलपर्स से CI / CD (
कंटीन्यूअस इंटीग्रेशन, कंटिन्यूअस डिप्लॉयमेंट ) प्रक्रिया उधार ली है।
एक भाग में, हम एक संस्करण नियंत्रण प्रणाली का उपयोग करके इसे लागू करने का तरीका देखेंगे, शायद एक जीथब।
जैसे ही आप एक नेटवर्क CI / CD के विचार के लिए अभ्यस्त हो जाते हैं, रात भर विन्यास को जांचने की विधि इसे उत्पादन नेटवर्क पर लागू करने से आपको एक प्रारंभिक मध्ययुगीन अज्ञानता प्रतीत होगी। एक हथौड़ा के साथ एक वारहेड हथौड़ा कैसे करें।
नेटवर्क प्रबंधन प्रणाली और CI / CD के बारे में विचारों की एक जैविक निरंतरता कॉन्फ़िगरेशन का पूर्ण संस्करण है।
वर्ज़निंग
हम मानेंगे कि किसी भी परिवर्तन के साथ, यहां तक कि सबसे मामूली, यहां तक कि एक अगोचर डिवाइस पर, पूरा नेटवर्क एक राज्य से दूसरे तक जाता है।
और हम हमेशा डिवाइस पर कमांड निष्पादित नहीं करते हैं, हम नेटवर्क की स्थिति बदलते हैं।
अब इन राज्यों को प्राप्त करते हैं और उन्हें संस्करण कहते हैं?
मान लीजिए कि वर्तमान संस्करण 1.0.0 है।
क्या ToRs में लूपबैक इंटरफ़ेस का IP पता बदल गया है? यह एक मामूली संस्करण है - नंबर 1.0.1 प्राप्त करें।
बीजीपी में मार्ग आयात नीतियों की समीक्षा की गई - थोड़ा और गंभीर - पहले से ही 1.1.0
हमने IGP से छुटकारा पाने और केवल BGP पर स्विच करने का निर्णय लिया - यह एक कट्टरपंथी डिजाइन परिवर्तन है - 2.0.0।
इसी समय, अलग-अलग डीसी के अलग-अलग संस्करण हो सकते हैं - नेटवर्क विकसित हो रहा है, नए उपकरण स्थापित किए जा रहे हैं, कहीं-कहीं नए रीढ़ के स्तर जोड़े जाते हैं, कहीं - नहीं, आदि।
हम एक अलग लेख में
सिमेंटिक संस्करण के बारे में बात करेंगे।
मैं दोहराता हूं - कोई भी परिवर्तन (डिबगिंग कमांड के अलावा) संस्करण का एक अद्यतन है। प्रशासकों को वर्तमान संस्करण से किसी भी विचलन के बारे में सूचित किया जाना चाहिए।
परिवर्तनों के रोलबैक पर भी यही लागू होता है - यह अंतिम आदेशों का उन्मूलन नहीं है, यह डिवाइस के ऑपरेटिंग सिस्टम द्वारा रोलबैक नहीं है - यह पूरे नेटवर्क को एक नए (पुराने) संस्करण में ला रहा है।
निगरानी और स्व-चिकित्सा सेवाएं
आधुनिक नेटवर्क में यह स्व-स्पष्ट कार्य एक नए स्तर पर जाता है।
अक्सर, बड़े सेवा प्रदाता इस दृष्टिकोण का अभ्यास करते हैं कि एक गिरी हुई सेवा को जल्दी से समाप्त कर दिया जाना चाहिए और एक नया उठना चाहिए, बजाय इसके कि क्या हुआ।
"बहुत" का मतलब है कि सभी पक्षों से निगरानी के साथ गहराई से धब्बा करना आवश्यक है, जो सेकंड के भीतर आदर्श से मामूली विचलन का पता लगाएगा।
और यहां पर्याप्त परिचित मैट्रिक्स नहीं हैं, जैसे कि एक नोड का इंटरफ़ेस या पहुंच लोड करना। उनके लिए ड्यूटी अधिकारी की पर्याप्त और मैनुअल ट्रैकिंग नहीं है।
कई चीजों के लिए, आम तौर पर
सेल्फ हीलिंग होनी चाहिए - नियंत्रण लाल रंग में जलाए गए और स्वयं प्लांटैन से चले गए, जहां यह दर्द होता है।
और यहां हम न केवल व्यक्तिगत उपकरणों, बल्कि एक पूरे के रूप में नेटवर्क के स्वास्थ्य की भी निगरानी करते हैं, और दोनों सफेद बॉक्स, जो अपेक्षाकृत स्पष्ट है, और ब्लैक बॉक्स, जो पहले से ही अधिक जटिल है।
ऐसी महत्वाकांक्षी योजनाओं को लागू करने के लिए हमें क्या करने की आवश्यकता है?
- नेटवर्क पर सभी उपकरणों की सूची, उनके स्थान, भूमिकाएं, मॉडल, सॉफ़्टवेयर संस्करण हैं।
kazan-leaf-1.lmu.net, कज़ान, पत्ती, जुनिपर QFX 5120, R18.3।
- नेटवर्क सेवाओं का वर्णन करने के लिए एक प्रणाली है।
IGP, BGP, L2 / 3VPN, नीति, ACL, NTP, SSH। - डिवाइस को इनिशियलाइज़ करने में सक्षम हो।
Hostname, Mgmt IP, Mgmt मार्ग, उपयोगकर्ता, RSA-Keys, LLDP, NETCONF - डिवाइस को कॉन्फ़िगर करें और कॉन्फ़िगरेशन को वांछित (पुराने सहित) संस्करण में लाएं।
- परीक्षण कॉन्फ़िगरेशन
- समय-समय पर वर्तमान से विचलन के लिए सभी उपकरणों की स्थिति की जांच करें और बताएं कि किसे करना चाहिए।
रात में, किसी ने चुपचाप एसीएल में एक नियम जोड़ा । - प्रदर्शन की निगरानी करें।
धन
जटिल लगता है कि एक परियोजना को घटकों में विघटित करना शुरू करना है।
और उनमें से दस होंगे:
- इन्वेंटरी प्रणाली
- आईपी अंतरिक्ष प्रबंधन प्रणाली
- नेटवर्क सेवा विवरण प्रणाली
- डिवाइस आरंभीकरण तंत्र
- विक्रेता अज्ञेय विन्यास मॉडल
- विक्रेता-विशिष्ट ड्राइवर
- डिवाइस को कॉन्फ़िगरेशन देने के लिए तंत्र
- सीआई / सीडी
- बैकअप और विचलन तंत्र
- निगरानी प्रणाली
यह, वैसे, इस बात का एक उदाहरण है कि चक्र के लक्ष्यों पर दृश्य कैसे बदल गया - मसौदा घटकों में 4 घटक थे।

चित्रण में, मैंने सभी घटकों और डिवाइस को स्वयं चित्रित किया।
इंटरसेक्टिंग घटक एक दूसरे के साथ बातचीत करते हैं।
जितना बड़ा ब्लॉक, उतना अधिक ध्यान इस घटक को देने की आवश्यकता है।
घटक 1. इन्वेंटरी प्रणाली
जाहिर है, हम जानना चाहते हैं कि कौन से उपकरण हैं, यह कहां खड़ा है, यह किससे जुड़ा है।
इन्वेंट्री सिस्टम किसी भी उद्यम का एक अभिन्न अंग है।
सबसे अधिक बार, नेटवर्क उपकरणों के लिए, उद्यम में एक अलग इन्वेंट्री सिस्टम होता है जो अधिक विशिष्ट कार्यों को हल करता है।
लेखों की एक श्रृंखला के भाग के रूप में, हम इसे DCIM - डेटा सेंटर इन्फ्रास्ट्रक्चर मैनेजमेंट कहेंगे। हालाँकि DCIM शब्द, सख्ती से बोलना, बहुत अधिक शामिल है।
हमारे कार्यों के लिए, हम इसमें डिवाइस के बारे में निम्नलिखित जानकारी संग्रहीत करेंगे:
- इन्वेंटरी नंबर
- शीर्षक / विवरण
- मॉडल ( हुआवेई CE12800, जुनिपर QFX5120, आदि )
- विशिष्ट पैरामीटर ( बोर्ड, इंटरफेस, आदि )
- भूमिका ( पत्ता, रीढ़, सीमा रूटर, आदि )
- स्थान ( क्षेत्र, शहर, डेटा केंद्र, रैक, इकाई )
- उपकरणों के बीच अंतर्संबंध
- नेटवर्क टोपोलॉजी

यह पूरी तरह से स्पष्ट है कि हम खुद यह सब जानना चाहते हैं।
लेकिन क्या यह स्वचालन के लिए मदद करेगा?
बेशक।
उदाहरण के लिए, हम जानते हैं कि लीफ स्विच पर इस डेटा सेंटर में, अगर यह हुआवेई है, तो निश्चित ट्रैफ़िक को फ़िल्टर करने के लिए ACL को VLAN पर लागू किया जाना चाहिए, और अगर यह जुनिपर है, तो भौतिक इंटरफ़ेस की इकाई 0 पर है।
या आपको क्षेत्र के सभी बोर्डर्स को एक नया Syslog सर्वर रोल आउट करने की आवश्यकता है।
इसमें, हम वर्चुअल नेटवर्क डिवाइस, जैसे वर्चुअल राउटर या रूट-रिफ्लेक्टर स्टोर करेंगे। हम एक DNS सर्वर, NTP, Syslog और आम तौर पर वह सब कुछ जोड़ सकते हैं जो किसी तरह नेटवर्क से संबंधित है।
घटक 2. आईपी अंतरिक्ष प्रबंधन प्रणाली
हां, और हमारे समय में ऐसे लोगों की टीम है जो एक एक्सेल फाइल में प्रीफिक्स और आईपी एड्रेस का ट्रैक रखते हैं। लेकिन आधुनिक दृष्टिकोण अभी भी एक डेटाबेस है, जिसमें नगनेक्स / अपाचे पर एक दृश्य, एक एपीआई और वीआरएफ में अलगाव के साथ आईपी पते और नेटवर्क को ध्यान में रखते हुए व्यापक कार्य हैं।
आईपीएएम - आईपी एड्रेस मैनेजमेंट।
अपने कार्यों के लिए, हम इसमें निम्नलिखित जानकारी संग्रहीत करेंगे:
- VLAN
- VRF
- नेटवर्क / सबनेट
- आईपी पते
- उपकरणों, नेटवर्क से स्थानों और वीएलएएन नंबरों के लिए बाइंडिंग पते

फिर से, यह स्पष्ट है कि हम यह सुनिश्चित करना चाहते हैं कि ToR लूपबैक के लिए एक नया IP पता आवंटित करके, हम इस तथ्य पर ठोकर नहीं खाएंगे कि यह पहले से ही किसी को सौंपा गया है। या कि हमने नेटवर्क के विभिन्न सिरों पर दो बार एक ही उपसर्ग का उपयोग किया।
लेकिन यह स्वचालन में कैसे मदद करता है?
आसानी से।
हम लूपबैक भूमिका के साथ सिस्टम में एक उपसर्ग का अनुरोध करते हैं, जिसमें आवंटन के लिए आईपी पते उपलब्ध हैं - यदि यह है, तो पते का चयन करें, यदि नहीं, तो हम एक नए उपसर्ग के निर्माण का अनुरोध करते हैं।
या, डिवाइस कॉन्फ़िगरेशन बनाते समय, हम उसी सिस्टम से यह पता लगा सकते हैं कि इंटरफ़ेस किस वीआरएफ में होना चाहिए।
और जब आप एक नया सर्वर शुरू करते हैं, तो स्क्रिप्ट सिस्टम में जाती है, पता लगाती है कि किस सर्वर में स्विच है, किस पोर्ट में और कौन सा सबनेट इंटरफेस को सौंपा गया है - यह उसमें से सर्वर एड्रेस का चयन करेगा।
यह DCIM और IPAM की इच्छा है कि वे एक प्रणाली में संयोजन करें ताकि कार्यों की नकल न करें और दो समान संस्थाओं की सेवा न करें।
तो हम करेंगे।
घटक 3. नेटवर्क सेवा विवरण प्रणाली
यदि पहले दो सिस्टम वैरिएबल को स्टोर करते हैं जो अभी भी किसी तरह उपयोग करने की आवश्यकता है, तो तीसरा प्रत्येक डिवाइस भूमिका के लिए वर्णन करता है कि इसे कैसे कॉन्फ़िगर किया जाना चाहिए।
यह दो अलग-अलग प्रकार की नेटवर्क सेवाओं को हाइलाइट करने के लायक है:
पूर्व को बुनियादी कनेक्टिविटी और उपकरण प्रबंधन प्रदान करने के लिए डिज़ाइन किया गया है। इनमें VTY, SNMP, NTP, Syslog, AAA, रूटिंग प्रोटोकॉल, CoPP आदि शामिल हैं।
दूसरे लोग क्लाइंट के लिए सेवा का आयोजन करते हैं: एमपीएलएस एल 2 / एल 3 वीपीएन, जीआरई, वीएक्सएलएएन, वीएलएएन, एल 2टीपी, आदि।
बेशक, सीमावर्ती मामले भी हैं - जहां एमपीएलएस एलडीपी, बीजीपी को शामिल करना है? हाँ, और राउटिंग प्रोटोकॉल ग्राहकों के लिए उपयोग किए जा सकते हैं। लेकिन यह महत्वपूर्ण नहीं है।
दोनों प्रकार की सेवाएं कॉन्फ़िगरेशन प्राइमेटिव में विघटित हो जाती हैं:
- भौतिक और तार्किक इंटरफेस (टैग / एंटेग, mtu)
- आईपी पते और वीआरएफ (आईपी, आईपीवी 6, वीआरएफ)
- एसीएल और ट्रैफिक हैंडलिंग नीतियां
- प्रोटोकॉल (IGP, BGP, MPLS)
- रूटिंग नीतियाँ (उपसर्ग सूचियाँ, समुदाय, ASN फ़िल्टर)।
- सेवा सेवाएँ (SSH, NTP, LLDP, Syslog ...)
- और इतने पर।
हम वास्तव में यह कैसे करेंगे, मैं इसके लिए अपना दिमाग नहीं लगाऊंगा। हम एक अलग लेख में सौदा करेंगे।

अगर जीवन के थोड़ा करीब, तो हम इसका वर्णन कर सकते हैं
लीफ स्विच में सभी कनेक्टेड स्पाइन स्विच के साथ बीजीपी सत्र होना चाहिए, कनेक्टेड नेटवर्क को इस प्रक्रिया में आयात करना चाहिए, और स्पाइन स्विच से केवल विशिष्ट उपसर्ग से ही नेटवर्क को स्वीकार करना चाहिए। CoPP IPv6 ND को 10 pps तक सीमित करें, आदि।
बदले में, स्पिन्स सभी कनेक्टेड बॉडीज़ के साथ सत्र आयोजित करता है, रूट-रिफ्लेक्टर के रूप में कार्य करता है, और उनसे केवल एक निश्चित लंबाई के मार्ग और एक निश्चित समुदाय के साथ प्राप्त होता है।
घटक 4. डिवाइस आरंभीकरण तंत्र
इस शीर्षक के तहत, मैं कई क्रियाओं को संयोजित करता हूं जो डिवाइस को रडार पर दिखाई देने के लिए और दूरस्थ रूप से एक्सेस करने के लिए होनी चाहिए।
- इन्वेंट्री सिस्टम में डिवाइस को शुरू करें।
- प्रबंधन IP पता हाइलाइट करें।
- इसके लिए बुनियादी पहुँच कॉन्फ़िगर करें:
होस्टनाम, प्रबंधन IP पता, प्रबंधन नेटवर्क का मार्ग, उपयोगकर्ता, SSH कुंजियाँ, प्रोटोकॉल - telnet / SSH / NETCONF
तीन दृष्टिकोण हैं:
- सब कुछ पूरी तरह से मैनुअल है। डिवाइस को एक स्टैंड में लाया जाता है जहां एक साधारण जैविक व्यक्ति उसे सिस्टम में ले जाएगा, कंसोल से कनेक्ट करेगा और कॉन्फ़िगर करेगा। छोटे स्थैतिक नेटवर्क पर काम कर सकते हैं।
- ZTP - जीरो टच प्रोविजनिंग। आयरन आया, खड़ा हुआ, डीएचसीपी के माध्यम से एक पता प्राप्त किया, एक विशेष सर्वर पर गया, और खुद को कॉन्फ़िगर किया।
- कंसोल सर्वर की संरचना, जहां प्रारंभिक कॉन्फ़िगरेशन कंसोल पोर्ट के माध्यम से स्वचालित मोड में होता है।
हम तीनों के बारे में एक अलग लेख में बात करेंगे।

घटक 5. विक्रेता-अज्ञेय विन्यास मॉडल
अब तक, सभी प्रणालियाँ चरों को बिखेर रही हैं और जो हम नेटवर्क पर देखना चाहते हैं, का एक विवरणात्मक विवरण दिया गया है। लेकिन जल्द या बाद में, आपको बारीकियों से निपटना होगा।
इस चरण में, प्रत्येक विशेष उपकरण के लिए, प्राइमेटिव, सेवाओं और चर को एक कॉन्फ़िगरेशन मॉडल में संयोजित किया जाता है जो वास्तव में किसी विशेष डिवाइस के पूर्ण कॉन्फ़िगरेशन का वर्णन करता है, केवल एक विक्रेता-स्वतंत्र तरीके से।
यह कदम क्या देता है? उपकरण को तुरंत कॉन्फ़िगर क्यों नहीं किया जाए, जिसे आप आसानी से भर सकते हैं?
वास्तव में, यह हमें तीन समस्याओं को हल करने की अनुमति देता है:
- डिवाइस के साथ बातचीत के लिए एक विशिष्ट इंटरफ़ेस के लिए अनुकूल नहीं है। चाहे वह CLI, NETCONF, RESTCONF, SNMP हो - मॉडल एक ही होगा।
- नेटवर्क पर विक्रेताओं की संख्या द्वारा टेम्प्लेट / स्क्रिप्ट की संख्या को न रखें, और डिज़ाइन परिवर्तन के मामले में, कई स्थानों पर समान बदलें।
- डिवाइस (बैकअप) से कॉन्फ़िगरेशन डाउनलोड करें, इसे बिल्कुल उसी मॉडल में रखें और सीधे लक्ष्य कॉन्फ़िगरेशन की तुलना करें और डेल्टा की गणना करने और कॉन्फ़िगरेशन पैच तैयार करने के लिए उपलब्ध एक है, जो केवल उन हिस्सों को बदल देगा जो आवश्यक हैं या विचलन का पता लगाने के लिए।

इस चरण के परिणामस्वरूप, हमें एक विक्रेता-स्वतंत्र कॉन्फ़िगरेशन मिलता है।
घटक 6. विक्रेता इंटरफ़ेस विशिष्ट ड्राइवर
अपने आप को इस उम्मीद के साथ सांत्वना न दें कि एक बार जब आप एक टिस्का को कॉन्फ़िगर कर सकते हैं तो यह उसी तरह से संभव होगा जैसे जम्पर, बस उन्हें ठीक उसी कॉल को भेजना। व्हाइटबॉक्स की बढ़ती लोकप्रियता और NETCONF, RESTCONF, OpenConfig के लिए समर्थन के उद्भव के बावजूद, इन प्रोटोकॉल को वितरित करने वाली विशिष्ट सामग्री विक्रेता से विक्रेता से भिन्न होती है, और यह उनके प्रतिस्पर्धी में से एक है कि वे बस हार नहीं मानेंगे।
यह OpenContrail और OpenStack के समान है, रेस्टापी के साथ उनके नॉर्थबाउंड इंटरफ़ेस के रूप में, पूरी तरह से अलग कॉल की अपेक्षा करते हैं।
तो, पांचवें चरण में, विक्रेता-स्वतंत्र मॉडल को वह रूप लेना चाहिए जिसमें वह लोहे में जाएगा।
और यहाँ, सभी साधन अच्छे हैं (नहीं): CLI, NETCONF, RESTCONF, SNMP एक साधारण गिरावट में।
इसलिए, हमें एक ड्राइवर की आवश्यकता है जो किसी विशेष विक्रेता के लिए वांछित प्रारूप में पिछले चरण के परिणाम का अनुवाद करता है: सीएलआई कमांड, एक एक्सएमएल संरचना का एक सेट।
घटक 7. डिवाइस में कॉन्फ़िगरेशन देने के लिए तंत्र
हमने कॉन्फ़िगरेशन उत्पन्न किया, लेकिन इसे अभी भी उपकरणों तक पहुंचाने की आवश्यकता है - और, जाहिर है, हाथ से नहीं।सबसे पहले , हम इस सवाल का सामना कर रहे हैं कि हम किस तरह के परिवहन का उपयोग करेंगे? और आज का चुनाव अब छोटा नहीं है:- CLI (टेलनेट, ssh)
SNMP- NETCONF
- RESTCONF
- अन्य एपीआई
- OpenFlow (हालांकि यह सूची से बाहर खटखटाया गया है, क्योंकि यह FIB वितरित करने का एक तरीका है, सेटिंग्स नहीं)
ई के साथ यहाँ डॉट है। सीएलआई लिगेसी है। एसएनएमपी ... हेहे।RESTCONF अभी भी एक अज्ञात जानवर है; REST API को लगभग कोई भी समर्थन नहीं करता है। इसलिए, हम एक पाश में NETCONF पर ध्यान केंद्रित करेंगे।वास्तव में, जैसा कि पाठक पहले से ही समझ चुके हैं, हमने पहले ही इस बिंदु पर इंटरफ़ेस पर निर्णय लिया था - पिछले चरण का परिणाम पहले से ही चुने गए इंटरफ़ेस के प्रारूप में प्रस्तुत किया गया था।दूसरे , हम किन उपकरणों के साथ ऐसा करेंगे?यहाँ चुनाव भी बड़ा है:- स्व-लिखित स्क्रिप्ट या मंच। हम खुद को ncclient और asyncIO के साथ बांधे और खुद ही सब कुछ करें। खरोंच से परिनियोजन प्रणाली बनाने के लिए हमें क्या लागत आती है?
- नेटवर्क मॉड्यूल के अपने समृद्ध पुस्तकालय के साथ।
- अपने अल्प नेटवर्क काम के साथ नमक और नेपलम के साथ बंडल करें।
- असल में नेपल्म, जो विक्रेताओं के एक जोड़े को जानता है और वह सब, अलविदा।
- Nornir एक और जानवर है जिसे हम भविष्य के लिए तैयार कर रहे हैं।
अभी भी कोई पसंदीदा नहीं चुना गया है - हम स्टॉम्प करेंगे।यहाँ और क्या महत्वपूर्ण है? कॉन्फ़िगरेशन को लागू करने के परिणाम।सफलतापूर्वक या नहीं। हार्डवेयर के टुकड़े तक पहुंच बनी या नहीं।ऐसा लगता है कि प्रतिबद्ध डिवाइस की डाउनलोड की गई पुष्टि और सत्यापन के साथ यहां मदद करेगा।यह, NETCONF के सही कार्यान्वयन के साथ संयुक्त रूप से, उपयुक्त उपकरणों की श्रेणी को उल्लेखनीय रूप से बढ़ाता है - कई निर्माता सामान्य आवागमन का समर्थन नहीं करते हैं। लेकिन यह आरएफपी में सिर्फ एक शर्त है । अंत में, किसी को भी चिंता नहीं है कि एक भी रूसी विक्रेता 32 * 100GE इंटरफ़ेस की स्थिति से नहीं गुजरेगा। या चिंता?
घटक 8. सीआई / सीडी
इस बिंदु पर, हम पहले से ही सभी नेटवर्क उपकरणों के लिए तैयार हैं।मैं "सब कुछ के लिए" लिखता हूं क्योंकि हम नेटवर्क की स्थिति को समाप्त करने की बात कर रहे हैं। और यहां तक कि अगर आपको सिर्फ एक स्विच की सेटिंग्स बदलने की आवश्यकता है, तो पूरे नेटवर्क के लिए परिवर्तनों की गणना की जाती है। जाहिर है, वे अधिकांश नोड्स के लिए शून्य हो सकते हैं।लेकिन, जैसा कि पहले ही उल्लेख किया गया है, हम सब कुछ एक बार में ठेस पहुंचाने के लिए कुछ बर्बर नहीं हैं।उत्पन्न कॉन्फ़िगरेशन को पहले पाइपलाइन CI / CD के माध्यम से जाना चाहिए।CI/CD Continuous Integration, Continuous Deployment. , , , (Deployment) , , (Integration).
, , , , , , — .
, CI/CD Pipeline — .

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

घटक 10. निगरानी प्रणाली
— , . , . .
— CI/CD. , , .
, — , , BGP-, OSPF-, End-to-End .
, SFlow-, , - ?
.


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