IE में HTTP प्रॉक्सी (या नहीं) का उपयोग करते समय DNS लुकअप कैसे काम करता है


20

मैंने हाल ही में एक चर्चा में भाग लिया कि क्या होता है जब कोई ग्राहक प्रॉक्सी सर्वर से पृष्ठ का अनुरोध करता है। मैं केवल यह सुनिश्चित करना चाहता था कि घटनाओं के इस क्रम के बारे में मेरी समझ सामान्य मामले में सही थी:

  1. उपयोगकर्ता अनुरोध साइट
  2. डीएनएस अनुरोध क्लाइंट द्वारा भेजा जाता है, अपने कॉन्फ़िगर किए गए डीएनएस सर्वर को गंतव्य आईपी पते को हल करने के लिए (यह प्रॉक्सी को बायपास करने के लिए कॉन्फ़िगर किए गए HTTP अनुरोधों को समायोजित करने के लिए पहले किया जाता है)
  3. एक बार गंतव्य IP DNS से ​​प्राप्त होता है, और HTTP अनुरोध भेजे जाने से ठीक पहले, अपवाद सूची के खिलाफ अनुरोध की जाँच की जाती है
  4. यदि गंतव्य सर्वर अपवाद सूची में नहीं है, तो अनुरोध प्रॉक्सी सर्वर को भेज दिया जाता है।
  5. यदि गंतव्य सर्वर अपवाद सूची में है, तो क्लाइंट मशीन के रूटिंग टेबल के अनुसार अनुरोध अग्रेषित किया जाता है।

किसी भी प्रतिक्रिया की सबसे अधिक सराहना की जाएगी।

जवाबों:


21

बिल्कुल नहीं: यह निर्भर करता है कि क्लाइंट को कैसे कॉन्फ़िगर किया गया है। आइए IE का उपयोग मूल उदाहरण के रूप में करें।

यदि आप IE को एक स्पष्ट प्रॉक्सी के साथ कॉन्फ़िगर करते हैं: जैसे कि कोई अन्य विकल्प टिक नहीं करता है, तो प्रॉक्सी कुछ सेट करता है: 8080।

  1. उपयोगकर्ता एक पता टाइप करते हैं

  2. IE आईई प्रॉक्सी अपवाद सूची के खिलाफ एक स्ट्रिंग मैच के लिए पते की जांच करता है (यानी "इन पते के लिए बायपास प्रॉक्सी:")

    ए। यदि यह बायपास सूची में एक प्रविष्टि से मेल खाता है , तो ग्राहक नाम का समाधान करने के लिए अपने स्वयं के DNS का उपयोग करता है , और फिर क्लाइंट सीधे पोर्ट 80 ( लक्षित ) पर आईपी ​​पते से जोड़ता है , फिर एक अनुरोध भेजता है जैसे:

    GET /something.htm HTTP/1.1
    Host: fulldomainame.example.com

    ख। यदि कोई बायपास सूची प्रविष्टियों से मेल नहीं खाता है , तो जारी रखें:

  3. IE अपने कॉन्फ़िगर किए गए प्रॉक्सी से जोड़ता है , और फ़ॉर्म का अनुरोध भेजता है:

    GET http://fulldomainname.example.com/something.htm HTTP/1.1

    बोनस फैक्टॉइड: URL में FQDN का यह उपयोग एक तरीका है जिससे आप यह बता सकते हैं कि एक ग्राहक को लगता है कि यह वास्तविक वेब सर्वर के बजाय प्रॉक्सी से बात कर रहा है

  4. प्रॉक्सी अपने स्वयं के DNS का उपयोग करके उस होस्ट नाम को हल करता है , और फिर लक्ष्य साइट से जुड़ता है (ऊपर चरण 2 में क्लाइंट की तरह कार्य करता है), आदि, आदि।

WPAD / PAC का उपयोग करते समय:

