একটি tc শেপার নিজে থেকে প্রতিটি VPN ক্লায়েন্ট সীমাবদ্ধ করে না
প্রতি ক্লায়েন্টের সীমা চায় গণনার পরিচয়, দুটি দিক আর একটি শ্রেণিবিন্যাস বিন্দু। টানেলে একটি শেপার মানে প্রতি ব্যবহারকারীর জন্য একটি কোটা নয়।
নির্দেশটি সম্পূর্ণ শোনায়: প্রতিটি VPN ক্লায়েন্টকে 20 Mbit/s-এ সীমাবদ্ধ কর। কিন্তু এটি সম্পূর্ণ নয়, আর টানেল ইন্টারফেসে একটি মাত্র কিউ শৃঙ্খলা তা দেবে না। প্রতি ক্লায়েন্ট মানে হতে পারে প্রতি টানেল ঠিকানা, প্রতি ডিভাইস বা প্রতি অ্যাকাউন্ট, আর প্রতিটি পছন্দ প্যাকেটকে ভিন্নভাবে শ্রেণিবদ্ধ করে। যেকোনো নিয়ম লেখার আগে নির্ধারণ করুন প্রয়োজনে আসলে কোনটি বলা হয়েছে।
নিচের সবকিছু ওই বাক্য আর কাজ করা একটি জিনিসের মধ্যকার দূরত্ব নিয়ে।
প্রথমে «প্রতি ক্লায়েন্ট» মানে কী হতে হবে
টানেল ঠিকানা শ্রেণিবদ্ধ করা সহজ আর পুনর্ব্যবহারও সহজ। ডিভাইস কঠিনতর, কারণ একটি অ্যাকাউন্টে কয়েকটি থাকতে পারে, আর একটি ডিভাইসে কয়েকটি ঠিকানা থাকতে পারে, বিশেষত IPv6-এ। ন্যায্যতার নীতির জন্য অ্যাকাউন্টই সবচেয়ে অর্থবহ একক, আর প্যাকেট হেডারে সবচেয়ে কঠিনে চোখে পড়ে। প্রতিটি সংজ্ঞা নিজের গণনার চাবি বোঝায়, তাই তাদের মধ্যে দুলতে থাকা নীতি বর্ণনায় দাবি করা কাজ করবে না।
দিক হলো দ্বিতীয় অনুপস্থিত শব্দ। আপলোড, ডাউনলোড আর মিলিত—তিনটি আলাদা প্রয়োজন, আর একটি ইন্টারফেসে একটি একক ইগ্রেস নিয়ম খুব কমই দুই পথই ঢাকে।
এমন একটি বিন্দু বাছুন যেখানে ক্লায়েন্ট এখনো দৃশ্যমান
প্রতিটি দিক একটি ইন্টারফেসের সাপেক্ষে সংজ্ঞায়িত। সার্ভারের টানেল থেকে দূরবর্তী ক্লায়েন্টের দিকে যা বেরোয় তা ওই ক্লায়েন্টের জন্য ডাউনলোড হিসেবে গণ্য; ক্লায়েন্ট যা পাঠায় তা টানেলে ঢোকে এবং পরে তার গন্তব্যের দিকে বেরোয়। প্রতিটি দিকের জন্য একটি শিডিউলিং বিন্দু বাছুন এবং জিজ্ঞাসা করুন সেখানে কোন ফিল্ড আছে। সোর্স NAT-এর আগে আপলোড এখনো ক্লায়েন্টের ভেতরের ঠিকানা বহন করে; অনুবাদের পরে সাধারণ সোর্স মিল আর তা শনাক্ত করতে নাও পারে।
এনক্রিপ্টেড পথে হেডারগুলো VPN পরিবহনের, তাই ভেতরের ঠিকানা মেলানো ফিল্টারের মেলানোর কিছু থাকে না। একটি নকশা আগে শ্রেণিবদ্ধ করে পরে শিডিউলারের কাছে একটি মার্ক হস্তান্তর করতে পারে, তবে সেই হস্তান্তর ইচ্ছাকৃত হতে হবে: প্যাকেট মার্ক, কানেকশন মার্ক আর শিডিউলার ক্লাস আলাদা অবস্থা, একটিমাত্র মান নয় যা এগিয়ে দেওয়া হয়।
বাকেট নিজে থেকে আসে না
ইন্টারফেসে যুক্ত একটি টোকেন বাকেট তার ব্যবহার করা যেকোনো ট্র্যাফিক রূপ দেয়; এটি প্রতি সোর্স ঠিকানায় নতুন বাকেট তৈরি করে না। ক্লাসভিত্তিক নকশা বরং নির্বাচিত ট্র্যাফিককে ক্লাসে সাজায়, ফিল্টার সদস্যপদ ঠিক করে, আর HTB নির্দেশিকা অভিভাবকের অতিরিক্ত ব্যান্ডউইথ থাকলে ক্লাসের হারকে তার সিলিং থেকে আলাদা করে। উদ্দেশ্য কঠোর সীমা হলে সিলিং সেট করুন এবং ধার করার আচরণ ইচ্ছাকৃতভাবে ঠিক করুন; প্রতিটি হারের সংখ্যাকে পরম সর্বোচ্চ ভেবো না।
প্রয়োজন প্রতি ক্লায়েন্ট হলে একই সময়ে চলা দুটি স্থানান্তর একটি কোটা ভাগ করা উচিত। প্রতিটি প্রবাহকে পূর্ণ হার দেওয়া আলাদা নীতি, আর শুধু একটি ডাউনলোড দেখে এমন যেকোনো পরীক্ষায় তা টিকে যায়।
দুটি ডিভাইস, একটি অ্যাকাউন্ট, একটি কোটা?
দুটি ডিভাইস ঠিকানা আলাদাভাবে সীমাবদ্ধ করা কখনোই অ্যাকাউন্ট-ব্যাপী একটি কোটা হয় না, যদিও দুটি ডিভাইসই একই ব্যক্তি হিসেবে লগইন করে। একই কথা প্রযোজ্য একটি পিয়ারের পেছনে অনূদিত পুরো LAN-এর ক্ষেত্রে, অথবা শ্রেণিবদ্ধকারীর অপ্রত্যাশিত অতিরিক্ত IPv6 ঠিকানার ক্ষেত্রে। ঠিকানা-পরিচয় সংযোগ হালনাগাদ রাখুন, আর মনে রাখুন স্থির ঠিকানা মানচিত্র সরল করে কিন্তু এর মালিককে প্রমাণিত করে না।
বার্স্ট আর কিউয়ের আচরণও নির্ধারণ করুন। টোকেন বাকেট গড়ের ওপরে স্বল্প বার্স্ট অনুমোদন করে, আর বাফারিং বিলম্ব যোগায়; অতিরিক্তকে পুলিশ করা আর পরে জন্য কিউয়েতে রাখা আলাদা সিদ্ধান্ত, ভিন্ন উপসর্গ সহ।
যাচাইয়ের জন্য এক ক্লায়েন্ট থেকে দুটি স্থানান্তর চালান, দ্বিতীয় ক্লায়েন্ট যোগ করুন, আর প্রতিটি দিকে ক্লাস কাউন্টার পড়ুন।