Score:0

การเชื่อมโยงเครือข่ายด้วย libvirt และ KVM พร้อมอินเทอร์เฟซอีเธอร์เน็ตแบบฟิสิคัลที่เชื่อมต่อกับบริดจ์

ธง uy

ฉันทำตามคำแนะนำนี้เพื่อตั้งค่าเครือข่ายระหว่างเครื่องเสมือน วิธีใช้เครือข่ายบริดจ์ด้วย libvirt และ KVM.

เกิดปัญหาสองประการคือ

  1. การตั้งค่าเครือข่ายไม่คงอยู่หลังจากรีบูตระบบ
  2. บนเครื่องแขกเสมือน NIC ตัวที่สองไม่สามารถเชื่อมต่อกับเราเตอร์ได้ ไม่แสดงการเชื่อมต่อเครือข่าย

ฉันสร้างสะพานใหม่บนโฮสต์

ลิงค์ sudo ip เพิ่มสะพานประเภท hostbr0
sudo ip link แสดงประเภทบริดจ์
# 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 สถานะ noqueue qdisc โหมดลง DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / อีเธอร์ 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state โหมดลง DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / อีเธอร์ 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: นักเทียบท่า 0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT กลุ่มเริ่มต้น 
# ลิงค์ / อีเธอร์ 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode กลุ่มเริ่มต้น qlen 1000 เริ่มต้น
# ลิงค์/อีเธอร์ 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff

ฉันมีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซบนโฮสต์ ซึ่งทั้งคู่เชื่อมต่อกับเราเตอร์ด้วยการเข้าถึงอินเทอร์เน็ต

ชื่อ -v
#44~20.04.2-Ubuntu SMP อ. 26 ต.ค. 18:07:44 UTC 2021

ls -l /sys/class/net/ | เกรปพีซีไอ
# enp4s0 -> ../../devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/enp4s0
# enp5s0 -> ../../devices/pci0000:00/0000:00:1c.7/0000:05:00.0/net/enp5s0

เซิร์ฟเวอร์ DHCP บนเราเตอร์ของฉันเชื่อมต่อกับการกำหนดค่าอินเทอร์เน็ต:

กลุ่มที่อยู่ IP: 192.168.0.1--192.168.0.254

เกตเวย์เริ่มต้น: 192.168.0.1

โฮสต์ enp4s0: 192.168.0.11

hostbr0 enp5s0: 192.168.0.10

ฉันแนบ enp5s0 อุปกรณ์ทางกายภาพไปที่สะพาน:

ลิงค์ sudo ip ตั้งค่า enp5s0 ขึ้น
sudo ip link ตั้งค่า enp5s0 master hostbr0
ที่อยู่ IP sudo เพิ่ม dev hostbr0 192.168.2.2/24
ip addr แสดง hostbr0
#10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop สถานะลง #group เริ่มต้น qlen 1000
# ลิงค์/อีเธอร์ 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# inet 192.168.2.2/24 ขอบเขต global hostbr0
# valid_lft ตลอดไป reserved_lft ตลอดไป

เพื่อให้การกำหนดค่ายังคงอยู่ฉันได้แก้ไข /etc/network/interfaces. อย่างที่คุณเห็น ฉันมีอินเทอร์เฟซที่กำหนดค่าไว้หลายอินเทอร์เฟซและเพิ่มอินเทอร์เฟซใหม่แล้ว enp5s0

# /etc/network/interfaces
อัตโนมัติ
iface lo inet ย้อนกลับ

การทำแผนที่ hotplug
        สคริปต์ grep
        แผนที่ eth1

iface eth1 inet dhcp

อัตโนมัติ eth0
iface eth0 inet คงที่
    ที่อยู่ 10.152.187.1
    เน็ตมาสก์ 255.255.255.0

อัตโนมัติ wlan0
  iface wlan0 inet แบบคงที่
    ที่อยู่ 192.168.1.1
    เน็ตมาสก์ 255.255.255.0
    ขึ้น /sbin/iwconfig โหมด wlan0 TTTTTT && /sbin/iwconfig wlan0 enc
จำกัด && /sbin/iwconfig คีย์ wlan0 [Y] XXXXXXXXX && /sbin/iwconfig
wlan0 essid SSSSSSSS

อัตโนมัติ eth1


# ระบุว่าส่วนต่อประสานทางกายภาพที่ควรเชื่อมต่อกับบริดจ์
# ควรกำหนดค่าด้วยตนเอง เพื่อหลีกเลี่ยงความขัดแย้งกับ NetworkManager
คู่มือการใช้งาน iface enp5s0 inet
# การตั้งค่าบริดจ์ hostbr0
auto hostbr0
iface hostbr0 inet แบบคงที่
    bridge_ports enp5s0
        ที่อยู่ 192.168.2.11
        ออกอากาศ 192.168.2.255
        เน็ตมาสก์ 255.255.255.0
        เกตเวย์ 192.168.0.11

ขอแนะนำให้ปิดการใช้งาน netfilter:

sudo nano /etc/sysctl.d/99-netfilter-bridge.conf
# net.bridge.bridge-nf-call-ip6tables = 0
# net.bridge.bridge-nf-call-iptables = 0
# net.bridge.bridge-nf-call-arptables = 0

# โหลดการตั้งค่าที่เขียนในไฟล์
sudo modprobe br_netfilter

# เพื่อโหลดโมดูลโดยอัตโนมัติเมื่อบูต
sudo nano /etc/modules-load.d/br_netfilter.conf
#br_netfilter

# โหลดการตั้งค่าใน 99-netfilter-bridge.conf
sudo sysctl -p /etc/sysctl.d/99-netfilter-bridge.conf

กว่าที่ฉันสร้างเครือข่ายเสมือนใหม่ใน libvirt

# สร้างเครือข่ายเสมือนใหม่
sudo nano /tmp/host-bridged-network.xml
# <เครือข่าย>
# <ชื่อ>เครือข่ายโฮสต์บริดจ์</name>
# <โหมดไปข้างหน้า = "สะพาน" />
# <ชื่อสะพาน = "hostbr0" />
# </เครือข่าย>

sudo virsh net-define /tmp/host-bridged-network.xml
sudo virsh net-start โฮสต์บริดจ์เครือข่าย
sudo virsh net-autostart โฮสต์บริดจ์เครือข่าย
sudo virsh รายการสุทธิ
# ชื่อสถานะ Autostart ถาวร
# --------------------------------------------- --------
# ใช้งานเริ่มต้น ใช่ ใช่
# เครือข่ายโฮสต์บริดจ์ที่ใช้งานอยู่ ใช่ ใช่

virsh net-แก้ไขค่าเริ่มต้น
# <เครือข่าย>
# <ชื่อ>ค่าเริ่มต้น</ชื่อ>
# <uuid>96dc6685-2006-4d88-9239-20f0b263f14b</uuid>
# <โหมดส่งต่อ='แนท'/>
# <ชื่อบริดจ์='virbr0' stp='on' หน่วงเวลา='0'/>
# <ที่อยู่ mac='52:54:00:8a:2e:73'/>
# <ที่อยู่ ip='192.168.122.1' netmask='255.255.255.0'>
# <dhcp>
# <ช่วง start='192.168.122.2' end='192.168.122.254'/>
# </dhcp>
# </ip>
# </เครือข่าย>

virsh net-แก้ไขโฮสต์บริดจ์เครือข่าย
# <เครือข่าย>
# <ชื่อ>เครือข่ายโฮสต์บริดจ์</name>
# <uuid>762ec061-5a3d-417e-81ae-e06a920e0b13</uuid>
# <โหมดไปข้างหน้า='บริดจ์'/>
# <ชื่อบริดจ์='hostbr0'/>
# </เครือข่าย>

ข้อมูลบางอย่างเกี่ยวกับการกำหนดค่าขั้นสุดท้ายของโฮสต์ของฉัน:

