Tôi đã định cấu hình giao diện cầu nối và nhấn trên freebsd 13 vì tôi muốn khởi động và sử dụng máy ảo bhyve dựa trên Ubuntu 21.04 và Windows 10, nhưng thật không may, sau một số lần đọc và yêu cầu trợ giúp về:
reddit: https://www.reddit.com/r/Ubuntu/comments/p38ru1/ubuntu_2104_cant_connect_to_internet_when_it_is/
các diễn đàn 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#post-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/#post-517845
hỏi Ubuntu: https://askubuntu.com/questions/1357670/ubuntu-21-04-cant-connect-to-internet-when-it-is-emulated-with-bhyve-on-my-free
trao đổi ngăn xếp unix: https://unix.stackexchange.com/questions/664466/ubuntu-21-04-cant-connect-to-internet-when-it-is-emulated-with-bhyve-on-my-free?noredirect=1# bình luận1250440_664466
Tôi không thể hiểu tại sao Ubuntu và Windows 10 VM không thể kết nối với internet, trong khi nếu tôi sử dụng vm-bhyve, nó sẽ định cấu hình mạng theo một số cách khác và vm có thể kết nối với internet. Vì tôi không phải là lập trình viên nên tôi không thể xem bên trong mã vm-bhyve và tôi không thể hiểu khóa bí mật là gì. Dưới đây tôi muốn cung cấp cho bạn một số thông tin hữu ích để hiểu cách tôi đã định cấu hình giao diện cầu nối và nhấn trên FreeBSD và trên Ubuntu.
/etc/resolv.conf
tìm kiếm homenet.telecomitalia.it
máy chủ tên 127.0.0.1
tùy chọn edns0
/etc/rc.conf của tôi là như thế này:
tên máy chủ = "marietto"
keymap="it.kbd"
ifconfig_em0="DHCP"
local_unbound_enable="CÓ"
sshd_enable="CÓ"
powerd_enable="CÓ"
ntpdate_enable="CÓ"
ntpd_enable="CÓ"
ntpd_sync_on_start="CÓ"
dumpdev = "KHÔNG"
dbus_enable="CÓ"
slim_enable="KHÔNG"
libvirt_enable="CÓ"
linux_enable="CÓ"
linux_mounts_enable="CÓ"
gateway_enable="CÓ"
kld_list="fusefs"
lightdm_enable="KHÔNG"
sendmail_enable="KHÔNG"
microcode_update_enable="CÓ"
fsck_y_enable="CÓ"
tcp_drop_synfin="KHÔNG"
telnet_enable="KHÔNG"
cupd_enable="KHÔNG"
portmap_enable="KHÔNG"
rlogin_enable="KHÔNG"
inetd_enable="KHÔNG"
webcamd_enable="KHÔNG"
samba_enable="KHÔNG"
lpd_enable="KHÔNG"
winbindd_enable="KHÔNG"
nfs_server_enable="KHÔNG"
nfs_client_enable="KHÔNG"
vm_enable="CÓ"
vm_dir="/mnt/da1p1/vms/os/"
/boot/loader.conf của tôi là như thế này:
vmm_load="CÓ"
nmdm_load="CÓ"
if_tap_load="CÓ"
if_bridge_load="CÓ"
fusefs_load="CÓ"
linprocfs_load="CÓ"
linsysfs_load="CÓ"
tmpfs_load="CÓ"
verbose_loading="CÓ"
vboxdrv_load="CÓ"
bàn điều khiển=vga,com1
boot_multicons="CÓ"
boot_serial="CÓ"
console="comconsole,vidconsole"
tập tin của tôi /etc/sysctl.conf là như thế này:
net.link.tap.up_on_open=1
net.inet.ip.forwarding=1
Tôi đã đọc ở đây để có một số định hướng về những việc cần làm: https://wiki.freebsd.org/bhyve/UEFI, đặc biệt đặc biệt trong phần này:
kldload vmm
tạo ifconfig tap0
tạo ifconfig bridge0
cầu ifconfig0 addm em0
Trong lần thử đầu tiên, với các đề xuất của Vasily Postnicov, tôi đã cố gắng định cấu hình giao diện mạng của freebsd và của linux theo một cách khác, để có thể cung cấp kết nối internet cho ubuntu được mô phỏng bằng bhyve. Đây là những gì tôi đã làm :
root@marietto:/home/marietto # ifconfig em0 xóa
root@marietto:/home/marietto # dhclient bridge0
DHCPDISCOVER trên bridge0 đến 255.255.255.255 cổng 67 khoảng 4
DHCPOFFER từ 192.168.1.1
DHCPREQUEST trên bridge0 đến 255.255.255.255 cổng 67
DHCPACK từ 192.168.1.1
bị ràng buộc với 192.168.1.2 -- gia hạn sau 10800 giây.
root@marietto:/home/marietto # ifconfig tap0 tạo lên
root@marietto:/home/marietto # ifconfig bridge0 addm tap0
root@marietto:/usr/home/marietto # ifconfig
em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
options=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
ether e0:d5:5e:e2:1f:22
inet 0.0.0.0 netmask 0xff000000 phát sóng 255.255.255.255
phương tiện: Ethernet autoselect (1000baseT <full-duplex>)
Trạng thái: Đang hoạt động
nd6 options=29<PERFORMNUD,IFISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> chỉ số 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 tiền tốlen 128
inet6 fe80::1%lo0 tiền tốlen 64 phạm vi 0x2
inet 127.0.0.1 mặt nạ mạng 0xff000000
nhóm: lo
tùy chọn thứ 6=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
ether 58:9c:fc:10:ff:b7
inet 192.168.1.2 netmask 0xffffff00 phát sóng 192.168.1.255
id 00:00:00:00:00:00 ưu tiên 32768 hellotime 2 fwddelay 15
tối đa 20 holdcnt 6 proto rstp maxaddr 2000 hết thời gian chờ 1200
id gốc 00:00:00:00:00:00 ưu tiên 32768 ifcost 0 cổng 0
thành viên: tap0 flags=143<LEARNING,KHÁM PHÁ,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 cổng 5 ưu tiên 128 đường dẫn có giá 2000000
thành viên: em0 flags=143<LEARNING,KHÁM PHÁ,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 cổng 1 ưu tiên 128 đường dẫn có giá 2000000
nhóm: cây cầu
tùy chọn thứ 6=9<PERFORMNUD,IFISABLED>
vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
ether b6:74:ff:a8:4d:4e
id 00:00:00:00:00:00 ưu tiên 32768 hellotime 2 fwddelay 15
tối đa 20 holdcnt 6 proto rstp maxaddr 2000 hết thời gian chờ 1200
id gốc 00:00:00:00:00:00 ưu tiên 32768 ifcost 0 cổng 0
nhóm: cầu vm-switch viid-4c918@
tùy chọn thứ 6=9<PERFORMNUD,IFISABLED>
tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:ff:8e
nhóm: nhấn
phương tiện: Tự động chọn Ethernet
tình trạng: không có nhà mạng
nd6 options=29<PERFORMNUD,IFISABLED,AUTO_LINKLOCAL>
Thật không may, ngay khi vm khởi động, giao diện em0 trên freebsd lại nhận được số IP cũ: 192.168.1.6 và tôi mất kết nối với mạng trên FreeBSD.
Để thử thêm, đây là những gì tôi đã làm: (hãy cân nhắc rằng tôi đang cố gắng tạo cấu hình mạng song song trên Freebsd, vì tôi muốn tiếp tục cài đặt vm-bhyve. Dù sao, tôi đã xóa vm-bhyve nhiều lần và Tôi đã cố gắng định cấu hình mạng cầu cho bhyve, nhưng ngay cả trong trường hợp này, nó không hoạt động. Nói ngắn gọn, nó chỉ hoạt động ở lần đầu tiên, nhưng tôi không thể lặp lại thành công các bước nữa. Nó chỉ hoạt động nếu Tôi để vm-bhyve tự cấu hình mạng. Đây là trạng thái ban đầu của cấu hình mạng/cầu nối trên FreeBSD của tôi có cài đặt vm-bhyve nhưng không khởi động máy ảo.
marietto@marietto:~ $ ifconfig
em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
ether e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 phát sóng 192.168.1.255
phương tiện: Ethernet autoselect (1000baseT <full-duplex>)
Trạng thái: Đang hoạt động
nd6 options=29<PERFORMNUD,IFISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> chỉ số 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 tiền tốlen 128
inet6 fe80::1%lo0 tiền tốlen 64 phạm vi 0x2
inet 127.0.0.1 mặt nạ mạng 0xff000000
nhóm: lo
tùy chọn thứ 6=21<PERFORMNUD,AUTO_LINKLOCAL>
vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
ether 0a:77:93:94:d5:77
id 00:00:00:00:00:00 ưu tiên 32768 hellotime 2 fwddelay 15
tối đa 20 holdcnt 6 proto rstp maxaddr 2000 hết thời gian chờ 1200
id gốc 00:00:00:00:00:00 ưu tiên 32768 ifcost 0 cổng 0
thành viên: em0 flags=143<LEARNING,KHÁM PHÁ,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 cổng 1 ưu tiên 128 đường dẫn chi phí 20000
nhóm: cầu vm-switch viid-4c918@
tùy chọn thứ 6=9<PERFORMNUD,IFISABLED>
Vì tôi đã có một giao diện cầu nối (vm-public) nên việc tạo một giao diện khác (bridge0) không có ý nghĩa gì, vì vậy trên thiết bị đầu cuối, tôi làm:
root@marietto:/home/marietto # kldload vmm
kldload: không thể tải vmm: mô-đun đã được tải hoặc trong kernel
root@marietto:/home/marietto # ifconfig tap0 tạo lên
root@marietto:/home/marietto # ifconfig vm-public addm tap0
Vì vậy, đây là cách xuất hiện cấu hình mạng trên FreeBSD sau khi đã định cấu hình như trên:
root@marietto:/home/marietto # ifconfig
em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
options=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
ether e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 phát sóng 192.168.1.255
phương tiện: Tự động chọn Ethernet
tình trạng: không có nhà mạng
nd6 options=29<PERFORMNUD,IFISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> chỉ số 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 tiền tốlen 128
inet6 fe80::1%lo0 tiền tốlen 64 phạm vi 0x2
inet 127.0.0.1 mặt nạ mạng 0xff000000
nhóm: lo
tùy chọn thứ 6=21<PERFORMNUD,AUTO_LINKLOCAL>
vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
ether 0a:77:93:94:d5:77
id 00:00:00:00:00:00 ưu tiên 32768 hellotime 2 fwddelay 15
tối đa 20 holdcnt 6 proto rstp maxaddr 2000 hết thời gian chờ 1200
id gốc 00:00:00:00:00:00 ưu tiên 32768 ifcost 0 cổng 0
thành viên: tap0 flags=143<LEARNING,KHÁM PHÁ,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 cổng 4 ưu tiên 128 đường dẫn có giá 2000000
thành viên: em0 flags=143<LEARNING,KHÁM PHÁ,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 cổng 1 ưu tiên 128 đường dẫn chi phí 20000
nhóm: cầu vm-switch viid-4c918@
tùy chọn thứ 6=9<PERFORMNUD,IFISABLED>
tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> chỉ số 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:ff:8e
nhóm: nhấn
phương tiện: Tự động chọn Ethernet
tình trạng: không có nhà mạng
nd6 options=29<PERFORMNUD,IFISABLED,AUTO_LINKLOCAL>
Sau đó, tôi khởi chạy bhyve VM bằng lệnh này:
bhyve -c 4 -m 8G -w -H \
-s 0, máy chủ \
-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,chờ \
-s 30,xhci,máy tính bảng \
-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
Như tôi đã nói Ubuntu VM không thể kết nối với internet. Thay vào đó, dưới đây tôi muốn chỉ cho bạn cách tôi đã cấu hình Ubuntu. Trên Ubuntu, tệp /etc/resolv.conf của tôi giống như thế này:
máy chủ định danh 127.0.0.53
tùy chọn quảng cáo tin cậy edns0
tìm kiếm homenet.telecomitalia.it
Ngoài ra, tôi đã tạo một tệp netplan bên trong thư mục/etc/netplan, với nội dung này bên trong:
mạng
phiên bản: 2
trình kết xuất: Trình quản lý mạng
ethernet:
enp0s5:
địa chỉ:
- 192.168.1.7/24
cổng4: 192.168.1.1
máy chủ tên:
tìm kiếm: [homenet.telecomitalia.it]
địa chỉ: 192.168.1.1
netplan áp dụng và đây là những gì xảy ra:
giao diện mạng enp0s5 lấy số IP 192.168.1.7
ping 192.168.1.7 : OK
ping 192.168.1.6 (IP FreeBSD) = không thể truy cập máy chủ đích
ping 192.168.1.1 : không thể truy cập máy chủ đích
PING google.it (172.217.21.67): không thể truy cập máy chủ
tcpdump:
nghe trên enp0s5, loại liên kết EN10MB (Ethernet), kích thước ghi 262144 byte
20:58:04:688913 ARP, yêu cầu ai có 192.168.1.1 báo cho 192.168.1.7, độ dài 28
tuyến đường -n
cờ genmask cổng đích chỉ số giới thiệu sử dụng 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 U 1000 0 0 enp0s5
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s5
danh sách lộ trình ip
mặc định qua 192.168.1.1 dev enp0s5 số liệu tĩnh proto 100
169.254.0.0/16 dev enp0s5 chỉ số liên kết phạm vi 100
192.168.1.0/24 dev enp0s5 liên kết phạm vi kernel proto src 192.168.1.7 số liệu 100
ping google.it = lỗi tạm thời khi phân giải tên
tường lửa trên ubuntu = chưa được cài đặt
tường lửa trên bộ định tuyến = xuống
thay vào đó, từ freebsd sang ubuntu:
ping 192.168.1.7 : máy chủ ngừng hoạt động
netstar -r
bảng định tuyến
Internet:
cờ cổng đích Netif Expire
modemtim mặc định UGS em0
liên kết localhost#2 UH lo0
liên kết 192.168.1.0/24#1 U em0
192.168.1.6 liên kết#1 UHS lo0
Tôi quên mất. Đây là điều xảy ra nếu tôi xóa tệp conf netplan và tôi để ubuntu chọn IP qua DHCP:
/etc/netplan.conf
mạng:
phiên bản: 2
trình kết xuất: mạng
ethernet:
enp3s0:
dhcp4: đúng
ping PING google.it (172.217.21.67): không thể truy cập mạng. gì nữa?
Tái bút: Vì tôi không phải là quản trị viên hệ thống thực sự, nhưng tôi làm điều đó như một sở thích, đừng đưa ra những gợi ý chung chung vì có thể tôi sẽ không hiểu phải làm gì.Nếu bạn muốn trở thành một người tử tế, hãy cố gắng thấu đáo và chính xác. Bạn sẽ giúp tôi rất nhiều để hiểu làm thế nào để khắc phục vấn đề. cảm ơn.