এর সঠিক উপায় হ'ল আউটগোয়িং প্যাকেটের জন্য আপনি যে ইন্টারফেসটি ব্যবহার করতে চান তার সাথে () বাঁধাই। যেহেতু আপনি প্যাকেটগুলি কীভাবে তাদের বহির্গামী ইন্টারফেসের ভিত্তিতে রুট করা হবে তা নিয়ন্ত্রণ করার জন্য ip routeএবং ip ruleকমান্ডগুলি সহ রুট সেট আপ করতে পারেন । আমার উদাহরণস্বরূপ, আমি নিম্নলিখিত নেটওয়ার্কটি ধরে নেব:
- eth0 এর:
- ঠিকানা: 192.168.0.2/24
- ডিফল্ট গেটওয়ে: 192.168.0.1
- , eth1:
- ঠিকানা: 192.168.1.2/24
- ডিফল্ট গেটওয়ে: 192.168.1.1
আমি দুটি রাউটিং টেবিল তৈরি করব, একটি ট্র্যাফিক আউটগোয়িং এর জন্য E00 যাকে বিকল্প বলা হয় এবং একটি টেবিলকে বলা হবে এথ 1 এর জন্য প্রধান main রাউটিং টেবিল মেইন সর্বদা উপস্থিত থাকে এবং এটি সাধারণ টেবিল যা আদেশ routeএবং ip routeকমান্ড দ্বারা ব্যবহৃত হয় । বেশিরভাগ লোকেরা কখনই অন্য কোনও টেবিল ব্যবহার করে না। বিকল্প হিসাবে সারণী তৈরি করতে, আমরা নিম্নলিখিত লাইনটি যুক্ত করব /etc/iproute2/rt_tables:
10 alternate
সারণী প্রধানটির 254 টির ডিফল্ট অগ্রাধিকার রয়েছে rout রাউটিং টেবিল কার্যকর হওয়ার নিয়মগুলি ip ruleকমান্ড দ্বারা নিয়ন্ত্রিত হয় । ডিফল্টরূপে, সেই কমান্ডটি বিদ্যমান নিয়মের একটি তালিকা মুদ্রণ করবে যা এর মতো দেখতে হবে:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
এটি মূলত বলেছে যে এটি টেবিলের localএমন কোনও রুটের সন্ধান করবে যা স্থানীয় রুটের জন্য যেমন নিজের আইপি ঠিকানা হিসাবে কার্নেল দ্বারা রক্ষণ করা একটি বিশেষ টেবিল। এটি পরে টেবিলের প্রধান এবং টেবিলের ডিফল্ট চেষ্টা করবে। সারণী ডিফল্টটি সাধারণত খালি থাকে তাই যদি প্রধান মিল না থাকে তবে হোস্ট করার কোনও পথ নেই। প্রথমে, eth0 এর নিয়ম সহ টেবিলটি বিকল্প পূরণ করতে দিন।
sudo ip route add table alternate 192.168.0.0/24 dev eth0
sudo ip route add table alternate 192.168.1.0/24 dev eth1
sudo ip route add table alternate default via 192.168.0.1
আপনি সাধারণত চান alternateটেবিল অনুরূপ দেখুন mainটেবিল। একমাত্র পার্থক্যগুলি যখন রাউটিংয়ের আলাদা হওয়া উচিত। আপনি যদি আক্ষরিকভাবে সমস্ত এনএফএস, এইচটিটিপি ইত্যাদির ট্র্যাফিকটি এথ 1 এর ডিফল্ট গেটওয়ে দিয়ে যেতে চান তবে এটি এথ 1 এর নেটওয়ার্কের জন্য নির্ধারিত থাকলেও আপনি উপরের দ্বিতীয় লাইনটি অন্তর্ভুক্ত করতে চাইবেন না। এই বিকল্প রাউটিং টেবিলটি কখন ব্যবহার করতে হবে তার একটি নিয়ম যুক্ত করার জন্য পরবর্তী পদক্ষেপ:
sudo ip rule add from 192.168.0.0/24 pref 10 table alternate
এই নিয়মটিতে বলা হয়েছে যে 192.168.0 নেটওয়ার্কে কোনও ঠিকানা থেকে আসা যে কোনও ট্র্যাফিক alternateস্বাভাবিক mainটেবিলের পরিবর্তে রাউটিং টেবিলটি ব্যবহার করবে । শেষ পদক্ষেপটি নিশ্চিত করা হয় যে সমস্ত ক্লায়েন্টকে অবশ্যই eth0এটির সাথে আবদ্ধ ব্যবহার করা উচিত make সঙ্গেwget , উদাহরণস্বরূপ, সেট --bind-address=192.168.0.2, NFS- র জন্য সেটclientaddr=192.168.0.2মাউন্ট বিকল্প। পার্লের সাথে যদি LibWWW ব্যবহার করা হয় তবে আপনি স্থানীয় ইন্টারফেসটি যেটির সাথে আবদ্ধ তা নিয়ন্ত্রণ করতে LWP :: ইউজারএজেন্টে লোকাল্ডার বিকল্পটি সেট করতে পারেন। আপনি যদি ক্লায়েন্ট পেয়ে থাকেন তবে আপনি বাঁধাই নিয়ন্ত্রণ করতে পারবেন না এবং সংকলন উত্সটি কোনও বিকল্প নয়, আপনি তার ঠিকানাটি সংশোধন করতে iptables নিয়মটি ব্যবহার করতে সক্ষম হতে পারেন, তবে এটি হ্যাকের বেশি এবং কাজ নাও করতে পারে। আপনার নাট টেবিল বা মঙ্গলের টেবিলের PREOUTING চেইনে একটি SNAT রুল সেট আপ করতে হবে। এটি কাজ করার জন্য আপনার উপরে উপরে বর্ণিত রাউটিং টেবিলগুলির প্রয়োজন হবে।
iftopএবং তারা প্রত্যেকে ট্র্যাফিকের সঠিক ধরণটি দেখাচ্ছে। তোমাকে অনেক ধন্যবাদ.