#บนโฮสต์
เส้นทางไอพี
# ค่าเริ่มต้นผ่าน 192.168.0.1 dev enp4s0 proto dhcp metric 100 
# 10.139.212.0/24 dev mpqemubr0 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.139.212.1 ลิงก์ดาวน์ 
# 169.254.0.0/16 dev virbr0 ขอบเขตลิงก์เมตริก 1,000 ลิงก์ดาวน์ 
# 172.17.0.0/16 dev docker0 proto kernel scope ลิงก์ src 172.17.0.1 ลิงก์ดาวน์ 
# 192.168.0.0/24 dev enp4s0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.0.11 เมตริก 100 
# 192.168.122.0/24 dev virbr0 ขอบเขตเคอร์เนลโปรโต ลิงก์ src 192.168.122.1 ลิงก์ดาวน์ 

ลิงค์ไอพี
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / วนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel สถานะ UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / อีเธอร์ 50:3e:aa:0c:97:02 brd ff:ff:ff:ff:ff:ff
# 3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master hostbr0 สถานะ UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1,000
# ลิงค์/อีเธอร์ 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 สถานะ noqueue qdisc โหมดลง DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / อีเธอร์ 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 สถานะลง โหมด DEFAULT กลุ่มเริ่มต้น qlen 1,000
# ลิงค์ / อีเธอร์ 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state โหมดลง DEFAULT กลุ่มเริ่มต้น qlen 1000
# ลิงค์ / อีเธอร์ 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: นักเทียบท่า 0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT กลุ่มเริ่มต้น 
# ลิงค์ / อีเธอร์ 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode กลุ่มเริ่มต้น qlen 1000 เริ่มต้น
# ลิงค์/อีเธอร์ 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff

กว่าที่ฉันเพิ่มอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซในเครื่องเสมือนแขกอูบุนตู 20.04: ค่าเริ่มต้น และ โฮสต์บริดจ์เครือข่าย. แขกเริ่มทำงานตามปกติ ฉันเห็นสภาพแวดล้อมเครือข่ายในตัวจัดการไฟล์ Nemo (โหนดแขกเท่านั้น) อินเทอร์เฟซ enp5s0 ไม่สามารถเชื่อมต่อได้ Ubuntu พยายามสร้างการเชื่อมต่อ แต่มักล้มเหลว ข้อความระบบ: "การเปิดใช้งานการเชื่อมต่อเครือข่ายล้มเหลว" สำหรับ enp5s0 อินเตอร์เฟซ. ค่าเริ่มต้น libvirt เครือข่ายแสดงเป็น enp9s0 และทำงานได้อย่างถูกต้อง

บนโฮสต์อินเทอร์เฟซนี้แสดงเป็น ไม่มีการจัดการ.

คำถามของฉันคือ:

ฉันควรกำหนดช่วงที่อยู่ใดให้กับเครือข่ายเสมือน

เดอะ hostbr0 ไม่ถูกสร้างขึ้นหลังจากรีบูตระบบ ดังนั้นจึงมีปัญหาในการกำหนดค่าหรือไม่

ฉันมีเซิร์ฟเวอร์ DHCP ที่เริ่มต้นบนโฮสต์ด้วย มันไม่ได้ใช้งานอยู่ในขณะนี้ อาจจะดีกว่าที่จะลบมัน?

ฉันควรเพิ่มทั้งสองเครือข่ายในเครื่องเกสต์หรือไม่: ค่าเริ่มต้น, โฮสต์บริดจ์เครือข่าย หรือเท่านั้น โฮสต์บริดจ์เครือข่าย?

ต้องเสียบอินเทอร์เฟซเครือข่ายทางกายภาพแบบบริดจ์เข้ากับเราเตอร์หรือไม่ หรือทำหน้าที่ทั้งหมดบนโฮสต์และ NIC ตัวที่สองให้บริการอินเทอร์เน็ตผ่านเครือข่าย NAT?

โปรดแนะนำการปรับปรุงการกำหนดที่อยู่ ฉันสงสัยว่ามีบางอย่างผิดปกติในการกำหนดค่าของฉัน

