Puncte:2

configurația mea de legătură pe freebsd 13 nu este configurată corect, deoarece orice VM bhyve bazată pe Ubuntu 21.04 și Windows 10 nu se poate conecta la internet

drapel it

Am configurat interfața de conectare și atingere pe freebsd 13 pentru că vreau să pornesc și să folosesc o mașină virtuală bhyve bazată pe Ubuntu 21.04 și Windows 10, dar, din păcate, după mai multe citiri și solicitări de ajutor privind:

reddit: https://www.reddit.com/r/Ubuntu/comments/p38ru1/ubuntu_2104_cant_connect_to_internet_when_it_is/

forumurile 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#post-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/#post-517845

askubuntu: 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# comentariu1250440_664466

Nu am reușit să înțeleg de ce Ubuntu și Windows 10 VM nu se pot conecta la internet, în timp ce, dacă folosesc vm-bhyve, configurează rețeaua într-un mod diferit, iar vm-ul se poate conecta la internet. Deoarece nu sunt un programator, nu pot să mă uit în interiorul codului vm-bhyve și nu pot înțelege care este cheia secretă. Mai jos vreau să vă ofer câteva informații utile pentru a înțelege cum am configurat bridge-ul și interfața tap pe FreeBSD și pe Ubuntu.

/etc/resolv.conf

caută homenet.telecomitalia.it
serverul de nume 127.0.0.1
opțiuni edns0

/etc/rc.conf meu este așa:

hostname="marietto"
keymap="it.kbd"
ifconfig_em0="DHCP"
local_unbound_enable="DA"
sshd_enable="DA"
powerd_enable="DA"
ntpdate_enable="DA"
ntpd_enable="DA"
ntpd_sync_on_start="DA"
dumpdev="NU"
dbus_enable="DA"
slim_enable="NU"
libvirt_enable="DA"
linux_enable="DA"
linux_mounts_enable="DA"
gateway_enable="DA"
kld_list="fusefs"
lightdm_enable="NU"
sendmail_enable="NU"
microcode_update_enable="DA"
fsck_y_enable="DA"
tcp_drop_synfin="NU"
telnet_enable="NU"
cupsd_enable="NU"
portmap_enable="NU"
rlogin_enable="NU"
inetd_enable="NU"
webcamd_enable="NU"
samba_enable="NU"
lpd_enable="NU"
winbindd_enable="NU"
nfs_server_enable="NU"
nfs_client_enable="NU"
vm_enable="DA"
vm_dir="/mnt/da1p1/vms/os/"

/boot/loader.conf meu este așa:

vmm_load="DA"
nmdm_load="DA"
if_tap_load="DA"
if_bridge_load="DA"
fusefs_load="DA"
linprocfs_load="DA"
linsysfs_load="DA"
tmpfs_load="DA"
verbose_loading="DA"
vboxdrv_load="DA"
console=vga,com1
boot_multicons="DA"
boot_serial="DA"
console="comconsole,vidconsole"

fișierul meu /etc/sysctl.conf este așa:

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

Am citit aici pentru a obține o orientare despre ce să fac: https://wiki.freebsd.org/bhyve/UEFI, în special in special in aceasta sectiune:

kldload vmm
ifconfig tap0 create up
ifconfig bridge0 create up
ifconfig bridge0 addm em0

Ca o primă încercare, cu sugestiile lui Vasily Postnicov, am încercat să configurez interfețele de rețea ale freebsd și ale linux într-un mod diferit, pentru a putea da conexiunea la internet la ubuntu emulată cu bhyve. Asta am facut:

root@marietto:/home/marietto # ifconfig em0 delete


root@marietto:/home/marietto # dhclient bridge0


DHCPDISCOVER pe bridge0 la 255.255.255.255 portul 67 intervalul 4
DHCPOFFER de la 192.168.1.1
DHCPREQUEST pe bridge0 la 255.255.255.255 portul 67
DHCPACK de la 192.168.1.1
legat la 192.168.1.2 -- reînnoire în 10800 de secunde.


root@marietto:/home/marietto # ifconfig tap0 create up

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

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


