iptables एक कच्चे सॉकेट पर भेजे गए पैकेटों में SNAT को लागू नहीं करता है


0

मैं अपने वायरलेस इंटरफ़ेस wlan0 के लिए एक उपयोगकर्ता अंतरिक्ष कार्यक्रम से पैकेट लिख रहा हूं। मैंने इस प्रकार iptables के साथ एक SNAT नियम स्थापित किया है

iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to 192.168.1.3

और यह मेरी मशीन से निकलने वाले सभी सामान्य ट्रैफ़िक के लिए काम करता है।

मैं एक प्रोग्राम पर काम कर रहा हूं जो परत 2 (ईथर) पर कच्चे सॉकेट्स का उपयोग करता है। Iptables SNAT को इस प्रोग्राम द्वारा भेजे गए पैकेट पर लागू नहीं कर रहा है।

वहाँ किसी भी तरह से मैं परत 2 से userpace में पैकेट लिख सकता हूँ और अभी भी NAT उनके लिए लागू है?

जवाबों:


0

कच्चे सॉकेट्स को संशोधन (आने वाले) से पहले मूल पैकेट की एक प्रति मिलती है। बाहर जाने पर इसका उलटा होता है।

तो वास्तव में iptables रॉ के रूप में बाईपास हो जाता है क्योंकि IP सॉकेट बहुत ज्यादा सॉकेट करता है, और इसलिए iptables क्योंकि यह जहां रहता है, और पैकेट को सीधे आवेदन में पास करता है। उसके बाद जो भी जुड़ा उससे सीधा वापस।

इसलिए आपके प्रश्न के उत्तर में, आपने कोई भी NAT उन पर लागू नहीं किया है क्योंकि वे नियम लागू होने के लिए iptables से कभी नहीं जाते हैं

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