टीसी के साथ एक धीमे कनेक्शन का अनुकरण


9

मेरे पास एक लिनक्स बॉक्स (सेंटोस 5.5) है, जिस पर मैं नेटवर्क ट्रैफ़िक को सीमित करना चाहता हूं। मेरे पास एक एप्लिकेशन है जिसे हम ग्राहकों को वितरित करते हैं और मैं इसे 256Mbit / sec की न्यूनतम अनुशंसित बैंडविड्थ पर परीक्षण करना चाहता हूं। अब तक मैंने जो टीसी ट्यूटोरियल देखे हैं, वे आपको कुछ मानदंडों के अनुसार बैंडविड्थ को सीमित करने की अनुमति देते हैं, लेकिन मैं सभी स्थितियों में बैंडविड्थ को सीमित करना चाहता हूं (सभी आईपी पते से, कोई फर्क नहीं पड़ता कि आईपी हेडर कैसा दिखता है, आदि)।

एक ट्यूटोरियल ने सुझाव दिया कि मैं उपयोग करता हूं:

tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

लेकिन मुझे निम्नलिखित त्रुटि मिलती है:

Unknown filter "flowid", hence option 10:2 is unparsable

सभी परिस्थितियों में eth0 से बाहर आने वाले बैंडविड्थ को कैसे सीमित किया जाए, इस पर कोई विचार?

जवाबों:


11

यदि आप सभी आउटबाउंड ट्रैफ़िक पर सीमा लागू करना चाहते हैं, तो आपको फ़िल्टरों की आवश्यकता नहीं है। बस इंटरफ़ेस रूट हैंडल में अपना क्यूडिस्क जोड़ें जैसे:

tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

यदि आप इनबाउंड ट्रैफ़िक को आकार देना / पुलिस करना चाहते हैं, तो यह थोड़ा अधिक जटिल है। आपको IFB इंटरफ़ेस जैसे उदाहरण का उपयोग करने की आवश्यकता होगी:

modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
#  ^- this is a dummy filter, match u32 0 0 matches all traffic
tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

यहां दो अलग-अलग फ़िल्टर का उपयोग करते हुए एक अलग दृष्टिकोण दिया गया है:

tc qdisc add dev eth0 ingress
tc filter add dev eth0 root         protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1

मैं आपके समाधान पर हैकिंग कर रहा हूं लेकिन मैं इसे काम नहीं कर सकता। मैं आपके आदेश चला रहा हूं, फ़ायरफ़ॉक्स खोल रहा हूं, डाउनलोड शुरू कर रहा हूं और बहुत तेजी से डाउनलोड कर रहा हूं। जब मैं एक ifconfig करता हूं तो मुझे ifb0 के तहत कुछ RX और TX पैकेट देखने चाहिए (क्योंकि मैं नहीं)? धन्यवाद।
रैंकिडफिशब्रेथ

मैंने एक अलग दृष्टिकोण जोड़ा जो बिना ifb इंटरफ़ेस के काम करता है।
अल।

दो सरल फिल्टर का उपयोग कर दूसरा दृष्टिकोण बहुत अच्छा काम कर रहा है! बहुत बहुत धन्यवाद। मुझे वास्तव में यह समाधान पसंद है क्योंकि यह सरल और समझने में आसान है।
राँचीफ़िशब्रेट

बहुत बढ़िया धन्यवाद, newb सवाल, मैं दौड़ने के बाद सीमा को कैसे हटा सकता हूं tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540:? धन्यवाद!
एसएसएच यह

थ्रॉटलिंग को कैसे बंद करें और इसे वापस उसी तरह से वापस लाएं जैसे वह था? Pls "दो सरल फिल्टर का उपयोग करके अलग-अलग दृष्टिकोण" संस्करण का जवाब दें यदि आप इतने दयालु होंगे। "आदमी टीसी" है ... हमेशा की तरह भारी।
ज्योफ्री एंडरसन

1

यह आपके दायरे से थोड़ा हटकर हो सकता है, लेकिन WAN-emu थ्रूपुट और विलंबता के लिए अजीब आवश्यकताओं वाले वातावरण का अनुकरण करने में बहुत अच्छा रहा है [1]

[१]: http://speed.cis.nctu.edu.tw/wanemu/ WAN-emu


उच्च विलंबता या हानिपूर्ण लिंक को नेटम tc मॉड्यूल का उपयोग करके काफी आराम से सिम्युलेटेड किया जा सकता है: linuxfoundation.org/collaborate/workgroups/networking/netem
al।

0

आपने 1 शासक को जोड़ा है जैसे tc qdisc add dev eth0 root handle 10: htb default 20

कि आपकी तरह

टीसी फिल्टर देव एथ ० प्रोटोकॉल आईपी पैरेंट १०: प्रियो २ फ्लोयड १०: २ जोड़ें

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