最近在用qemu+kvm装freebsd13.0,但是装好后发现无法联网,虚拟机里表现为无法解析网址等路由问题。
virbr0已经开启了,但是虚拟机管理系统的NIC那里一直显示ip地址未知。
```
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:13:a8:3c txqueuelen 1000 (Ethernet)
RX packets 6 bytes 1968 (1.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
bridge name bridge id STP enabled interfaces
virbr0 8000.52540013a83c yes
virbr0
bridge id 8000.52540013a83c
designated root 8000.52540013a83c
root port 0 path cost 0
max age 19.99 bridge max age 19.99
hello time 1.99 bridge hello time 1.99
forward delay 1.99 bridge forward delay 1.99
ageing time 299.99
hello timer 1.30 tcn timer 0.00
topology change timer 0.00 gc timer 184.98
flags
```
这是uml:
```
<interface type="network">
<mac address="52:54:00:89:28:2c"/>
<source network="default"/>
<model type="virtio"/>
<link state="up"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
```
离线
你没开 DHCP 服务?
离线
试试macvtap,类似于桥接,不过可能只能从外部访问
布丁酱是菜鸡,没毛病,他是菜鸡:)
离线
你没开 DHCP 服务?
是这样吗?我用的是NetworkManager,dhcp是用的自带的,没有用dnsmasq和dhclient,systemctl NetworkManager也没有错误信息,不应该是这个吧?
而且我试了试vmware,同样的无法连接网络,vmware我选的是自动桥接。
最近编辑记录 comix (2021-05-06 20:27:45)
离线
NetworkManager、dhclient 都是 DHCP 客户端。我觉得你没有 DHCP 服务端来给你的虚拟机分配 IP。
简单的场景,建议直接手动分配静态 IP。
离线
哦,你是管理界面显示 IP 未知,所以还有种可能是 agent 没跑。你在虚拟机里 ip a 看看有没有拿到 IP。
离线
对了,我的虚拟机是freebsd,里面没有ip命令,所以我用了ifconfig,看样子是没拿到,我主机的效果是
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:13:a8:3c brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:89:28:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe89:282c/64 scope link
valid_lft forever preferred_lft forever
虚拟机里除了lo0就只有vnet0了,vnet0显示的是
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
而且从启动信息来看是虚拟机的dhclient启动步骤出问题了。
感觉原因就是ip没拿到,就是不知道为什么。
离线
那就是没 DHCP 服务了。自己配个 IP 上去吧。
离线
也就是说这是qemu的问题而不是我本机的吗?之前我在qemu里试了一下arch,也是无法联网。
离线
对了,我忽然想起来前一阵日子更新系统的时候因为依赖把iptables换成了iptables-nft和nftables,请问和这个有关系吗?
离线
嗯,问题在宿主机这边。
我也用 qemu,我主要用静态 IP。也有用 dnsmasq 部署 DHCP 服务。
离线
那我去试试把networkmanager的dhcp换成dhcpcd
最近编辑记录 comix (2021-05-07 21:04:08)
离线
那我去试试把networkmanager的dhcp换成dhcpcd
不,dhcpcd 是客户端(第二个 c),不是服务端。
你可以用 dnsmasq 或者 dhcpd。
离线
请问怎样把dnsmasq设置成networkmanager的dhcp server呢?在wiki上只看到了dhcp client的设置。
离线
请问怎样把dnsmasq设置成networkmanager的dhcp server呢?在wiki上只看到了dhcp client的设置。
呃,这个和 networkmanager 有什么关系?不是把 dnsmasq 配好跑起来就好了吗?
离线