Iptables - Bridge และ Forward chain


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มีหน้าที่รับผิดชอบเฉพาะเลเยอร์ IP เท่านั้น

ebtables ควรรับผิดชอบการกรองปริมาณข้อมูลบนอีเธอร์เน็ตบริดจ์

เหตุใดฉันจึงต้องเพิ่มกฎ ACCEPT ในเครือข่าย FORWARD ของ iptable

คำตอบ:


12

เนื่องจากรหัส br-nf ที่มีให้เป็นแพตช์ to linux 2.4 และใช้ใน linux 2.6:

รหัส br-nf ทำให้บริดจ์ / แพ็กเก็ต IP ที่เชื่อมต่อผ่านเครือข่าย iptables ตัวกรอง Ebtables บนเลเยอร์ Ethernet ในขณะที่ iptables กรองเฉพาะแพ็กเก็ต IP

เนื่องจากการจราจรที่คุณกำลังทำงานเป็น IP, iptablesกฎยังคงใช้เพราะBR-nfiptablesผ่านแพ็กเก็ตสะพานไป

นี่เป็นแหล่งข้อมูลที่ดีในการอ่านเกี่ยวกับการโต้ตอบและสิ่งนี้มีรายละเอียดเกี่ยวกับการทำงานของรหัสbr-nfรวมถึงวิธีปิดการใช้งานฟังก์ชันทั้งหมดหรือบางส่วน (เช่นไม่ผ่านการรับส่งข้อมูลบริดจ์ไปยัง iptables)


ฟังก์ชั่นนี้ใช้ไม่ได้กับ 4.4.0-22-generic (ubuntu 16.04) แม้ว่าฉันจะทำecho "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptablesไปแล้วก็ตาม ความคิดใด ๆ
Arie Skliarouk

ตอบตัวเอง: # load br_netfilter modprobe br_netfilter # เพิ่มกฎลูกโซ่เพื่อส่งต่อแพ็กเก็ต ipv4 ทั้งหมดไปยัง iptables ebtables ebtables -t broute -A BROUTING -p ipv4 -i br0 -j DROP
Arie Skliarouk


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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.