वेब प्रॉक्सी ऑटो डिस्कवरी (WPAD) या प्रॉक्सी ऑटो कॉन्फ़िगरेशन (PAC या Autoconfig) स्क्रिप्ट का उपयोग करने के मामले में, जैसे कि ISA / TMG द्वारा प्रदान किए जाने पर ऑटोकैफिगरेशन सक्षम है, यह अलग है:

  1. उपयोगकर्ता एक पता टाइप करते हैं

  2. क्लाइंट वर्तमान wpad.dat / autoproxy.js / .pac फ़ाइल को उसके कॉन्फ़िगर स्थान से डाउनलोड करता है

  3. क्लाइंट js फ़ाइल में " FindProxyForUrl " फ़ंक्शन की तलाश करता है, और इसे निष्पादित करता है

  4. Autoproxy स्क्रिप्ट होस्टनाम और URL को संसाधित करता है । यह एक सीमित-फ़ंक्शन जावास्क्रिप्ट फ़ाइल है, लेकिन बहुत सी चीजें अभी भी संभव हैं:

    ए। इसमें नाम समाधान (IsInNet, DnsResolve) शामिल हो सकते हैं

    ख। इसमें स्ट्रिंग मिलान (ShExpMatch) शामिल हो सकता है

    सी। इसमें एक लाख तक गिनती शामिल हो सकती है (i ++)

    घ। यदि व्यवस्थापक का झटका है, तो इसमें बर्खास्त पॉपअप संदेश शामिल हो सकते हैं

    • (या सिर्फ मजाकिया)
    • (या डिबगिंग)
  5. FindProxyForUrl समारोह रिटर्न कम से कम एक स्ट्रिंग : उपयोग करने के लिए सबसे अच्छा प्रॉक्सी के एक आदेश दिया सूची (अर्धविराम विभाजित)

    ए। या तो "प्रत्यक्ष" , जिस मामले में क्लाइंट को फिर नाम को स्वयं हल करने और सीधे बायपास स्थिति के अनुसार कनेक्ट करने की आवश्यकता है

    ख। या "प्रॉक्सी प्रॉक्सी: 8080" या इसी तरह, जिस स्थिति में क्लाइंट उस प्रॉक्सी पर पोर्ट को जोड़ता है, उसे पूर्ण URL प्राप्त करने के लिए कहता है , और प्रॉक्सी नाम रिज़ॉल्यूशन करता है

    • एक उदाहरण के रूप में : यदि स्क्रिप्ट फ़ंक्शन ने "PROXY yourProxy: 8080; DIRECT" लौटाया , जो क्लाइंट को इस URL का अनुरोध करने के लिए TCP पोर्ट 8080 पर yourproxy से कनेक्ट करने के लिए कहता है , और यदि वह कनेक्शन स्थापित नहीं किया जा सकता है, तो सीधे जाने का प्रयास करें। ध्यान दें कि TCP सत्र सेटअप विफलता बिल्कुल ठीक नहीं है, इसलिए यह उपयोगकर्ता के लिए सुखद विफलता अनुभव होने की संभावना नहीं है, लेकिन कुछ भी नहीं धड़कता है। शायद।

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

WinSock प्रॉक्सी / ISA फ़ायरवॉल क्लाइंट / TMG क्लाइंट :

यदि आप Winsock प्रॉक्सी क्लाइंट (TMG / ISA सर्वर से) में रुचि रखते हैं, तो यह एक अलग कहानी है, जिसमें अधिक लचीलापन और चलती भागों हैं। यहां जाने के लिए बहुत कुछ है, लेकिन डॉक्स हैं जिनके बारे में वर्णन है कि यह कैसे काम करता है। संक्षेप में: यह विंडोज़ सॉकेट में प्लग इन करता है, और प्रति-ऐप और प्रति-उपयोगकर्ता आधार पर टीसीपी / यूडीपी आधारित ट्रैफ़िक और नाम रिज़ॉल्यूशन अनुरोध दोनों को रोक सकता है। बहुत शक्तिशाली, लेकिन अब भी पदावनत, और कई वर्षों में अद्यतन नहीं किया गया है।

ग्राहक वास्तव में हो सकते हैं

एक अंतिम नोट : एक बार HTTP क्लाइंट ने किसी दिए गए साइट / url के लिए प्रॉक्सी से बात करने का फैसला किया है, तो प्रॉक्सी के पास यह बताने का कोई तरीका नहीं है

कोई HTTP स्टेटस कोड या हेडर नहीं है "मैं उसकी सेवा नहीं करता, आपको बस इसके बजाय सीधे जाना चाहिए" ...

एक बार जब ग्राहक एक विशेष URL का फैसला करता है, तो वह प्रॉक्सी-सेवारत, प्रॉक्सी-डेथ-ग्रिप करता है

