Score:0

โฮสต์ไม่สามารถเข้าถึงอินเทอร์เน็ตได้เมื่อ VM กำลังทำงาน

ธง eg

ฉันจะตั้งค่าเครือข่ายเพื่อให้ทั้งโฮสต์และ VM สามารถเชื่อมต่ออินเทอร์เน็ตได้อย่างไร

ฉันได้ตั้งค่าเซิร์ฟเวอร์เพื่อโฮสต์เครื่องเสมือนหลายเครื่องโดยใช้ KVM มีวัตถุประสงค์เพื่อให้บริการห้องสมุดหนังสือสำหรับคนตาบอดที่ดาวน์โหลดได้ (รายละเอียดเพิ่มเติมด้านล่าง)

สถานะปัจจุบันเป็นผลมาจากการพยายามทำตามบทช่วยสอนเกี่ยวกับระบบเครือข่ายสำหรับเครื่องเสมือน เป้าหมายคือการเข้าถึงอินเทอร์เน็ตจากทั้งโฮสต์และ VM

ทั้งโฮสต์และแขกใช้งาน Debian 10 การ์ดเครือข่ายได้รับการกำหนดค่าเป็นบริดจ์เครือข่าย br0 พร้อมที่อยู่แบบคงที่ ('ส่วนต่อประสาน' ดูด้านล่าง)

ในปัจจุบัน VM เริ่มทำงานด้วยตนเองโดยใช้ virsh เมื่อไม่มี VM ทำงานอยู่ โฮสต์จะมีการเข้าถึงอินเทอร์เน็ต (เช่น ping debian.org, รับการอัปเดต, wget ...)

เมื่อ VM เริ่มทำงาน VM จะมีการเข้าถึงอินเทอร์เน็ตโดยใช้ br0 VM แต่ละเครื่องมีที่อยู่คงที่ จากนั้นโฮสต์จะสูญเสียการเข้าถึงอินเทอร์เน็ต สามารถ Ping กับเครื่องอื่นๆ ในเครือข่ายท้องถิ่นได้เช่นเดียวกับเราเตอร์ แต่ไม่เกินนั้น (ไม่ว่าจะ Ping ชื่อโดเมนหรือที่อยู่ IP)

ทั้งโฮสต์และ VM สามารถเข้าถึงได้โดยใช้ ssh จากเครื่องอื่น

เมื่อตั้งค่า VM ให้เริ่มทำงานอัตโนมัติแล้ว จะไม่สามารถอัปเดตได้อีกต่อไปโดยไม่ปิดเครื่อง VM ด้วยตนเอง อีกทั้งโฮสต์ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์เวลา นอกจากนี้ ip ยังแสดงแพ็คเกจที่ลดลง

ทั้งหมดนี้น่าจะเป็นผลมาจากความเข้าใจอย่างจำกัดของฉันเกี่ยวกับเครือข่ายและบริดจ์โดยเฉพาะ ฉันขอบคุณมากสำหรับความช่วยเหลือใด ๆ !

นี่คือข้อมูลเพิ่มเติม

วัตถุประสงค์
VM หนึ่งเครื่องควรจะให้บริการผู้ใช้จากภายนอกเครือข่ายท้องถิ่น โดยใช้เว็บเซิร์ฟเวอร์ NginX จัดการการดาวน์โหลดหนังสือที่ผู้ใช้เช็คเอาท์ซึ่งจัดเก็บไว้ในไดรฟ์ในเครื่อง

VM ตัวที่สองมีเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL ซึ่งสามารถเข้าถึงได้จากเวิร์กสเตชันในเครื่องเท่านั้น ซึ่งผู้ใช้ห้องสมุดและเงินยืมจะได้รับการจัดการ

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

พีซี
เมนบอร์ด: MSI MPG B550 GAMING PLUS
ซีพียู: AMD Ryzen 7 3700X
RAM: ชุด Corsair DIMM 32 GB DDR4-3200
HD: Samsung 980 PRO 1 TB, SSD
กราฟิกการ์ด: MSI GeForce GT 710 1GD3H LP

ระบบปฏิบัติการ
ชื่อ -r

