CIDR से IP रेंज

CIDR ब्लॉक को पतों की रेंज में बदलें — या रेंज को उन सबसे छोटे ब्लॉकों में जो उसे ठीक-ठीक कवर करें।

प्रीफ़िक्स बताता है कि कितने बिट तय हैं। उसके बाद का हर बिट बदलता है।

दायरा

10.0.0.0 10.0.3.255

कुल 1,024 पते।

पहला पता

10.0.0.0

आख़िरी पता

10.0.3.255

कुल पते

1,024

सबनेट मास्क

255.255.252.0

होस्ट के लिए इस्तेमाल-योग्य

1,022

पहला और आख़िरी नेटवर्क और ब्रॉडकास्ट पते हैं।

अगला ब्लॉक यहाँ से शुरू

10.0.4.0

किसी बड़े ब्लॉक को लगातार हिस्सों में बाँटते समय काम आता है।

संरेखण का नियम, जो बाक़ी सब कुछ समझा देता है

CIDR पर एक ही बंधन चलता है: 2ⁿ पतों वाला ब्लॉक 2ⁿ के गुणज से ही शुरू हो सकता है। /24 में 256 पते होते हैं, इसलिए वह वहीं से शुरू हो सकता है जहाँ आख़िरी ऑक्टेट 0 हो। /26 में 64 होते हैं, इसलिए वह सिर्फ़ .0, .64, .128 या .192 से शुरू हो सकता है।

यह लालफ़ीताशाही नहीं है। यही रूटिंग को तेज़ बनाता है: राउटर तय करता है कि पैकेट कहाँ जाएगा — गंतव्य पर मास्क लगाकर और तुलना करके, यानी दो-चार निर्देशों में। मनमानी रेंज के लिए हर पैकेट पर हर पते की निचली और ऊपरी सीमा से तुलना करनी पड़ती।

व्यावहारिक नतीजा वही है जिसके लिए यह टूल बना है। इंसानों की बनाई रेंज दो की घातों की सीमाओं का लिहाज़ नहीं करतीं, इसलिए किसी रेंज को CIDR में बदलने पर आम तौर पर कई ब्लॉक बनते हैं — दोनों ऊबड़-खाबड़ सिरों पर छोटे, और संरेखित बीच के हिस्से में बड़े।

एक हल किया हुआ उदाहरण

192.168.1.10 से 192.168.1.20 तक ग्यारह पते हैं। ग्यारह दो की घात नहीं है, इसलिए यह एक ब्लॉक नहीं हो सकता। लालची कवर .10 से आगे की ओर चलता है:

ब्लॉककिसे ढकता हैयह आकार क्यों
192.168.1.10/31.10 – .11.10 सम है, इसलिए 2 पतों वाला ब्लॉक वहाँ से शुरू हो सकता है; 4 पतों वाला नहीं।
192.168.1.12/30.12 – .15.12, 4 का गुणज है।
192.168.1.16/30.16 – .19.16, 16 का गुणज है, पर सिर्फ़ 5 पते बचे हैं, इसलिए 4 ही सबसे बड़ा है जो समा जाए।
192.168.1.20/32.20एक पता बचा।

ग्यारह पतों के लिए चार ब्लॉक। हर ब्लॉक पूरी तरह रेंज के भीतर है, और रेंज के बाहर का कुछ भी इसमें शामिल नहीं।

यह कहाँ सामने आता है

  • फ़ायरवॉल और सिक्योरिटी-ग्रुप नियम। AWS, Azure और GCP — तीनों स्रोत रेंज CIDR में लिखते हैं, इसलिए «10.20.30.40 से 10.20.31.200 तक» लिखकर थमाई गई अनुमति-सूची को डालने से पहले बदलना पड़ता है।
  • रूटिंग स्टेटमेंट। स्टैटिक रूट को प्रीफ़िक्स चाहिए, रेंज नहीं।
  • किसी के बताए ब्लॉक को पढ़ना। होस्टिंग प्रदाता कहता है कि आपका आवंटन 203.0.113.64/29 है; इस टूल की पहली दिशा बता देगी कि वह .64 से .71 है, जिसमें .65 से .70 तक आवंटित किए जा सकते हैं।
  • दो ब्लॉक ओवरलैप करते हैं या नहीं, यह जाँचना। दोनों को रेंज में बदलिए और संख्याएँ मिलाइए — प्रीफ़िक्स पर दिमाग़ लगाने से कहीं आसान।

जिस लिखावट में सटीक रहना ज़रूरी है

