Iptables - ब्रिज और फॉरवर्ड चेन


14

मेरे पास सेटअप ईथरनेट ब्रिज br0है जिसमें दो इंटरफेस हैं eth0औरtap0

brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 

मेरी डिफ़ॉल्ट FORWARDश्रृंखला नीति हैDROP

iptables -P FORWARD DROP

जब मैं निम्नलिखित नियम नहीं जोड़ता तो यातायात पुल से नहीं गुजर रहा है।

iptables -A FORWARD -p all -i br0 -j ACCEPT

जहां तक ​​मैं समझता हूं कि iptablesकेवल आईपी परत के लिए जिम्मेदार है।

ebtables ईथरनेट ब्रिज पर ट्रैफिक को फिल्टर करने के लिए जिम्मेदार होना चाहिए।

तो मुझे iptable के फॉरवर्ड चेन में ACCEPT नियम क्यों जोड़ना है?

जवाबों:


12

क्योंकि br-nf कोड जो linux 2.4 के पैच के रूप में उपलब्ध है और linux 2.6 में उपयोग किया जाता है:

Br-nf कोड bridged IP फ्रेम / पैकेट को iptables चेन से गुजरता है। ईथरनेट लेयर पर इबेटेबल्स फिल्टर करते हैं, जबकि इप्टाबल्स केवल आईपी पैकेट्स को फिल्टर करते हैं।

चूंकि आप जिस ट्रैफ़िक पर काम कर रहे हैं, वह आईपी है, फिर iptablesभी ब्रिड -एनएफ को ब्रिजेट पैकेट से गुजरने के कारण नियम लागू होते हैं iptables

यह इंटरैक्शन के बारे में पढ़ने के लिए एक महान संसाधन है और यह एक br-nf कोड की कार्यक्षमता का विवरण देता है , जिसमें सभी या कुछ कार्यात्मकताओं को निष्क्रिय करना है (यानी पुल ट्रैफिक को iptables तक नहीं)।


मेरे द्वारा किए जाने के बाद भी कार्यक्षमता 4.4.0-22-जेनेरिक (ubuntu 16.04) पर काम नहीं कर रही है echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables। कोई विचार?
आरि स्कालियोरक

अपने आप को उत्तर देना: # लोड br_netfilter modprobe br_netfilter # जोड़ने के लिए श्रृंखला नियम जोड़ने के लिए सभी ipv4 पैकेट को आगे बढ़ाने के लिए ebtables -t broute-BRO BROINGING -p ipp4 -i br0 -j DROP
Arie Skliarouk

11

आप इस व्यवहार को निष्क्रिय कर सकते हैं (टाइपिंग के द्वारा iptables को संभाल कर रखने की अनुमति दें):

echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables

( http://ebtables.sourceforge.net/documentation/bridge-nf.html देखें )


3
इसके अलावा, / proc / sys / net / पुल / पुल-एनएफ-कॉल- ip6tables
एमवी।

1

यदि आपको अपने सिस्टम पर पुल के साथ iptables का उपयोग करने की आवश्यकता नहीं है, तो आप निम्नलिखित में से किसी एक का उपयोग करके इसे स्थायी रूप से अक्षम कर सकते हैं:

  1. एक iptables नियम जोड़ना:

iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

  1. या संपादन /etc/sysctl.conf:

net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0


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