एक वाक्य में
CIDR इंटरनेट का प्रॉपर्टी लाइन खींचने का तरीका है, जो IP एड्रेस के एक विशाल, अस्त-व्यस्त मैदान को साफ-सुथरे, मैनेजेबल मोहल्लों में बदल देता है, जहाँ आपका डेटा अपना घर ढूंढ सकता है।
यह क्या समस्या हल करता है
ज़रा 1980 के दशक के शुरुआती इंटरनेट के बारे में सोचिए। ज़िंदगी आसान थी। अगर आपको IP एड्रेस चाहिए होते थे, तो आप एक "क्लास" मांगते थे। आपके पास तीन मुख्य विकल्प थे:
- क्लास A: 16,777,214 होस्ट एड्रेस। दिग्गजों के लिए।
- क्लास B: 65,534 होस्ट एड्रेस। बड़े संगठनों के लिए।
- क्लास C: 254 होस्ट एड्रेस। छोटे लोगों के लिए।
यह "क्लासफुल" सिस्टम बहुत कठोर और अविश्वसनीय रूप से बेकार था। कल्पना कीजिए कि आपको 300 IP एड्रेस की ज़रूरत है। क्लास C बहुत छोटा था, इसलिए आपको क्लास B लेना पड़ता। बधाई हो, आपको अभी-अभी 65,534 एड्रेस दिए गए हैं और अब आप उनमें से 65,234 बर्बाद कर रहे हैं। यह कुछ ऐसा था जैसे आपको एक स्कूटर की ज़रूरत हो और आपको 16-पहियों वाला ट्रक खरीदने के लिए मजबूर किया जाए।
1990 के दशक की शुरुआत तक, विशेषज्ञों ने क्षितिज पर एक डिजिटल प्रलय देख लिया था: हमारे IP एड्रेस खत्म होने वाले थे। इंटरनेट की राउटिंग टेबल—कोर राउटर्स द्वारा उपयोग की जाने वाली ग्लोबल एड्रेस बुक—का आकार भी तेजी से बढ़ रहा था, जिससे पूरे सिस्टम के घुटनों पर आ जाने का खतरा था।
1993 में, इंजीनियरों के एक समूह ने RFC 1518 और 1519 पेश किए, जिन्होंने क्लासलेस इंटर-डोमेन राउटिंग, या CIDR (उच्चारण "साइडर") को परिभाषित किया। CIDR ने कठोर A/B/C क्लास को बाहर फेंक दिया। इसने किसी भी आकार के एड्रेस के ब्लॉक को परिभाषित करने का एक नया, लचीला तरीका पेश किया।
यह एक गेम-चेंजर था। इसने इंटरनेट सर्विस प्रोवाइडर्स (ISPs) को ऐसे एड्रेस ब्लॉक आवंटित करने की अनुमति दी जो उनके ग्राहकों के लिए "एकदम फिट" थे, जिससे IPv4 एड्रेस की कमी की गति नाटकीय रूप से धीमी हो गई। इसने "रूट एग्रीगेशन" की भी अनुमति दी, जहाँ एक राउटिंग टेबल में एक सिंगल एंट्री हजारों व्यक्तिगत रूट का प्रतिनिधित्व कर सकती थी, जिससे इंटरनेट की रीढ़ को अपने ही वजन के नीचे ढहने से बचाया जा सका।
अंदर की कहानी: यह कैसे काम करता है
CIDR को समझने के लिए, आपको पहले एक बुनियादी सच्चाई को स्वीकार करना होगा: IP एड्रेस कंप्यूटर के लिए हैं, इंसानों के लिए नहीं। डॉटेड-डेसीमल फॉर्मेट (192.168.1.10) सिर्फ एक सुविधाजनक झूठ है जो हम खुद से बोलते हैं। हकीकत बाइनरी है।
पहले, IP एड्रेस और बाइनरी का एक छोटा सा रीकैप
एक IPv4 एड्रेस एक 32-बिट नंबर है। बस। बत्तीस एक और शून्य। हम इसे चार 8-बिट हिस्सों (ऑक्टेट) में काटते हैं और हर एक को पठनीय बनाने के लिए एक डेसीमल नंबर (0-255) में बदलते हैं।
आइए 172.20.129.45 का उदाहरण लें:
172 . 20 . 129 . 45
10101100 . 00010100 . 10000001 . 00101101
हर IP नेटवर्किंग कैलकुलेशन, जिसमें CIDR भी शामिल है, इसी बाइनरी लेवल पर होता है।
सबनेट मास्क: जादुई डिकोडर रिंग
हर IP एड्रेस एक दोहरी ज़िंदगी जीता है। इसका एक हिस्सा उस नेटवर्क की पहचान करता है जिससे वह संबंधित है (उसकी गली का नाम), और दूसरा हिस्सा उस नेटवर्क पर विशिष्ट होस्ट की पहचान करता है (उसका मकान नंबर)।
एक कंप्यूटर को कैसे पता चलता है कि एक हिस्सा कहाँ खत्म होता है और दूसरा कहाँ से शुरू होता है? यह एक सबनेट मास्क का उपयोग करता है। एक सबनेट मास्क एक और 32-बिट नंबर है जो एक फिल्टर की तरह काम करता है। यह ऐसे काम करता है:
- सबनेट मास्क लगातार
1की एक श्रृंखला है जिसके बाद0की एक श्रृंखला होती है। 1एड्रेस के नेटवर्क हिस्से के अनुरूप होते हैं।0एड्रेस के होस्ट हिस्से के अनुरूप होते हैं।
नेटवर्क एड्रेस खोजने के लिए, एक कंप्यूटर IP एड्रेस और सबनेट मास्क के बीच एक बिटवाइज़ AND ऑपरेशन करता है।
मान लीजिए हमारा IP 172.20.129.45 है और हमारा मास्क 255.255.0.0 है।
IP Address: 10101100.00010100.10000001.00101101 (172.20.129.45)
Subnet Mask: 11111111.11111111.00000000.00000000 (255.255.0.0)
-----------------------------------------------------------------
Network ID: 10101100.00010100.00000000.00000000 (172.20.0.0)
परिणाम, 172.20.0.0, इस नेटवर्क के हर डिवाइस के लिए "गली का नाम" है।
अब आता है CIDR: सबनेट मास्क का शॉर्टकट
255.255.255.0 लिखना थकाऊ है। CIDR नोटेशन एक सरल शॉर्टकट है। यह सिर्फ IP एड्रेस, एक स्लैश (/), और सबनेट मास्क में शुरुआती 1 की संख्या है। इस संख्या को प्रीफिक्स लेंथ कहा जाता है।
| CIDR सफिक्स | सबनेट मास्क | 1 की संख्या |
बाइनरी मास्क |
|---|---|---|---|
| /8 | 255.0.0.0 | 8 | 11111111.0000... |
| /16 | 255.255.0.0 | 16 | 11111111.11111111.0000... |
| /24 | 255.255.255.0 | 24 | 11111111.11111111.11111111.00000000 |
| /29 | 255.255.255.248 | 29 | ...11111111.11111000 |
| /32 | 255.255.255.255 | 32 | सभी 1 (एक सिंगल होस्ट) |
तो, 172.20.129.45 को 255.255.0.0 के मास्क के साथ बस 172.20.129.45/16 लिखा जाता है। एकदम आसान।
काम की चीज़ें कैलकुलेट करना
10.50.84.111/22 जैसे CIDR एड्रेस को देखते हुए, हम उसके नेटवर्क मोहल्ले के बारे में सब कुछ पता लगा सकते हैं।
प्रीफिक्स:
/22। इसका मतलब है कि 22 बिट्स नेटवर्क के लिए हैं, और बचे हुए32 - 22 = 10बिट्स होस्ट के लिए हैं।नेटवर्क एड्रेस: यह रेंज में पहला एड्रेस है, जहाँ सभी होस्ट बिट्स
0हैं। हम इसेANDऑपरेशन से ढूंढते हैं।- IP:
10.50.84.111->00001010.00110010.01010100.01101111 - मास्क
/22:255.255.252.0->11111111.11111111.11111100.00000000 ANDपरिणाम:00001010.00110010.01010100.00000000->10.50.84.0- तो, नेटवर्क एड्रेस
10.50.84.0है।
- IP:
होस्ट की संख्या: हमारे पास 10 होस्ट बिट्स हैं। संभावित एड्रेस की संख्या
2^10 = 1024है।उपयोगी होस्ट: हमें दो एड्रेस घटाने होंगे। क्यों?
- सबसे पहला एड्रेस (सभी होस्ट बिट्स
0) खुद नेटवर्क एड्रेस है। यह गली का नाम है, घर नहीं। - सबसे आखिरी एड्रेस (सभी होस्ट बिट्स
1) ब्रॉडकास्ट एड्रेस है। यहां एक पैकेट भेजना नेटवर्क के हर एक डिवाइस को "अरे सब लोग सुनो!" चिल्लाने जैसा है।
- तो, उपयोगी होस्ट =
(2^10) - 2 = 1024 - 2 = 1022।
- सबसे पहला एड्रेस (सभी होस्ट बिट्स
ब्रॉडकास्ट एड्रेस: यह नेटवर्क एड्रेस है जिसमें सभी होस्ट बिट्स को
1में बदल दिया गया है।- नेटवर्क:
00001010.00110010.01010100.00000000 - ब्रॉडकास्ट:
00001010.00110010.01010111.11111111->10.50.87.255
- नेटवर्क:
होस्ट रेंज: उपयोगी एड्रेस नेटवर्क और ब्रॉडकास्ट एड्रेस के बीच सब कुछ हैं।
- पहला उपयोगी होस्ट:
10.50.84.1(नेटवर्क एड्रेस + 1) - अंतिम उपयोगी होस्ट:
10.50.87.254(ब्रॉडकास्ट एड्रेस - 1)
- पहला उपयोगी होस्ट:
तो, 10.50.84.111/22 10.50.84.0 नेटवर्क पर एक होस्ट है, जो 10.50.84.1 से 10.50.87.254 तक 1022 डिवाइस को सपोर्ट करता है।
असल दुनिया की कहानियाँ
### क्लाउड कॉस्ट की आपदा
एक नई हॉट स्टार्टअप ने अपना इंफ्रास्ट्रक्चर एक पब्लिक क्लाउड में खड़ा किया। कोडिंग शुरू करने की जल्दी में, उन्होंने अपने वर्चुअल प्राइवेट क्लाउड (VPC) के लिए डिफ़ॉल्ट नेटवर्क सेटिंग्स स्वीकार कर लीं, जिसने एक विशाल /16 ब्लॉक (65,534 IPs) ले लिया। कुछ महीनों बाद, उन्हें एक बड़ा क्लाइंट मिला जिसे उनके क्लाउड एनवायरनमेंट के बीच एक सीधा, सुरक्षित कनेक्शन चाहिए था। समस्या? क्लाइंट ने भी ठीक उसी डिफ़ॉल्ट /16 ब्लॉक का उपयोग किया था। उनके एड्रेस स्पेस, 10.10.0.0/16 और 10.10.0.0/16, एक जैसे थे। आप दो जगहों के बीच रूट नहीं कर सकते जो दोनों एक ही एड्रेस होने का दावा करते हैं। स्टार्टअप को एक नए, नॉन-ओवरलैपिंग CIDR रेंज पर अपने पूरे नेटवर्क को खरोंच से बनाने में एक हफ़्ता लग गया।
सबक: अपने नेटवर्क एड्रेस स्पेस की योजना ऐसे बनाएं जैसे आप किसी शहर की योजना बना रहे हों। भले ही आपको अभी केवल एक छोटे से गाँव की ज़रूरत हो, बाद में दूसरे शहरों से जुड़ने के लिए हाईवे की जगह छोड़ दें। सिर्फ डिफ़ॉल्ट सेटिंग्स को स्वीकार न करें।
### रहस्यमयी ऑफलाइन डिवाइस
एक जूनियर नेटवर्क एडमिन को एक नया मॉनिटरिंग सर्वर स्थापित करने का काम सौंपा गया था। उसे IP रेंज 192.168.100.0/24 दी गई थी। उसने सर्वर को IP 192.168.100.255 के साथ कॉन्फ़िगर किया। सर्वर का नेटवर्क इंटरफ़ेस तो चालू हो गया, लेकिन वह एक भूत था। वह गेटवे को पिंग नहीं कर सकता था, और नेटवर्क पर कुछ भी उसे पिंग नहीं कर सकता था। केबल जांचने और ड्राइवरों को फिर से इंस्टॉल करने के एक घंटे के बाद, एक सीनियर इंजीनियर पास से गुज़रा, दो सेकंड के लिए स्क्रीन पर नज़र डाली, और कहा, "यह तुम्हारा ब्रॉडकास्ट एड्रेस है।" उन्होंने IP को 192.168.100.254 में बदल दिया, और यह तुरंत ऑनलाइन आ गया।
सबक: किसी भी सबनेट में पहला और आखिरी एड्रेस विशेष होते हैं और उन्हें किसी होस्ट को नहीं दिया जा सकता। वे क्रमशः नेटवर्क की पहचान और उसका मेगाफोन हैं।
### होम वाई-फाई का जादूगर
एक डेवलपर का होम नेटवर्क एक गड़बड़झाला था। लैपटॉप, फोन, स्मार्ट टीवी, स्पीकर, लाइट बल्ब, और एक "स्मार्ट" टोस्टर के साथ, डिवाइस लगातार वाई-फाई से डिस्कनेक्ट हो रहे थे। अपने राउटर के एडमिन पेज को देखते हुए, उसने देखा कि DHCP सर्वर 192.168.1.0/28 रेंज के लिए कॉन्फ़िगर किया गया था। एक त्वरित गणना से पता चला कि /28 केवल (2^(32-28)) - 2 = 14 उपयोगी IP एड्रेस प्रदान करता है। उसके परिवार के पास 30 से अधिक डिवाइस थे! उसने अपने LAN के लिए सबनेट मास्क को 255.255.255.240 (/28) से बदलकर 255.255.255.0 (/24) कर दिया, जिससे उपलब्ध IPs 254 तक बढ़ गए। वाई-फाई की अस्थिरता तुरंत गायब हो गई।
सबक: सबनेटिंग सिर्फ डेटा सेंटर के लिए नहीं है। यह तय करता है कि आपके लोकल नेटवर्क से कितने डिवाइस जुड़ सकते हैं, और एक गलत कॉन्फ़िगर किया गया सबनेट "खराब वाई-फाई" का एक आम कारण है।
आम गलतियाँ और जाल
- दो रिज़र्व एड्रेस को भूल जाना। एक क्लासिक ऑफ़-बाय-टू एरर। आप
2^hकी गणना करते हैं और किसी को बताते हैं कि उनके पास इतने एड्रेस हैं, लेकिन आप नेटवर्क और ब्रॉडकास्ट एड्रेस को घटाना भूल जाते हैं। इससे कॉन्फ़िगरेशन में त्रुटियां होती हैं और नेटवर्क बस थोड़ा छोटा पड़ जाता है। - ओवरलैपिंग सबनेट। जैसा कि क्लाउड कहानी में देखा गया है, यदि दो नेटवर्क जिन्हें संवाद करने की आवश्यकता है, उनके IP रेंज ओवरलैप होते हैं, तो आप बहुत बड़ी मुसीबत में पड़ने वाले हैं। राउटिंग अस्पष्ट और अक्सर जटिल और भद्दे नेटवर्क एड्रेस ट्रांसलेशन (NAT) हैक्स के बिना असंभव हो जाती है। पहले से योजना बनाएं!
- डेसीमल में सोचना। आप डेसीमल नंबरों को देखकर सबनेटिंग को ठीक से नहीं समझ सकते।
192.168.0.255और192.168.1.0ऐसे दिखते हैं जैसे वे एक-दूसरे के ठीक बगल में हों। यदि आप/24में हैं, तो वे अलग-अलग नेटवर्क में हैं। यदि आप/23में हैं, तो वे एक ही नेटवर्क में हैं। यह सब इस बात पर निर्भर करता है कि बाइनरी सीमा कहाँ है। /31का गलत उपयोग। एक/31में2^(32-31) = 2एड्रेस होते हैं। पुराने नियमों के अनुसार, नेटवर्क और ब्रॉडकास्ट को आरक्षित करने के बाद, शून्य उपयोगी होस्ट बचते थे। हालांकि, RFC 3021 ने इसे विशेष पॉइंट-टू-पॉइंट लिंक (जैसे, दो राउटर को जोड़ना) के लिए अपडेट किया, जहाँ किसी ब्रॉडकास्ट की आवश्यकता नहीं होती है। क्लाइंट्स वाले एक नियमित नेटवर्क के लिए, यह बेकार है।- प्रीफिक्स टाइप करने में गलती करना।
/24के बजाय/23टाइप करना आसान है। एक अंक का अंतर 254 होस्ट के नेटवर्क और 510 होस्ट के नेटवर्क के बीच का अंतर हो सकता है, जिससे नेटवर्क की सीमाएं पूरी तरह से बदल जाती हैं और संभावित रूप से टकराव हो सकता है। अपने प्रीफिक्स को दोबारा जांचें।
यह आपके रडार पर क्यों होना चाहिए
आप सोच सकते हैं कि यह सिर्फ हार्डकोर नेटवर्क इंजीनियरों के लिए है। आप गलत होंगे।
- क्लाउड और DevOps इंजीनियर: यह आपकी ज़िंदगी है। AWS, Azure, या GCP में VPCs/VNETs डिज़ाइन करना CIDR योजना का ही एक अभ्यास है। शुरुआत में इसे गलत करने से बाद में महंगे, जटिल माइग्रेशन होते हैं।
- बैकएंड डेवलपर्स: अपने डेटाबेस से कनेक्ट नहीं कर पा रहे हैं? हो सकता है कि ऐप सर्वर
10.0.1.0/24पर हो और DB10.0.2.0/24पर। यदि उनके बीच कोई राउटर कॉन्फ़िगर नहीं है, तो वे मानो अलग-अलग ग्रहों पर हों। सबनेट को समझना एक मौलिक डीबगिंग कदम है। - सुरक्षा पेशेवर: फ़ायरवॉल नियम अक्सर CIDR ब्लॉक पर आधारित होते हैं। पूरे ऑफिस से एक्सेस की अनुमति देने के लिए, आप 200 अलग-अलग IPs नहीं जोड़ते; आप
10.5.0.0/22के लिए एक नियम जोड़ते हैं। एक ज्ञात बुरे एक्टर को ब्लॉक करने के लिए, आप उनके CIDR रेंज को ब्लॉक करते हैं। - कोई भी जो कोड चलाता है: भले ही आप सिर्फ
localhostपर काम करते हों, आप एक नेटवर्क का उपयोग कर रहे हैं। यह जानना कि127.0.0.1विशाल127.0.0.0/8लूपबैक ब्लॉक में सिर्फ एक होस्ट है, लोकल डेवलपमेंट के एक मुख्य हिस्से को समझने में मदद करता है।
एक दूसरे से जुड़ी सेवाओं, कंटेनरों और क्लाउड इंफ्रास्ट्रक्चर की दुनिया में, नेटवर्क अब किसी और की समस्या नहीं है। इसकी एड्रेस बुक को समझना एक आधुनिक डेवलपर की सुपरपावर है।
और गहराई में जाएं
- RFC 4632: Classless Inter-domain Routing (CIDR) - आधुनिक स्पेसिफिकेशन जिसने मूल RFCs को बदला।
- RFC 1918: Address Allocation for Private Internets - वह दस्तावेज़ जो प्राइवेट IP रेंज (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) को परिभाषित करता है जिन्हें आप जानते हैं और पसंद करते हैं। - RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links - वह स्पेक जो
/31को उपयोगी बनाता है और IP एड्रेस बचाता है। - Wikipedia: Classless Inter-Domain Routing - ऐतिहासिक संदर्भ के साथ एक शानदार, हाई-लेवल सारांश।
- Wikipedia: Subnetwork - सबनेटिंग और मास्क की कार्यप्रणाली में एक गहरी डुबकी।