从 libvirt + iptables 迁移到 libvirt + nftables

从 libvirt + iptables 迁移到 libvirt + nftables

我即将使用 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。

文档在这里:https://libvirt.org/formatnwfilter.html

相关内容