IPv6 पर IPv4 आने वाले कनेक्शन को प्राथमिकता दें


11

हम एक सामाजिक / स्थानीय सेवा चलाते हैं जो उपयोगकर्ताओं के आईपी को जियोलोकेशन करने से लाभान्वित करती है। समस्या यह है कि IPv6 के साथ, जियोलोकेशन IPv4 की तुलना में काफी छोटा है।

क्या एक तरीका है IPv6 पर आने वाले कनेक्शन को पसंद करने के लिए, निगनेक्स के साथ एक उबंटू होस्ट पर? विन्यास इस तरह दिखता है:

server {
    listen 80 default_server;
    listen [::]:80 ipv6only=off default_server;
}

जवाबों:


23

IPv6 / IPv4 वरीयता एक कनेक्शन के सर्जक, अर्थात वेब ब्राउज़र द्वारा निर्धारित की जाती है। पता चयन नियम RFC 6724 में परिभाषित किए गए हैं । हालांकि इन्हें ओवरराइड किया जा सकता है, यह केवल उपयोगकर्ता द्वारा अपने ऑपरेटिंग सिस्टम को फिर से कॉन्फ़िगर करने के लिए है।

जिस तरह से आप किसी को आईपीवी 4 का उपयोग करने के लिए मजबूर कर सकते हैं वह आईपीवी 6 की बिल्कुल भी पेशकश नहीं करना है। जाहिर है कि यह मध्यम अवधि में भी व्यावहारिक समाधान नहीं है ...

तो, आइए मूल समस्या पर वापस जाएं: IPv6 के लिए जियोलोकेशन "IPv4 के साथ की तुलना में थोड़ा अधिक आकर्षक है।"

भाग में यह बहुत निर्भर है जहाँ आपको अपना जियोलोकेशन डेटा मिलता है। उदाहरण के लिए मैक्समाइंड केवल मेरे IPv6 पते को "संयुक्त राज्य अमेरिका" के रूप में बताता है, जिसमें कोई भी शहर नहीं है और निर्देशांक का एक दिलचस्प सेट है , जबकि Google कम से कम सही रूप से महानगरीय क्षेत्र की पहचान करता है जो अभी भी लगभग 50 मील दूर हैं। मैक्समाइंड और Google दोनों ही सुधारों की रिपोर्टिंग के लिए अनुमति देते हैं, और कम से कम मैक्समाइंड के लिए कोई भी किसी भी आईपी पते के लिए ऐसा कर सकता है

मैं इस स्थिति के बहुत लंबे समय तक चलने की उम्मीद नहीं करूंगा। जैसा कि IPv6 का उपयोग लगातार बढ़ रहा है, ऐसी जियोलोकेशन सेवाओं के उपयोगकर्ता IPv6 पतों के लिए अधिक सटीकता की मांग करेंगे, और उन्हें अंततः इसे वितरित करना होगा, कम से कम ग्राहकों को भुगतान करने के लिए, ऐसा न हो कि ग्राहक कहीं और जाएं।

इस बीच, आपको यह सुनिश्चित करना चाहिए कि आपके एप्लिकेशन में उपयोगकर्ताओं का पता लगाने के अन्य तरीके हैं। यदि वे लॉग इन होते हैं, तो आप उनके मौजूदा खाते को उनके स्थान के अनुसार सुराग के लिए पढ़ सकते हैं। आप उपयोगकर्ता को स्पष्ट रूप से किसी देश का चयन करने के लिए कह सकते हैं। और इसी तरह...

एक अन्य चीज जो आप कर सकते हैं वह है अपनी वेब साइट का एक IPv4- केवल उपडोमेन और एक IPv6- केवल उपडोमेन प्रदान करना, जिनमें से प्रत्येक आपके पृष्ठों को लोड करने का प्रयास करता है। फिर आप उन्हें क्लाइंट साइड सहसंबंधित कर सकते हैं और सर्वर पर वापस रिपोर्ट कर सकते हैं। संयोग से मैक्समाइंड पहले से ही अपनी वेब साइट पर ऐसा नहीं कर रहा है।


