
यह एक Rust-आधारित रूटिंग प्रोटोकॉल सूट है जो BGP, OSPF, IS-IS, RIP और VRRP को लागू करता है, जिसमें YANG-मॉडल्ड कॉन्फ़िगरेशन, gNMI/gRPC ऑटोमेशन और उच्च-स्केल, ऑटोमेशन-चालित नेटवर्क के लिए अंतर्निहित फ़ज़िंग है।
होलो उच्च-स्तरीय और स्वचालन-संचालित नेटवर्क को समर्थन देने के लिए डिज़ाइन किए गए रूटिंग प्रोटोकॉल का एक सूट है।
रूटिंग प्रोटोकॉल क्या है, इसके विवरण के लिए कृपया इस विकिपीडिया पृष्ठ को देखें।
होलो का मुख्य लक्ष्य एक विश्वसनीय, बनाए रखने में आसान, और विस्तार योग्य कोडबेस बनाना है। रूटिंग प्रोटोकॉल और उनके एक्सटेंशन की बढ़ती जटिलता के साथ, एक मजबूत नींव पर निर्मित रूटिंग प्रोटोकॉल कार्यान्वयन होना महत्वपूर्ण है। इस उद्देश्य के लिए, होलो का कोडबेस सरलता, मॉड्यूलरिटी और व्यापक दस्तावेज़ीकरण को प्राथमिकता देता है। Rust कंपाइलर की कड़ी और व्यापक यूनिट परीक्षणों के कारण, यह अपेक्षा की जाती है कि नई सुविधाओं के विकास चक्र में अधिकांश प्रतिगमन जल्दी पकड़े जाएंगे। अधिक जानकारी के लिए, कृपया आर्किटेक्चर पृष्ठ देखें।
होलो विशेष रूप से उच्च-स्तरीय, स्वचालन-संचालित नेटवर्क के लिए विकसित किया गया था, जिन्हें संरचित और मॉडल किए गए डेटा का उपयोग करके प्रोग्राम करने योग्य कॉन्फ़िगरेशन और निगरानी की आवश्यकता होती है। होलो मूल रूप से IETF से मानक YANG मॉड्यूल लागू करता है और कई प्रबंधन इंटरफेस का समर्थन करता है, जिसमें मूल gRPC और gNMI शामिल हैं। इसके अतिरिक्त, होलो में एक स्टैंडअलोन CLI है जो YANG मॉड्यूल से कमांड को गतिशील रूप से प्रस्तुत करता है और gRPC के माध्यम से होलो डेमन के साथ संचार करता है।
कॉन्फ़िगरेशन में किए गए परिवर्तनों को लेन-देन के रूप में संसाधित किया जाता है, यह गारंटी देते हुए कि या तो सभी परिवर्तन लागू होते हैं या कोई भी नहीं। यह सुविधा नेटवर्क स्वचालन का एक महत्वपूर्ण सुविधाकर्ता है क्योंकि यह प्रबंधन अनुप्रयोगों में त्रुटि पुनर्प्राप्ति की आवश्यकता को समाप्त करती है। होलो कई नेटवर्क उपकरणों को शामिल करने वाले नेटवर्क-व्यापी लेन-देन का भी समर्थन करता है। अतिरिक्त नेटवर्क स्वचालन क्षमताओं में पुष्टि किए गए कमिट और कॉन्फ़िगरेशन रोलबैक समर्थन शामिल हैं।
मेमोरी-सुरक्षित भाषा में लिखे जाने के कारण, होलो विभिन्न प्रकार के मेमोरी-संबंधित बग और सुरक्षा कमजोरियों से प्रतिरक्षित है। Rust द्वारा प्रदान की गई सुरक्षा गारंटी के अलावा, होलो डेमन स्टार्टअप पर विशेषाधिकारों को भी छोड़ देता है। कुछ ऑपरेशनों के लिए, जैसे सॉकेट बाइंड करना, न्यूनतम आवश्यक अनुमति प्राप्त करने के लिए Linux क्षमताओं का उपयोग कम से कम समय के लिए किया जाता है।
होलो रूटिंग प्रोटोकॉल स्टैक में सबसे आम हमले वेक्टर: दुर्भावनापूर्ण पैकेट इनपुट के माध्यम से सेवा-अस्वीकृति (DoS) हमलों के खिलाफ मजबूत सुरक्षा भी प्रदान करता है। आने वाले पैकेटों को अलग-थलग, पर्यवेक्षित async कार्यों में डिकोड किया जाता है, जिससे प्रोटोकॉल कार्यान्वयन को पैनिक से शालीनता से उबरने की अनुमति मिलती है, जैसे कि खराब पैकेट को अनदेखा करना या केवल प्रभावित TCP स्ट्रीम को बंद करना, पूरे डेमन की स्थिरता से समझौता किए बिना। इसके अतिरिक्त, होलो के मॉड्यूलर डिज़ाइन और कवरेज-निर्देशित फ़ज़िंग के लिए अंतर्निहित समर्थन के कारण, अधिकांश पार्सिंग बग का विकास के दौरान पता लगाए जाने और संबोधित किए जाने की उम्मीद है।
कुछ प्रोटोकॉल, जैसे OSPF और RIP, के विभिन्न संस्करण हैं जो व्यापक रूप से तैनात हैं, आमतौर पर एक IPv4 के लिए और दूसरा IPv6 के लिए। होलो Rust के जेनेरिक का लाभ उठाकर संस्करण-अज्ञेय प्रोटोकॉल कार्यान्वयन रखता है, जहां अधिकांश कोड विभिन्न प्रोटोकॉल संस्करणों द्वारा साझा किया जाता है। यह दृष्टिकोण इन प्रोटोकॉल के रखरखाव की लागत को कम करता है और उन नई सुविधाओं के शिपिंग की सुविधा प्रदान करता है जो सभी प्रोटोकॉल संस्करणों को लाभान्वित करती हैं।
होलो एसिंक्रोनस संचालन का व्यापक उपयोग करता है और कार्यों को शेड्यूल करने और उन्हें थ्रेड पूल पर चलाने के लिए Tokio रनटाइम पर निर्भर करता है। बेहतर प्रदर्शन प्राप्त करने के लिए, I/O अनुरोध और CPU-गहन एल्गोरिदम दोनों को अलग-अलग कार्यों में स्थानांतरित किया जाता है, जिससे सभी उपलब्ध CPU कोर का अधिकतम उपयोग होता है। रनटाइम-अज्ञेय कोड के लिए समर्थन भविष्य के लिए योजनाबद्ध है, एक बार जब Rust भाषा टीम द्वारा आवश्यक अमूर्तता को मानकीकृत कर दिया जाता है।
होलो लॉग संदेश उत्पन्न करता है जिनमें संरचित डेटा होता है, जिसे JSON, टेक्स्ट आदि जैसे विभिन्न प्रारूपों में प्रस्तुत किया जा सकता है। चूंकि लॉगिंग tracing फ़ेसाड के माध्यम से की जाती है, विभिन्न उपयोगकर्ता आवश्यकताओं को पूरा करने के लिए विविध tracing सब्सक्राइबर्स का उपयोग किया जा सकता है। उदाहरण के लिए, लॉगिंग को एक फ़ाइल, journald, एक केंद्रीकृत OpenTelemetry कलेक्टर, या संभावित रूप से अलग-अलग लॉगिंग स्तरों के साथ इन विकल्पों के किसी भी संयोजन के लिए निर्देशित किया जा सकता है।
होलो रिकॉर्ड-एंड-रीप्ले कार्यक्षमता प्रदान करता है, जो किसी भी उपयोगकर्ता-रिपोर्ट किए गए बग के आसान पुनरुत्पादन को सक्षम करता है। होलो डेमन को किसी प्रोटोकॉल इंस्टेंस के पूरे जीवनकाल को एक फ़ाइल में रिकॉर्ड करने के लिए सेट किया जा सकता है। उस फ़ाइल को फिर किसी अन्य मशीन पर चलाया जा सकता है, घटनाओं के उसी क्रम को पुन: उत्पन्न करते हुए। जबकि एक रिकॉर्डिंग सत्र घंटों या दिनों तक चल सकता है, playback प्रक्रिया में केवल कुछ सेकंड लगने चाहिए। यह होलो की मॉड्यूलर आर्किटेक्चर के कारण संभव है, जहां सभी समय-संबंधी और I/O संचालन अलग-अलग कार्यों में किए जाते हैं और ईवेंट संदेशों के रूप में सारगर्भित होते हैं।
विस्तृत इंस्टॉलेशन निर्देशों के लिए, कृपया INSTALL.md फ़ाइल देखें।
वर्तमान में, होलो केवल Linux ऑपरेटिंग सिस्टम के साथ संगत है। वेबअसेंबली समर्थन भविष्य के लिए योजनाबद्ध है।
होलो का उपयोग शुरू करने का सबसे आसान तरीका containerlab सॉफ़्टवेयर के संयोजन में पूर्व-निर्मित Docker कंटेनरों का उपयोग करना है। आप इस लिंक पर विभिन्न प्रकार के पूर्व-कॉन्फ़िगर किए गए नेटवर्क टोपोलॉजी पा सकते हैं। इन टोपोलॉजी को एक ही कमांड के साथ तैनात किया जा सकता है, जिससे आप विभिन्न नेटवर्क सेटअपों में होलो का परीक्षण कर सकते हैं, जिसमें अन्य कार्यान्वयन के साथ अंतर-संचालन परीक्षण भी शामिल है।
इसके अतिरिक्त, होलो का उपयोग जहां भी रूटिंग स्टैक की आवश्यकता है, वहां किया जा सकता है, जैसे कि सॉफ़्टवेयर राउटर में, बशर्ते कि सुविधा सेट आपकी विशिष्ट आवश्यकताओं के अनुरूप हो।
होलो निम्नलिखित इंटरनेट मानकों का समर्थन करता है:
Ixia IxANVL RFC अनुपालन परीक्षक के साथ किए गए अनुरूपता परीक्षण के परिणाम यहाँ उपलब्ध हैं।
यह परियोजना NGI Zero Core के माध्यम से वित्त पोषित है, जो NLnet द्वारा स्थापित एक फंड है जिसे यूरोपीय आयोग के Next Generation Internet कार्यक्रम से वित्तीय सहायता प्राप्त है। NLnet परियोजना पृष्ठ पर और जानें।
यह परियोजना MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
हम किसी भी योगदान का स्वागत करते हैं, बग रिपोर्ट से लेकर पुल अनुरोध तक। कृपया योगदान करने के विचारों के लिए हमारी परियोजना इच्छा-सूची देखें।
जब तक आप स्पष्ट रूप से अन्यथा न कहें, आपके द्वारा जानबूझकर होलो में शामिल करने के लिए प्रस्तुत किया गया कोई भी योगदान, बिना किसी अतिरिक्त शर्तों या नियमों के, MIT के रूप में लाइसेंस प्राप्त होगा।
| मॉड्यूल | कॉन्फ़िगरेशन | अवस्था | RPCs | सूचनाएं | कुल |
|---|
| ietf-bfd-ip-mh@2022-09-22 | 100.00% | 100.00% | - | 100.00% | 100.00% |
| ietf-bfd-ip-sh@2022-09-22 | 100.00% | 100.00% | - | 100.00% | 100.00% |
| ietf-bfd@2022-09-22 | 100.00% | 100.00% | - | - | 100.00% |
| ietf-bgp-policy@2023-07-05 | 100.00% | - | - | - | 100.00% |
| ietf-bgp@2023-07-05 | 32.38% | 85.95% | - | - | 60.40% |
| ietf-bier@2023-09-12 | 100.00% | - | - | 0.00% | 72.50% |
| ietf-if-extensions@2023-01-26 | 100.00% | 0.00% | - | - | 50.00% |
| ietf-if-vlan-encapsulation@2023-01-26 | 42.86% | - | - | - | 42.86% |
| ietf-igmp-mld@2019-11-01 | 84.62% | 100.00% | - | - | 95.83% |
| ietf-interfaces@2018-02-20 | 100.00% | 0.00% | - | - | 22.22% |
| ietf-ip@2018-02-22 | 52.17% | 0.00% | - | - | 40.00% |
| ietf-ipv4-unicast-routing@2018-03-13 | 100.00% | 100.00% | - | - | 100.00% |
| ietf-ipv6-unicast-routing@2018-03-13 | 40.62% | 100.00% | - | - | 45.71% |
| ietf-isis-flex-algo@2026-06-26 | 0.00% | 100.00% | - | 0.00% | 74.00% |
| ietf-isis-link-attr@2026-06-26 | 81.82% | 78.43% | - | - | 78.76% |
| ietf-isis-msd@2024-09-02 | - | 100.00% | - | - | 100.00% |
| ietf-isis-sr-mpls@2025-12-09 | 15.38% | 57.27% | - | - | 52.85% |
| ietf-isis@2022-10-19 | 93.62% | 80.09% | 100.00% | 100.00% | 86.77% |
| ietf-key-chain@2017-06-15 | 100.00% | 100.00% | - | - | 100.00% |
| ietf-mpls-ldp@2022-03-14 | 86.96% | 92.31% | 100.00% | 100.00% | 92.38% |
| ietf-mpls@2020-12-18 | 0.00% | 57.14% | - | - | 35.29% |
| ietf-ospf-anycast-flag@2026-05-19 | 100.00% | - | - | - | 100.00% |
| ietf-ospf-sr-mpls@2025-12-09 | 21.43% | 51.36% | - | - | 49.82% |
| ietf-ospf@2022-10-19 | 95.70% | 85.04% | 100.00% | 58.06% | 83.89% |
| ietf-ospfv3-extended-lsa@2024-06-07 | 50.00% | 85.28% | - | - | 84.85% |
| ietf-rip@2020-02-20 | 27.91% | 93.33% | 100.00% | - | 55.41% |
| ietf-routing-policy@2021-10-11 | 100.00% | 0.00% | - | - | 98.11% |
| ietf-routing@2018-03-13 | 100.00% | 85.71% | - | - | 92.31% |
| ietf-segment-routing-mpls@2021-05-26 | 62.50% | 0.00% | - | 23.53% | 32.76% |
| ietf-segment-routing@2021-05-26 | 100.00% | - | - | - | 100.00% |
| ietf-system@2014-08-06 | 26.67% | 60.00% | 0.00% | - | 38.24% |
| ietf-vrrp@2018-03-13 | 53.19% | 80.00% | - | 66.67% | 66.35% |