0

OS: Ubuntu 18.04.6 Firewall type: IPtables. UFW is Disabled.

I have Kubernetes cluster with 3 nodes that provide the controlplane and etcd services, named cp01, cp02 and cp03.

I see that etcd traffic from each of the Controlplane/etcd nodes works fine. The etcd application seems to be working, although I noticed that I cannot do some things like etcdctl elect a new leader.

I noticed that sometimes the return traffic is getting blocked. Here's an example log message showing the block:

May 23 09:34:55 cp02 kernel: [1245818.175864] DROP-INPUT: IN=eth2 OUT= MAC=00:50:AA:BB:CC:DD:00:50:AA:BB:CC:11:08:00 SRC=192.168.101.188 DST=192.168.101.189 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=2380 DPT=36532 WINDOW=0 RES=0x00 RST URGP=0  

I don't understand why these packets are getting dropped. IPtables has a rule to accept all RELATED,ESTABLISHED traffic. It seems like on occasion, that's not happening and the packets are actually getting dropped.

Here is the relevant section of IPtables. Note the following:

  • Lines 1-3 are inserted by Kubernetes.
  • Lines 4-7 are standard rules (I believe they are.)
  • Lines 22 & 23 will log then drop all packets that didn't match an existing rule
  • Line 7 accepts all RELATED,ESTABLISHED traffic-- that is, if the traffic went out through this host it can return to this host since it marked as related or established traffic. However, the log message above suggests this is not happening.
cp03:~ # iptables -t filter -L INPUT --line-numbers -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     2763  407K cali-INPUT  all  --  any    any     anywhere             anywhere             /* cali:Cz_abcdefghijklm */
2     2763  407K KUBE-FIREWALL  all  --  any    any     anywhere             anywhere
3       32  6559 KUBE-EXTERNAL-SERVICES  all  --  any    any     anywhere             anywhere             ctstate NEW /* kubernetes externally-visible service portals */
4        1    84 ACCEPT     icmp --  any    any     anywhere             anywhere             /* 000 accept all icmp */
5      773  112K ACCEPT     all  --  lo     any     anywhere             anywhere             /* 001 accept all to lo interface */
6        0     0 REJECT     all  --  !lo    any     anywhere             localhost/8          /* 002 reject local traffic not on loopback interface */ reject-with icmp-port-unreachable
7     1958  288K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED /* 003 accept related established rules */
8        0     0 ACCEPT     tcp  --  any    any     admin.example.org      anywhere             multiport dports ssh /* 101 Allow SSH from management servers from 192.168.100.16 */
9        0     0 ACCEPT     udp  --  any    any     cp01.example.org  anywhere             multiport dports 8472 /* 101 Canal/Flannel VXLAN overlay networking from 192.168.101.188 */
10       0     0 ACCEPT     udp  --  any    any     cp02.example.org  anywhere             multiport dports 8472 /* 101 Canal/Flannel VXLAN overlay networking from 192.168.101.189 */
11       0     0 ACCEPT     udp  --  any    any     cp03.example.org  anywhere             multiport dports 8472 /* 101 Canal/Flannel VXLAN overlay networking from 192.168.101.190 */
12       0     0 ACCEPT     tcp  --  any    any     cp01.example.org  anywhere             multiport dports 6443 /* 101 Kubernetes apiserver from 192.168.101.188 */
13       0     0 ACCEPT     tcp  --  any    any     cp02.example.org  anywhere             multiport dports 6443 /* 101 Kubernetes apiserver from 192.168.101.189 */
14       0     0 ACCEPT     tcp  --  any    any     cp03.example.org  anywhere             multiport dports 6443 /* 101 Kubernetes apiserver from 192.168.101.190 */
15       4   220 ACCEPT     tcp  --  any    any     cp01.example.org  anywhere             multiport dports 2379:2380 /* 101 etcd client requests from 192.168.101.188 */
16       4   220 ACCEPT     tcp  --  any    any     cp02.example.org  anywhere             multiport dports 2379:2380 /* 101 etcd client requests from 192.168.101.189 */
17       0     0 ACCEPT     tcp  --  any    any     cp03.example.org  anywhere             multiport dports 2379:2380 /* 101 etcd client requests from 192.168.101.190 */
18       0     0 ACCEPT     tcp  --  any    any     cp01.example.org  anywhere             multiport dports 10250 /* 101 kubelet API from 192.168.101.188 */
19       0     0 ACCEPT     tcp  --  any    any     cp02.example.org  anywhere             multiport dports 10250 /* 101 kubelet API from 192.168.101.189 */
20       0     0 ACCEPT     tcp  --  any    any     cp03.example.org  anywhere             multiport dports 10250 /* 101 kubelet API from 192.168.101.190 */
21       1    40 LOG        all  --  any    any     anywhere             anywhere             limit: avg 3/min burst 5 /* 998 Log all drops */ LOG level warning prefix "DROP-INPUT: "
22       1    40 DROP       all  --  any    any     anywhere             anywhere             /* 999 drop all other requests */
Stefan Lasiewski
  • 22,949
  • 38
  • 129
  • 184

0 Answers0