em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metrica 0 mtu 1500
options=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
eter e0:d5:5e:e2:1f:22
inet 0.0.0.0 netmask 0xff000000 difuzare 255.255.255.255
media: selecție automată Ethernet (1000baseT <full-duplex>)
stare: activ
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metrica 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
grupuri: uite
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>


bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metrica 0 mtu 1500
eter 58:9c:fc:10:ff:b7
inet 192.168.1.2 netmask 0xffffff00 difuzat 192.168.1.255
id 00:00:00:00:00:00 prioritate 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
ID rădăcină 00:00:00:00:00:00 prioritate 32768 ifcost 0 portul 0
membru: tap0 flags=143<LEARNING, DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 5 prioritate 128 calea cost 2000000
membru: em0 flags=143<LEARNING, DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 prioritate 128 calea cost 2000000
grupe: pod
nd6 options=9<PERFORMNUD,IFDISABLED>


vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metrica 0 mtu 1500
eter b6:74:ff:a8:4d:4e
id 00:00:00:00:00:00 prioritate 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
ID rădăcină 00:00:00:00:00:00 prioritate 32768 ifcost 0 portul 0
grupuri: bridge vm-switch viid-4c918@
nd6 options=9<PERFORMNUD,IFDISABLED>



tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> metrica 0 mtu 1500
options=80000<LINKSTATE>
eter 58:9c:fc:10:ff:8e
grupuri: atingeți
media: autoselectare Ethernet
stare: fără transportator
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Din păcate, de îndată ce vm-ul pornește, interfața em0 de pe freebsd primește din nou vechiul număr IP: 192.168.1.6 și pierd conexiunea la net pe FreeBSD.

