Windows 2008 सर्वर पर डेड गेटवे डिटेक्शन


9

हमने हाल ही में stackoverflow.com के लिए HAProxy को लागू किया है। हमने अपने लॉग और अन्य IIS मॉड्यूल को जोड़ने वाले क्लाइंट के लिए स्रोत पता बनाए रखने के लिए TProxy का उपयोग करने पर निर्णय लिया जो क्लाइंट IP पते पर निर्भर करता है जिसे संशोधन की आवश्यकता नहीं होगी। इसलिए पैकेट खराब हो जाते हैं जैसे कि वे एक बाहरी इंटरनेट आईपी पते से आए हैं, जब वास्तव में वे हमारे स्थानीय नेटवर्क पर 192.168.xx HAProxy IP से आए थे।

हमारे दोनों वेब सर्वरों में दो एनआईसी हैं - एक स्थिर आईपी, डीएनएस और डिफॉल्ट गेटवे के साथ सार्वजनिक इंटरनेट पर एक नियमित श्रेणी बी का पता और एक निजी गैर-श्रेणीबद्ध सी सी पते के साथ कॉन्फ़िगर किया गया एक डिफ़ॉल्ट गेटवे जिसे HAPPY के लिए निजी आईपी पर इंगित किया गया है। HAProxy के दो इंटरफेस हैं - एक सार्वजनिक और एक निजी और इंटरफेस के बीच पारदर्शी तरीके से रूटिंग पैकेट का काम करता है और ट्रैफ़िक को उचित वेब सर्वर पर निर्देशित करता है।

ईथरनेट एडाप्टर इंटरनेट:

   विवरण । । । । । । । । । । । : नेटवर्क कार्ड # 1
   डीएचसीपी सक्षम। । । । । । । । । । । : नहीं
   ऑटोकॉन्फ़िगरेशन सक्षम। । । । : हाँ
   IPv4 पता। । । । । । । । । । । : 69.59.196.217 (पसंदीदा)
   सबनेट मास्क । । । । । । । । । । । : 255.255.255.240
   डिफ़ॉल्ट गेटवे । । । । । । । । । : 69.59.196.209
   डीएनएस सर्वर। । । । । । । । । । । : 208.67.222.222
                                       208.67.220.220
   Tcpip पर NetBIOS। । । । । । । । : सक्षम किया गया

ईथरनेट एडाप्टर निजी स्थानीय:

   विवरण । । । । । । । । । । । : नेटवर्क कार्ड # 2
   डीएचसीपी सक्षम। । । । । । । । । । । : नहीं
   ऑटोकॉन्फ़िगरेशन सक्षम। । । । : हाँ
   IPv4 पता। । । । । । । । । । । : 192.168.0.2 (पसंदीदा)
   सबनेट मास्क । । । । । । । । । । । : 255.255.255.0
   डिफ़ॉल्ट गेटवे । । । । । । । । । : 192.168.0.50
   Tcpip पर NetBIOS। । । । । । । । : सक्षम किया गया

हमने प्रत्येक वेब सर्वर पर स्वचालित मेट्रिक्स को अक्षम कर दिया है और राउटेबल पब्लिक क्लास बी को 10 का मीट्रिक और हमारे निजी इंटरफ़ेस को 20 का मीट्रिक बनाया है।

हमने इन दोनों रजिस्ट्री कुंजियों को भी सेट किया है:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DeadGWDetectDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableDeadGWDetect"=dword:00000000

प्रति दिन लगभग दो बार हम ऐसे मुद्दों को देखते हैं, जिनमें से एक वेब सर्वर DNS से ​​संपर्क नहीं कर सकता है या सार्वजनिक इंटरनेट पर किसी अन्य सर्वर से कनेक्शन नहीं बना सकता है।

