乌班图20.04
QEMU macvtap(有效)
如果我使用以下网络配置:
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: yes
dhcp6: yes
KVM 客户端网络使用“主机设备 eno1:macvtap”,IPv4、IPv6 均有效。
tcpdump port 67 or port 68 -i eno1 -nN
将显示 dhcp 请求,我的 dhcp 服务器上的 tcpdump 也会看到传入的请求。
带主桥的 QEMU(不工作)
但是,如果我使用主机桥网络配置:
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
optional: true
link-local: []
bridges:
br0:
parameters:
stp: false
forward-delay: 0
interfaces:
- eno1
dhcp4: true
dhcp6: true
并且 KVM 客户端网络使用“桥接器(主机设备 eno1)”,则只有 IPv6 有效,IPv4 无法获取 DHCP。
tcpdump port 67 or port 68 -i br0 -nN
将显示 dhcp 请求,但我的 dhcp 服务器上的 tcpdump 看不到它们。
但只有 dhcp 不起作用。如果我手动设置 IPv4 地址和路由,传入和传出的 IPv4 流量都会工作。
我发现如果我完全禁用 docker:
sudo systemctl diable docker.service containerd.service
reboot
然后 qemu 与主机桥将完美工作。
在运行 docker 时如何将 qemu 与主机桥结合使用?
答案1
ubuntu升级到20.10后,docker和kvm+bridge模式不再打架了。
我在 /etc/netplan/01-netcfg.yaml 中创建了一个 br0
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [eno1]
dhcp4: true
dhcp6: true
使用 NIC 创建/更改 KVM 客户端:“网桥 br0:主机设备 eno1”。客户现在可以
- 获取ip4/ip6
- kvm客户端可以互相ssh
- kvm客户端可以ssh到主机
- 主机可以 ssh 到 kvm 客户端
我不确定是升级到 20.10 还是删除 01-netcfg.yaml 中的额外属性来修复此问题,但它现在工作正常。