প্রশ্ন আইপ্যাবলস - একটি নির্দিষ্ট ইনকামিং আইপি সীমিত হার


আমি একটি নির্দিষ্ট সেবা হার সীমিত করতে চান না। আমার লক্ষ্য শুধুমাত্র ইনকামিং আইপি ঠিকানার উপর ভিত্তি করে হার সীমাবদ্ধ করা হয়। উদাহরণস্বরূপ একটি ছদ্ম-নিয়ম ব্যবহার করে:

john.domain.local (192.168.1.100) can only download from our httpd/ftp servers at "10KB/s" (instead of 1MB/s)

ইনকামিং আইপি ঠিকানার উপর ভিত্তি করে IPTables ব্যবহার করে আমি কীভাবে সীমা নির্ধারণ করতে পারি?


101
2018-04-28 21:09


উত্স




উত্তর:


IPTables এই ধরনের কাজের জন্য তৈরি করা হয় না, যেখানে এই সিদ্ধান্তগুলি করার জন্য প্রচুর এবং প্রচুর প্যাকেট বিশ্লেষণ করা প্রয়োজন। IPTables আংশিকভাবে যদিও উত্তর!

এটির আসল উত্তর হল লিনাক্সে দুর্দান্ত এবং অন্তর্নিহিত ট্রাফিক নিয়ন্ত্রণ সুবিধা। কি ঘটছে তা জানার সাথে সাথে এটির চারপাশে ঘুরে বেড়ানোর জন্য আপনাকে মেশিনে নেটওয়ার্ক সংযোগ হারিয়ে ফেলতে পারে! তোমাকে সতর্ক করা হল!

Eth0 অনুমান করা হচ্ছে বহির্গামী ডিভাইসটি আপনাকে ক্লাস-ভিত্তিক ট্র্যাফিক নিয়ন্ত্রণ সারির তৈরি করতে হবে যা 'দ্রুত' সারির মাধ্যমে সর্বাধিক ট্র্যাফিককে আউটপুট করে এবং 'ধীর' সারিতে লোকেদের একটি নির্দিষ্ট তালিকা রাখবে।

এটির সৌন্দর্য আপনি একটি পরিস্থিতি তৈরি করতে পারেন যার মাধ্যমে আপনি ধীর ব্যবহারকারীর জন্য বহির্মুখী ট্র্যাফিকের অনুমতি দেয় না যতক্ষণ না ওভার্রাইডিং ক্লাস ব্যান্ডউইথ চায়। তবে এই উদাহরণটি এটি না করে (ধীর ব্যবহারকারীদের সর্বদা 10 কেবিপিএস সরবরাহ করবে)। Queuing সিস্টেম এই মত কিছু দেখতে হবে:

                         Inbound traffic
                              +
                              |
                              |
                              v
                     +------------------+
                     |   Class 1:1      |
                     |------------------|
                     |  Root (all flows)|
                     |       100mbit    |
                     +-----+-----+------+
                           |     |
                           |     |
                           |     |
                           |     |
                           |     |
          +----------+     |     |     +----------+
          |    1:11  +-----+     +-----+    1:12  |
          |----------|                 |----------|
          | Default  |                 | Slow     |
          |100mb-80kb|                 |   80kb   |
          +----------+                 +----------+

এটি করার জন্য, প্রথমে আপনাকে কার্নেলের মধ্যে queuing শৃঙ্খলা সেটআপ করতে হবে। নিম্নলিখিত আপনার জন্য এই কাজ করবে .. আপনি একটি সম্পূর্ণ স্ক্রিপ্ট হিসাবে এই চালানো আবশ্যক

#!/bin/bash
tc qdisc add dev eth0 parent root handle 1: hfsc default 11
tc class add dev eth0 parent 1: classid 1:1 hfsc sc rate 100mbit ul rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:11 hfsc sc rate 99920kbit ul rate 100000kbit
tc class add dev eth0 parent 1:1 classid 1:12 hfsc sc rate 80kbit ul rate 80kbit

tc qdisc add dev eth0 parent 1:11 handle 11:1 pfifo
tc qdisc add dev eth0 parent 1:12 handle 12:1 pfifo

"ডিফল্ট 11" গুরুত্বপূর্ণ কারণ এটি কার্নেলকে শ্রেণীবদ্ধ নয় এমন ট্র্যাফিকের সাথে কী করতে হবে তা বলে।

এটি সম্পন্ন হওয়ার পরে, আপনি একটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন প্যাকেট শ্রেণীবদ্ধ করতে একটি iptables নিয়ম সেটআপ করতে পারেন। যদি আপনি এই ধীর নিয়মতে অনেকগুলি এবং প্রচুর লোককে নির্বাণ করার পরিকল্পনা করেন তবে একটি ipset rule আরো উপযুক্ত (যা আমি বিশ্বাস করি rhel6 তে উপলব্ধ হওয়া উচিত)।

সুতরাং, একটি মেলসেট ডেটাবেস তৈরি করুন যাতে মিলে যায় ...

ipset create slowips hash:ip,port

তারপর আইপিটিবেল নিয়ম তৈরি করুন ম্যাচটি ..

iptables -t mangle -I OUTPUT -m set --match-set slowips dst,src -j CLASSIFY --set-class 1:12