Doug Smythies avatar
gn flag
Ubuntu รุ่นใดเป็นคอมพิวเตอร์โฮสต์ของคุณ ฉันถามเพราะคุณยังคงใช้ `/etc/network/interfaces` การสร้างเครือข่ายเสมือนนั้นไม่สมเหตุสมผลสำหรับฉัน เพียงแค่ใส่ทุกอย่างบน LAN ของคุณผ่านโฮสต์บริดจ์
Alexander avatar
uy flag
Ubuntu ของฉันมีเวอร์ชันต่อไปนี้ 44~20.04.2-Ubuntu SMP อ. 26 ต.ค. 18:07:44 UTC 2021
Doug Smythies avatar
gn flag
ฉันหมายถึงเวอร์ชัน distro ของ Ubuntu เช่น `lsb_release -a`อย่างไรก็ตาม หากเป็น 20.04.3 ฉันไม่เข้าใจว่าทำไมคุณถึงใช้ไฟล์ `/etc/network/interfaces` เนื่องจากไม่ได้ใช้อีกต่อไป
Alexander avatar
uy flag
ไม่มีโมดูล LSB, รหัสผู้จัดจำหน่าย: Ubuntu, คำอธิบาย: Ubuntu, 20.04.3 LTS, รุ่น: 20.04, ชื่อรหัส: focal ฉันใช้มันเพื่อทำให้บริดจ์คงอยู่ระหว่างการรีบูตตามคำแนะนำที่กล่าวถึง จะสร้างโฮสต์บริดจ์ตาม NIC จริงได้อย่างไร
Doug Smythies avatar
gn flag
[สิ่งนี้](https://netplan.io/examples/#configuring-network-bridges) ช่วยอะไรไหม ฉันสามารถพยายามเขียนคำตอบได้ แต่ไม่ใช่ตอนนี้ การอ้างอิงของคุณมีข้อผิดพลาดในความคิดของฉัน
Doug Smythies avatar
gn flag
[ที่นี่](https://ubuntuforums.org/showthread.php?t=2461631&p=14036896#post14036896)คือวิธีที่ฉันทำบนเซิร์ฟเวอร์ Ubuntu 20.04.3 ของฉัน
Alexander avatar
uy flag
ฉันจัดการเพื่อตั้งค่าบริดจ์อย่างง่ายโดยดูที่การอ้างอิงของคุณ เมื่อฉันทำการกำหนดค่าทั้งหมดแล้ว ฉันจะวางไว้ที่นี่เป็นคำตอบสำหรับคำตอบของฉันเอง (เร็วๆ นี้)
Score:0
ธง uy

นี่คือการกำหนดค่าขั้นสุดท้ายของฉัน ฉันตั้งค่าเซิร์ฟเวอร์ DHCP บนเราเตอร์ซึ่งกำหนดที่อยู่ IP ให้กับเครื่องเสมือนทั้งหมดรวมถึงโฮสต์ด้วย การแบ่งปัน Samba ทำงานได้ดีกับการกำหนดค่านี้

ฉันต้องการตั้งค่าที่อยู่ IP ถาวรให้กับโฮสต์และเครื่องเสมือนผ่านเซิร์ฟเวอร์ DHCP บนเราเตอร์ซึ่งเชื่อมต่อกับอินเทอร์เน็ต

  # /etc/netplan/01-network-manager-all.yaml
  เครือข่าย:
      รุ่น: 2
      เรนเดอร์: เครือข่าย
      อีเธอร์เน็ต:
          eth0:
            จับคู่:
              macaddress: mac1
            ชื่อชุด: tplink-usb3.0
            dhcp4: จริง
            dhcp6: เท็จ
            ตัวเลือก: จริง
            หน่วย: 1500
            เนมเซิร์ฟเวอร์:
              ที่อยู่: [8.8.8.8]
          eth โฮสต์:
            จับคู่:
              macaddress: mac2
            dhcp4: เท็จ
            dhcp6: เท็จ
      สะพาน:
          br0:
            อินเทอร์เฟซ: [eth-host]
            ที่อยู่: [192.168.0.9/24]
            เกตเวย์ 4: 192.168.0.1
            หน่วย: 1500
            เนมเซิร์ฟเวอร์:
              ที่อยู่: [8.8.8.8]
            พารามิเตอร์:
              ขั้นตอน: จริง
              ไปข้างหน้าล่าช้า: 4
            dhcp4: จริง
            dhcp6: เท็จ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา