私はiptablesで奇妙な動作を観察するためにdocker swarmを使用しています。おそらく、誰かがそこで何が起こっているのかを説明できます。iptables -Z FORWARD
まず、次を使用してFORWARDチェーンのカウンタをクリアしますiptables -L FORWARD -n -v --line-numbers
。
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 115K 62M DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
2 57041 57M DOCKER-INGRESS all -- * * 0.0.0.0/0 0.0.0.0/0
3 1299K 1009M DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
4 1299K 1009M DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
6 0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
7 0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
8 0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
9 154K 159M ACCEPT all -- * docker_gwbridge 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
10 5420 299K DOCKER all -- * docker_gwbridge 0.0.0.0/0 0.0.0.0/0
11 1140K 850M ACCEPT all -- docker_gwbridge !docker_gwbridge 0.0.0.0/0 0.0.0.0/0
12 0 0 DROP all -- docker_gwbridge docker_gwbridge 0.0.0.0/0 0.0.0.0/0
ルール1とルール3が同じであることを確認するために、以下を実行しましたiptables -S FORWARD
。
-P FORWARD DROP
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-INGRESS
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker_gwbridge -j DOCKER
-A FORWARD -i docker_gwbridge ! -o docker_gwbridge -j ACCEPT
-A FORWARD -i docker_gwbridge -o docker_gwbridge -j DROP
冗長なルールが時々発生することはわかっていますが、ルールの2番目の発生が最初の発生(115K)よりも多くのパケット(1299K)を計算するのはなぜですか?