10.0.0.5/24 और 10.0.0.0/24 — दोनों वैध हैं और दोनों का मतलब अलग है। दूसरा किसी नेटवर्क का नाम है। पहला उस नेटवर्क के भीतर मौजूद एक होस्ट का नाम है, और इंटरफ़ेस कॉन्फ़िगरेशन ऐसे ही लिखा जाता है — एक पंक्ति जो पता और उसका ब्लॉक दोनों साथ लिए चलती है। अगर आप पहले वाले को ऐसी जगह चिपकाएँ जहाँ नेटवर्क की अपेक्षा हो, तो ज़्यादातर टूल चुपचाप उसे मास्क करके 10.0.0.0/24 कर देंगे — जो आम तौर पर वही होता है जो आप चाहते थे, और कभी-कभी नहीं होता।

0.0.0.0/0 का मतलब पूरा इंटरनेट है। डिफ़ॉल्ट रूट लिखने का सही तरीक़ा यही है, और इनबाउंड फ़ायरवॉल नियम में इसे छोड़ देना गंभीर बात है।

संबंधित

किसी एक ब्लॉक के पूरे ब्योरे के लिए — नेटवर्क, ब्रॉडकास्ट, होस्ट रेंज, बाइनरी — सबनेट कैलकुलेटर ही वह टूल है। और /24 तथा 255.255.255.0 के बीच बदलने के लिए पूरी तालिका के साथ एक अलग कन्वर्टर मौजूद है।

CIDR से जुड़े सवाल

मेरी रेंज के लिए एक के बजाय कई CIDR ब्लॉक क्यों चाहिए?

क्योंकि CIDR ब्लॉक को संरेखित होना पड़ता है: 2ⁿ पतों वाला ब्लॉक 2ⁿ के गुणज से ही शुरू हो सकता है। 192.168.1.10 से 192.168.4.200 तक 959 पते हैं, पर यह .10 से शुरू होता है — दो की किसी घात की सीमा पर नहीं — और बीच ब्लॉक में ख़त्म होता है, इसलिए दोनों सिरों से अंदर की ओर बढ़ते हुए क्रमशः बड़े ब्लॉकों से इसे ढका जाता है। पूरी रेंज को समेटने वाला सबसे छोटा इकलौता ब्लॉक /21 है, जो 2,048 पतों तक फैला है — जिनमें से 1,089 आपने माँगे ही नहीं थे।

क्या एक बड़ा ब्लॉक लेकर ऊपर तक गोल नहीं कर सकते?

वह ज़्यादा साफ़-सुथरा दिखेगा और आम तौर पर ग़लत जवाब होगा। रेंज को CIDR में बदलने की वजह लगभग हमेशा कोई फ़ायरवॉल नियम, सिक्योरिटी ग्रुप या रूटिंग स्टेटमेंट लिखना होती है, और ऊपर गोल करना चुपचाप उन पतों तक पहुँच दे देता है जिनका किसी का इरादा नहीं था। यह टूल ठीक-ठीक कवर बनाता है: नतीजे का हर पता आपकी रेंज के भीतर है, और आपकी रेंज का हर पता नतीजे में है।

स्लैश के बाद वाली संख्या का क्या मतलब है?

बाईं ओर से कितने बिट तय हैं। /24 बत्तीस में से चौबीस बिट तय करता है और आठ खुले छोड़ता है, यानी 256 पते। हर एक की बढ़त ब्लॉक को आधा कर देती है: /25 यानी 128 पते, /26 यानी 64। उल्टा हिसाब लगाना हो तो प्रीफ़िक्स को 32 में से घटाइए और 2 को उस घात तक उठाइए।

क्या 10.0.0.5/24 एक वैध CIDR ब्लॉक है?

लिखने का यह तरीक़ा वैध है और लगातार दिखता है, पर यह .5 से शुरू होने वाला ब्लॉक नहीं बताता — यह ब्लॉक 10.0.0.0/24 के भीतर मौजूद होस्ट 10.0.0.5 को बताता है। इंटरफ़ेस कॉन्फ़िगरेशन जान-बूझकर ऐसे लिखे जाते हैं, क्योंकि तब एक ही पंक्ति पता और उसका नेटवर्क दोनों साथ लिए चलती है। अगर आपका मतलब ब्लॉक से है तो पते वाला हिस्सा नेटवर्क एड्रेस होना चाहिए।

/0 कितना बड़ा होता है?

पूरा IPv4 पता-क्षेत्र, सभी 4,294,967,296 पते। यह एक भी बिट तय नहीं करता। यह आपको डिफ़ॉल्ट रूट के रूप में मिलेगा — 0.0.0.0/0 का अर्थ है «सब कुछ», इसीलिए यह रूटिंग टेबल में आख़िरी सहारे वाली प्रविष्टि है, और इसीलिए ग़लती से इसे किसी फ़ायरवॉल नियम में टाइप कर देना ख़तरनाक है।

अंतिम समीक्षा । कुछ पुराना पड़ा हुआ मिला? हमें बताइए.