এটি কার্নেলকে নির্দেশ করে যে আপনি যদি গন্তব্য আইপিটিকে সেট থেকে উৎস পোর্টের সাথে মেলে তবে এটি ট্র্যাফিক নিয়ন্ত্রণের সাথে সেটআপ ধীর সারিতে শ্রেণীবদ্ধ করুন।

এখন, অবশেষে যখনই আপনি একটি আইপি ডাউন হ্রাস করতে চান তখন আপনি আইপস কমান্ডটি ব্যবহার করতে পারেন যেমন আইপিটিকে সেট এ যুক্ত করুন:

ipset add slowips 192.168.1.1,80
ipset add slowips 192.168.1.1,21
...

আপনি "tc -s ক্লাস শো dev eth0" কমান্ডটি ব্যবহার করে এটি পরীক্ষা করে দেখতে পারেন এবং আপনি সেখানে স্ট্যাটাস দেখতে পাবেন যা ধীর সারিতে পুনঃনির্দেশিত হচ্ছে তা নির্দেশ করে।

উল্লেখ্য, এটি কেবলমাত্র প্রকৃত ক্ষতির কারণ এটি পুনরায় বুট হওয়া টিকে আছে। আমি মনে করি কোন রিবুট স্ক্রিপ্ট নেই যা রিপোটে ডাম্প থেকে ipsets তৈরি করতে উপলব্ধ (এবং তারা অবশ্যই তৈরি করা আবশ্যক আগে iptables নিয়ম) এবং আমি নিশ্চিত যে রিবুটে ট্র্যাফিক কন্ট্রোল রুলস রিসেট করার জন্য কোন init স্ক্রিপ্ট নেই। আপনি যদি বিরক্ত না হন, তবে আপনি rc.local এ একটি স্ক্রিপ্ট চালানোর থেকে সম্পূর্ণ জিনিসটি পুনরায় তৈরি করতে পারেন।


165
2018-04-28 23:35



আচ্ছা, আমি যথেষ্ট ধন্যবাদ না। এই খুব বর্ণনামূলক এবং খুব তথ্যপূর্ণ। পরে আমি বুঝতে পারলাম যে টিসি সম্পর্কে জ্ঞান প্রয়োজন হবে এবং আমি এটিকে দেখতে শুরু করেছি। আবার ধন্যবাদ! - James
ওহ এবং সংযোগ হারানোর জন্য। আমি নিশ্চিত যে আমার ভিপিএস থেকে হোস্ট মেশিনে যাওয়ার আগে আমার কনফিগারেশন ডাউন আছে। এছাড়াও, আমি ETH0 এ ব্যক্তিগত নেটওয়ার্কের ভিপিএন অ্যাক্সেস আছে। আমি শুধুমাত্র ETH1 এ কাজ করব তাই তত্ত্বে আমার সমস্যা নেই। কিন্তু সতর্কবার্তা শুনেছি! - James
আমি আপনাকে বলতে পারছি না কত বার আমি একই টিউটোরিয়াল পড়তে পেরেছি, এটি প্রথমটি যা জ্ঞান করে - RC1140
Sidenote হিসাবে, এটি সাধারণত নিয়ন্ত্রণ গোষ্ঠীগুলিতে (যেমন, সম্ভাব্য এবং এছাড়াও অব্যবহৃত এবং সন্ত্রস্ত) এর মতো সংস্থানের সীমাবদ্ধতার জন্য আরও উপযুক্ত, কেননা আপনি সিপিইউ, মেমরি, আইও এবং নেটওয়ার্ক ভিত্তিক 'পলিসি স্টোরের নেটওয়ার্ক-প্রতি সীমা নির্ধারণ করতে পারেন। '। কিন্তু একটি উত্তর দিতে posit হচ্ছে যেমন একটি প্রশ্ন দেখতে এখনো আছে। - Matthew Ife
যদি আপনি পছন্দ করেন না tc সিনট্যাক্স আপনি দিতে পারে tcng একটি চেষ্টা যা জেনারেট করে আরও বেশি ব্যবহারকারী বান্ধব ভাষা যুক্ত করে tc কমান্ড। আমি শেল স্ক্রিপ্টে এটি পছন্দ করতে ব্যবহার করেছি: echo '... multi line tcng configuration ...' | tcng | sh। - Mattias Wadman


হার সীমাবদ্ধ এবং হার যোগ হিসাবে এটি হিসাবে সহজ -s সুইচ। দ্য -s ইনকামিং আইপি ম্যাচ সুইচ। উদাহরণ স্বরূপ iptables -A INPUT -s 1.1.1.1 এবং তারপরে সেই নিয়মটির জন্য সীমিত হারের আপনার পছন্দের পদ্ধতিটি শেষ করে।


5
2018-04-28 21:12



আপনার প্রম্পট উত্তর জন্য আপনাকে ধন্যবাদ। দুর্ভাগ্যক্রমে আমার প্রধান সমস্যা এটি দ্বিতীয় অর্ধেক। আমি --limit মধ্যে তাকিয়ে আছে এবং আমি কিছুই দেখা যায় না যা আমাকে কেবি / এস এর উপর ভিত্তি করে সীমাবদ্ধ করতে দেয় - যে কোন নির্দেশ আপনি আমাকে নির্দেশ করতে পারেন? - James
@ জেমস আমি আপনাকে ফিরে পেয়েছিলাম কিন্তু আমি বন্ধুর বাড়িতে যেতে হবে। শুধু ফিরে পেয়েছি এবং আমি দেখেছি যে এমআইএফ বেশ কাজ করেছে। =) - Wesley