ฉันใช้ openvswitch เพื่อมิเรอร์การรับส่งข้อมูลที่เข้ามาหรือออกจากอินเทอร์เฟซ VM การรับส่งข้อมูลถูกมิเรอร์ไปยังพอร์ตเอาต์พุตและสามารถจับแพ็กเก็ตบนพอร์ตเอาต์พุตได้
ใช้คำสั่งต่อไปนี้เพื่อสร้างมิเรอร์
ovs-vsctl เพิ่มพอร์ต br-int vxlan0
-- ตั้งค่าอินเทอร์เฟซ vxlan0 type=vxlan
ตัวเลือก:local_ip= ตัวเลือก:remote_ip=
ตัวเลือก:key=25 ตัวเลือก:dst_port=4789
-- --id=@p รับพอร์ต vxlan0 -- --id=@p1 รับพอร์ต tap2
-- --id=@m สร้างชื่อมิเรอร์=mirr0 select_dst_port=@p1
select_src_port=@p1 output-port=@p -- ตั้งค่ามิเรอร์ br-int ของบริดจ์=@m
การมิเรอร์ทำงานได้ดีจนกว่า VM จะรีบูต แต่เมื่อรีบูท VM การมิเรอร์จะไม่ทำงาน การมิเรอร์จะทำงานเฉพาะเมื่อเพิ่มอินเทอร์เฟซ src ลงในมิเรอร์อีกครั้ง
สาเหตุที่แท้จริงคือ OVS ลบส่วนต่อประสาน src ของมิเรอร์ระหว่างการรีบูตและไม่เพิ่มกลับเข้าไป
sudo ovs-vsctl รายการมิเรอร์ mirr0
select_dst_port : [8d5554bb-e6c0-447c-922c-9fc0227b00b8] select_src_port : [8d5554bb-e6c0-447c-922c-9fc0227b00b8]
หลังจากรีบูต
sudo ovs-vsctl รายการมิเรอร์ mirr0
select_dst_port : [] เลือก_src_port : []
มีวิธีทำให้มิเรอร์ OVS ทำงานต่อเนื่องตลอดการรีบูตหรือไม่
รุ่นอูบุนตู
คำอธิบาย: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic