This commit is contained in:
Richard Hansen 2024-04-19 10:36:08 +02:00 committed by GitHub
commit d85583799f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 8 deletions

View file

@ -33,11 +33,6 @@ const (
)
func setupIPChains(config configuration, version iptables.IPVersion) (natChain *iptables.ChainInfo, filterChain *iptables.ChainInfo, isolationChain1 *iptables.ChainInfo, isolationChain2 *iptables.ChainInfo, retErr error) {
// Sanity check.
if !config.EnableIPTables {
return nil, nil, nil, nil, errors.New("cannot create new chains, EnableIPTable is disabled")
}
hairpinMode := !config.EnableUserlandProxy
iptable := iptables.GetIptable(version)

View file

@ -144,9 +144,11 @@ func assertIPTableChainProgramming(rule iptRule, descr string, t *testing.T) {
func assertChainConfig(d *driver, t *testing.T) {
var err error
d.natChain, d.filterChain, d.isolationChain1, d.isolationChain2, err = setupIPChains(d.config, iptables.IPv4)
if err != nil {
t.Fatal(err)
if d.config.EnableIPTables {
d.natChain, d.filterChain, d.isolationChain1, d.isolationChain2, err = setupIPChains(d.config, iptables.IPv4)
if err != nil {
t.Fatal(err)
}
}
if d.config.EnableIP6Tables {
d.natChainV6, d.filterChainV6, d.isolationChain1V6, d.isolationChain2V6, err = setupIPChains(d.config, iptables.IPv6)
@ -273,6 +275,22 @@ func TestOutgoingNATRules(t *testing.T) {
hostIPv4: hostIPv4,
wantIPv4Snat: true,
},
{
// Regression test for https://github.com/moby/moby/issues/46467
desc: "iptables disabled, IPv6 masquerade",
enableIP6Tables: true,
enableIPv6: true,
enableIPMasquerade: true,
wantIPv6Masq: true,
},
{
desc: "iptables disabled, IPv6 SNAT",
enableIP6Tables: true,
enableIPv6: true,
enableIPMasquerade: true,
hostIPv6: hostIPv6,
wantIPv6Snat: true,
},
{
desc: "IPv4 masquerade, IPv6 masquerade",
enableIPTables: true,