मैं अपने लिनक्स बॉक्स को आगे के पैकेट के राउटर के रूप में कैसे सेट कर सकता हूं?


25

मैं आईपी पैकेट अग्रेषण के बारे में एक नेटवर्क प्रयोग कर रहा हूं, लेकिन मुझे नहीं पता कि यह क्यों काम करता है।

मेरे पास दो नेटवर्क इंटरफेस के साथ एक linux मशीन है, eth0 और eth1 दोनों स्थिर IP पते (eth0: 192.168.100.1, eth1: 192.168.101.2) के साथ।

मेरा लक्ष्य आसान है, मैं सिर्फ सबनेट 192.168.100.0/24 से eth0 में गंतव्य के साथ eth1 से ip पैकेट को अग्रेषित करना चाहता हूं, और eth0 से गंतव्य के साथ eth0 से आगे ip पैकेट को 191.168.101.0/24 से eth1 में बदलना चाहता हूं।

मैंने IP अग्रेषण चालू किया:

sysctl -w net.ipv4.ip_forward=1

मेरी रूटिंग टेबल इस प्रकार है:

# route -n
Kernel IP routing table
Destination     Gateway     Genmask        Flags Metric Ref   Use  Iface
192.168.100.0   0.0.0.0     255.255.255.0  U     0      0       0  eth0
192.168.101.0   0.0.0.0     255.255.255.0  U     0      0       0  eth1

लेकिन, जब मैं 192.168.100.25 से 192.168.101.47 तक पिंग करने की कोशिश करता हूं, तो यह काम नहीं करता है।

जवाबों:


23

आपको कमांड का उपयोग करके एक अग्रेषण नियम जोड़ना होगा iptables, कुछ इस तरह से:

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT

देखना man iptablesअधिक जानकारी के लिए, या howto लेख के लिए खोज इंटरनेट, उदाहरण के लिए कैसे एक लिनक्स आधारित कंप्यूटर पर एक नेट रूटर स्थापित करने के लिए

यहाँ Linux IP Masquerade HOWTO है जो विवरण में विषय पर चर्चा करता है।

आपको यह भी सुनिश्चित करना चाहिए कि आपके पास कोई अन्य नियम (जैसे FORWARDश्रृंखला में) नहीं हैं जो उपरोक्त ACCEPTनियम को ओवरराइड कर रहे हैं । यदि वहाँ हैं, तो आप शायद उन्हें हटाना चाहते हैं।


मुझे पता नहीं क्यों, लेकिन यह अभी भी काम नहीं करता है। मैं दोनों को शामिल किया है iptables -A FORWARD -i eth0 -o eth1 -j ACCEPTऔर iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTमेरी तालिकाओं के लिए। और मेरी INPUT, OUTPUT, और FORWARD नीति सभी हैं ACCEPT
यिशु फेंग

कई चीजें हैं जिन्हें गलत तरीके से कॉन्फ़िगर किया जा सकता है। उदाहरण के लिए, आपको मेजबान के आईपी को "आंतरिक" नेटवर्क में मेजबानों पर "गेटवे आईपी" के रूप में निर्दिष्ट किया जाना चाहिए, ताकि वे जान सकें कि अगर आईपी उनके "स्थानीय" नेटवर्क की सीमा में नहीं है, तो पैकेट को आपके लिए भेजा जाना चाहिए। गेटवे मशीन। यह सामान्य सेटअप के समान है जहां ADSL रूटर LAN में मेजबानों के लिए गेटवे के रूप में पंजीकृत है
सर्गेई

जब मैं tracerouteअपने होस्ट पर उपयोग करता हूं, तो यह दिखाता है कि पैकेट "राउटर" (192.168.100.1) पर जाता है, लेकिन यह आगे नहीं बढ़ता है।
यिशु फेंग

1
@UniMouS: लगता है कि मैं MASQUERADE चीज के बारे में भूल गया हूं - मैंने अपना उत्तर संपादित कर दिया है और लेखों के नए लिंक जोड़ दिए हैं।
सेर्गेई

2

आपको 192.168.100.25 और 192.168.101.47 दोनों के लिए एक मार्ग जोड़ना होगा।

यदि आपके अग्रेषण सर्वर में IPs 192.168.100.1 और 192.168.101.1 है, तो आप ग्राहक 192.168.100.25 में जोड़ेंगे।

ip route 192.168.101.0/24 via 192.1268.100.1

और ग्राहक में 192.168.101.47

ip route 192.168.100.0/24 via 192.168.101.1

(यह सिर्फ अग्रेषित सक्षम, कोई iptables के साथ काम करता है)।

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