4.19.0-17-amd64

lsb_release -a

ไม่มีโมดูล LSB
ID ผู้จัดจำหน่าย: Debian
คำอธิบาย: Debian GNU/Linux 10 (บัสเตอร์)
ปล่อย: 10
สมญานาม: บัสเตอร์

เครือข่าย
เซิร์ฟเวอร์อยู่ที่โฮมออฟฟิศของฉันซึ่งเชื่อมต่อกับเราเตอร์ AVM Fritz!Box 7490 จนกว่าจะย้ายไปที่ไลบรารี

ls /sys/คลาส/net/

br0 enp42s0 โล

แมว /etc/network/interfaces

# ไฟล์นี้อธิบายอินเทอร์เฟซเครือข่ายที่มีอยู่ในระบบของคุณ
#และวิธีเปิดใช้งาน สำหรับข้อมูลเพิ่มเติม โปรดดูอินเทอร์เฟซ(5)

ที่มา /etc/network/interfaces.d/*

# อินเทอร์เฟซเครือข่ายย้อนกลับ
อัตโนมัติ
iface lo inet ย้อนกลับ

# อินเทอร์เฟซเครือข่ายหลัก
คู่มือการใช้งาน iface enp42s0 inet

# การตั้งค่าสะพาน br0
อัตโนมัติ br0
iface br0 inet แบบคงที่
   bridge_ports enp42s0
      ที่อยู่ 192.168.10.50
      เครือข่าย 192.168.10.0
      ออกอากาศ 192.168.10.255
      เน็ตมาสก์ 255.255.255.0
      เกตเวย์ 192.168.10.1
      DNS-เนมเซิร์ฟเวอร์ 94.247.43.254 194.36.144.87 192.168.10.1
      ปิด bridge_stp
      บริดจ์_fd 0
      bridge_maxwait 0

(VM มีที่อยู่ 192.168.10.51, 192.168.10.52)

ip -s ลิงก์แสดง dev br0

3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 สถานะ qdisc noqueue UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ 2c:f0:5d:e4:36:d5 brd ff:ff:ff:ff:ff:ff
    RX: ข้อผิดพลาดของแพ็กเก็ตไบต์ลดลงเกิน mcast   
    206602 2218 0 1130 0 177     
    TX: ข้อผิดพลาดของแพ็กเก็ต bytes ทำให้ผู้ให้บริการ collsns ลดลง 
    99981 593 0 0 0 0       

แมว /proc/net/dev

  อินเตอร์-| รับ | ส่ง
   ใบหน้า | ไบต์ แพ็กเก็ต ข้อผิดพลาด ปล่อย fifo เฟรม มัลติคาสต์ที่บีบอัด| ไบต์แพ็กเก็ต ข้อผิดพลาดปล่อย fifo colls ผู้ให้บริการที่บีบอัด
    br0: 210026 2268 0 1138 0 0 0 177 103273 615 0 0 0 0 0 0
  vnet0: 1384510 18903 0 0 0 0 0 0 58389276 40523 0 0 0 0 0 0
     เลย: 1840 26 0 0 0 0 0 0 1840 26 0 0 0 0 0 0
enp42s0: 58580534 42260 0 38 0 0 0 289 1467123 19358 0 0 0 0 0 0

เส้นทาง -n

Kernel-IP-รูเทนทาเบล
Ziel Router Genmask ตั้งค่าสถานะการอ้างอิงเมตริกใช้ Iface
0.0.0.0 0.0.0.0 0.0.0.0 ยู 0 0 0 vnet0
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 คุณ 0 0 0 vnet0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br0

ls /sys/คลาส/net/

br0 enp42s0 จริง vnet0
Score:1
ธง cz

สะพานของคุณกำลังทิ้งแพ็กเก็ตที่เข้ามาครึ่งหนึ่ง! น่าทึ่งที่คุณมีการเชื่อมต่อใดๆ

ฉันเห็นเพียงปัญหาเดียวที่ชัดเจนกับการกำหนดค่าของคุณ และน่าเสียดายที่มันเป็นค่าเริ่มต้นของ Debian ที่เลือกมาไม่ดี:

      ปิด bridge_stp

ควรเปิด STP สำหรับบริดจ์เสมือนใดๆ ที่ใช้โดย libvirt หรือสำหรับ VM มันง่ายเกินไปที่จะสร้างลูปไม่ว่าจะโดยบังเอิญหรือโดยตั้งใจ ซึ่งหมายความว่าจะต้องเปิดที่ Fritz!Box ของคุณด้วย แต่น่าจะเปิดอยู่แล้ว เหมือนกันกับสวิตช์ใดก็ตามที่คุณเสียบเข้ากับไลบรารี แต่อีกครั้งน่าจะเปิด STP ไว้แล้ว

StefanF avatar
eg flag
ขอบคุณ! ฉันจะเปลี่ยนให้เร็วที่สุดและรายงานกลับ :-)
StefanF avatar
eg flag
การตั้งค่า bridge_stp บนไม่ได้เปลี่ยนพฤติกรรม ฉันจะพยายามหาก่อนว่าปัญหาเกี่ยวข้องกับเราเตอร์ของฉันหรือไม่ Fritz!Boxes ณ จุดหนึ่งได้ปิด STP ตามค่าเริ่มต้น น่าเสียดายที่ผู้ผลิตได้ปิดการเข้าถึง ssh ในระบบปฏิบัติการ และ GUI ไม่แสดงเท่าที่ฉันเห็น บางทีการสนับสนุนของ AVM สามารถชี้แจงได้ขอขอบคุณอีกครั้งที่สละเวลาและชี้ให้เห็นถึงปัญหานี้!
Score:0
ธง eg
  1. เอส.ที.พี: ผู้ผลิต Fritz!Boxes ยืนยันว่าไม่รองรับ STP

  2. แพ็กเก็ตที่ลดลง: ฉันจะเพิกเฉยต่อสิ่งนั้นในขณะนี้เนื่องจากแล็ปท็อป linux สองเครื่อง (Ubuntu Mate, Lubuntu) แสดงแอป จำนวนแพ็กเก็ตที่ลดลงเท่ากัน ในขณะที่ไม่มีปัญหาการเชื่อมต่อที่ชัดเจน

  3. ขาดการเข้าถึงอินเทอร์เน็ต ของโฮสต์ดูเหมือนจะเกี่ยวข้องกับ connman การตั้งค่าที่อยู่ IP ของ vnets โดย DHCP

คำใบ้แรกคือเมื่อฉันดูผลลัพธ์ของ ping debian.org หลังจาก VM เริ่มทำงานแล้ว:

PING debian.org (130.89.148.77) ข้อมูล 56(84) ไบต์
จาก blibu.local (169.254.210.100) icmp_seq=1 ไม่สามารถเข้าถึงโฮสต์ปลายทางได้

ip a ให้ผลลัพธ์ต่อไปนี้ (ตัดตอนมา)

3:br0: ... inet 192.168.10.50/24
4:vnet0: ... inet 169.254.210.100/16

ดังนั้น ping จึงใช้ vnet0 กับที่อยู่ที่แตกต่างจากพื้นที่ที่อยู่เครือข่ายท้องถิ่น

หลังจากลองหลายวิธี (2nd NIC, macvtap) ด้วยผลลัพธ์เดียวกัน ในที่สุดฉันก็จำได้ว่าต้องเพิ่ม vnets ทั้งหมดไปที่ /etc/connman/main.conf:

NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,ve-,vb-,br,enp42s0,eno1,vnet0,vnet1,vnet2

เห็นได้ชัดว่าการรัน VM แต่ละครั้งจะเพิ่มหนึ่ง vnet

วิธีนี้น่าจะไม่ใช่โซลูชันที่หรูหราหรือมีประสิทธิภาพที่สุด และฉันจะขอบคุณอย่างยิ่งสำหรับความช่วยเหลือในการปรับปรุงการตั้งค่าของฉัน

ถึงกระนั้น ทั้งโฮสต์และ VM ทั้งหมดสามารถเข้าถึงอินเทอร์เน็ตและสามารถรับการอัปเดตซอฟต์แวร์ได้ :-)

โพสต์คำตอบ

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