-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ERROR: table `nat' is incompatible, use 'nft' tool. #5446
Comments
The nftables backend for iptables should work, even with nftables... |
I can't recreate on fedora 30. The cni config uses backend
What do you mean by The system should be running what the cni config specifies. |
@mccv1r0 , why would the following clause trigger the execution of
|
CNI uses what the underlying OS is already running. |
@mccv1r0 , in my case I don't run iptables. Only nftables. Should this issue belong to |
The error is coming from here. Deep dive begins ... |
Opened a separate issue containernetworking/plugins#461. |
Upon research, it appears that cni is being implemented via |
@mheon , do you know why There is a series of dependencies when it comes to
Unfortunately, I am getting when attempting to compile, the The files |
Most likely because we're not invoking it directly? My understanding is that CNI is packaged as a series of plugins - small binaries that are executed separately, each doing part of the job of network setup. The heavy lifting, including IPTables, likely occurs there. Podman sends along instructions for configuring the network, but we do not directly invoke the relevant code, but instead separate executables. |
@mheon , let me try recompiling the CNI plugins. |
@mheon , you are correct 👍 The plugins are being called indirectly. Compiled diff --git a/pkg/utils/iptables.go b/pkg/utils/iptables.go
index b38a2cd..3ec931f 100644
--- a/pkg/utils/iptables.go
+++ b/pkg/utils/iptables.go
@@ -19,6 +19,9 @@ import (
"fmt"
"github.com/coreos/go-iptables/iptables"
+
+ "github.com/davecgh/go-spew/spew"
+ "github.com/sirupsen/logrus"
)
const statusChainExists = 1
@@ -26,6 +29,11 @@ const statusChainExists = 1
// EnsureChain idempotently creates the iptables chain. It does not
// return an error if the chain already exists.
func EnsureChain(ipt *iptables.IPTables, table, chain string) error {
+
+ //logrus.Errorf("EnsureChain() ipt: %s", spew.Sdump(ipt))
+ logrus.Errorf("EnsureChain() table: %s", spew.Sdump(table))
+ logrus.Errorf("EnsureChain() chain: %s", spew.Sdump(chain))
+
if ipt == nil {
return errors.New("failed to ensure iptable chain: IPTables was nil")
}
As part of
That is where it fails. |
Another aspect of this issue. When I run
|
table `nft' is incompatible, use 'nft' tool - facing this issue while installing openstack via devstack on ubuntu20.04 |
@ratulb , try using the plugins: https://github.com/greenpau/cni-plugins#getting-started |
@greenpau the simplest solution is to use another table name rather then nat or filter. |
To get rid of that libvirt error, my permanent workaround in Debian 11 (as a host) with libvirtd daemon is to block the loading of iptables-related modules: Create a file in
|
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
I use nftables; when starting a container I get:
Steps to reproduce the issue:
Describe the results you received:
Describe the results you expected:
No errors.
Additional information you deem important (e.g. issue happens only occasionally):
Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Additional environment details (AWS, VirtualBox, physical, etc.):
Physical.
The text was updated successfully, but these errors were encountered: