मैं उच्च मीट्रिक के साथ दूसरे इंटरफ़ेस का उपयोग करने के लिए ssh को कैसे बाध्य करूं?


9

मेरे पास दो इंटरफेस के साथ एक क्रंचबैंग वीएम है, eth0और eth1, जिनमें से प्रत्येक एक ओपनवार्ट वीएम ( eth0होने 10.232.64.20और eth1होने 10.232.65.20) से जुड़ता है । मैं नेटवर्क मैनेजर और डीएचसीपी का उपयोग कर रहा हूं। मेरा समग्र लक्ष्य कई sshकनेक्शन है, और उनके साथ संबंध है ifenslave

डिफ़ॉल्ट रूप से eth1(किसी कारण से) डिफ़ॉल्ट गेटवे है:

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

मैंने इसके लिए एक मार्ग जोड़ा eth0:

user@crunchbang:~$ sudo ip route add default via 10.232.64.1 dev eth0  proto static metric 1

फिर मेरे पास दो मार्ग हैं:

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
default via 10.232.64.1 dev eth0  proto static  metric 1
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

हालांकि, sshकेवल के माध्यम से बाहर हो जाता है eth1:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
ssh: connect to host 1.2.3.4 port 22: Connection timed out

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

eth0मीट्रिक मेरे पास बदलने के बाद :

user@crunchbang:~$ ip ro
default via 10.232.64.1 dev eth0  proto static  metric 1
default via 10.232.65.1 dev eth1  proto static  metric 2
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

और अब sshकेवल इसके माध्यम से बाहर निकलता है eth0:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
ssh: connect to host 1.2.3.4 port 22: Connection timed out

मैं sshएक उच्च मीट्रिक के साथ एक इंटरफ़ेस का उपयोग करने के लिए कैसे मजबूर करूं ?

संपादित करें

मैंने 4.2 में कॉन्फ़िगरेशन को लागू और परीक्षण किया है लिनक्स उन्नत रूटिंग एंड ट्रैफिक कंट्रोल HOWTO के कई अपलिंक / प्रदाता खंड के लिए रूटिंग। यह देखते हुए कि विन्यास सरल है, और यह कि मैंने त्रुटियों का सामना नहीं किया है, मैं केवल न्यूनतम स्पष्टीकरण के साथ कोड और परिणाम दिखाऊंगा।

root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20 table T0
root@crunchbang:~# ip route add default via 10.232.64.1 table T0
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20 table T1
root@crunchbang:~# ip route add default via 10.232.65.1 table T1
root@crunchbang:~# ip route flush table main
root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20
root@crunchbang:~# ip rule add from 10.232.64.20 table T0
root@crunchbang:~# ip rule add from 10.232.65.20 table T1
root@crunchbang:~# ip route add default scope global nexthop via 10.232.64.1 dev eth0 weight 1 nexthop via 10.232.65.1 dev eth1 weight 1

यहां राउटिंग टेबल उत्पन्न किए गए हैं:

root@crunchbang:~# ip route show table T0
default via 10.232.64.1 dev eth0 
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 

root@crunchbang:~# ip route show table T1
default via 10.232.65.1 dev eth1 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

root@crunchbang:~# ip ro
default 
    nexthop via 10.232.64.1  dev eth0 weight 1
    nexthop via 10.232.65.1  dev eth1 weight 1
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

उस विन्यास के साथ, ssh दोनों इंटरफेस के माध्यम से जुड़ता है:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

हालाँकि, ऐसा प्रतीत होता है कि मुझे नेटवर्क मैनेजर को खोने की आवश्यकता है। अगर कोई समझा सकता है कि यह एक बुरा विचार क्यों है, या नुकसान की चेतावनी है, तो मैं इसकी सराहना करूंगा।

EDIT2

नेटवर्क प्रबंधक को हटाना अच्छी तरह से चला गया। मेरा सिर्फ एक आखिरी सवाल है। बूट पर कॉन्फ़िगरेशन को लोड करने का वर्तमान मानक तरीका क्या है?


मैंने सिर्फ 4.2 की खोज की कई अपलिंक / प्रदाताओं के लिए रूटिंग । मैं लंबित कार्यान्वयन पर सवाल अपडेट करूंगा।
मिरिमिर

इसने काम किया, इसलिए मैं अपने प्रश्न को अपडेट करूंगा।
मिरिमिर

मुझे बूट पर रूटिंग लोड करने का तरीका नहीं मिलता है, क्योंकि इसके लिए रूट अधिकारों की आवश्यकता होती है। इसे स्क्रिप्ट के साथ करना ठीक काम करता है, लेकिन मैं सेटअप के बिना रीबूट कर सकता हूं।
मिरिमिर

जवाबों:


1

सबसे पहले, समस्या के लिए आपका समाधान अच्छा है। दूसरा, यह ओएस पर निर्भर करता है। क्रंचबैग डेबियन आधारित है इसलिए यह समाधान काम कर सकता है:

/server/487939/permanently-adding-source-policy-routing-rules

आरएचईएल आधारित प्रणालियों पर भी जोड़ने की संभावना है <ifname>-ruleऔर <ifname>-route

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.