virbr # และ vnet # แตกต่างกันอย่างไร?


12

ฉันกำลังใช้งาน KVM บน RHEL6 และฉันได้สร้างเครื่องเสมือนหลายเครื่องในนั้น การออกifconfigคำสั่งไปยังบรรทัดคำสั่งระบบโฮสต์แสดงรายการของ virbr0, virbr1 ... และ vnet0, vnet2 ... พวกเขาเป็นที่อยู่ IP ของระบบปฏิบัติการ guest หรือไม่ virbr # และ vnet # แตกต่างกันอย่างไร?

คำตอบ:


22

นั่นคืออินเตอร์เฟสเครือข่ายไม่ใช่ที่อยู่ IP อินเทอร์เฟซเครือข่ายสามารถมีแพ็คเก็ตจากโพรโทคอลใด ๆ ที่แลกเปลี่ยนกับพวกเขารวมถึง IPv4 หรือ IPv6 ซึ่งในกรณีนี้พวกเขาสามารถได้รับที่อยู่ IP อย่างน้อยหนึ่งรายการ

virbrเป็นสะพานเชื่อมต่อ พวกเขาเป็นเสมือนที่ไม่มีการ์ดเชื่อมต่อเครือข่ายเชื่อมโยงกับพวกเขา บทบาทของพวกเขาคือทำหน้าที่เหมือนสะพานจริงหรือสวิตช์นั่นคือสวิตช์แพ็คเก็ต (ที่เลเยอร์ 2) ระหว่างส่วนต่อประสาน (จริงหรืออื่น ๆ ) ที่แนบมากับมันเหมือนสวิตช์อีเธอร์เน็ตจริง

คุณสามารถกำหนดที่อยู่ IP ให้กับอุปกรณ์นั้นซึ่งโดยทั่วไปจะให้ที่อยู่ IP ของโฮสต์บนซับเน็ตนั้นที่บริดจ์เชื่อมต่อ จากนั้นจะใช้ที่อยู่ MAC ของหนึ่งในอินเตอร์เฟสที่เชื่อมต่อกับบริดจ์

ความจริงที่ว่าชื่อของพวกเขาเริ่มต้นด้วยvirไม่ได้ทำให้พวกเขาแตกต่างจากอินเตอร์เฟซบริดจ์อื่น ๆ มันเป็นเพียงสิ่งที่ถูกสร้างขึ้นโดยlibvirtสงวนพื้นที่ชื่อสำหรับbridgeอินเทอร์เฟซ

vnetอินเตอร์เฟสเป็นอินเตอร์เฟสเสมือนชนิดอื่นที่เรียกว่าtapอินเตอร์เฟส พวกเขาจะแนบไปกับกระบวนการ (ในกรณีนี้กระบวนการทำงานในqemu-kvmโปรแกรมจำลอง) สิ่งที่กระบวนการเขียนไปยังอินเทอร์เฟซนั้นจะปรากฏขึ้นเช่นที่ได้รับบนอินเทอร์เฟซนั้นโดยโฮสต์และสิ่งที่โฮสต์ส่งบนอินเทอร์เฟซนั้นพร้อมใช้งานสำหรับการอ่านโดยกระบวนการนั้น qemuโดยทั่วไปจะใช้สำหรับอินเตอร์เฟสเครือข่ายเสมือนจริงในเกสต์

โดยทั่วไปvnetจะเพิ่ม a อินเตอร์เฟสบริดจ์ซึ่งหมายถึงการเสียบ VM เข้ากับสวิตช์


ขอบคุณมากสำหรับคำตอบ! แต่ถ้าvirbrเป็นบริดจ์ส่วนต่อประสานและในฐานะบริดจ์เป็นอุปกรณ์เลเยอร์สองสิ่งที่มันจำเป็นต้องมีที่อยู่ IP สำหรับ (มีที่อยู่ IP ต่อไปนี้ทุกอินเตอร์เฟส virbr #)?
xczzhh

ฉันได้อัพเดตคำตอบแล้ว แนวคิดคือให้ที่อยู่ IP แก่โฮสต์บนเครือข่ายนั้น
Stéphane Chazelas

ขอบคุณอีกครั้งสำหรับคำตอบ ฉันรู้ว่าระบบปฏิบัติการ guest ที่ต่างกันสองระบบที่สร้างโดย KVM สามารถใช้งานร่วมกันvirbrได้ แต่ถ้าฉันมีระบบปฏิบัติการ guest ที่สามซึ่งเชื่อมต่อกับที่แตกต่างกันvirbrและระบบทั้งสองนี้virbrอยู่ในเครือข่าย IP ที่แตกต่างกันฉันควรทำอย่างไร สามารถสื่อสารกันได้ไหม?
xczzhh

เช่นเดียวกับที่คุณทำกับสวิตช์จริง เครื่องบางเครื่องโดยทั่วไปจะเป็นโฮสต์เนื่องจากมีที่อยู่ IP ในทั้งสองเครือข่ายจะกำหนดเส้นทางระหว่างเครือข่ายทั้งสอง อาจทำตามค่าเริ่มต้น แต่คุณอาจต้องเปลี่ยนการกำหนดค่าไฟร์วอลล์ในโฮสต์
Stéphane Chazelas

ใช่ฉันได้ลองแล้ว แต่ปัญหาคือว่า OS A สามารถ ping OS B ได้ แต่ OS B ไม่สามารถ ping OS A. คุณรู้หรือไม่ว่าอาจเป็นปัญหา ... ? ขอบคุณอีกครั้ง :)
xczzhh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.