सिर्फ eth0 का सामान्य विन्यास करने के बाद, मैं चारों ओर वापस आया और eth1 के लिए विन्यास जोड़ा। केवल eth0 अप के साथ, मार्ग तालिका थी:
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
लेकिन एक बार जब मैंने एथ 1 को लाया, तो डिफ़ॉल्ट रूट स्टेटमेंट का क्रम निर्धारित किया गया कि कौन सा इंटरफ़ेस हमेशा उपयोग किया गया था। जैसा कि नीचे दिखाया गया है, यह 191.168.1.65 गेटवे के लिए eth1 मार्ग चुनने के लिए होता है।
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100
केवल एक प्रवेश द्वार का बयान
पहली समस्या अतिरिक्त '192.168.1.65' डिफ़ॉल्ट मार्ग के माध्यम से हो सकती है। ऐसा लगता है कि अगर वहाँ eth1 परिभाषा / etc / नेटवर्क / इंटरफेस में "गेटवे 192.168.1.65" कथन है। इसलिए किसी भी अतिरिक्त गेटवे स्टेटमेंट को हटा दें, और इंटरफ़ेस को उछाल दें:
# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
सेटअप नया रूटिंग टेबल
एक नया, अलग राउटिंग टेबल बनाएं, जिसमें eth1 से बहने वाले सभी ट्रैफ़िक के लिए एक डिफ़ॉल्ट मार्ग उपयुक्त हो। यहां तालिका संख्या महत्वपूर्ण नहीं है; 101 बस मुख्य मार्ग तालिका नहीं है। / Etc / network / इंटरफेस में eth1 कॉन्फ़िगरेशन पर 'पोस्ट-अप' कमांड के साथ ऐसा करें। Eth1 पर केवल एक पोस्ट-अप जोड़ें; इसे किसी भी eth1 में न जोड़ें: उप-इंटरफेस।
post-up ip route add default via 192.168.1.65 dev eth1 table 101
उछालना eth1। मुख्य रूटिंग टेबल अपरिवर्तित है, और टेबल 101 में 192.168.1.65 डिफ़ॉल्ट मार्ग होगा यदि एथ 1 ऊपर है।
# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101 (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101
default via 192.168.1.65 dev eth1
नया रूटिंग नियम
पैकेट के लिए एक डिफ़ॉल्ट मार्ग का चयन करने के लिए तालिका 101 का उपयोग करने के लिए एक रूटिंग नियम जोड़ें जो बाहर जाना चाहिए eth1।
# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0: from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default
नियम को /etc/network/interfaces
फ़ाइल में भी जोड़ें:
post-up ip rule add from 192.168.1.64/27 lookup 101
अब इंटरफ़ेस को नीचे जाने पर मार्ग और नियम को हटाने के लिए क्लीनअप जोड़ना सुनिश्चित करें:
post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101
[Ubuntu 16.04+ के लिए EDIT] जैसा यहां दिखाया गया है और परीक्षण से मैंने इसकी मदद से किया है, ip मार्ग 2 ने कमांडों की अपनी संरचना को बदल दिया है। काम करने के लिए आपको man ip
अंकों के क्रम में करने के लिए बस थोड़ा सा अनुकूलन करना होगा ।
up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65
या आप एक ifdown के बाद समाप्त हो जाएंगे - ifup कमांड एक त्रुटि संदेश @ifdown कमांड (मानक संदेश यह कहने के लिए कि बाह्य उपकरणों को सही ढंग से कॉन्फ़िगर नहीं किया गया है), और @ifup तालिका 101 में एक मार्ग की अनुपस्थिति।