सवाल आईपीवी 6 पते में प्रतिशत प्रतिशत '%' क्यों है?


मैं इसका उपयोग कर रहा हूँ .NET Framework मेरी मशीन के लिए आईपी पते पाने के लिए कक्षाएं।

Dns.GetHostAddresses(Dns.GetHostName())

मेरे पास वर्चुअलबॉक्स एडाप्टर है जिसमें आईपीवी 4 और आईपीवी 6 पता है। .NET कोड का उपयोग करके मुझे आईपीवी 6 पता मिल रहा है fe80::71a3:2b00:ddd3:753f%16 

अंत में% 16 पर ध्यान दें? 

हालांकि, अगर मैं इसका उपयोग कर पूछता हूं WMI, मुझे पता है कि 'fe80 :: 71a3: 2b00: ddd3: 753f'

तो, क्या% 16 का कोई विशेष महत्व है?

संपादित करें: 

मैं इसके बारे में कुछ और अवलोकन था। और स्टीफन जेनिंग्स ने अपने जवाब में क्या कहा, उनके साथ वे बहुत अच्छे से मेल खाते हैं।

मैंने यह देखने के लिए वीएमवेयर स्थापित किया कि यह आईपीवी 6 पता जारी किया गया है। पते थे: fe80 :: 3dd0: 7f8e: 57b7: 34d5% 19

fe80 :: b059: 65f4: e877: C40% 20

जाहिर है,% के बाद संख्या कुछ हेक्स प्रतिनिधित्व नहीं हैं। मैंने Wmi का उपयोग करके नेटवर्क एडेप्टर के लिए उपलब्ध सभी गुणों की जांच की और पाया कि संख्याएं प्रत्येक नेटवर्क एडाप्टर की इंटरफेस इंडेक्स संपत्ति के समान हैं। के अनुसार MSDN, यह विशिष्ट रूप से प्रत्येक नेटवर्क एडाप्टर की पहचान करता है और यह संपत्ति Vista में पेश की गई थी।

अभी भी मुझे उलझन में क्यों आईपीएड्रेस क्लास आपको उस प्रारूप में आईपी एड्रेस बनाने की इजाजत देगी जब तक कि यह वैध न हो। जवाब स्टीफन द्वारा प्रदान किया गया था। संख्या दायरा आईडी है। आईपीएड्रेस में एक कन्स्ट्रक्टर है जो पता और एक स्कोप आईडी स्वीकार करता है।

ओह, और ये सभी तीन नेटवर्क एडाप्टर स्थानीय लिंक थे। Ipconfig के माध्यम से पुष्टि की

ठंडा। वह दिलचस्प था !!


113
2018-01-23 21:42


मूल


मुझे नहीं पता था कि यह पूछने से पहले क्या था। मैंने आज भी आईपीवी 6 के बारे में कुछ साफ सीखा है (हम कौन सा नरक हैं)। - Stephen Jennings
@ स्टीफन, तो क्या आपने पहले आईपीवी 6 के साथ काम किया है? मैं जल्दी से surpised था आप इसे दबाया। यहां सवाल पोस्ट करने से पहले मैंने कुछ समय पहले गुगल किया था। अच्छा काम! - Amith George
"Ipv6 पता प्रतिशत" खोजना मुझे आवश्यक नाम मिला, और वहां से खोज करने और भ्रमित तकनीकी दस्तावेज को समझने की कोशिश करने में सबसे अधिक समय लगा। मुझे लगता है कि आईपीवी 6 क्या करने की कोशिश कर रहा है, लेकिन इसमें कई नई अवधारणाएं हैं जो मुझे शोध और समझने के लिए नहीं मिली हैं। यह एक था, और कुछ भी आपको किसी और को समझाने की कोशिश करने से बेहतर समझ नहीं देता है। - Stephen Jennings
एक वैकल्पिक संकेत हो सकता है fe80:10 ( 0x0010 16 होना)। मैं इसका इस्तेमाल करता हूँ मेरे ब्राउज़र में लिंक-स्थानीय आईपीवी 6 पते के साथ काम करते समय, लेकिन मुझे 100% यकीन नहीं है कि यह मानकों के अनुसार है। (यूआरएल में प्रतिशत का उपयोग ब्राउज़र में गन्दा है, असल में मैं इसे बिल्कुल काम नहीं कर सका।) - Arjan


जवाब:


'%' के बाद की संख्या स्कोप आईडी है।

