update-alternatives:错误:arptables 的替代 /usr/sbin/arptables-legacy 未注册;不设置

moa*_*zem 4 debian kvm iptables debian-buster nftables

我在 Buster 主机上有 Debian 10 (Buster) KVM 来宾计算机。iptables尝试按照Debian wiki在虚拟机上切换到旧版

update-alternatives --set iptables /usr/sbin/iptables-nft
update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
update-alternatives --set arptables /usr/sbin/arptables-nft
update-alternatives --set ebtables /usr/sbin/ebtables-nft
Run Code Online (Sandbox Code Playgroud)

虽然其他三个成功,但arptables更新失败并显示消息

update-alternatives: error: alternative /usr/sbin/arptables-legacy for arptables not registered; not setting
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

如果您好奇,来宾计算机是使用 kubeadm 启动的 Kubernetes (v1.18) 集群的节点。网络插件是Caliconftables除了MetalLB控制器错误之外,一切都可以使用默认设置

 1 reflector.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: Failed to list *v1.ConfigMap: Get https://10.96.0.1:443/api/v1/namespaces/metallb-system/configmaps?fieldSelector=metadata.name%3Dconfig&limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout
Run Code Online (Sandbox Code Playgroud)

当我ping 10.96.0.1从来宾虚拟机时,我得到

PING 10.96.0.1 (10.96.0.1) 56(84) bytes of data.
From 94.157.208.1 icmp_seq=1 Packet filtered
From 94.157.208.1 icmp_seq=2 Packet filtered
...

--- 10.96.0.1 ping statistics ---
7 packets transmitted, 0 received, +7 errors, 100% packet loss, time 15ms
Run Code Online (Sandbox Code Playgroud)

小智 8

首先,您需要安装旧版软件包:

sudo apt-get install -y iptables arptables ebtables
Run Code Online (Sandbox Code Playgroud)

然后更新替代方案:

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy
Run Code Online (Sandbox Code Playgroud)