নিজেই সমাধান করেছেন। লিনাক্সের সাহায্যে আপনি যে নেটওয়ার্কিং স্টাফ করতে পারেন সে সম্পর্কে খুব কম তথ্য আছে বলে মনে হয়, তাই আমি আমার সমাধানটি ডকুমেন্ট এবং বিশদভাবে ব্যাখ্যা করার সিদ্ধান্ত নিয়েছি। এটি আমার চূড়ান্ত সেটআপ:
- 3 এনআইসি: এথ0 (তারে), ও্লান0 (বিল্ট-ইন ওয়াইফাই, দুর্বল), ওয়ালান 1 (ইউএসবি ওয়াইফাই অ্যাডাপ্টার, wlan0 এর চেয়ে শক্তিশালী সংকেত)
- একক সাবনেটে এঁরা সকলেই তাদের নিজস্ব আইপি ঠিকানা দিয়ে থাকেন।
- এথ0 ডিফল্ট হিসাবে আগত এবং বহির্গামী উভয় ট্র্যাফিকের জন্য ব্যবহার করা উচিত।
- যদি eth0 ব্যর্থ হয় তবে wlan1 ব্যবহার করা উচিত।
- যদি wlan1 ব্যর্থ হয় তবে wlan0 ব্যবহার করা উচিত।
প্রথম পদক্ষেপ : প্রতিটি ইন্টারফেসের জন্য একটি নতুন রুট টেবিল তৈরি করুন /etc/iproute2/rt_tables
। আসুন তাদের rt1, rt2 এবং rt3 কল করুন
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 rt1
2 rt2
3 rt3
দ্বিতীয় পদক্ষেপ : নেটওয়ার্ক কনফিগারেশন ইন /etc/network/interfaces
। এটিই মূল অংশ এবং আমি যথাসম্ভব ব্যাখ্যা করার চেষ্টা করব:
auto eth0 wlan0
allow-hotplug wlan1
iface lo inet loopback
iface eth0 inet static
address 192.168.178.99
netmask 255.255.255.0
dns-nameserver 8.8.8.8 8.8.4.4
post-up ip route add 192.168.178.0/24 dev eth0 src 192.168.178.99 table rt1
post-up ip route add default via 192.168.178.1 dev eth0 table rt1
post-up ip rule add from 192.168.178.99/32 table rt1
post-up ip rule add to 192.168.178.99/32 table rt1
post-up ip route add default via 192.168.178.1 metric 100 dev eth0
post-down ip rule del from 0/0 to 0/0 table rt1
post-down ip rule del from 0/0 to 0/0 table rt1
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant.conf
wireless-essid xyz
address 192.168.178.97
netmask 255.255.255.0
dns-nameserver 8.8.8.8 8.8.4.4
post-up ip route add 192.168.178.0/24 dev wlan0 src 192.168.178.97 table rt2
post-up ip route add default via 192.168.178.1 dev wlan0 table rt2
post-up ip rule add from 192.168.178.97/32 table rt2
post-up ip rule add to 192.168.178.97/32 table rt2
post-up ip route add default via 192.168.178.1 metric 102 dev wlan0
post-down ip rule del from 0/0 to 0/0 table rt2
post-down ip rule del from 0/0 to 0/0 table rt2
iface wlan1 inet static
wpa-conf /etc/wpa_supplicant.conf
wireless-essid xyz
address 192.168.178.98
netmask 255.255.255.0
dns-nameserver 8.8.8.8 8.8.4.4
post-up ip route add 192.168.178.0/24 dev wlan1 src 192.168.178.98 table rt3
post-up ip route add default via 192.168.178.1 dev wlan1 table rt3
post-up ip rule add from 192.168.178.98/32 table rt3
post-up ip rule add to 192.168.178.98/32 table rt3
post-up ip route add default via 192.168.178.1 metric 101 dev wlan1
post-down ip rule del from 0/0 to 0/0 table rt3
post-down ip rule del from 0/0 to 0/0 table rt3
আপনি যদি টাইপ করেন ip rule show
তবে নিম্নলিখিতগুলি দেখতে হবে:
0: from all lookup local
32756: from all to 192.168.178.98 lookup rt3
32757: from 192.168.178.98 lookup rt3
32758: from all to 192.168.178.99 lookup rt1
32759: from 192.168.178.99 lookup rt1
32762: from all to 192.168.178.97 lookup rt2
32763: from 192.168.178.97 lookup rt2
32766: from all lookup main
32767: from all lookup default
এটি আমাদের জানায় যে "192.168.178.99" IP ঠিকানা থেকে ট্রাফিক আগমন বা বহির্গামী rt1 রুট সারণী ব্যবহার করবে। এ পর্যন্ত সব ঠিকই. তবে স্থানীয়ভাবে উত্পাদিত ট্র্যাফিকের (উদাহরণস্বরূপ আপনি মেশিন থেকে অন্য কোথাও পিং করতে বা এসএসএস করতে চান) বিশেষ চিকিত্সা প্রয়োজন (প্রশ্নের বড় উদ্ধৃতি দেখুন)।
প্রথম চারটি পোস্ট-আপ লাইনগুলি /etc/network/interfaces
সোজা এবং ইন্টারনেটে ব্যাখ্যা পাওয়া যাবে, পঞ্চম এবং শেষ পোস্ট-আপ লাইনটি যাদুটিকে ঘটায়:
post-up ip r add default via 192.168.178.1 metric 100 dev eth0
নোট করুন কীভাবে আমরা এই পোস্ট-আপ লাইনের জন্য কোনও রুট-টেবিল নির্দিষ্ট করে নেই। যদি আপনি কোনও রুট টেবিল নির্দিষ্ট না করেন তবে তথ্যটি main
আমরা যে রুট টেবিলটিতে দেখেছি সেগুলি সংরক্ষণ করা হবে ip rule show
। এই পোস্ট-আপ লাইনটি "প্রধান" রুট সারণিতে একটি ডিফল্ট রুট রাখে যা স্থানীয়ভাবে উত্পন্ন ট্র্যাফিকের জন্য ব্যবহৃত হয় যা আগত ট্র্যাফিকের প্রতিক্রিয়া নয়। (উদাহরণস্বরূপ আপনার সার্ভারে একটি এমটিএ ইমেল প্রেরণের চেষ্টা করছে।)
তিনটি ইন্টারফেস সমস্তই মূল রুট টেবিলটিতে একটি ডিফল্ট রুট রাখে, যদিও বিভিন্ন মেট্রিকের সাথে থাকে। এর main
সাথে রুট টেবিলটি একবার দেখুন ip route show
:
default via 192.168.178.1 dev eth0 metric 100
default via 192.168.178.1 dev wlan1 metric 101
default via 192.168.178.1 dev wlan0 metric 102
192.168.178.0/24 dev wlan0 proto kernel scope link src 192.168.178.97
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.99
192.168.178.0/24 dev wlan1 proto kernel scope link src 192.168.178.98
আমরা দেখতে পাচ্ছি যে প্রধান রুটের টেবিলটিতে তিনটি ডিফল্ট রুট রয়েছে, যদিও বিভিন্ন মেট্রিকের সাথে। সর্বাধিক অগ্রাধিকার হ'ল নীতি0, তারপরে wlan1 এবং তারপরে wlan0 কারণ নিম্ন মেট্রিক সংখ্যা উচ্চতর অগ্রাধিকার নির্দেশ করে। যেহেতু eth0
সর্বনিম্ন মেট্রিক রয়েছে এটি হ'ল ডিফল্ট রুট যা eth0
আপ যতক্ষণ ব্যবহার করা হবে। যদি eth0
নীচে যায়, বহির্গামী ট্র্যাফিক স্যুইচ হবে wlan1
।
এই সেটআপের সাহায্যে আমরা ping 8.8.8.8
একটি টার্মিনাল এবং ifdown eth0
অন্যটিতে টাইপ করতে পারি । ping
এখনও কাজ করা উচিত কারণ ifdown eth0
সম্পর্কিত ডিফল্ট রুটটি সরিয়ে দেবে eth0
, বহির্গামী ট্র্যাফিক স্যুইচ করবে wlan1
।
ডাউন-ডাউন লাইনগুলি নিশ্চিত করে তোলে যে ip rule show
সবকিছু পরিষ্কার রাখার জন্য, ইন্টারফেসটি নীচে নেমে যাওয়ার সময় সম্পর্কিত রুট টেবিলগুলি রুটিং নীতি ডাটাবেস ( ) থেকে মুছে ফেলা হবে।
যে সমস্যাটি রয়ে গেছে তা হ'ল আপনি যখন eth0
ডিফল্ট রুট থেকে প্লাগ eth0
টানেন তখনও রয়েছে এবং বহির্গামী ট্র্যাফিক ব্যর্থ হয়। আমাদের ইন্টারফেসগুলি নিরীক্ষণের জন্য এবং ইন্টারফেসের ifdown eth0
সাথে সমস্যা আছে (যেমন এনআইসি ব্যর্থতা বা কেউ প্লাগ টানছে) কার্যকর করতে আমাদের কিছু দরকার ।
শেষ পদক্ষেপ : প্রবেশ করান ifplugd
। এটি একটি ডেমন যা ইন্টারফেস দেখে এবং কার্যকর করে ifup/ifdown
যদি আপনি প্লাগটি টানেন বা ওয়াইফাই সংযোগে সমস্যা আছে /etc/default/ifplugd
:
INTERFACES="eth0 wlan0 wlan1"
HOTPLUG_INTERFACES=""
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
আপনি এখন প্লাগটি টানতে পারবেন eth0
, বহির্গামী ট্র্যাফিকটি স্যুইচ হবে wlan1
এবং আপনি প্লাগটি পিছনে রাখলে বহির্গামী ট্র্যাফিক আবার স্যুইচ হবে eth0
। আপনার সার্ভারটি তিনটি ইন্টারফেসের যে কোনওটিতে কাজ করা অবধি অনলাইনে থাকবে। আপনার সার্ভারের সাথে সংযোগের জন্য আপনি eth0 এর আইপি ঠিকানাটি ব্যবহার করতে পারেন এবং যদি এটি ব্যর্থ হয় তবে wlan1 বা wlan0 এর আইপি ঠিকানা।