লিনাক্স টিসি ক্লাস / ফিল্টার নম্বর


12

আমি বর্তমানে আইএসপি-স্তরের সংস্থাগুলির জন্য ট্র্যাফিক গঠনের সমাধানের জন্য কাজ করছি এবং একটি আকর্ষণীয় (ধরণের দার্শনিক) সমস্যার কাছে এসেছি।

সিস্টেমটি কতগুলি শেষ পয়েন্টগুলি পরিচালনা করতে হবে (যা প্রায় ২০ ডলার) হ'ল তা জানতে চাইলে আমি যখন আরও বেশি ব্যবহারকারীর ট্র্যাফিক নীতি / আকারের প্রয়োজন হয় তখন কী হবে তা নিয়ে আমি একটু চিন্তিত হয়ে পড়েছিলাম। যেহেতু আমি বর্তমানে পুরো নেটওয়ার্কের জন্য এইচএফএসসি শেপিং ট্রি (টিসি-এইচএফএসসি দেখুন, বেশিরভাগ একই-তবে-শীতল জিনিসটি ভাল-পরিচিত এইচটিবি হিসাবে দেখি), আমার আরও ক্লাসিড ব্যবহার করতে হবে (স্পষ্টত কমপক্ষে প্রতিটি ব্যবহারকারীর জন্য একটি অন্তর্জাল). যে সমস্যাটি আমি পেয়েছি তা হ'ল টিসি ক্লাসিডের সীমাবদ্ধ সীমাবদ্ধ - এগুলি ১--বিট সংখ্যা, যা আমাকে এই সমাধানটি দ্বারা সর্বাধিক k৪ কে ব্যবহারকারীর আকার দেয়।

একইভাবে, আমি যদি টিসি ফিল্টারগুলি দক্ষতার সাথে পরিচালনা করতে চাই (যেমন 'সমস্ত প্রযুক্তি ফ্লাশ ব্যবহার না করা'), তবে আমাকে পৃথক ফিল্টার এন্ট্রি মুছতে বা সংশোধন করতে সক্ষম হতে হবে। (আমি LARTC [1] থেকে হ্যাশ টেবিলের অনুরূপ কিছু ব্যবহার করছি)। আবার, একমাত্র পদ্ধতি যা এটির সাথে কাজ করে বলে মনে হচ্ছে তা হল পৃথক অগ্রাধিকারগুলি ব্যবহার করে সমস্ত ফিল্টারকে সংখ্যায়িত করা (টিসি ফিল্টার অ্যাড ডেভ ... প্রিও 1)। এই উদ্দেশ্যে ব্যবহার করা যেতে পারে এমন অন্য কোনও প্যারামিটার নেই এবং আফসোস, প্রিও কেবল 16-বিট-কেবল।

আমার প্রশ্নটি অনুসরণ করা হচ্ছে: উপলভ্য "শনাক্তকারী স্থান" সম্প্রসারণের জন্য, যেমন 'টিসি ক্লাস' কমান্ডের জন্য 32-বিট ক্ল্যাসিড, এবং 'টিসি ফিল্টার' এর জন্য 32-বিট অগ্রাধিকার (বা অন্য কোনও পরিবর্তন হ্যান্ডলগুলি) আছে কি কোনও ভাল পদ্ধতি রয়েছে? কমান্ড?

অনেক ধন্যবাদ,

-mk

(বিটিডব্লিউ) আমি আশা করি এটি "k৪ কে ব্যবহারকারীদের সবার পক্ষে যথেষ্ট হওয়া উচিত" দৃশ্যে যাবে না ...)


এই সমস্ত মানগুলি কার্নেল স্পেসে সঞ্চিত রয়েছে, এগুলি আরও বড় করতে আপনার কার্নেল এবং ইউজারস্পেসের ইউটিলিটিগুলি পুনরায় কম্পাইল করতে হবে। আপনি কি 64 বিট কার্নেলটি ব্যবহার করার চেষ্টা করেছেন? সেগুলি সেখানে 32 বিট হিসাবে সংজ্ঞায়িত করা যেতে পারে।
হুবার্ট কারিও

64 বিট কার্নেল একই আকার ব্যবহার করে। উদাহরণস্বরূপ, ফিল্টার নম্বরটি u32-পূর্ণসংখ্যা যা উপরের (প্রোটোকল) এবং নিম্ন অংশ (প্রিও) উভয়ই 16 বিট নিয়ে গঠিত consists ক্লাস আইডিগুলিকে u16 হিসাবে হার্ডকোড করা হয়। সম্ভবত LKML- এ কাউকে জিজ্ঞাসা করার চেষ্টা করবে।
প্রাক্তন

