Saya mengatur jembatan br0
"terpasang" ke dua antarmuka:
eth0
, antarmuka fisik saya terhubung ke LAN nyata,vnet0
, antarmuka virtual KVM (terhubung ke Windows VM).
Dan saya punya aturan firewall tunggal ini di rantai depan:
iptables -A FORWARD -j REJECT
Sekarang, satu-satunya ping yang berfungsi adalah dari VM ke host.
The br0
antarmuka memiliki alamat IP dari mesin host saya. eth0
dan vnet0
tidak "memiliki" IP apa pun, dari sudut pandang tuan rumah. Windows VM memiliki konfigurasi IP statis.
Jika mengubah iptables
aturan saya menjadi ACCEPT
(atau bahkan menggunakan yang lebih ketat iptables -A FORWARD -o br0 -j ACCEPT
), semuanya berfungsi dengan baik! (Yaitu saya bisa melakukan ping mesin LAN dari VM, dan sebaliknya juga).
Semua opsi IP forwarding kernel dinonaktifkan (seperti net.ipv4.ip_forward = 0
).
Jadi, bagaimana firewall netfilter memblokir sesuatu yang bahkan tidak diaktifkan?
Lebih lanjut, lalu lintas VM - LAN seharusnya hanya menyiratkan eth0
dan vnet0
. Namun sepertinya mengizinkan lalu lintas FORWARD dengan -o br0
"bekerja" (saya tidak memeriksa dengan sangat hati-hati).
sysctl -a | grep bridge-nf
net.bridge.bridge-nf-call-arptables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0
Jawaban:
The komentar dari Stéphane Chazelas memberikan petunjuk untuk jawabannya.
Menurut Bridge-nf Pertanyaan yang Sering Diajukan bridge-nf memungkinkan iptables, ip6tables atau arptables untuk melihat traffic yang dijembatani.
Pada kernel versi 2.6.1, ada lima entri sysctl untuk bridge-nf behavioral control:
bridge-nf-call-arptables
- Lewati traffic ARP yang dijembatani ke rantai arptables FORWARD.bridge-nf-call-iptables
- Lewati lalu lintas IPv4 yang dijembatani ke rantai iptables.bridge-nf-call-ip6tables
- Lewati lalu lintas IPv6 yang dijembatani ke rantai IP6tables.bridge-nf-filter-vlan-tagged
- Lewati lalu lintas ARP / IP yang dijembatani vlan ke arptables / iptables.net.bridge.bridge-nf-filter-pppoe-tagged
- lewati lalu lintas IP / IPv6 tagged pppoe yang ditandai ke tabel {ip, ip6}Anda dapat menonaktifkan pemblokiran firewall netfilter dengan:
sumber
br_netfilter
modul. Tidak memiliki modul yang dimuat juga berarti tidak ada/proc/sys/net/bridge/
entri.