2013-02-15 11 views
7

मैं सभी आने वाले टीसीपी पैकेट को एकाधिक आईपी पते पर अग्रेषित करने की कोशिश कर रहा हूं।एकाधिक आईपी पते पर पैकेट क्लोनिंग और अग्रेषण

सेटअप:

A - 10.10.10.10 
B - 10.10.10.11 
C - 10.10.10.12 
D - 10.10.10.13 

मैं बी, सी और डी एक के बंदरगाह 12345 पर सभी आने वाली पैकेट (पोर्ट 8000 पर) प्राप्त करना चाहते हैं। आदर्श रूप में मैं चाहता था कि ए ऐसा करे।

मैं एक पर इस नियम के साथ एक मशीन के लिए अग्रेषित कर सकते हैं:

iptables -t nat -A PREROUTING -p tcp --dport 12345 -j REDIRECT --to 10.10.10.11:8000 

मैं भी टी विकल्प का उपयोग कर पैकेट क्लोन कर सकते हैं:

iptables -t mangle -A PREROUTING -p tcp --dport 8000 -d 10.10.10.11 -j TEE --gateway 10.10.10.12 

अब तक सब कुछ ठीक है। समस्या यह है कि सी को बी के गंतव्य आईपी के साथ पैकेट प्राप्त होगा और सी नहीं। इसके अलावा, मुझे नहीं पता कि मैं डी और/या अन्य गंतव्यों को कैसे आगे बढ़ा सकता हूं।

मैं आईपीटीबल्स नियमों के साथ ए कैसे बना सकता हूं, बंदरगाह 12345 पर सभी अन्य मशीनों (बी, सी और डी) पर सभी आने वाले पैकेट पोर्ट 8000 पर भेज सकता हूं?

उत्तर

0

आप POSTROUTING उपयोग करने के लिए:

iptables -t nat -A POSTROUTING -p tcp --dports 8080 -j SNAT --to-source 10.10.10.12 

लेकिन आप अंतर करने के लिए, जो पैकेट बी या सी के लिए है किसी और वे सभी सी के आईपी यह से किया जाना चाहिए के साथ आ जाएगा के लिए एक रास्ता खोजने की जरूरत है इंटरफ़ेस यदि आपके पास अलग इंटरफ़ेस है; मुझे लगता है कि यह मामला है के रूप में आप प्रवेश द्वार तो, की तरह कुछ बदलने के लिए: इंटरफ़ेस eth3 पर जाने वाले आउटगोइंग

iptables -t nat -A POSTROUTING -o eth3 -p tcp --dports 8080 -j SNAT --to-source 10.10.10.12 

इसलिए केवल पैकेट, इमेजिंग यह सेल्सियस तक मार्ग पथ है, सी आईपी करने के लिए गंतव्य आईपी परिवर्तन करना होगा।

संबंधित मुद्दे