diff --git a/src/ipt/NATCompiler_ipt.cpp b/src/ipt/NATCompiler_ipt.cpp index 6c3cc7356..024fd33a2 100644 --- a/src/ipt/NATCompiler_ipt.cpp +++ b/src/ipt/NATCompiler_ipt.cpp @@ -2204,6 +2204,8 @@ void NATCompiler_ipt::compile() add( new dynamicInterfaceInTSrc("set target if dynamic interface in TSrc" ) ); add( new convertInterfaceIdToStr("prepare interface assignments") ); + add( new CheckIfIPv6Rule("find ipv6 rules")); + if (fwopt->getBool("use_iptables_restore")) { // bug #1812295: we should use PrintRuleIptRstEcho not only diff --git a/src/ipt/PolicyCompiler_ipt.cpp b/src/ipt/PolicyCompiler_ipt.cpp index a3ff1559d..21362a160 100644 --- a/src/ipt/PolicyCompiler_ipt.cpp +++ b/src/ipt/PolicyCompiler_ipt.cpp @@ -4101,8 +4101,11 @@ string PolicyCompiler_ipt::flushAndSetDefaultPolicy() res += printRule->_declareTable(); res += printRule->_flushAndSetDefaultPolicy(); res += printRule->_printOptionalGlobalRules(); - // same rules for ipv6 - res += printRule->_printOptionalGlobalRules(true); + if (haveIPv6Rules()) + { + // same rules for ipv6 + res += printRule->_printOptionalGlobalRules(true); + } return res; }