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


परिसर:

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

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

समस्या:

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

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

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

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

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

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

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

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


13
2017-07-22 10:23


मूल




जवाब:


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

हम यहां एक लिंक साझा करने वाले 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)

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

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

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

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

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

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

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

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

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


4
2017-07-24 14:13



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


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


2
2017-07-22 21:46



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


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

[...] कतारें सीमित बीडब्ल्यू को सभी के बीच समान रूप से वितरित करती हैं   लैन क्लाइंट (लैन आईपी सटीक होना चाहिए)।


0
2018-06-07 09:00



कृपया एक ही उत्तर को कई प्रश्नों पर पोस्ट न करें। यदि वही जानकारी वास्तव में दोनों प्रश्नों का उत्तर देती है, तो एक प्रश्न (आमतौर पर नया) दूसरे के डुप्लिकेट के रूप में बंद होना चाहिए। आप इसे इंगित कर सकते हैं इसे डुप्लिकेट के रूप में बंद करने के लिए वोटिंग या, यदि आपके पास इसके लिए पर्याप्त प्रतिष्ठा नहीं है, एक झंडा उठाओ यह इंगित करने के लिए कि यह एक डुप्लिकेट है। अन्यथा इस सवाल का जवाब दें और एक ही जवाब को कई स्थानों पर पेस्ट न करें। - DavidPostill♦
@ डेविडपोस्टिल मैंने एक डुप्लिकेट के रूप में बंद करने के बारे में सोचा लेकिन हिचकिचाहट क्योंकि यह एक 3 साल का सवाल है। मैंने मेटा की खोज की। सुपरस्यूसर और एक प्रासंगिक सवाल मिला meta.superuser.com/questions/3524/...। मेटा पढ़ने के बाद मुझे लगता है कि स्थिति जटिल है (मुझे प्रत्येक में पर्याप्त चर्चा के साथ दो पुराने प्रश्नों का उत्तर है) और एक छोटा सूचक उत्तर छोड़कर कम से कम "बुरा नहीं" लगता है। हालांकि मैं आपके विचारों को सुनने के लिए खुला हूं। - ndemou