आईपीवी 6 पते के लिए कम से कम तीन पहुंच योग्यता क्षेत्रों को परिभाषित करता है:

  1. वैश्विक रूप से संबोधित करने योग्य। यह आपके आईएसपी द्वारा आपको दिया गया एक आईपीवी 6 पता है। यह सार्वजनिक इंटरनेट पर उपयोग करने के लिए उपलब्ध है।

  2. स्थानीय लिंक। यह 16 9.254.एक्स.एक्स रेंज के समान है। यह एक पता है कि एक कंप्यूटर स्थानीय संचार की सुविधा के लिए स्वयं को असाइन करता है। ये पते सार्वजनिक इंटरनेट पर घूमते नहीं हैं क्योंकि वे वैश्विक स्तर पर अद्वितीय नहीं हैं।

  3. नोड-स्थानीय। यह एक ऐसा पता है जो 127.0.0.1 के समान स्थानीय इंटरफेस की पहचान करता है। असल में, यह पता :: 1 है।

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

इस विषय पर स्पष्ट, आसानी से समझी गई जानकारी दुर्लभ प्रतीत होती है, इसलिए मैं अपनी बाकी समझ के आधार पर इसे बाकी रख रहा हूं आरएफसी 4007 और वहां दूसरी जानकारी।

एक कंप्यूटर में कई लिंक-स्थानीय पते हो सकते हैं, प्रत्येक एक अलग दायरे के साथ। स्कोप आईडी इंगित करता है कि पता किस पते के लिए है। उदाहरण के लिए, दो एनआईसी वाले कंप्यूटर के परिदृश्य की कल्पना करें, प्रत्येक में विभिन्न नेटवर्क पर एक लिंक-स्थानीय पता है। यदि आप fe80 से शुरू होने वाले किसी अन्य पते पर कुछ भेजने का प्रयास करते हैं, तो कंप्यूटर को किस एनआईसी को भेजने के बारे में पता चलेगा? स्कोप आईडी इसके लिए समाधान प्रतीत होता है।


120
2018-01-23 22:26



धन्यवाद! एक उत्तर की प्रतीक्षा करते समय मैंने जो अतिरिक्त सामान देखा, उसे जोड़ने के लिए मेरे प्रश्न को संपादित किया। और जब मैं उन्हें पोस्ट करने आया, तो मैं अवलोकन की पुष्टि करने के आपके उत्तर को देखकर आश्चर्यचकित हुआ :) - Amith George
अच्छा उत्तर। मुझे देखने दो कि क्या मैं इसे पूरी तरह समझ गया हूं। तो दो एनआईसी वाले डिवाइस दो अलग-अलग राउटर से कनेक्ट हो सकते हैं, और उसी डीएचसीपी पते को असाइन कर सकते हैं fe80::42। इसके अलावा, राउटर के पास एक ही पता है fe80::1। अब fe80::1%X राउटर के बीच अंतर करने के लिए इस्तेमाल किया जा सकता है, लेकिन fe80::42%X ग्राहक के लिए मामूली उपयोग है, है ना? - user123444555621
@ Pumbaa80 क्लाइंट संदेश भेजेगा fe80::1%1 एनआईसी # 1 से जुड़े राउटर तक पहुंचने के लिए, और यह संदेश भेजेगा fe80::1%2 एनआईसी # 2 से जुड़े राउटर तक पहुंचने के लिए। एक तरफ के रूप में, लिंक-स्थानीय पते होस्ट कंप्यूटर द्वारा स्वचालित रूप से कॉन्फ़िगर किए जाते हैं, न कि डीएचसीपी के माध्यम से, इसलिए यह संभवतः दो एनआईसी को एक ही आईपी असाइन नहीं करेगा। यह भी ध्यान रखें कि लिंक-स्थानीय पते रूटेबल नहीं हैं, इसलिए आमतौर पर आप राउटर को संदेश नहीं भेजेंगे, आप दो होस्टों के बीच संदेश भेज देंगे। - Stephen Jennings
प्रयोग करके, यह पिछला लगता है %nn कम से कम कुछ आदेशों के लिए छोड़ा जा सकता है, उदा। ping, tracert। - matt wilkie
बहुत अच्छा जवाब। बस यह उल्लेख करने के लिए कि स्कोप आईडी शून्य है, और ऐसा लगता है कि कार्यान्वयन विशिष्ट एल्गोरिदम उस आईपी के उस दायरे के साथ इंटरफेस की सूची से एक स्कोप आईडी चुनने के लिए है। - Arran Cudbard-Bell


उपसर्ग fe80 :: / 64 के साथ IPv6 पते लिंक-स्थानीय पते हैं जो नेटवर्क डिवाइस के हार्डवेयर पते के साथ उस उपसर्ग को जोड़कर बनाए जाते हैं, 71a3: 2b00: ddd3: 753f आपके उदाहरण में। (आईपीवी 4 में एनालॉग 16 9.254.0.0/16 है।) चूंकि उपसर्ग एक मशीन पर सभी लिंक-स्थानीय पते के लिए समान है, इसलिए रूटिंग को कभी-कभी यह जानने की आवश्यकता हो सकती है कि आप किस इंटरफ़ेस का जिक्र कर रहे हैं। और जो प्रतिशत के बाद संख्या है, जिसे ज़ोन इंडेक्स कहा जाता है, निर्दिष्ट करता है। विशिष्टता ऑपरेटिंग सिस्टम पर निर्भर करती है: विंडोज़ पर, %16 अंतरफलक संख्या 16 है; उदाहरण के लिए लिनक्स पर आप कुछ ऐसा देख सकते हैं %eth0

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