हमें संदेह है कि मृत गेटवे का पता सार्वजनिक गेटवे पर गलत तरीके से लगाया गया है और सभी ट्रैफ़िक को निजी गेटवे पर स्विच कर रहा है, जिसका इस बिंदु पर कोई DNS उपयोग नहीं है, लेकिन इसका सत्यापन करने का कोई तरीका नहीं है।

  1. क्या यह जानने का कोई तरीका है कि क्या मृत गेटवे का पता चल रहा है या विंडोज 2008 सर्वर में भी एक विकल्प है?

  2. यदि हां, तो क्या विंडोज 2008 सर्वर में डेड गेटवे डिटेक्शन को निष्क्रिय करने का एक तरीका है?

  3. यदि अन्य कारण नहीं हो सकते हैं जो हम DNS को हल करने या थोड़े समय के लिए कनेक्ट करने की क्षमता खो देते हैं?


1
हालांकि यह सेटअप कभी-कभी परिलक्षित होता है (देखें blogs.technet.com/timmcmic/archive/2009/04/26/… ), यह हमारे लिए अजीब काम करता है - HAProxy से हमारे IIS साइटों पर आने वाले सभी ट्रैफ़िक ऐसे लगते हैं जैसे अभी भी मूल आईपी पता। यह अनकही समय की बचत करता है, जैसा कि हमें HTTP_X_FORWARDED_FOR हैडर का उपयोग करने के लिए IIS और उसके असंख्य प्लग-इन को कॉन्फ़िगर करने के तरीके (पता करने के लिए) करना होगा।
जारोड डिक्सन

1
आपके पास 192.168.0.2 इंटरफ़ेस पर गेटवे कॉन्फ़िगर क्यों है? आप एक खाली डिफ़ॉल्ट गेटवे को कॉन्फ़िगर कर सकते हैं (और वास्तव में यह वही है जो आपको दो इंटरफेस होने पर करने के लिए संकेत देता है)।
पोर्टमैन

@Portman - क्योंकि हमारे वेब बॉक्स मूल क्लाइंट IP के साथ ट्रैफ़िक को देख रहे हैं, प्रतिक्रियाएँ हमारे नेटवर्क पर नहीं भेजी जाएंगी - इसीलिए हमें अपने HAProxy बॉक्स में एक डिफ़ॉल्ट गेटवे रखना होगा।
जारोड डिक्सन

@ जरारोड - वह विन्यास संदिग्ध लगता है। यदि आप उस वेब सर्वर पर एक गैर-संतुलित वेबसाइट चलाना चाहते हैं तो क्या होगा? प्रतिक्रिया HAProxy के माध्यम से कराई जाएगी? आप दूरस्थ डेस्कटॉप जैसी किसी चीज़ को कैसे संभालेंगे? मुझे लगता है कि यह सवाल को संबोधित नहीं करता है, लेकिन ऐसा लगता है जैसे आप यू आर डूइंग इट गलत का मामला है, जो कि डावड्समले (विनम्रता) कह रहा है।
पोर्टमैन

4
@ जेफ / ज्यॉफ / जारोड - मुझे स्पष्ट रूप से बताने से नफरत है, लेकिन आप लोग सॉफ्टवेयर देव हैं, किसी को ठीक करने के लिए एक दिन के लिए विशेषज्ञ क्यों नहीं हैं? अपने हाथों को गंदा करना बहुत अच्छा है, लेकिन यहां एक स्पष्ट ज्ञान अंतराल है, यह आंतरायिक रूप से व्यवसाय को प्रभावित कर रहा है और आपने स्पष्ट रूप से मूल्यवान समय का एक अच्छा सा खर्च किया है जो आपके मुख्य कौशल का उपयोग नहीं कर रहा है जो कि विकास है। मेरा विश्वास करो, किसी को ठीक करने के लिए जाओ और उसके बाद उसके दिमाग को काम करने के बाद उठाओ। नर्क, यहां तक ​​कि वेबहोस्टर्स के रूप में, जब हम मिशन महत्वपूर्ण / सेवा को प्रभावित कर रहे हैं, तो इन अंतरालों को पाटने के लिए हमें लोगों को प्राप्त करने की आवश्यकता है।
केव