1
এমনকি আপনার ফিল্টারগুলির জন্য হ্যাশ ব্যবহার করেও আপনি যদি প্রচুর ফিল্টার ব্যবহার করে থাকেন তবে আপনার প্রচুর আইও সমস্যা হবে (আমি অনুমান করি যে প্রবাহের জন্য এবং প্রবাহের জন্য)। Ksoftirqd এর সাথে কাজ করার জন্য আমি প্রচুর সময় ব্যয় করেছি এবং কার্নেলের অভ্যন্তরে সারিগুলি প্রয়োগ করতে পেরেছি। আমি সাইমন লোডাল নামে একটি লোকের কাছ থেকে একটি প্যাচ ব্যবহার করেছি যা আমি 4 বছর আগে এলএআরটিসি-তে দেখা হয়েছিল। তার প্যাচটি একবার দেখুন: mail -archive.com/lartc@mailman.ds9a.nl/msg16279.html । আপনি তাকে একটি ইমেল প্রেরণের চেষ্টা করতে পারেন কারণ তাঁর সাথে সর্বদা একটি খুব আপডেট সংস্করণ থাকে (শেষ কার্নেলের বিপরীতে)।
পাব্লুয়েজ

@ পাবলুয়েজকে অনেক ধন্যবাদ, আমি এর থেকে যথাসাধ্য চেষ্টা করার চেষ্টা করব।
এক্সা

1
আমি আপনার প্রয়োজনীয়তা বৈধ বলে মনে করি তবে পাব্লুয়েজ যেমন লিখেছেন এতে অবশ্যই অনেকগুলি কার্নেল পরিবর্তন জড়িত। আমি বলতে চাই না "আপনি এটি ভুল করছেন", তবে আমি আপনাকে ওপেনফ্লো পরীক্ষা করতে উত্সাহিত করব, যেখানে প্যাকেটের হ্যান্ডলিংয়ের নীচের অংশগুলি স্যুইচ স্তরে করা হয় এবং সম্ভবত কাস্টম সফ্টওয়্যারটিতে পুলিশিং করা হয়, সম্ভবত ব্যবহারকারী-স্পেসে চলছে। এটি আপনার প্রয়োজনীয়তার সাথে খাপ খায় কিনা তা আমি জানি না তবে এটি অবশ্যই তদন্তের পক্ষে।
AndreasM

উত্তর:


2

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


আমি অন্য কয়েকটি স্তরে পরিষেবার সহজলভ্যতা নিশ্চিত করছি, তবে উদ্বেগের জন্য ধন্যবাদ। প্রকৃতপক্ষে, ভাল এনআইসির সাথে, এটি একটি লিনাক্স রাউটারের সাথে থাকা খুব কঠিন নয় যা 10 গিগাবাইট ফরোয়ার্ড করতে পারে।
এক্সা

মূল প্রশ্নের জন্য, আমি প্রতিটি ব্যবহারকারীর জন্য 5 টি পৃথক ক্লাস যুক্ত করার মতো স্টাফগুলিতে আরও আগ্রহী ছিলাম, যা আমাকে সত্যিই একটি ভাল কিউওএস জব করার অনুমতি দেয় (যেমন স্ট্রিমগুলি হ্যান্ডলিং এবং রিয়েলটাইম ট্র্যাফিক পৃথকভাবে পরিচালনা করা) তবে বর্তমান অবস্থার মধ্যে বেশিরভাগই অভাবনীয় (আমার সাথে আমি ইতিমধ্যে সীমা পিছনে থাকব ~ 20k শেষের পয়েন্টগুলির বর্তমান ব্যবহারের কেস)।
এক্সা

1
ঠিক আছে, 10 গিগাবাইট ফরোয়ার্ড করা কোনও সমস্যা নয়, সমস্যাটিতে অনেকগুলি 64 কে * 2 (উত্স ডাউন) ফিল্টার এবং ক্লাস রয়েছে। শুভ কামনা যদিও: ডি
পাবলুয়েজ

0

আপনি ট্র্যাফিক হ্যান্ডলিংকে একটি মেশিনে সমস্ত ট্র্যাফিক পরিচালনা করার পরিবর্তে দুটি মেশিনে (তৃতীয়টি ব্যবহার করে) বিভক্ত করতে পারেন। সোর্স আইপি ঠিকানার উপর ভিত্তি করে ট্র্যাফিকটি রুট করা যায়। সুতরাং, আপনি যদি আইপি পরিসীমা (গুলি) কে সমানভাবে ভাগ করতে পারেন তবে আপনার সর্বোত্তম 10k ব্যবহারকারী থাকবে users

অবশ্যই, প্রয়োজন হলে আপনি দুটিরও বেশি মেশিন ব্যবহার করতে পারেন। আমি মনে করি এটি লিনাক্স কার্নেলকে প্যাচ করা এবং অন্য কিছু হ্যাক করার চেয়ে ভাল হতে পারে। সংক্ষেপে, ট্র্যাফিক আকার দেওয়ার বিভিন্ন মেশিনে বিতরণ করা হবে। কেন্দ্রীয় নোডটি ট্র্যাফিকটিকে কেবল ডান প্রসেসিং নোডে ফরোয়ার্ড করবে।

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