vm-bhyve网卡设定桥接故障解决@FreeBSD

问题

在使用vm-bhyve虚拟机管理软件的时候,使用vm无法绑定网卡igb0 

vm switch add public igb0

报错:/usr/local/sbin/vm: ERROR: failed to add member igb0 to the virtual switch public

解决

于是准备用原生ifconfig命令来绑定,结果报错:

ifconfig vm-public0 addm igb0 
ifconfig: BRDGADD igb0: Device busy


文心回答:

这个错误通常意味着您试图添加的物理接口 igb0 已经在使用中,或者它已经被绑定到另一个接口或配置中。在 Linux 中,特别是在较新的版本中,网络配置通常使用 ip 命令或 nmcli(NetworkManager 的命令行工具)而不是 ifconfig

不过,如果您仍然需要使用 ifconfig,并且确实需要在桥接接口上添加物理接口,这里有一些步骤可以尝试:

  1. 检查当前配置
    首先,使用 ifconfig 或 ip addr 查看当前的网络接口配置,确保 igb0 没有被其他配置占用。

  2. 停止使用中的服务
    如果 igb0 正在被某个服务(如 DHCP 客户端、网络管理器等)使用,您可能需要停止这些服务,以便能够修改其配置。

  3. 从任何现有桥接中移除
    如果 igb0 已经是一个桥接接口的成员,您需要先将其从桥接中移除。使用类似 ifconfig vm-public0 -delete igb0 的命令(但请注意,这不是标准的 ifconfig 语法,可能需要您使用其他方法来从桥接中移除接口)。

分析问题可能就是因为以前把卡绑在bridge0上了,导致没法再绑到其它比如public或者public0上。现在方向就是删除以前的bridge0桥接,然后把vm的public或者public0桥接过去。

先看看当前网络情况

ifconfig
igb0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=4a520b9<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,HWSTATS,MEXTPG>
	ether 00:e2:69:13:67:f6
	inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255
	inet6 fe80::2e2:69ff:fe13:67f6%igb0 prefixlen 64 scopeid 0x1
	inet6 2409:8a3c:4056:4110:2e2:69ff:fe13:67f6 prefixlen 64 autoconf pltime 172800 vltime 259200
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
	nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=0
	ether 58:9c:fc:10:ff:97
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
	        ifmaxaddr 0 port 4 priority 128 path cost 2000000
	member: igb0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
	        ifmaxaddr 0 port 1 priority 128 path cost 200000
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>
tap0: flags=8902<BROADCAST,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=80000<LINKSTATE>
	ether 58:9c:fc:10:ff:d3
	groups: tap
	media: Ethernet 1000baseT <full-duplex>
	status: no carrier
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vm-public: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=0
	ether 5e:2a:5c:94:4b:8f
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	groups: bridge vm-switch viid-4c918@
	nd6 options=9<PERFORMNUD,IFDISABLED>
vm-public0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=0
	ether ba:69:db:12:1e:48
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	groups: bridge vm-switch viid-f2b58@
	nd6 options=9<PERFORMNUD,IFDISABLED>

使用destroy删除bridge0

ifconfig bridge0 destroy

这时候再用vm来绑定到public桥:

vm switch add public igb0

命令成功了

这时候用vm看一下桥的情况:

vm switch list
NAME     TYPE      IFACE       ADDRESS  PRIVATE  MTU  VLAN  PORTS
public   standard  vm-public   -        no       -    -     igb0
public0  standard  vm-public0  -        no       -    -     -

这时候再启动虚拟机,网络就应该正常了:

vm install -f myguest FreeBSD-14.1-BETA3-amd64-bootonly.iso

注意使用了-f选项,直接进入虚拟机。

附,验证网络安装

启动虚拟机后,可能要等几秒时间 ,就进入了光盘安装界面。顺利的情况下,直接安装,下面的问题都不会碰到。

实际碰到的其它问题

在获取dhcp的时候报错:

DHCP lease acquisition │
                          │ failed.   

不过有时候使能正常获得的。问题解决。

 进入命令行,发现竟然是resolv..conf文件没有配置好,加上

nameserver 114.114.114.114
nameserver 8.8.8.8

结果连网的时候总是报错,后来才明白,是因为FreeBSD14.1RC1发布了,原来用的安装盘是去找beta的,当然找不到了。

切换iso安装盘:

https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RC1-amd64-bootonly.iso

vm iso https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RC1-amd64-bootonly.iso
vm install -f myguest FreeBSD-14.1-RC1-amd64-bootonly.iso

 最终安装成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值