जवाबों:


5

वे मृत गेटवे डिटेक्शन DWORDs Windows Server 2008 पर बेकार हैं। केवल मौजूद कारण वे संगतता कारणों के लिए हैं। टीसीपी / आईपी ड्राइवर और विंडोज राउटर घटक अब इन मूल्यों की तलाश नहीं करते हैं।

मुझे संदेह है कि इस सुविधा को ऑटो-ट्यूनिंग में रोल किया गया था, जिसने विंडोज विस्टा में शुरुआत की थी। एक उन्नत कमांड प्रॉम्प्ट (और रिबूट) में निम्नलिखित को निष्पादित करने का प्रयास करें:

netsh int tcp सेट वैश्विक ऑटोट्यूनिंगलवेल = अक्षम


अपडेट ( 13 सितंबर, 2009 @ 7: 58 बजे ईएसटी जोड़ा गया )

यदि वह काम नहीं करता है, तो हमें अधिक नैदानिक ​​आउटपुट की आवश्यकता होगी। NetConnection या LAN परिदृश्यों के साथ (गोलाकार) ट्रेस प्रारंभ करें और समस्या होने तक इसे जारी रखने दें।

netsh ट्रेस प्रारंभ परिदृश्य = NetConnection maxSize = 512

(उदाहरण: 512 एमबी के अधिकतम ट्रेस लॉग आकार के साथ नेटकॉन्नेशन ट्रेसिंग परिदृश्य शुरू करता है)

आप नेटवर्क मॉनिटर 3.3 में परिणामी ट्रेस खोल सकते हैं , बस सुनिश्चित करें कि आप नवीनतम पार्सर्स स्थापित करें ।


अच्छा विचार है, लेकिन या तो काम करने के लिए नहीं लग रहा था .. बस एक 5 मिनट के आउटगोइंग ट्रैफिक आउटेज का अनुभव किया - जो रहस्यमय तरीके से खुद को तय करता है।
जेफ एटवुड

@ जेफ़: हम्म, हमें और अधिक डेटा चाहिए कप्तान! ऊपर संपादित देखें।
राफेल रिवेरा

5

हम इस नतीजे पर नहीं पहुंच पाए कि हम डेड गेटवे डिटेक्शन के व्यवहार को नियंत्रित क्यों नहीं कर पाए।

इस समस्या के निवारण में एक टन खर्च करने के बजाय, हमने गेटवे आउटबाउंड के लिए अपने HAProxy उदाहरण मार्ग ट्रैफ़िक को बनाने का विकल्प चुना और दोनों वेब सर्वरों को डिफ़ॉल्ट गेटवे को हाइप्रोइस के IP पर सेट किया और आंतरिक गेटवे पता हटा दिया।

  [ soweb1 ] 69.59.196.220, GW=69.59.196.211 [haproxy]
       |
       +---- [haproxy] 69.59.196.211, GW 69.59.196.209
       |
    [ gw ] 69.59.196.209

अब केवल एक डिफ़ॉल्ट गेटवे है जो हमारे मुद्दे को समाप्त करता है क्योंकि मृत डिफ़ॉल्ट गेटवे का पता लगाने का उपयोग नहीं किया जाता है।


4

मैं सवाल करूँगा कि आपको डिफ़ॉल्ट गेटवे को बदलने की आवश्यकता क्यों है? आम तौर पर आपको अपने डिफ़ॉल्ट गेटवे को बिल्कुल भी नहीं बदलना चाहिए जब तक कि आप इसे अत्यधिक उपलब्ध एन + 1 सेटअप पर इंगित नहीं कर रहे हैं जहां गेटवे आईपी खराब होने की स्थिति में दूसरे राउटर / मशीन को विफल कर सकता है। यदि आपके HAproxy मशीन पर कुछ हुआ है और आपके पास कोई आउट-ऑफ-बैंड एक्सेस नहीं है, तो वेब सर्वर बस इंटरनेट को छोड़ देंगे।