इससे बचने का एकमात्र तरीका ग्राहक द्वारा पीएसी या बाईपास सूची में अपना कनेक्शन बनाने से पहले चयन तर्क प्राप्त करना है।

ज़ोन और पीएसी फाइलों पर एक अंतिम नोट

IE उन साइटों का व्यवहार करता है जो DIRECT कनेक्टेड हैं - भले ही उनके पास URL में डॉट्स हों - स्थानीय इंट्रानेट ज़ोन का हिस्सा होने के लिए (डिफ़ॉल्ट रूप से - ज़ोन प्रॉपर्टीज़ में सेटल होने योग्य), और इस तरह वे चीज़ें उन साइट्स पर एकीकृत Windows प्रमाणीकरण की अनुमति देंगी (जैसे) Kerberos और / या NTLM प्रमाणीकरण, पारदर्शी रूप से)। इसलिए यह नियंत्रित करना कि क्या स्थानीय इंट्रानेट ज़ोन में कुछ परिभाषित करता है कि यह स्वचालित प्रमाणीकरण के संदर्भ में कितना विश्वसनीय है। फिर से, कम से कम, डिफ़ॉल्ट रूप से।


क्या RFC का कोई मानक या हिस्सा है जो बताता है कि क्लाइंट को प्रॉक्सी से कनेक्ट होने से पहले DNS रिज़ॉल्यूशन नहीं करना चाहिए ?
व्हीलर

जहां तक ​​मैं इसे समझता हूं, सिर्फ सम्मेलन और / या दक्षता। पुराने Microsoft Winsock प्रॉक्सी क्लाइंट आपको नाम रिज़ॉल्यूशन विकल्पों के साथ खेलने की अनुमति देता था। और आपको पीएसी लिखने से रोकने के लिए कुछ भी नहीं है जो नाम समाधान करता है और फिर एक प्रॉक्सी का उपयोग करता है ... यह सिर्फ यह नहीं है कि यह पहली बार में कैसे किया गया था।
ट्रिस्टनके

0

मुझे यकीन नहीं है कि आपका DNS हिस्सा सही है। मैं एक ठीक का उपयोग कर IE में कोई मान्य DNS सर्वर पृष्ठों के साथ एक मशीन देखा है प्रॉक्सी का उपयोग कर।


मुझे पता है कि ISA सर्वर वेब प्रॉक्सी क्लाइंट गंतव्य पते को हल करने के लिए ISA सर्वर के DNS का उपयोग करता है, लेकिन मुझे यकीन है कि XP ​​/ Win7 मशीन के इंटरनेट विकल्प में सेट एक बुनियादी HTTP प्रॉक्सी ऊपर बताई गई है ...
Orange_aurelius

... और उफ़। मैंने सिर्फ एक परीक्षण किया जो खुद को गलत साबित कर दिया, कम से कम आईई में। इसलिए, मुझे लगता है कि मेरा अगला प्रश्न यह होगा कि कैसे डीएनएस को हल किया जाता है, जो उन प्रॉक्सी पते की सूची में हैं? हो सकता है कि सूंघने का समय हो।
नारंगी_यूरियस

0

मैं ubuntu 10.04, शराब, IE 6.0 और स्क्वीड 2.7 में कोशिश करता हूं (सिस्टम में एक डीएनएस है और स्क्वीड में अन्य डीएनएस सर्वर है)

  1. उपयोगकर्ता प्रॉक्सी के लिए अनुरोध भेजते हैं
  2. विद्रूप DNS सर्वर पर DNS अनुरोध भेजते हैं
  3. विद्रूप DNS उत्तर प्राप्त करता है। यदि nxdomain या अन्य त्रुटि है, तो IE को त्रुटि पृष्ठ भेजें। यदि नाम हल है, तो पृष्ठ प्राप्त करें और IE को दें।

IE 6.0 DNS नाम को हल नहीं करता है।


0

मुझे नहीं लगता कि यह है - यदि आप अपवाद सूची में आईपी और डोमेन में टाइप करते हैं, या डोमेन, और आईपी अपवाद सूची में है, तो यह संभवतः प्रॉक्सी के माध्यम से जाएगा।

यह संभव है कि एक प्रॉक्सी.पैक / wpad.dat आपको इस व्यवहार से बाहर निकलने के लिए मजबूर कर सके।

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