我即将使用 qemu-kvm 将 Debian Stretch 主机迁移到 Debian Buster。
我看到有人在互联网上抱怨 nftables 成为默认设置取代 iptables 以及 libvirt 使用 iptables 规则导致的问题。nftables 无法理解 libvirt 自动编写的规则。
我可以移回 iptables升级后如有需要:
# update-alternatives --set iptables /usr/sbin/iptables-legacy
# update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
# update-alternatives --set arptables /usr/sbin/arptables-legacy
# update-alternatives --set ebtables /usr/sbin/ebtables-legacy
这足以让我的系统运行吗?
从文档和此 GH 评论libvirt 5.1.0 中添加了对firewalld 的支持。但我不清楚整个系统正常运行所需的最低firewalld 版本是 0.6.0 还是 0.7.0。
以下是 Debian 发布的版本:
防火墙
- 伸展 0.4.4.2-1
- 破坏者 0.6.3-5
- 靶心 0.7.2-1
libvirt 守护进程
- 伸展 3.0.0-4+deb9u4
- 破坏者 5.0.0-4
- 靶心 5.6.0-2
所以我认为总体上应该没什么问题。除了现有的规则。
以下计划可行吗?
使用上述技巧迁移到 Buster 并坚持使用 iptables
update-alternatives
。当 Bullseye 推出后,请迁移并暂时坚持使用 iptables。
手动翻译规则稍后迁移到 nftables。
编辑:
/etc/网络/接口
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# Local network
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
bridge_ports eth0
bridge_maxwait 0
address 192.168.10.27
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 192.168.10.8 192.168.1.9 8.8.8.8
dns-domain my_domain.local
dns-search my_domain.local
# External network
auto eth1
iface eth1 inet manual
auto br1
iface br1 inet manual
bridge_ports eth1
bridge_maxwait 0
答案1
我采取的策略是将虚拟机使用的过滤规则从 nftables 迁移到 libvirt 的 nwfilter 规则。这样做的效果是 libvirt 管理 iptables 过滤器。实际上,这是从 nftables 降级到 iptables,但我希望 libvirt 能够支持以后迁移到 nftables。