Fix connection resets during firewall sync #807
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For very busy tcp connections there is a small possibility to receive
a TCP RST during the iptables sync. It happens only when
--run-firewall=true
is set.In function
NetworkPolicyController.syncPodFirewallChains
a defaultREJECT
rule is chronologically added before the accept-
RELATED,ESTABLISHED
rule for ingress andegress connections. In between of the creation of these two rules a connection reset can happen for already established connections.
The solution is to add the allow-
RELATED,ESTABLISHED
rule before theREJECT
andjumps to this iptables chain. I see no reason the
REJECT
rule is inserted before theACCEPT
rule,but maybe I miss something.