टीसीपी कीपेलिव और फ़ायरवॉल ने निष्क्रिय सत्रों की हत्या की


10

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

इसके आस-पास जाने के लिए, हमने सबसे पहले tcp_keepalive_time = 300, tcp_keepalive_intvl = 300, और tcp_keepalive_probes = 30000 tcp_keepalive_time = 300 के साथ सर्वर (एक लिनक्स मशीन) को कॉन्फ़िगर किया। यह काम करता है, और कनेक्शन दिनों या उससे अधिक के लिए व्यवहार्य रहते हैं। हालाँकि, हम सर्वर को मृत ग्राहकों का पता लगाने और कनेक्शन को मारने के लिए भी चाहेंगे, इसलिए हमने सेटिंग्स को समय = 300, intvl = 180, probes = 10 में बदल दिया, यह सोचकर कि यदि ग्राहक वास्तव में जीवित था, तो सर्वर हर 300s की जांच करेगा। (5 मिनट) और ग्राहक एक एसीके के साथ प्रतिक्रिया करेगा और यह फ़ायरवॉल को एक बेकार कनेक्शन के रूप में देखने और उसे मारने से रखेगा। यदि क्लाइंट मृत था, 10 जांच के बाद, सर्वर कनेक्शन को समाप्त कर देगा। हमारे आश्चर्य के लिए, बेकार लेकिन जीवित कनेक्शन पहले की तरह लगभग 40 मिनट के बाद मारे जाते हैं।

क्लाइंट साइड पर चल रहे Wireshark सर्वर और क्लाइंट के बीच बिल्कुल भी कोई कोपलिव नहीं दिखाता है, जबकि सर्वर पर कीपलाइव्स सक्षम हैं।

यहां क्या हो सकता है?

यदि सर्वर पर रखने की सेटिंग्स समय = 300, intvl = 180, जांच = 10 हैं, तो मैं यह उम्मीद करूंगा कि यदि ग्राहक जीवित है, लेकिन निष्क्रिय है, तो सर्वर हर 300 सेकंड में रखने योग्य जांच भेजेगा और अकेले कनेक्शन छोड़ देगा, और यदि क्लाइंट मर चुका है, यह 300 सेकंड के बाद एक भेजेगा, फिर कनेक्शन को मारने से पहले हर 180 सेकंड में 9 और जांच करेगा। क्या मैं सही हू?

एक संभावना यह है कि फ़ायरवॉल किसी तरह सर्वर से रखने की जांच कर रहा है और क्लाइंट को उन्हें पास करने में विफल हो रहा है, और तथ्य यह है कि इसे जांच मिली यह सोचता है कि कनेक्शन सक्रिय है। क्या यह एक फ़ायरवॉल के लिए सामान्य व्यवहार है? हम नहीं जानते कि किस तरह का फ़ायरवॉल शामिल है।

सर्वर एक टेराडाटा नोड है और कनेक्शन टेराडाटा क्लाइंट उपयोगिता से डेटाबेस सर्वर पर है, सर्वर साइड पर पोर्ट 1025, लेकिन हमने एसएसएच कनेक्शन के साथ एक ही समस्या देखी है इसलिए हमें लगता है कि यह सभी टीसीपी कनेक्शन को प्रभावित करता है।


2
आपको सर्वर या सर्वर से कनेक्ट करने के लिए कौन से पोर्ट या प्रोटोकॉल का विवरण याद आ रहा है। क्या यह SSH है?
ewwhite

फ़ायरवॉल की पहचान करने से भी मदद मिल सकती है।
स्केपरन

3
जाँच करें कि क्या शुद्ध रखने के लिए सॉकेट पर सक्रिय किया गया है nettat -timers -tn और कीवर्ड के लिए जाँच करें "Keepalive" (क्योंकि यह सॉकेट पर सॉफ़्टवेयर द्वारा सक्रिय किया जाना चाहिए)। यहाँ अधिक जानकारी: tldp.org/HOWTO/TCP-Keepalive-HOWTO/index.html टाइमर मानों की भी जाँच करें, पहला मान सेकंड के अगले पैकेट तक रहता है, और तीसरा एक बकाया रखने योग्य पैकेटों की संख्या है जिसका इंतजार करना उत्तर (यदि मैं सही ढंग से याद करता हूं)
विक्टर जेरलिन

1
कृपया इसे देखें: linux-tips.com/t/how-to-keep-ssh-session-alive/255 और इस: access.redhat.com/solutions/23874
P.Goli

2
आपके नेटवर्क के लोग शायद गलत हैं। यदि वे एक स्टेटफुल फ़ायरवॉल का उपयोग कर रहे हैं, (वे लगभग निश्चित रूप से हैं) तो प्रत्येक कनेक्शन के लिए एक प्रविष्टि आवश्यक है। एक निष्क्रिय समय समाप्ति के बिना, फ़ायरवॉल पर मेमोरी लीक हो जाएगी और फ़ायरवॉल अंततः दुर्घटनाग्रस्त हो जाएगी। वे निश्चित रूप से एक निष्क्रिय मध्यांतर है ...
जेम्स शेवी

जवाबों:


1

एक स्टेटफुल फ़ायरवॉल पैकेट की जांच करता है और यह भी पुष्टि करता है कि क्या कनेक्शन जीवित है। मेरा मानना ​​है कि फ़ायरवॉल को भी ठीक उसी तरह से ट्यून करना चाहिए जिस तरह से कंप्यूटर के पास है। डिफ़ॉल्ट रूप से कई फ़ायरवॉल केवल निष्क्रिय कनेक्शन 60 मिनट के लिए खोले रहते हैं, लेकिन यह समय विक्रेता के आधार पर बदल सकता है।

कुछ विक्रेताओं के पास टीसीपी इंटरसेप्ट, टीसीपी स्टेट बाईपास और डेड कनेक्शन डिटेक्शन जैसी विशेषताएं होंगी जो आपके जैसी विशेष स्थितियों को संभालने की अनुमति देंगी।

अन्य विकल्प फायरवॉल को उसी पैरामीटर से कॉन्फ़िगर करना है जो आपके पास सर्वर पर है ताकि यह सुनिश्चित हो सके कि सब कुछ सुसंगत है।

सिस्को फ़ायरवॉल पर आपके पास इसे कॉन्फ़िगर करने के लिए निम्न कमांड है।

hostname (config) # टाइमआउट सुविधा समय

टाइमआउट कोन hh: mm: ss- निष्क्रिय समय जिसके बाद एक कनेक्शन बंद हो जाता है, 0: 5: 0 और 1193: 0: 0 के बीच। डिफ़ॉल्ट 1 घंटे (1: 0: 0) है।

आपकी आवश्यकताओं के अनुसार आपके पास कई पैरामीटर हैं।

मैं टीम के साथ बात करने की सलाह दूंगा जो फ़ायरवॉल का प्रबंधन करती है और आपकी ज़रूरतों के अनुसार समय को समायोजित करती है या कार्यक्षमता की जांच करती है।

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