টিসি দিয়ে ধীর সংযোগ সিমুলেট করে


9

আমার কাছে একটি লিনাক্স বাক্স রয়েছে (সেন্টোস 5.5) যার উপর দিয়ে আমি নেটওয়ার্ক ট্র্যাফিক সীমাবদ্ধ করতে চাই। আমার একটি অ্যাপ্লিকেশন রয়েছে যা আমরা ক্লায়েন্টগুলিতে বিতরণ করি এবং আমি এটি সর্বনিম্ন 256 এমবিট / সেকেন্ডের প্রস্তাবিত ব্যান্ডউইদথে পরীক্ষা করতে চাই। এখনও অবধি আমি দেখেছি টিসি টিউটোরিয়ালগুলি আপনাকে নির্দিষ্ট মানদণ্ড অনুযায়ী ব্যান্ডউইদথ সীমাবদ্ধ করার অনুমতি দেয় বলে মনে হয় তবে আমি সমস্ত পরিস্থিতিতে ব্যান্ডউইদথকে সীমাবদ্ধ করতে চাই (সমস্ত আইপি ঠিকানাতে / থেকে, আইপি শিরোনামটি কেমন লাগে ইত্যাদি ইত্যাদি)।

একটি টিউটোরিয়াল প্রস্তাবিত আমি ব্যবহার:

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

তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

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

কীভাবে ব্যান্ডউইথ সমস্ত পরিস্থিতিতে E0 এর / আউট থেকে সীমাবদ্ধ করা যায় সে সম্পর্কে কোনও ধারণা?

উত্তর:


11

আপনি যদি সমস্ত আউটবাউন্ড ট্র্যাফিকের সীমাবদ্ধতা প্রয়োগ করতে চান তবে আপনার মোটেই ফিল্টার লাগবে না। ইন্টারফেসের রুট হ্যান্ডেলটিতে কেবল আপনার qdisc যুক্ত করুন:

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

আপনি যদি ইনবাউন্ড ট্র্যাফিক / পুলিশকে আকার দিতে চান তবে এটি কিছুটা জটিল। আপনি যেমন একটি আইএফবি ইন্টারফেস ব্যবহার করতে হবে:

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

আমি আপনার সমাধান হ্যাক করছি কিন্তু আমি এটি কাজ করতে পারি না। আমি আপনার আদেশগুলি চালাচ্ছি, ফায়ারফক্স খুলছি, একটি ডাউনলোড শুরু করছি এবং খুব দ্রুত ডাউনলোড করার উপায় way আমি যখন ইফকনফিগ করি তখন আমার কি কিছু আরএক্স এবং টিএক্স প্যাকেট ifb0 এর অধীনে দেখতে পাবে (কারণ আমি তা করি না)? ধন্যবাদ।
rancidfishbreath

আমি একটি পৃথক পদ্ধতির যোগ করেছি যা কোনও ifb ইন্টারফেস ছাড়াই কাজ করে।
আল।

দুটি সহজ ফিল্টার ব্যবহার করে দ্বিতীয় পদ্ধতির দুর্দান্ত কাজ করছে! অনেক ধন্যবাদ. আমি এই সমাধানটি সত্যিই পছন্দ করি কারণ এটি সহজ এবং সহজে বোঝা যায়।
rancidfishbreath

জট্টিল ধন্যবাদ, newb প্রশ্ন, কিভাবে আমি সীমা চলমান পরে অপসারণ করতে পারেন: tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540? ধন্যবাদ!
এসএসএইচ এই

থ্রোটলিংটি কীভাবে বন্ধ করা যায় এবং কীভাবে এটিকে ফিরিয়ে দেওয়া হয়েছিল? আপনি যদি দয়াবান হন তবে প্লিজ "দুটি সাধারণ ফিল্টার ব্যবহার করে ভিন্ন পদ্ধতির" সংস্করণে প্রতিক্রিয়া জানান। "ম্যান টিসি" হ'ল ... যথারীতি অপ্রতিরোধ্য।
জেফ্রি অ্যান্ডারসন

1

এটি আপনার সুযোগ থেকে কিছুটা দূরে থাকতে পারে, তবে থ্যানপুট এবং বিলম্বের জন্য অদ্ভুত প্রয়োজনীয়তা সহ পরিবেশের অনুকরণে WAN-emu খুব ভাল হয়েছে [1]

[১]: http://speed.cis.nctu.edu.tw/wanemu/ WAN-Emu


হাই লেটেন্সি বা ক্ষতিকারক লিঙ্কগুলি খুব সহজেই নিমটম টিসি মডিউলটি ব্যবহার করে সিমুলেটেড করা যায়: linuxfoundation.org/collaborate/workgroups/networking/netem
al।

0

আপনি এই টিসি qdisc এর মতো 1 টি शासক যুক্ত করেছেন ডেভ এথ0 রুট হ্যান্ডেল 10: এইচটিবি ডিফল্ট 20

আপনার পছন্দ মত

টিসি ফিল্টার ডেথ ইথ0 প্রোটোকল আইপ প্যারেন্ট 10 যোগ করুন: প্রিও 2 ফ্লোড 10: 2

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.