19
2018-01-23 23:30





% के बाद वर्ण (जो आपके उदाहरण में संख्याएं होती हैं) इंटरफ़ेस पहचानकर्ता हैं। उन पात्रों का उपयोग "नेटवर्क इंटरफेस" की पहचान के लिए किया जाता है, जो लोग अक्सर "नेटवर्क कार्ड" कहते हैं। उदाहरण के लिए, यह निर्धारित करने में सहायता कर सकता है कि एक पैकेट वायर्ड ईथरनेट कार्ड या वायरलेस वाई-फाई एडाप्टर का उपयोग करेगा या नहीं।

मुझे लगता है कि आप माइक्रोसॉफ्ट विंडोज का उपयोग कर रहे हैं। यह इंटरफ़ेस पहचानकर्ताओं के रूप में संख्याओं का उपयोग करता है।

तुलनात्मक रूप से एक बिंदु के रूप में, यूनिक्स-जैसे सिस्टम% साइन के बाद अक्षरों का उपयोग कर सकते हैं। उदा .: fe80::71a3:2b00:ddd3:753f%eth0

उस मामले में, इंटरफ़ेस पहचानकर्ता, eth0, नेटवर्क कार्ड के नाम से मेल खाता है।

माइक्रोसॉफ्ट विंडोज में, आप रूटिंग टेबल की जांच करने वाली कमांड लाइनों में से एक का उपयोग कर (संख्यात्मक) इंटरफ़ेस पहचानकर्ताओं की एक सूची प्राप्त कर सकते हैं। मैं पसंद करता हूं "netstat -nr"चूंकि यह अन्य ऑपरेटिंग सिस्टम पर भी काम करता है, लेकिन माइक्रोसॉफ्ट विंडोज भी"route print"परिणामस्वरूप आउटपुट, जो रिपोर्ट हो जाता है, संभवतः एक स्क्रीन पर अधिक हो जाएगा, इसलिए जब तक आप अधिक पाइप नहीं करते हैं, तब तक स्क्रॉल करने के लिए तैयार रहें।

उदाहरण के लिए, मेरे सिस्टम पर:

=========================================================================== Interface List 14...5c f9 dd 6d 98 b8 ......Realtek PCIe GBE Family Controller 12...e0 06 e6 7e fc 4e ......Bluetooth Device (Personal Area Network) 1...........................Software Loopback Interface 1 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 ===========================================================================

इस मामले में, fe80 :: 71a3: 2b00: ddd3: 753f% 14 जैसे पते में मेरे रीयलटेक पीसीआईई जीबीई फैमिली कंट्रोलर का उल्लेख होगा। "जीबीई" का अर्थ गिगाबिट ईथरनेट से है।

अब, यह मुश्किल हिस्सा है: यदि आप रिमोट एड्रेस पिंग करना चाहते हैं, तो आपको रिमोट सिस्टम के आईपीवी 6 पते का उपयोग करने की आवश्यकता हो सकती है, लेकिन स्थानीय सिस्टम का इंटरफेस आइडेंटिफायर। इसलिए, उदाहरण के लिए, यदि मैं कंप्यूटर ए का उपयोग कर रहा हूं और मेरे पास इंटरफ़ेस नंबर 14 से जुड़ी fe80 :: 1 का स्थानीय आईपीवी 6 पता है, और मैं कंप्यूटर बी को पिंग करना चाहता हूं और इसमें fe80 :: 2 से जुड़ा स्थानीय IPv6 पता है इसका इंटरफ़ेस नंबर 16, तो यही वह है जिसका मैं उपयोग करूंगा:

ping fe80::2%14

ऐसा ping आदेश आईसीएमपीवी 6 पैकेट को रिमोट आईपीवी 6 एड्रेस (एफडी 80 :: 2) में भेज देगा, जो रिमोट कंप्यूटर से संबंधित है, और इसे करने के लिए इंटरफेस के साथ इंटरफेस का उपयोग करेगा। इंटरफ़ेस आइडेंटिफ़ायर 14 उस सिस्टम से एक नंबर है जिसका उपयोग मैं कर रहा हूं, रिमोट सिस्टम नहीं।

अब, देखते हैं कि यह क्यों आवश्यक हो सकता है।