जैसा कि मेरा मानना ​​है कि आप ऐसा कर रहे हैं इसका कारण यह है क्योंकि आप अपने सेटअप में Tproxy का उपयोग कर रहे हैं ताकि ग्राहक आपके आईपी लॉग में दिखाई दे सकें और प्रॉक्सी सर्वर के आईपी से नहीं, क्या मैं यह सुझाव दे सकता हूं कि आप इसके बजाय ऐसा करते हैं।

  1. अपने HAproxy config में "विकल्प फॉरवर्ड ..." जोड़ें
  2. ISAPI फ़िल्टर के लिए x- अग्रेषित- स्थापित करें
  3. अपने सेटअप से tproxy निकालें
  4. डिफ़ॉल्ट गेटवे को वापस उसी गेटवे पर बदलें जिसे आप इंटरनेट के सीधे कनेक्शन के साथ उपयोग कर रहे थे

मेरे पास इस पर परीक्षण करने के लिए एक विंडोज मशीन नहीं है, लेकिन मेरा मानना ​​है कि यह कनेक्टिविटी के अवांछित नुकसान के बिना वांछित प्रभाव में परिणाम होना चाहिए।


मैंने केवल इस सेटअप के संबंध में मूल प्रश्न पर आपकी टिप्पणी देखी। हालाँकि, मुझे संदेह है कि "यह हमारे लिए
अजीब तरह से

3
वैकल्पिक रूप से, आप बहुत अधिक मजबूत समाधान देख सकते हैं जैसे कि ldirectord + दिल की धड़कन जो कि कर्नेल स्तर पर ट्रैफ़िक को पुनर्निर्देशित करता है, जैसे कि इसमें कोई समीपता शामिल नहीं है। मैं इस सेटअप का बड़े पैमाने पर उपयोग करता हूं और यह बहुत अच्छा काम करता है। linuxvirtualserver.org/docs/ha/heartbeat_ldirectord.html
davidsmalley

हमने x-forwarded-forलॉग को बदलने के लिए उस हेडर और IIS फिल्टर का उपयोग किया है , लेकिन हम नहीं जानते कि कैसे (या यदि) हमारे अन्य वैकल्पिक IIS मॉड्यूल भी हेडर का उपयोग अपने ऑपरेशन में करते हैं।
जारोड डिक्सन

उस linuxvirtualserver.org.org/HighAvucation.html लिंक के लिए धन्यवाद - वहाँ की जानकारी अद्भुत है! मैं इन विषयों से अनभिज्ञ हूं (यही कारण है कि मैं यह सब सेट नहीं कर रहा हूं!), लेकिन मैं जितनी जल्दी हो सके सीखने की कोशिश कर रहा हूं। शायद हम दिल की धड़कन + l लॉर्डॉर्ड का उपयोग कर सकते हैं कि कैसे linuxvirtualserver.org/docs/ha/ultramonkey.html हमारे पसंदीदा HAProxy के साथ करता है।
जारोड डिक्सन

-1

जब इंटरनेट का उपयोग शामिल होता है (आमतौर पर) तब डिफ़ॉल्ट गेटवे केवल इंटरनेट का एक मार्ग निरूपित करने के लिए इस्तेमाल किया जाना चाहिए। यदि आपके पास कई डिफ़ॉल्ट गेटवे परिभाषित हैं, तो ओएस राउटर यह तय नहीं कर सकता है कि कौन सा उपयोग करना है, और यदि एक डिफ़ॉल्ट गेटवे एक पुल-डी-सैक (जैसे कि आपका बहु-खंड लैन) को इंगित करता है, तो इंटरनेट के लिए आगे भेजे गए पैकेट हैं। इसे बनाने नहीं जा रहा है।

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