साझा इंटरनेट कनेक्शन पर बैंडविड्थ प्रबंधन के विकल्प


13

परिसर:

ग्रामीण स्थान, उच्च बैंडविड्थ इंटरनेट कनेक्शन के लिए कई विकल्प नहीं। अब तक का सबसे तेज़ सैटेलाइट इंटरनेट है, लेकिन यह महंगा है (उपकरण और मासिक दोनों लागत, और विलंबता कमियां हैं), इसलिए कई परिवार इसे साझा करना चाहेंगे।

यह अपने आप में सीधा है - प्रत्येक घर (वीएलएएन या भौतिक बंदरगाहों) के लिए एक सबनेट के साथ एक राउटर सेट करें, उन दोनों के बीच यातायात को अवरुद्ध करें और या तो मॉडेम को उन सबनेट पर रूट करें या डबल नेट सेट करें।

समस्या:

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

उदाहरण के लिए, मान लें कि 4 घर 12Mbit / s डाउन कनेक्शन साझा कर रहे हैं। यदि उनमें से कोई भी डाउनलोड / स्ट्रीमिंग / जो कर रहा है, तो उन्हें पूर्ण 12Mbit / s (या पर्याप्त के पास) का उपयोग करने में सक्षम होना चाहिए। यदि 2 घर कनेक्शन का उपयोग कर रहे हैं, तो उन्हें 6Mbit / s प्रत्येक मिलना चाहिए, भले ही एक घर में 1 फ़ाइल डाउनलोड हो रही हो या अन्य 11 (बिना किसी बैंडविड्थ प्रबंधन के, प्रत्येक फ़ाइल उस स्थिति में लगभग 1Mbit / s डाउनलोड करेगी) 3 परिवार 4Mbit / s प्रत्येक और इतने पर मिलता है।

मैंने अब तक क्या काम किया है:

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

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

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

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

वहाँ एक रास्ता है कि मैं क्या पूछ रहा हूँ? क्या मैं इसके बारे में गलत हूँ? मैं (या बल्कि घरों में सवाल कर रहा हूँ) इस पर पैसा खर्च करने को तैयार हैं - क्या यह मामूली रूप से ऑफ-द-शेल्फ राउटर / उपकरण या लिनक्स या बीएसडी डिस्ट्रो चलाने के लिए एक सामान्य बॉक्स है।

जवाबों:


4

अगर मुझे इस समस्या को हल करने के लिए कुछ बनाना था, तो मैं इसे सेटअप करूंगा:

हम यहां आपके लिए एक लिंक साझा करने वाले 4 कंप्यूटरों का उदाहरण लेने जा रहे हैं। नेटवर्क को इस तरह आकार दिया जाएगा:

{ ISP }=========[ SOHO router] ===LAN1=== [eth0 |Linux Box| eth1] ===LAN2=== Home Desktops/Laptops

मान लें कि आप LAN2 में स्थैतिक आईपी एड्रेसिंग का उपयोग करते हैं:

Linux Box 192.168.1.1
Home 1    192.168.1.11
Home 2    192.168.1.12
Home 3    192.168.1.13
Home 4    192.168.1.14

मैं पहले एक छोटी सी स्क्रिप्ट लिखूंगा ताकि पता लगाया जा सके कि कौन से क्लाइंट उन्हें पिंग करके और कहीं परिणाम लिख रहे हैं। "इसे पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया है" जुड़े मेजबानों की कुल संख्या की गणना करें (1-4)

कोई मेजबानों के मामले को ऑनलाइन संभालना सुनिश्चित करें।

कुल बैंडविथ को विभाजित करें लेकिन कनेक्टेड मेजबानों की संख्या। (12Mb के लिए 1, 6Mb के लिए 2, 4Mb के लिए 3, 3Mb के लिए 4)

WAN- साइड डिवाइस पर प्रत्येक पते की बैंडविड्थ को सीमित करने के लिए HTB एल्गोरिथ्म के साथ अगला उपयोग tc। सबसे पहले, रूट क्लास बनाएं:

DEV="eth0"
TC="/sbin/tc"
TOT_BW=12
$TC qdisc add dev $DEV root handle 1: htb default 99

फिर, प्रत्येक "क्लाइंट" के लिए एक वर्ग जोड़ें (यहां, उदाहरण के लिए, 3 ग्राहक)

NB_CLT=3
CLT_BW=$(($TOT_BW/$NB_CLT))mbit
for i in seq $NB_CLT
do
    $TC class add def $DEV parent 1: classid 1:$i htb rate $CLT_BW ceil $CLT_BW burst 15k cburst 1500
    $TC filter add dev $DEV protocol ip parent 1:0 prio 1 flowid 1:$i u32 \
     match ip dst 192.168.1.1$i/32 \
     match ip src [Router IP in LAN1]/32
done

(उपरोक्त स्क्रिप्ट पूरी तरह से अप्रयुक्त है और टाइपिंग-त्रुटि-मुक्त नहीं है)

अब आपके पास अभी भी ठीक से स्क्रिप्ट है जिसे हर मिनट चलाया जाना है और हर बार एक नया होस्ट ऊपर या नीचे जाने पर बाल्टी / फिल्टर को नवीनीकृत करना है।

मुझे उम्मीद है कि यह आपको सही दिशा में ले जाएगा, शुभकामनाएँ।

वैकल्पिक समाधान

सभी बैंडविड्थ पर अपने बैंडविड्थ को प्रतिबंधित करने के लिए एक स्थानीय QoS सॉफ़्टवेयर स्थापित करें। मैं व्यक्तिगत उपयोग NetLimiter (गैर-मुक्त)


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

2

OpenWRT इसका समर्थन करता प्रतीत होता है, हालाँकि मैंने कभी इसका उपयोग नहीं किया। आप उनकी वेबसाइट पर नेटवर्क ट्रैफिक कंट्रोल पेज और विशेष रूप से दूसरा उदाहरण देख सकते हैं: HTB के साथ सादा सरल बैंडविड्थ शेयरिंग (उर्फ ट्रैफिक शेपिंग) । इसमें क्यूडीस्क के लिए सरल कॉल शामिल हैं, इसलिए कोई भी लिनक्स बॉक्स इसे कर सकता है।


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

0

Https://superuser.com/a/1210164/257859 में वर्णित सेटअप ठीक यही करता है:

[...] कतारें सभी LAN क्लाइंट्स (LAN IPs सटीक होना) के बीच समान रूप से सीमित BW वितरित करती हैं।


1
कृपया एक से अधिक प्रश्नों के उत्तर एक साथ न दें। यदि एक ही जानकारी वास्तव में दोनों प्रश्नों का उत्तर देती है, तो एक प्रश्न (आमतौर पर नया एक) दूसरे के डुप्लिकेट के रूप में बंद होना चाहिए। आप इसे एक डुप्लिकेट के रूप में बंद करने के लिए मतदान द्वारा इंगित कर सकते हैं या, यदि आपके पास इसके लिए पर्याप्त प्रतिष्ठा नहीं है, तो यह इंगित करने के लिए कि यह डुप्लिकेट है, एक ध्वज उठाएं । अन्यथा इस प्रश्न के लिए अपने उत्तर को दर्जी करें और एक ही उत्तर को कई स्थानों पर पेस्ट न करें।
DavidPostill

@DavidPostill मैंने डुप्लिकेट के रूप में मतदान करने के बारे में सोचा था, लेकिन झिझक हुई क्योंकि यह 3 साल पुराना सवाल है। मैं भी meta.superuser खोज की है और एक प्रासंगिक सवाल पाया meta.superuser.com/questions/3524/... । मेटा पढ़ने के बाद मुझे लगता है कि स्थिति जटिल है (मेरे पास प्रत्येक में पर्याप्त चर्चा के साथ दो पुराने प्रश्नों के लिए एक उत्तर है) और एक लघु सूचक उत्तर छोड़ने से कम से कम "बुरा नहीं" लगता है। मैं हालांकि आपके विचार सुनने के लिए खुला हूं।
ndemou
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.