ฉันได้กำหนดค่าบริดจ์และอินเทอร์เฟซการแตะบน 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:
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
https://forums.freebsd.org/threads/ubuntu-budgie-emulated-with-bhyve-doesnt-connect-to-internet- Because-the-error-network-unreachable-n-2.81340/#post-524303
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 : เนื่องจากฉันไม่ใช่ผู้ดูแลระบบที่แท้จริง แต่ฉันทำมันเป็นงานอดิเรก อย่าให้คำแนะนำทั่วไปเพราะฉันอาจจะไม่เข้าใจว่าต้องทำอย่างไรหากคุณต้องการเป็นคนใจดี ให้พยายามละเอียดถี่ถ้วนและแม่นยำ คุณจะช่วยฉันได้มากในการทำความเข้าใจวิธีแก้ปัญหา ขอบใจ.