अगर मैं Google के आईपीवी 6 पते को पिंग करना चाहता हूं (जो 2607 है: f8b0: 400a: 802 :: 200e जब मैंने यह उत्तर लिखा था), तो रूटिंग तालिका जांच करेगी कि कौन सा नेटवर्क कार्ड 2607 से शुरू होने वाले पते को संभालता है: f8b0: 400a: 802। रूटिंग तालिका इंगित करेगी कि 2607: f8b0: 400a: 802 से शुरू होने वाले पते का उपयोग करके मेरे नेटवर्क कार्ड में से कोई भी सीधे नेटवर्क से कनेक्ट नहीं है, इसलिए मेरा कंप्यूटर "गेटवे" पता का उपयोग कर समाप्त हो जाएगा। अगर मैं उस संगठन का हिस्सा हूं जो संगठन के लिए काम कर रहा है, तो मेरे पास एक विशेष "गेटवे" पता हो सकता है जो यातायात को एक निजी नेटवर्क पर रूट करता है। इस मामले में, मेरे पास एक और विशिष्ट गेटवे नहीं है, इसलिए मैं आईपीवी 6 "डिफ़ॉल्ट गेटवे" का उपयोग करूंगा। लिंक-स्थानीय पते को छोड़कर, आईपीवी 6 ज्यादातर समय काम करता है। यह भी आईपीवी 4 ने ज्यादातर समय काम किया। (मैंने आईपीवी 6 सबनेट आकार / 64 को मानकर इस उदाहरण को सरल बना दिया है, क्योंकि पूरी प्रक्रिया का वर्णन करने से यह विवरण और भी लंबा होगा।)

इसके अनुसार आरएफसी 42 9 1 सेक्शन 2.8, IPv6 का उपयोग करने वाले प्रत्येक कंप्यूटर को प्रत्येक नेटवर्क इंटरफ़ेस को एक लिंक-स्थानीय पता असाइन करना चाहिए। आरएफसी 42 9 1 सेक्शन 2.5.6 उन बिट्स को दिखाता है जो लिंक-स्थानीय पते से शुरू होना चाहिए, जिसके कारण लिंक-स्थानीय पते "fe80: 0000: 0000: 0000:" से शुरू होते हैं (हालांकि उनमें से कई शून्य दोहरे कोलन में गिर जाते हैं)। तथ्य यह है कि उन पते "fe80:" से शुरू होते हैं, इसका भी वर्णन किया जाता है आरएफसी 42 9 1 खंड 2.4

यदि आप रिमोट सिस्टम को पिंग करने का प्रयास करते हैं (उदाहरण के लिए, "2607: f8b0: 400a: 802"), सामान्य प्रक्रिया आमतौर पर नेटवर्क या सबनेट को समझने के लिए होती है कि पता एक हिस्सा है, जो कि बिट्स को देखकर किया जाता है पते की शुरुआत में। फिर, उन बिट्स का उपयोग ट्रैफिक को रूट करने का तरीका निर्धारित करने के लिए किया जाता है।

हालांकि, यह प्रक्रिया आईपीवी 6 लिंक-स्थानीय पते के लिए काम नहीं करती है, क्योंकि प्रत्येक एकल (परिचालन, सक्रिय) नेटवर्क इंटरफ़ेस में एक लिंक-स्थानीय पता होता है जो सबनेट पर "fe80:" से शुरू होता है, जिसमें सबनेट उपसर्ग / आकार का उपयोग होता है "/ 64 "। यदि आप लैपटॉप पर हैं, तो आपको लगता है कि आपके ईथरनेट कार्ड और आपके वाई-फाई एडाप्टर दोनों में ऐसा IPv6 पता होने की उम्मीद है।

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

समाधान यह है कि आप निर्दिष्ट करते हैं कि आप कौन सा नेटवर्क डिवाइस यातायात का उपयोग करना चाहते हैं। तो, यह नेटवर्क पहचानकर्ता का उद्देश्य है।


14
2018-04-24 04:22



ठीक है, फिर से पढ़ने पर पीटर Eisentraut का जवाबऐसा लगता है कि वह तकनीकी रूप से सही है। उम्मीद है कि मेरे विवरण कुछ और स्पष्टता प्रदान करते हैं। मैं असहमत हूं स्टीफन जेनिंग्स का जवाब, क्योंकि वह उत्तर "स्कोप आईडी" जैसा दिखता है, जो "स्थानीय लिंक" को दायरे के रूप में पहचानता है। हालांकि, दो अलग-अलग नेटवर्क इंटरफेस दोनों "स्थानीय लिंक" हो सकते हैं लेकिन वे उसी "स्कोप" (उनकी क्रमांकित सूची में दिखाए गए उदाहरणों के अनुसार) का उपयोग नहीं करेंगे। इसके बजाए, मैं कहता हूं कि वे नंबर नेटवर्क "इंटरफ़ेस" की पहचान करते हैं। - TOOGAM