चुना गया उत्तर गलत / अपूर्ण है। मुझे एक समान मुद्दे का सामना करना पड़ा, चुने हुए उत्तर ने कुछ मदद दी, लेकिन पर्याप्त नहीं।
सबसे पहले, निम्न आदेश की वास्तव में आवश्यकता नहीं है।
टीसी qdisc डेल देव eth0 रूट
यह रूट क्यूडिस्क को 'डिलीट' कर देगा, लेकिन शुरुआत में इसे pfifo_fast एक द्वारा प्रतिस्थापित किया जाता है (ताकि आप कनेक्टिविटी न खोएं)।
दूसरी आज्ञा:
टीसी qdisc देव eth0 रूट संभाल 1: prio जोड़ें
Pfifo_fast qdisc को prio one के साथ बदलेगा। डिफ़ॉल्ट रूप से, prio que में 3 बैंड (0, 1, 2) होते हैं, प्रत्येक को एक वर्ग (1: 1, 1: 2 और 1: 3) द्वारा प्रबंधित किया जाता है।
पैकेटों को आईपी पैकेज के टीओएस क्षेत्र का उपयोग करके उन बैंडों में से एक में भेजा जाएगा। यह कॉन्फ़िगरेशन तब दिखाया जाता है जब आप निष्पादित करते हैं:
tc qdisc ls
'प्रॉमैप' मूल्यों को देखते हुए।
उसके बाद, आप एक netem qdisc जोड़ें:
टीसी qdisc देव eth0 जनक 1: 1 संभाल 2: netem देरी 500ms जोड़ें
इस कमांड के साथ आप 1: 1 बैंड (जब तक फिल्टर चालू है) तक जाने वाले सभी ट्रैफ़िक में देरी करते हैं।
लेकिन दो कैविएट हैं:
- आपके ट्रैफ़िक का एक अलग टीओएस मान हो सकता है और फिर दूसरे बैंड में भेजा जा सकता है।
- Prio qdisc को कॉन्फ़िगर किया जा सकता है ताकि ट्रैफ़िक दूसरे बैंड पर जाए।
निम्नलिखित ने मेरी समस्या को नेटम से प्रभावित नहीं किया है जबकि फ़िल्टर लागू नहीं किया गया है। उपरोक्त चरणों के बजाय, मैंने किया:
tc qdisc add dev eth0 रूट हैंडल 1: prio priomap 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
यह सभी ट्रैफ़िक को डिफ़ॉल्ट रूप से बैंड 1: 3 पर भेज देगा।
फिर, मैंने यातायात में देरी के लिए नियम जोड़ा:
टीसी qdisc देव eth0 जनक 1: 1 संभाल 10: netem देरी 100ms 10ms जोड़ें
यह बैंड 0 में qdisc को बनाता है, लेकिन चूंकि सभी ट्रैफिक बैंड 3 पर जाता है, इसने मुझे प्रभावित नहीं किया।
बाद में, मैंने फ़िल्टर जोड़ा:
tc फ़िल्टर ऐड देव एथ0 प्रोटोकॉल आईपी पैरेंट 1: 0 प्रियो 1 u32 मैच आईपी dst 10.0.0.1/32 मैच आईपी dport 80 0xffff flowid 1: 1
अब फिल्टर के साथ, केवल चुने गए आईपी / पोर्ट प्रभावित होंगे, क्योंकि हम चुने गए ट्रैफ़िक को बैंड 0 पर पुनर्निर्देशित करते हैं।
अन्य सभी ट्रैफ़िक अप्रभावित जारी है क्योंकि यह बैंड 3 के लिए जारी है।