एकाधिक Nics के साथ नेटवर्किंग


16

मेरे पास एक Ubuntu 12.04 सर्वर है जिसमें 4 नेटवर्क एडेप्टर हैं। मुझे एक अलग फ़ंक्शन के लिए प्रत्येक एनआईसी का उपयोग करने की आवश्यकता है। यहाँ मेरे सेटअप का विवरण दिया गया है:

etho = 10.234.0.2 netmask = 255.255.255.252 gw = 10.234.0.1 This is on vlan 234
eth1 = 10.235.0.2 netmask = 255.255.255.252 gw = 10.235.0.1 This is on vlan 235
eth2 = 10.236.0.2 netmask = 255.255.255.252 gw = 10.236.0.1 This is on vlan 236
eth3 = 10.237.0.2 netmask = 255.255.255.252 gw = 10.237.0.1 This is on vlan 237

मुझे अलग-अलग वेब सेवाओं के लिए अलग-अलग आईपी पते से यातायात को निर्देशित करने में सक्षम होने की आवश्यकता है। यानी 10.235.0.2 एक वेबसाइट है, 10.236.0.2 एक अलग साइट है, और 10.237.0.2 एक तीसरी साइट है। 1 IP सर्वर के प्रबंधन के लिए है।

मुझे लगता है कि मुद्दा एक रूटिंग मुद्दा है, लेकिन मैं रूट की क्षमताओं के इनसाइड और आउट्स की पूरी समझ नहीं रखने के लिए लिनक्स के लिए काफी नया हूं।

यहाँ मेरी /etc/network/interfacesफाइल में क्या है :

auto lo
iface lo inet loopback

# WWW Management
auto eth0
iface eth0 inet static
address 10.234.0.2
netmask 255.255.255.252
gateway 10.234.0.1
nameseervers 10.230.1.103, 10.230.70.70

# WWW
auto eth1
iface eth1 inet static
address 10.235.0.2
netmask 255.255.255.252
gateway 10.235.0.1

# WTB
#auto eth2
#iface eth2 inet static
#address 10.236.0.2
#netmask 255.255.255.252
#gateway 10.236.0.1

# Moodle
#auto eth3
#iface eth3 inet static
#address 10.237.0.2
#netmask 255.255.255.252
#gateway 10.237.0.1

मैंने भ्रम को कम करने के लिए पिछले दो नेटवर्क को निष्क्रिय कर दिया है।

सभी मदद और टिप्पणियों और सुझावों के लिए अग्रिम धन्यवाद।

जवाबों:


15

सिर्फ 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 में एक मार्ग की अनुपस्थिति।


अच्छा है, लेकिन मैं rc.local का उपयोग करना पसंद नहीं करता .. एक और अधिक सुंदर अंतिम चरण की तलाश में ..
drAlberT

यह संपादित किया गया था मुझे लगता है :) ..
drAlberT

क्या वास्तव में एक / etc / interfaces फ़ाइल है, या वह एक टाइपो है?
user100464

@ user100464/etc/network/interfaces
Zenexer

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