Ca o încercare ulterioară, iată ce am făcut: (luați în considerare că încerc să fac o configurație de rețea paralelă pe Freebsd, deoarece vreau să păstrez vm-bhyve instalat. Oricum, am eliminat vm-bhyve de mai multe ori și Am incercat sa configurez reteaua bridge pentru bhyve,dar nici in acest caz nu a mers.Pe scurt,a functionat doar prima data,dar nu am mai reusit sa repet pasii cu succes.Functioneaza doar daca L-am lăsat pe vm-bhyve să configureze rețeaua de la sine.Aceasta este starea inițială a configurației rețelei / pod pe FreeBSD-ul meu cu vm-bhyve instalat, dar fără a porni o mașină virtuală.

marietto@marietto:~ $ ifconfig

em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metrica 0 mtu 1500
opțiuni=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
eter e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 difuzat 192.168.1.255
media: selecție automată Ethernet (1000baseT <full-duplex>)
stare: activ
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metrica 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
grupuri: uite
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metrica 0 mtu 1500
eter 0a:77:93:94:d5:77
id 00:00:00:00:00:00 prioritate 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
ID rădăcină 00:00:00:00:00:00 prioritate 32768 ifcost 0 portul 0
membru: em0 flags=143<LEARNING, DISCOVER,AUTOEDGE,AUTOPTP>
       ifmaxaddr 0 port 1 prioritate 128 calea cost 20000
grupuri: bridge vm-switch viid-4c918@
nd6 options=9<PERFORMNUD,IFDISABLED>

Deoarece am deja o interfață cu punte (vm-public) nu are sens să creez alta (bridge0), așa că pe terminal fac:

root@marietto:/home/marietto # kldload vmm
kldload: nu se poate încărca vmm: modul deja încărcat sau în kernel

root@marietto:/home/marietto # ifconfig tap0 create up

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

deci, așa apare configurația rețelei pe FreeBSD după ce ați configurat-o ca mai sus:

root@marietto:/home/marietto # ifconfig

em0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metrica 0 mtu 1500
options=4810099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
eter e0:d5:5e:e2:1f:22
inet 192.168.1.6 netmask 0xffffff00 difuzat 192.168.1.255
media: autoselectare Ethernet
stare: fără transportator
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metrica 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
grupuri: uite
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

vm-public: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metrica 0 mtu 1500
eter 0a:77:93:94:d5:77
id 00:00:00:00:00:00 prioritate 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
ID rădăcină 00:00:00:00:00:00 prioritate 32768 ifcost 0 portul 0
membru: tap0 flags=143<LEARNING, DISCOVER,AUTOEDGE,AUTOPTP>
       ifmaxaddr 0 port 4 priority 128 path cost 2000000
membru: em0 flags=143<LEARNING, DISCOVER,AUTOEDGE,AUTOPTP>
       ifmaxaddr 0 port 1 prioritate 128 calea cost 20000
grupuri: bridge vm-switch viid-4c918@
nd6 options=9<PERFORMNUD,IFDISABLED>

tap0: flags=8903<UP,BROADCAST,PROMISC,SIMPLEX,MULTICAST> metrica 0 mtu 1500
options=80000<LINKSTATE>
eter 58:9c:fc:10:ff:8e
grupuri: atingeți
media: autoselectare Ethernet
stare: fără transportator
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Apoi, lansez VM bhyve cu aceste comenzi:

bhyve -c 4 -m 8G -w -H \
-s 0,hostbridge \
-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, așteptați \
-s 30,xhci,tabletă \
-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

După cum am spus, Ubuntu VM nu se poate conecta la internet. Mai jos vreau să vă arăt cum am configurat Ubuntu. Pe Ubuntu fișierul meu /etc/resolv.conf este așa:

serverul de nume 127.0.0.53
opțiuni edns0 trust-ad
caută homenet.telecomitalia.it

În plus, am creat un fișier netplan în folderul /etc/netplan, cu acest conținut în interior:

reţea
    versiunea: 2
    redator: NetworkManager
    ethernet:
       enp0s5:
           adrese:
                - 192.168.1.7/24
           gateway4: 192.168.1.1
           servere de nume:
                     căutare: [homenet.telecomitalia.it]
                     adrese: 192.168.1.1

netplan se aplică și iată ce se întâmplă:

interfața de rețea enp0s5 primește numărul IP 192.168.1.7 ping 192.168.1.7 : OK ping 192.168.1.6 (IP FreeBSD) = gazdă destinație inaccesabilă ping 192.168.1.1: gazda destinație inaccesibilă PING google.it (172.217.21.67): gazda inaccesibilă

tcpdump:

ascultare pe enp0s5, link-type EN10MB (Ethernet), dimensiunea capturii 262144 bytes

20:58:04:688913 ARP, cere cine-are 192.168.1.1 spune 192.168.1.7, lungime 28

traseul -n

gateway destinație genmask steaguri metric ref folosește 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

lista de rute ip

implicit prin 192.168.1.1 dev enp0s5 proto metric static 100
169.254.0.0/16 dev enp0s5 scope link metric 100
192.168.1.0/24 dev enp0s5 proto kernel scope link src 192.168.1.7 metric 100

ping google.it = eroare temporară în rezoluția numelui

firewall pe ubuntu = nu este instalat firewall pe router = jos

în schimb, de la freebsd la ubuntu:

ping 192.168.1.7: gazda este oprită

netstar -r

tabele de rutare

Internet:

gateway-ul de destinație semnalează Netif Expire

modemtim implicit UGS em0
localhost link#2 UH lo0
192.168.1.0/24 link#1 U em0
192.168.1.6 link#1 UHS lo0

Am uitat. Iată ce se întâmplă dacă elimin fișierul netplan conf și las ubuntu să aleagă IP-ul prin DHCP:

/etc/netplan.conf

reţea:
    versiunea: 2
    redator: în rețea
    ethernet:
        enp3s0:
            dhcp4: adevărat

ping PING google.it (172.217.21.67): rețea inaccesabilă. ce altceva ?

PS: Deoarece nu sunt un administrator de sistem adevărat, dar o fac ca un hobby, nu-mi da sugestii generice pentru că probabil nu voi înțelege ce să fac.Dacă vrei să fii o persoană bună, încearcă să fii exhaustiv și precis. Mă vei ajuta foarte mult să înțeleg cum să rezolv problema. Mulțumiri.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.