Score:2

การกำหนดค่าการเชื่อมโยงของฉันบน freebsd 13 ไม่ได้รับการกำหนดค่าอย่างถูกต้องเนื่องจาก bhyve VM ใด ๆ ที่ใช้ Ubuntu 21.04 และ Windows 10 ไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้

ธง it

ฉันได้กำหนดค่าบริดจ์และอินเทอร์เฟซการแตะบน freebsd 13 เพราะฉันต้องการบูตและใช้ bhyve VM ตาม Ubuntu 21.04 และ Windows 10 แต่น่าเสียดาย หลังจากอ่านและขอความช่วยเหลือหลายครั้งใน:

เรดดิท: https://www.reddit.com/r/Ubuntu/comments/p38ru1/ubuntu_2104_cant_connect_to_internet_when_it_is/

ฟอรัม freebsd:

  1. https://forums.freebsd.org/threads/how-to-duplicate-the-tap0-interface-in-a-new-tap1-network-interface-that-it-is-not-used.81671/page- 2#โพสต์-527355

  2. https://forums.freebsd.org/threads/ubuntu-budgie-emulated-with-bhyve-doesnt-connect-to-internet- Because-the-error-network-unreachable-n-2.81340/#post-524303

  3. https://forums.freebsd.org/threads/im-tryng-to-emulate-ubuntu-budgie-with-bhyve-but-it-doesnt-connect-to-internet- Because-the-error-network-unreachable 80916/#โพสต์-517845

อัสคูบุนตู : https://askubuntu.com/questions/1357670/ubuntu-21-04-cant-connect-to-internet-when-it-is-emulated-with-bhyve-on-my-free

unix stackexchange : https://unix.stackexchange.com/questions/664466/ubuntu-21-04-cant-connect-to-internet-when-it-is-emulated-with-bhyve-on-my-free?noredirect=1# ความคิดเห็น1250440_664466

ฉันไม่สามารถเข้าใจได้ว่าทำไม Ubuntu และ Windows 10 VM จึงไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้ ในขณะที่ฉันใช้ vm-bhyve มันจะกำหนดค่าเครือข่ายในลักษณะที่แตกต่างออกไป และ vm สามารถเชื่อมต่อกับอินเทอร์เน็ตได้ เนื่องจากฉันไม่ใช่ผู้เขียนโค้ด ฉันจึงไม่สามารถดูภายในโค้ด vm-bhyve ได้ และฉันไม่สามารถเข้าใจได้ว่าคีย์ลับคืออะไร ด้านล่างนี้ฉันต้องการให้ข้อมูลที่เป็นประโยชน์แก่คุณเพื่อทำความเข้าใจว่าฉันได้กำหนดค่าบริดจ์และอินเทอร์เฟซการแตะบน FreeBSD และบน Ubuntu อย่างไร

/etc/resolv.conf

ค้นหา homenet.telecomitalia.it
เนมเซิร์ฟเวอร์ 127.0.0.1
ตัวเลือก edns0

/etc/rc.conf ของฉันเป็นดังนี้:

ชื่อโฮสต์ = "มารีเอตโต"
คีย์แมป = "it.kbd"
ifconfig_em0="DHCP"
local_unbound_enable="ใช่"
sshd_enable="ใช่"
powerd_enable="ใช่"
ntpdate_enable="ใช่"
ntpd_enable="ใช่"
ntpd_sync_on_start="ใช่"
ดัมพ์เดฟ = "ไม่"
dbus_enable="ใช่"
slim_enable="ไม่"
libvirt_enable="ใช่"
linux_enable="ใช่"
linux_mounts_enable="ใช่"
gateway_enable="ใช่"
kld_list="ฟิวส์"
lightdm_enable="ไม่"
sendmail_enable="ไม่"
microcode_update_enable="ใช่"
fsck_y_enable="ใช่"
tcp_drop_synfin="ไม่"
telnet_enable="ไม่"
cupsd_enable="ไม่"
portmap_enable="ไม่"
rlogin_enable="ไม่"
inetd_enable="ไม่"
เว็บแคมd_enable="ไม่"
samba_enable="ไม่"
lpd_enable="ไม่"
winbindd_enable="ไม่"
nfs_server_enable="ไม่"
nfs_client_enable="ไม่"
vm_enable="ใช่"
vm_dir="/mnt/da1p1/vms/os/"

/boot/loader.conf ของฉันเป็นดังนี้:

vmm_load="ใช่"
nmdm_load="ใช่"
if_tap_load="ใช่"
if_bridge_load="ใช่"
fusefs_load="ใช่"
linprocfs_load="ใช่"
linsysfs_load="ใช่"
tmpfs_load="ใช่"
verbose_loading="ใช่"
vboxdrv_load="ใช่"
คอนโซล=vga,com1
boot_multicons="ใช่"
boot_serial="ใช่"
คอนโซล = "comconsole, vidconsole"

ไฟล์ของฉัน /etc/sysctl.conf เป็นดังนี้:

net.link.tap.up_on_open=1
net.inet.ip.forwarding=1

ฉันได้อ่านที่นี่เพื่อรับแนวทางเกี่ยวกับสิ่งที่ต้องทำ : https://wiki.freebsd.org/bhyve/UEFIโดยเฉพาะ โดยเฉพาะในส่วนนี้:

kldload vmm
ifconfig tap0 สร้างขึ้น
ifconfig bridge0 สร้างขึ้น
ifconfig บริดจ์ 0 addm em0

ในความพยายามครั้งแรก ด้วยคำแนะนำของ Vasily Postnicov ฉันพยายามกำหนดค่าอินเทอร์เฟซเครือข่ายของ freebsd และของ linux ในวิธีที่ต่างออกไป เพื่อให้สามารถเชื่อมต่ออินเทอร์เน็ตกับ ubuntu ที่จำลองด้วย bhyve นี่คือสิ่งที่ฉันทำ:

root@marietto:/home/marietto # ifconfig em0 ลบ


root@marietto:/home/marietto # dhclient bridge0


DHCPDISCOVER บนบริดจ์ 0 ถึง 255.255.255.255 พอร์ต 67 ช่วงเวลา 4
DHCPOFFER จาก 192.168.1.1
DHCPREQUEST บนบริดจ์ 0 ถึง 255.255.255.255 พอร์ต 67
DHCPACK จาก 192.168.1.1
ผูกไว้กับ 192.168.1.2 -- ต่ออายุใน 10800 วินาที


root@marietto:/home/marietto # ifconfig tap0 สร้างขึ้น

root@marietto:/home/marietto # ifconfig bridge0 addm tap0

root@marietto:/usr/home/marietto # ifconfig


em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> เมตริก 0 mtu 1500
ตัวเลือก=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
อีเธอร์ e0:d5:5e:e2:1f:22
inet 0.0.0.0 netmask 0xff000000 ออกอากาศ 255.255.255.255
สื่อ: การเลือกอีเธอร์เน็ตอัตโนมัติ (1000baseT <full-duplex>)
สถานะ: ใช้งานอยู่
ตัวเลือก nd6=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> เมตริก 0 mtu 16384
ตัวเลือก=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 คำนำหน้า 128
inet6 fe80::1%lo0 คำนำหน้า 64 scopeid 0x2
inet 127.0.0.1 เน็ตมาสก์ 0xff000000
กลุ่ม: แท้จริง
ตัวเลือก nd6=21<PERFORMNUD,AUTO_LINKLOCAL>


bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> เมตริก 0 mtu 1500
อีเธอร์ 58:9c:fc:10:ff:b7
inet 192.168.1.2 netmask 0xffffff00 ออกอากาศ 192.168.1.255
id 00:00:00:00:00:00 ลำดับความสำคัญ 32768 hellotime 2 fwddelay 15
สูงสุด 20 holdcnt 6 โปรโต rstp maxaddr 2000 หมดเวลา 1200
รหัสรูท 00:00:00:00:00:00 ลำดับความสำคัญ 32768 ifcost 0 พอร์ต 0
สมาชิก: tap0 flags=143<การเรียนรู้,การค้นพบ,ขอบอัตโนมัติ,AUTOPTP>
ifmaxaddr 0 พอร์ต 5 ลำดับความสำคัญ 128 เส้นทาง ราคา 2000000
สมาชิก: em0 flags=143<การเรียนรู้ การค้นพบ ขอบอัตโนมัติ AUTOPTP>
ifmaxaddr 0 พอร์ต 1 ลำดับความสำคัญ 128 เส้นทาง ราคา 2000000
กลุ่ม: สะพาน
ตัวเลือก nd6=9<PERFORMNUD,IFDISABLED>


vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> เมตริก 0 ล้าน 1500
อีเธอร์ b6:74:ff:a8:4d:4e
id 00:00:00:00:00:00 ลำดับความสำคัญ 32768 hellotime 2 fwddelay 15
สูงสุด 20 holdcnt 6 โปรโต rstp maxaddr 2000 หมดเวลา 1200
รหัสรูท 00:00:00:00:00:00 ลำดับความสำคัญ 32768 ifcost 0 พอร์ต 0
กลุ่ม: บริดจ์ vm-switch viid-4c918@
ตัวเลือก nd6=9<PERFORMNUD,IFDISABLED>



tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> เมตริก 0 ล้าน 1500
ตัวเลือก=80000<LINKSTATE>
อีเธอร์ 58:9c:fc:10:ff:8e
กลุ่ม: แตะ
สื่อ: เลือกอัตโนมัติของอีเทอร์เน็ต
สถานะ: ไม่มีผู้ให้บริการ
ตัวเลือก nd6=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

น่าเสียดายที่ทันทีที่บูท vm อินเทอร์เฟซ em0 บน freebsd ได้รับหมายเลข IP เก่าอีกครั้ง: 192.168.1.6 และฉันสูญเสียการเชื่อมต่อกับเน็ตบน FreeBSD

ลองอีกครั้งนี่คือสิ่งที่ฉันทำ: (โปรดจำไว้ว่าฉันกำลังพยายามกำหนดค่าเครือข่ายแบบขนานบน Freebsd เนื่องจากฉันต้องการติดตั้ง vm-bhyve ต่อไป อย่างไรก็ตามฉันได้ลบ vm-bhyve หลายครั้งและ ฉันพยายามกำหนดค่าเครือข่ายบริดจ์สำหรับ bhyve แต่ในกรณีนี้มันไม่ได้ผล กล่าวโดยย่อคือ มันใช้งานได้ในครั้งแรกเท่านั้น แต่ฉันยังไม่สามารถทำซ้ำขั้นตอนได้สำเร็จอีกต่อไป มันทำงานได้ก็ต่อเมื่อ ฉันปล่อยให้ vm-bhyve กำหนดค่าเครือข่ายด้วยตัวเอง นี่คือสถานะเริ่มต้นของการกำหนดค่าเครือข่าย / บริดจ์บน FreeBSD ของฉันโดยติดตั้ง vm-bhyve แต่ไม่ได้เริ่มเครื่องเสมือน

marietto@marietto:~ $ ifconfig

em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> เมตริก 0 mtu 1500
ตัวเลือก=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
อีเธอร์ e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 ออกอากาศ 192.168.1.255
สื่อ: การเลือกอีเธอร์เน็ตอัตโนมัติ (1000baseT <full-duplex>)
สถานะ: ใช้งานอยู่
ตัวเลือก nd6=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> เมตริก 0 mtu 16384
ตัวเลือก=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 คำนำหน้า 128
inet6 fe80::1%lo0 คำนำหน้า 64 scopeid 0x2
inet 127.0.0.1 เน็ตมาสก์ 0xff000000
กลุ่ม: แท้จริง
ตัวเลือก nd6=21<PERFORMNUD,AUTO_LINKLOCAL>

vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> เมตริก 0 ล้าน 1500
อีเธอร์ 0a:77:93:94:d5:77
id 00:00:00:00:00:00 ลำดับความสำคัญ 32768 hellotime 2 fwddelay 15
สูงสุด 20 holdcnt 6 โปรโต rstp maxaddr 2000 หมดเวลา 1200
รหัสรูท 00:00:00:00:00:00 ลำดับความสำคัญ 32768 ifcost 0 พอร์ต 0
สมาชิก: em0 flags=143<การเรียนรู้ การค้นพบ ขอบอัตโนมัติ AUTOPTP>
       ifmaxaddr 0 พอร์ต 1 ลำดับความสำคัญ 128 เส้นทาง ราคา 20,000
กลุ่ม: บริดจ์ vm-switch viid-4c918@
ตัวเลือก nd6=9<PERFORMNUD,IFDISABLED>

เนื่องจากฉันมีอินเทอร์เฟซบริดจ์ (vm-public) อยู่แล้ว จึงไม่สมเหตุสมผลที่จะสร้างอีกอันหนึ่ง (บริดจ์0) ดังนั้นบนเทอร์มินัลฉันจึงทำ:

root@marietto:/home/marietto # kldload vmm
kldload: ไม่สามารถโหลด vmm: โหลดโมดูลแล้วหรือในเคอร์เนล

root@marietto:/home/marietto # ifconfig tap0 สร้างขึ้น

root@marietto:/home/marietto # ifconfig vm-public addm tap0

ดังนั้นนี่คือลักษณะของการกำหนดค่าเครือข่ายบน FreeBSD หลังจากกำหนดค่าตามด้านบน:

root@marietto:/home/marietto # ifconfig

em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> เมตริก 0 mtu 1500
ตัวเลือก=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
อีเธอร์ e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 ออกอากาศ 192.168.1.255
สื่อ: เลือกอัตโนมัติของอีเทอร์เน็ต
สถานะ: ไม่มีผู้ให้บริการ
ตัวเลือก nd6=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> เมตริก 0 mtu 16384
ตัวเลือก=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 คำนำหน้า 128
inet6 fe80::1%lo0 คำนำหน้า 64 scopeid 0x2
inet 127.0.0.1 เน็ตมาสก์ 0xff000000
กลุ่ม: แท้จริง
ตัวเลือก nd6=21<PERFORMNUD,AUTO_LINKLOCAL>

vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> เมตริก 0 ล้าน 1500
อีเธอร์ 0a:77:93:94:d5:77
id 00:00:00:00:00:00 ลำดับความสำคัญ 32768 hellotime 2 fwddelay 15
สูงสุด 20 holdcnt 6 โปรโต rstp maxaddr 2000 หมดเวลา 1200
รหัสรูท 00:00:00:00:00:00 ลำดับความสำคัญ 32768 ifcost 0 พอร์ต 0
สมาชิก: tap0 flags=143<การเรียนรู้,การค้นพบ,ขอบอัตโนมัติ,AUTOPTP>
       ifmaxaddr 0 พอร์ต 4 ลำดับความสำคัญ 128 เส้นทาง ราคา 2000000
สมาชิก: em0 flags=143<การเรียนรู้ การค้นพบ ขอบอัตโนมัติ AUTOPTP>
       ifmaxaddr 0 พอร์ต 1 ลำดับความสำคัญ 128 เส้นทาง ราคา 20,000
กลุ่ม: บริดจ์ vm-switch viid-4c918@
ตัวเลือก nd6=9<PERFORMNUD,IFDISABLED>

tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> เมตริก 0 ล้าน 1500
ตัวเลือก=80000<LINKSTATE>
อีเธอร์ 58:9c:fc:10:ff:8e
กลุ่ม: แตะ
สื่อ: เลือกอัตโนมัติของอีเทอร์เน็ต
สถานะ: ไม่มีผู้ให้บริการ
ตัวเลือก nd6=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

จากนั้นฉันเปิด bhyve VM ด้วยคำสั่งนี้:

ไฮฟ์ -c 4 -m 8G -w -H \
-s 0,โฮสต์บริดจ์ \
-s 4,virtio-blk,/mnt/da1p1/vms/os/ubuntu-budgie-gpu/ubuntu-2104-gpu.img \
-s 5,virtio-net,tap0 \
-s 29,fbuf,tcp=0.0.0.0:5900,w=1440,h=900,รอ \
-s 30,xhci,แท็บเล็ต \
-s 31,lpc -l com1,stdio \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
-s 20,hda,play=/dev/dsp8,rec=/dev/dsp8 \
vm0

อย่างที่ฉันบอกว่า Ubuntu VM ไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้ ด้านล่างฉันต้องการแสดงให้คุณเห็นว่าฉันได้กำหนดค่า Ubuntu อย่างไร บน Ubuntu ไฟล์ /etc/resolv.conf ของฉันเป็นดังนี้:

เนมเซิร์ฟเวอร์ 127.0.0.53
ตัวเลือก edns0 trust-ad
ค้นหา homenet.telecomitalia.it

นอกจากนี้ ฉันได้สร้างไฟล์ netplan ภายในโฟลเดอร์ /etc/netplan โดยมีเนื้อหาอยู่ภายใน:

เครือข่าย
    รุ่น: 2
    เรนเดอร์: NetworkManager
    อีเธอร์เน็ต:
       enp0s5:
           ที่อยู่:
                - 192.168.1.7/24
           เกตเวย์ 4: 192.168.1.1
           เนมเซิร์ฟเวอร์:
                     ค้นหา : [homenet.telecomitalia.it]
                     ที่อยู่: 192.168.1.1

netplan นำไปใช้และนี่คือสิ่งที่เกิดขึ้น:

อินเทอร์เฟซเครือข่าย enp0s5 รับหมายเลข IP 192.168.1.7 ping 192.168.1.7 : ตกลง ping 192.168.1.6 (FreeBSD IP) = ไม่สามารถเข้าถึงโฮสต์ปลายทางได้ ping 192.168.1.1 : ไม่สามารถเข้าถึงโฮสต์ปลายทางได้ PING google.it (172.217.21.67) : ไม่สามารถเข้าถึงโฮสต์ได้

tcpdump :

กำลังฟัง enp0s5, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์

20:58:04:688913 ARP ขอใครมี 192.168.1.1 บอก 192.168.1.7 ยาว 28

เส้นทาง -n

เกตเวย์ปลายทาง genmask แฟล็ก การอ้างอิงเมตริก ใช้ iface

0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp0s5
169.254.0.0 0.0.0.0 255.255.0.0 คุณ 1,000 0 0 enp0s5
192.168.1.0 0.0.0.0 255.255.255.0 คุณ 100 0 0 enp0s5

รายการเส้นทาง ip

ค่าเริ่มต้นผ่าน 192.168.1.1 dev enp0s5 proto static metric 100
169.254.0.0/16 dev enp0s5 เมตริกลิงก์ขอบเขต 100
192.168.1.0/24 dev enp0s5 โปรโตเคอร์เนลขอบเขตลิงก์ src 192.168.1.7 เมตริก 100

ping google.it = ข้อผิดพลาดชั่วคราวในการแก้ไขชื่อ

ไฟร์วอลล์บน Ubuntu = ไม่ได้ติดตั้ง ไฟร์วอลล์บนเราเตอร์ = ล่ม

จาก freebsd เป็น ubuntu แทน :

ping 192.168.1.7 : โฮสต์ไม่ทำงาน

เน็ตสตาร์-ร

ตารางเส้นทาง

อินเทอร์เน็ต:

เกตเวย์ปลายทางตั้งค่าสถานะ Netif Expire

โมเด็มเริ่มต้น Tim UGS em0
ลิงก์ localhost#2 UH lo0
192.168.1.0/24 ลิงก์#1 U em0
192.168.1.6 ลิงค์#1 UHS lo0

ฉันลืม. นี่คือสิ่งที่จะเกิดขึ้นถ้าฉันลบไฟล์ conf ของ netplan และปล่อยให้ ubuntu เลือก IP ผ่าน DHCP :

/etc/netplan.conf

เครือข่าย:
    รุ่น: 2
    เรนเดอร์: เครือข่าย
    อีเธอร์เน็ต:
        enp3s0:
            dhcp4: จริง

ping PING google.it (172.217.21.67) : ไม่สามารถเข้าถึงเครือข่ายได้ อะไรอีก ?

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

โพสต์คำตอบ

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