ฉันได้ตั้งค่าลินุกซ์บริดจ์ (br0) ด้วย netplan ดังต่อไปนี้:
รุ่น: 2
เรนเดอร์: เครือข่าย
อีเธอร์เน็ต:
eno1:
dhcp4: ไม่
dhcp6: ไม่
สะพาน:
ปัญหา:
อินเทอร์เฟซ:
- อีโน 1
Macaddress: ab:cd:ef:01:02:03
ที่อยู่:
- 51.x.y.z/24
เนมเซิร์ฟเวอร์:
ที่อยู่:
- 8.8.8.8
- 1.1.1.1
พารามิเตอร์:
ขั้นตอน: เท็จ
ไปข้างหน้าล่าช้า: 0
dhcp4: ไม่
dhcp6: ไม่
เส้นทาง:
- ถึง: 0.0.0.0/0
ผ่าน: 55.x.y.254
- ถึง: 55.x.y.z/28
ขอบเขต: ลิงค์
ฉันใช้ libvirt virt-install กับอาร์กิวเมนต์เครือข่าย: virt-install ... --network type=bridge,source=br0,model=virtio,filterref=clean-traffic,mac=00:11:22:33:44:55
เครือข่ายทำงานตามที่คาดไว้ แต่สิ่งที่ฉันสังเกตเห็นคือหากฉันมี VM หลายตัว ทราฟฟิกที่ส่งไปยัง VM ที่ปิดอยู่จะถูกส่งไปยัง VM ที่กำลังทำงานอยู่ทั้งหมด สิ่งนี้จะทำให้ข้อมูลการเชื่อมต่อรั่วไหล มีวิธีใดในการกำหนดค่าสะพานไม่ให้ทำเช่นนี้? อาจจะมี ebtables? ฉันสังเกตเห็นว่ากฎ ebtables ต่อไปนี้จะใช้งานได้ แต่ฉันกำลังมองหาบางสิ่งที่กว้างกว่านี้ เนื่องจากฉันไม่ทราบชื่ออินเทอร์เฟซก่อนหน้านี้ (vnet1): ebtables -A FORWARD -p IPv4 --ip-ปลายทาง 55.x.y.z -o ! vnet1 -j ลดลง
การทำตัวกรองไม่ให้ใช้กับ mac จะไม่ทำงานเนื่องจาก IP และ MAC มีไว้สำหรับการปิด vm แต่บริดจ์ยังคงตัดสินใจออกอากาศด้วยเหตุผลบางประการ