12
मुझे उम्मीद है कि डायनासोर के रास्ते जाने के लिए आईपी के माध्यम से जियोलोकिंग। सबसे अच्छा आप के लिए उम्मीद करना चाहिए एक महाद्वीप संकल्प है, खासकर जब v4 ब्लॉक ट्रेडिंग अधिक कर्षण हो जाता है।
जिम बी

4
क्या वास्तव में गरीब आदमी को पागल करने वाली है सभी कंपनियां जो AFRINIC से IPv4 ब्लॉक प्राप्त कर रही हैं लेकिन वास्तव में अफ्रीका में नहीं हैं। मैं पहले से ही जंगली में इनमें से कुछ देखा है।
माइकल हैम्पटन

1
हाँ, मैंने वही देखा है। मैंने एक ट्रेडिंग ब्लॉक के कारण एक डॉकट्रैकिंग डेमो को रेल से जाते देखा।
जिम बी

15

एसआरवी रिकॉर्ड का उपयोग करके ऐसी प्राथमिकताएं व्यक्त की जा सकती हैं। दुर्भाग्य से वे HTTP के लिए समर्थित नहीं हैं। तो आप एक ऐसी स्थिति से बचे हैं जहाँ अकेले ग्राहक IPv4 और IPv6 के बीच चयन कर रहा है।

कई क्लाइंट यह तय करने के लिए SYN + SYN-ACK के राउंडट्रिप टाइम का उपयोग करते हैं कि दोनों में से किसका उपयोग करना है। तो IPv6 पर SYN-ACK पैकेट भेजने को धीमा करके, आप अधिकांश ग्राहकों को IPv4 पसंद कर सकते हैं। लेकिन जानबूझकर आपकी साइट को धीमा करना एक भयानक दृष्टिकोण है।

इसके बजाय मैं एक कदम पीछे ले जाऊंगा और समस्या को देखूंगा। आप बेहतर जियोलोकेशन डेटा चाहते हैं। जब भी कोई आगंतुक आपकी साइट पर पहुंचता है, तो आपको तुरंत उनके आईपी पते में से एक का पता चल जाता है। चाहे वह IPv4 होगा या IPv6 पता, इस बात पर निर्भर करता है कि उनका ब्राउज़र आपके सर्वर के साथ संवाद करने के लिए पसंद करता है।

अपने पेज के अंदर आप एक और IP पता जानने के लिए AJAX अनुरोध का उपयोग कर सकते हैं। IPv4 का उपयोग करने वाले क्लाइंट के लिए IPv6-only डोमेन के लिए AJAX अनुरोध भेजें, IPv6 का उपयोग करने वाले ग्राहकों के लिए IPv4-only डोमेन के लिए AJAX अनुरोध भेजें।

जैसे ही AJAX का अनुरोध सर्वर पर आता है आप उपयोगकर्ता के IPv4 और IPv6 दोनों पतों को जानते हैं। इस पत्राचार को जानने के बाद आप दोनों में से केवल एक को जानने से बेहतर कर सकते हैं।

आप अक्सर ऐसे मामलों को देखेंगे जहां AJAX अनुरोध सर्वर पर कभी नहीं आता है। उन उपयोगकर्ताओं के लिए आपको जियोलोकेशन करना होगा क्योंकि आप केवल एक आईपी पते के आधार पर सर्वश्रेष्ठ कर सकते हैं। लेकिन जब तक कि AJAX अनुरोध का उत्तर क्लाइंट की ओर से किसी भी चीज के लिए उपयोग नहीं किया जाता है, तब तक उपयोगकर्ता AJAX अनुरोधों को विफल करने वालों को नोटिस भी नहीं करेगा। अजाक्स अनुरोधों के कारण कोई कथित मंदी या अनिश्चित व्यवहार नहीं होगा।


2
यह एक बहुत ही सरल और समाधान को लागू करने के लिए आसान लगता है।
डेन डैस्कलेस्कु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.