मैंने br0
दो इंटरफेस के लिए एक पुल "संलग्न" स्थापित किया :
eth0
, मेरा भौतिक इंटरफ़ेस वास्तविक LAN से जुड़ा है,vnet0
, केवीएम वर्चुअल इंटरफ़ेस (विंडोज वीएम से जुड़ा)।
और मैं आगे श्रृंखला में इस एकल फ़ायरवॉल नियम है:
iptables -A FORWARD -j REJECT
अब, केवल पिंग जो काम कर रहा है वह VM से होस्ट तक है।
br0
इंटरफ़ेस मेरी होस्ट मशीन का IP पता का मालिक है। eth0
और vnet0
मेजबान के दृष्टिकोण से, किसी भी आईपी को "खुद" न करें। Windows VM में एक स्थिर IP कॉन्फ़िगरेशन है।
अगर मेरे iptables
नियम को बदलो ACCEPT
(या यहां तक कि अधिक प्रतिबंधक का उपयोग करें iptables -A FORWARD -o br0 -j ACCEPT
), तो सब कुछ ठीक चल रहा है! (यानी मैं VM से किसी भी लैन मशीन को पिंग कर सकता हूं, और दूसरा तरीका भी)।
सभी आईपी फ़ॉरवर्डिंग कर्नेल विकल्प अक्षम हैं (जैसे net.ipv4.ip_forward = 0
)।
तो, नेटफिल्टर फ़ायरवॉल कुछ ऐसा कैसे ब्लॉक कर सकता है जो सक्षम भी नहीं है?
इसके अलावा, वीएम - लैन ट्रैफिक केवल इम्प्लीमेंट eth0
और होना चाहिए vnet0
। फिर भी यह -o br0
"कार्यों" के साथ फॉरवर्ड ट्रैफ़िक की अनुमति देने जैसा लगता है (हालांकि मैंने बहुत सावधानी से जांच नहीं की थी)।
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