Re: load balancing between two chains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here you go:

sbezverk@kube-4:~$ sudo nft --debug=netlink list ruleset
ip kube-nfproxy-v4 filter-input 23 
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000008 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 jump -> k8s-filter-services ]
  userdata = { 
ip kube-nfproxy-v4 filter-input 24 23 
  [ immediate reg 0 jump -> k8s-filter-firewall ]
  userdata = { 
ip kube-nfproxy-v4 filter-output 27 
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000008 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 jump -> k8s-filter-services ]
  userdata = { 
ip kube-nfproxy-v4 filter-output 28 27 
  [ immediate reg 0 jump -> k8s-filter-firewall ]
  userdata = { 
ip kube-nfproxy-v4 filter-forward 25 
  [ immediate reg 0 jump -> k8s-filter-forward ]
  userdata = { 
ip kube-nfproxy-v4 filter-forward 26 25 
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000008 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 jump -> k8s-filter-services ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-firewall 29 
  [ meta load mark => reg 1 ]
  [ cmp eq reg 1 0x00008000 ]
  [ immediate reg 0 drop ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-services 35 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 4b @ network header + 16 => reg 9 ]
  [ payload load 2b @ transport header + 2 => reg 10 ]
  [ lookup reg 1 set no-endpoints dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-forward 30 
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000001 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 drop ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-forward 31 30 
  [ meta load mark => reg 1 ]
  [ cmp eq reg 1 0x00004000 ]
  [ immediate reg 0 accept ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-forward 32 31 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f0ff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x00007039 ]
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000006 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 accept ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-forward 33 32 
  [ payload load 4b @ network header + 16 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f0ff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x00007039 ]
  [ ct load state => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000006 ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00000000 ]
  [ immediate reg 0 accept ]
  userdata = { 
ip kube-nfproxy-v4 k8s-filter-do-reject 34 
  [ reject type 0 code 1 ]
  userdata = { 
ip kube-nfproxy-v4 nat-preroutin 36 
  [ immediate reg 0 jump -> k8s-nat-services ]
  userdata = { 
ip kube-nfproxy-v4 nat-output 37 
  [ immediate reg 0 jump -> k8s-nat-services ]
  userdata = { 
ip kube-nfproxy-v4 nat-postrouting 38 
  [ immediate reg 0 jump -> k8s-nat-postrouting ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-mark-drop 39 
  [ immediate reg 1 0x00008000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-do-mark-masq 47 
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  [ immediate reg 0 return ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-mark-masq 48 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 4b @ network header + 16 => reg 9 ]
  [ payload load 2b @ transport header + 2 => reg 10 ]
  [ lookup reg 1 set do-mark-masq dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-mark-masq 49 48 
  [ immediate reg 0 return ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-services 41 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f0ff ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00007039 ]
  [ immediate reg 0 jump -> k8s-nat-mark-masq ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-services 42 41 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 4b @ network header + 16 => reg 9 ]
  [ payload load 2b @ transport header + 2 => reg 10 ]
  [ lookup reg 1 set cluster-ip dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-services 43 42 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 4b @ network header + 16 => reg 9 ]
  [ payload load 2b @ transport header + 2 => reg 10 ]
  [ lookup reg 1 set external-ip dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-services 44 43 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 4b @ network header + 16 => reg 9 ]
  [ payload load 2b @ transport header + 2 => reg 10 ]
  [ lookup reg 1 set loadbalancer-ip dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-services 45 44 
  [ fib daddr type => reg 1 ]
  [ cmp eq reg 1 0x00000002 ]
  [ immediate reg 0 jump -> k8s-nat-nodeports ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-nodeports 46 
  [ payload load 1b @ network header + 9 => reg 1 ]
  [ payload load 2b @ transport header + 2 => reg 9 ]
  [ lookup reg 1 set nodeports dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nat-postrouting 40 
  [ meta load mark => reg 1 ]
  [ cmp eq reg 1 0x00004000 ]
  [ masq flags 0xc ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-Z2V2H34MNX3I6O2G 112 
  [ numgen reg 1 = inc mod 2 ]
  [ lookup reg 1 set __map2 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-Z2V2H34MNX3I6O2G 59 112 
  [ counter pkts 1 bytes 60 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 54 
  [ counter pkts 3 bytes 180 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 55 54 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x6850a8c0 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 56 55 
  [ immediate reg 1 0x6850a8c0 ]
  [ immediate reg 2 0x00002b19 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 108 56 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 109 108 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x6850a8c0 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-WTQR35QT3M6PVG5X 110 109 
  [ immediate reg 1 0x6850a8c0 ]
  [ immediate reg 2 0x00002b19 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-M53CN2XYVUHRQ7UB 170 
  [ numgen reg 1 = inc mod 3 ]
  [ lookup reg 1 set __map5 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-M53CN2XYVUHRQ7UB 76 170 
  [ counter pkts 4 bytes 240 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-PL4AZP3AKMRCVEEV 101 
  [ numgen reg 1 = inc mod 2 ]
  [ lookup reg 1 set __map1 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-PL4AZP3AKMRCVEEV 83 101 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-F3FYSUNEU5GRF2PR 67 
  [ counter pkts 156 bytes 9360 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-F3FYSUNEU5GRF2PR 68 67 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x27007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-F3FYSUNEU5GRF2PR 69 68 
  [ immediate reg 1 0x27007039 ]
  [ immediate reg 2 0x0000911f ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-TMVEFT7EX55F4T62 71 
  [ counter pkts 3 bytes 180 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-TMVEFT7EX55F4T62 72 71 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x29007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-TMVEFT7EX55F4T62 73 72 
  [ immediate reg 1 0x29007039 ]
  [ immediate reg 2 0x0000901f ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-UOK7V3LF34NNNXJK 78 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-UOK7V3LF34NNNXJK 79 78 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x29007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-UOK7V3LF34NNNXJK 80 79 
  [ immediate reg 1 0x29007039 ]
  [ immediate reg 2 0x00009a1f ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-ZQKXCYOBISQCSH6Q 124 
  [ numgen reg 1 = inc mod 1 ]
  [ lookup reg 1 set __map4 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-ZQKXCYOBISQCSH6Q 125 124 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5 88 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5 89 88 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x34007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5 90 89 
  [ immediate reg 1 0x34007039 ]
  [ immediate reg 2 0x00001d23 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-MLOFX2HRWDMEIJ2C 138 
  [ numgen reg 1 = inc mod 2 ]
  [ lookup reg 1 set __map6 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-MLOFX2HRWDMEIJ2C 132 138 
  [ counter pkts 1597 bytes 126466 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-AB4FZJCEEYJGUR7G 97 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-AB4FZJCEEYJGUR7G 98 97 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x34007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-AB4FZJCEEYJGUR7G 99 98 
  [ immediate reg 1 0x34007039 ]
  [ immediate reg 2 0x00002623 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-BKEZZE5BBBAFLJMD 151 
  [ numgen reg 1 = inc mod 2 ]
  [ lookup reg 1 set __map7 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-BKEZZE5BBBAFLJMD 145 151 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-XZFCNG333PM4X5VI 164 
  [ numgen reg 1 = inc mod 2 ]
  [ lookup reg 1 set __map8 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-XZFCNG333PM4X5VI 158 164 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-ALEQQYFAJOE576GL 117 
  [ numgen reg 1 = inc mod 1 ]
  [ lookup reg 1 set __map0 dreg 0 0x0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-svc-ALEQQYFAJOE576GL 118 117 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-5CXJFIVYWUOH4QP5 120 
  [ counter pkts 1 bytes 60 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-5CXJFIVYWUOH4QP5 121 120 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2f007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-5CXJFIVYWUOH4QP5 122 121 
  [ immediate reg 1 0x2f007039 ]
  [ immediate reg 2 0x0000bb01 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-ZLBUKWY4CZE4VBQ6 127 
  [ counter pkts 1597 bytes 127401 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-ZLBUKWY4CZE4VBQ6 128 127 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2a007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-ZLBUKWY4CZE4VBQ6 129 128 
  [ immediate reg 1 0x2a007039 ]
  [ immediate reg 2 0x00003500 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-L7QM2ZN4KU2U3Y7S 134 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-L7QM2ZN4KU2U3Y7S 135 134 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2b007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-L7QM2ZN4KU2U3Y7S 136 135 
  [ immediate reg 1 0x2b007039 ]
  [ immediate reg 2 0x00003500 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-47JQSZ5IZC6OSGGT 140 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-47JQSZ5IZC6OSGGT 141 140 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2a007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-47JQSZ5IZC6OSGGT 142 141 
  [ immediate reg 1 0x2a007039 ]
  [ immediate reg 2 0x00003500 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-SLRAZLUBLWQJXVD6 147 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-SLRAZLUBLWQJXVD6 148 147 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2b007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-SLRAZLUBLWQJXVD6 149 148 
  [ immediate reg 1 0x2b007039 ]
  [ immediate reg 2 0x00003500 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MDXSOI4QEYHXQ5TE 153 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MDXSOI4QEYHXQ5TE 154 153 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2a007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MDXSOI4QEYHXQ5TE 155 154 
  [ immediate reg 1 0x2a007039 ]
  [ immediate reg 2 0x0000c123 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MQDIJAQHMGQYQDQC 160 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MQDIJAQHMGQYQDQC 161 160 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x2b007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-MQDIJAQHMGQYQDQC 162 161 
  [ immediate reg 1 0x2b007039 ]
  [ immediate reg 2 0x0000c123 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-23NTSA2UXPPQIPK4 166 
  [ counter pkts 0 bytes 0 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-23NTSA2UXPPQIPK4 167 166 
  [ payload load 4b @ network header + 12 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0xffffffff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x35007039 ]
  [ immediate reg 1 0x00004000 ]
  [ meta set mark with reg 1 ]
  userdata = { 
ip kube-nfproxy-v4 k8s-nfproxy-sep-23NTSA2UXPPQIPK4 168 167 
  [ immediate reg 1 0x35007039 ]
  [ immediate reg 2 0x00005322 ]
  [ nat dnat ip addr_min reg 1 addr_max reg 1 proto_min reg 2 proto_max reg 2 flags 16]
  userdata = { 
table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }
}
table ip kube-nfproxy-v4 {
        map no-endpoints {
                type inet_proto . ipv4_addr . inet_service : verdict
        }

        map do-mark-masq {
                type inet_proto . ipv4_addr . inet_service : verdict
                elements = { tcp . 57.128.0.1 . 443 : jump k8s-nat-do-mark-masq,
                             tcp . 57.128.0.10 . 53 : jump k8s-nat-do-mark-masq,
                             tcp . 57.128.0.10 . 9153 : jump k8s-nat-do-mark-masq,
                             tcp . 57.139.80.125 . 8081 : jump k8s-nat-do-mark-masq,
                             tcp . 57.141.10.218 . 443 : jump k8s-nat-do-mark-masq,
                             tcp . 57.141.53.140 . 808 : jump k8s-nat-do-mark-masq,
                             tcp . 192.168.80.104 . 808 : jump k8s-nat-do-mark-masq,
                             udp . 57.128.0.10 . 53 : jump k8s-nat-do-mark-masq,
                             udp . 57.141.53.140 . 809 : jump k8s-nat-do-mark-masq,
                             udp . 192.168.80.104 . 809 : jump k8s-nat-do-mark-masq }
        }

        map cluster-ip {
                type inet_proto . ipv4_addr . inet_service : verdict
                elements = { tcp . 57.128.0.1 . 443 : jump k8s-nfproxy-svc-Z2V2H34MNX3I6O2G,
                             tcp . 57.128.0.10 . 53 : jump k8s-nfproxy-svc-BKEZZE5BBBAFLJMD,
                             tcp . 57.128.0.10 . 9153 : jump k8s-nfproxy-svc-XZFCNG333PM4X5VI,
                             tcp . 57.139.80.125 . 8081 : jump k8s-nfproxy-svc-ALEQQYFAJOE576GL,
                             tcp . 57.141.10.218 . 443 : jump k8s-nfproxy-svc-ZQKXCYOBISQCSH6Q,
                             tcp . 57.141.53.140 . 808 : jump k8s-nfproxy-svc-M53CN2XYVUHRQ7UB,
                             udp . 57.128.0.10 . 53 : jump k8s-nfproxy-svc-MLOFX2HRWDMEIJ2C,
                             udp . 57.141.53.140 . 809 : jump k8s-nfproxy-svc-PL4AZP3AKMRCVEEV }
        }

        map external-ip {
                type inet_proto . ipv4_addr . inet_service : verdict
                elements = { tcp . 192.168.80.104 . 808 : jump k8s-nfproxy-svc-M53CN2XYVUHRQ7UB,
                             udp . 192.168.80.104 . 809 : jump k8s-nfproxy-svc-PL4AZP3AKMRCVEEV }
        }

        map loadbalancer-ip {
                type inet_proto . ipv4_addr . inet_service : verdict
        }

        map nodeports {
                type inet_proto . inet_service : verdict
                elements = { tcp . 30283 : jump k8s-nfproxy-svc-ALEQQYFAJOE576GL }
        }

        chain filter-input {
                type filter hook input priority filter; policy accept;
                ct state new jump k8s-filter-services comment "	jump k8s-filter-firewall comment "}

        chain filter-output {
                type filter hook output priority filter; policy accept;
                ct state new jump k8s-filter-services
                jump k8s-filter-firewall comment "}

        chain filter-forward {
                type filter hook forward priority filter; policy accept;
                jump k8s-filter-forward
                ct state new jump k8s-filter-services comment "}

        chain k8s-filter-firewall {
                meta mark 0x00008000 drop
        }

        chain k8s-filter-services {
                ip protocol . ip daddr . @th,16,16 vmap @no-endpoints
        }

        chain k8s-filter-forward {
                ct state invalid drop
                meta mark 0x00004000 accept comment "	ip saddr 57.112.0.0/12 ct state established,related accept
                ip daddr 57.112.0.0/12 ct state established,related accept
        }

        chain k8s-filter-do-reject {
                reject with icmp type host-unreachable
        }

        chain nat-preroutin {
                type nat hook prerouting priority filter; policy accept;
                jump k8s-nat-services
        }

        chain nat-output {
                type nat hook output priority filter; policy accept;
                jump k8s-nat-services
        }

        chain nat-postrouting {
                type nat hook postrouting priority filter; policy accept;
                jump k8s-nat-postrouting comment "}

        chain k8s-nat-mark-drop {
                meta mark set 0x00008000
        }

        chain k8s-nat-do-mark-masq {
                meta mark set 0x00004000 return
        }

        chain k8s-nat-mark-masq {
                ip protocol . ip daddr . @th,16,16 vmap @do-mark-masq
                return comment ""
        }

        chain k8s-nat-services {
                ip saddr != 57.112.0.0/12 jump k8s-nat-mark-masq
                ip protocol . ip daddr . @th,16,16 vmap @cluster-ip comment "	ip protocol . ip daddr . @th,16,16 vmap @external-ip
                ip protocol . ip daddr . @th,16,16 vmap @loadbalancer-ip
                fib daddr type local jump k8s-nat-nodeports comment "2"
        }

        chain k8s-nat-nodeports {
                ip protocol . @th,16,16 vmap @nodeports comment ""
        }

        chain k8s-nat-postrouting {
                meta mark 0x00004000 masquerade random,persistent comment ""
        }

        chain k8s-nfproxy-svc-Z2V2H34MNX3I6O2G {
                numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-WTQR35QT3M6PVG5X, 1 : goto k8s-nfproxy-sep-WTQR35QT3M6PVG5X }
                counter packets 1 bytes 60 comment ""
        }

        chain k8s-nfproxy-fw-Z2V2H34MNX3I6O2G {
        }

        chain k8s-nfproxy-xlb-Z2V2H34MNX3I6O2G {
        }

        chain k8s-nfproxy-sep-WTQR35QT3M6PVG5X {
                counter packets 3 bytes 180 comment ""
                ip saddr 192.168.80.104 meta mark set 0x00004000 comment ""
                dnat to 192.168.80.104:6443 fully-random
                counter packets 0 bytes 0
                ip saddr 192.168.80.104 meta mark set 0x00004000 comment ""
                dnat to 192.168.80.104:6443 fully-random comment ""
        }

        chain k8s-nfproxy-svc-M53CN2XYVUHRQ7UB {
                numgen inc mod 3 vmap { 0 : goto k8s-nfproxy-sep-TMVEFT7EX55F4T62, 1 : goto k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5, 2 : goto k8s-nfproxy-sep-23NTSA2UXPPQIPK4 }
                counter packets 4 bytes 240 comment ""
        }

        chain k8s-nfproxy-fw-M53CN2XYVUHRQ7UB {
        }

        chain k8s-nfproxy-xlb-M53CN2XYVUHRQ7UB {
        }

        chain k8s-nfproxy-svc-PL4AZP3AKMRCVEEV {
                numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-UOK7V3LF34NNNXJK, 1 : goto k8s-nfproxy-sep-AB4FZJCEEYJGUR7G }
                counter packets 0 bytes 0 comment ""
        }

        chain k8s-nfproxy-fw-PL4AZP3AKMRCVEEV {
        }

        chain k8s-nfproxy-xlb-PL4AZP3AKMRCVEEV {
        }

        chain k8s-nfproxy-sep-F3FYSUNEU5GRF2PR {
                counter packets 156 bytes 9360 comment ""
                ip saddr 57.112.0.39 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.39:8081 fully-random
        }

        chain k8s-nfproxy-sep-TMVEFT7EX55F4T62 {
                counter packets 3 bytes 180 comment ""
                ip saddr 57.112.0.41 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.41:8080 fully-random
        }

        chain k8s-nfproxy-sep-UOK7V3LF34NNNXJK {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.41 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.41:8090 fully-random
        }

        chain k8s-nfproxy-svc-ZQKXCYOBISQCSH6Q {
                numgen inc mod 1 vmap { 0 : goto k8s-nfproxy-sep-5CXJFIVYWUOH4QP5 } comment ""
                counter packets 0 bytes 0 comment ""
        }

        chain k8s-nfproxy-fw-ZQKXCYOBISQCSH6Q {
        }

        chain k8s-nfproxy-xlb-ZQKXCYOBISQCSH6Q {
        }

        chain k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5 {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.52 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.52:8989 fully-random
        }

        chain k8s-nfproxy-svc-MLOFX2HRWDMEIJ2C {
                numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-ZLBUKWY4CZE4VBQ6, 1 : goto k8s-nfproxy-sep-L7QM2ZN4KU2U3Y7S }
                counter packets 1597 bytes 126466 comment ""
        }

        chain k8s-nfproxy-fw-MLOFX2HRWDMEIJ2C {
        }

        chain k8s-nfproxy-xlb-MLOFX2HRWDMEIJ2C {
        }

        chain k8s-nfproxy-sep-AB4FZJCEEYJGUR7G {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.52 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.52:8998 fully-random
        }

        chain k8s-nfproxy-svc-BKEZZE5BBBAFLJMD {
                numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-47JQSZ5IZC6OSGGT, 1 : goto k8s-nfproxy-sep-SLRAZLUBLWQJXVD6 }
                counter packets 0 bytes 0 comment ""
        }

        chain k8s-nfproxy-fw-BKEZZE5BBBAFLJMD {
        }

        chain k8s-nfproxy-xlb-BKEZZE5BBBAFLJMD {
        }

        chain k8s-nfproxy-svc-XZFCNG333PM4X5VI {
                numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-MDXSOI4QEYHXQ5TE, 1 : goto k8s-nfproxy-sep-MQDIJAQHMGQYQDQC }
                counter packets 0 bytes 0 comment ""
        }

        chain k8s-nfproxy-fw-XZFCNG333PM4X5VI {
        }

        chain k8s-nfproxy-xlb-XZFCNG333PM4X5VI {
        }

        chain k8s-nfproxy-svc-ALEQQYFAJOE576GL {
                numgen inc mod 1 vmap { 0 : goto k8s-nfproxy-sep-F3FYSUNEU5GRF2PR } comment ""
                counter packets 0 bytes 0 comment ""
        }

        chain k8s-nfproxy-fw-ALEQQYFAJOE576GL {
        }

        chain k8s-nfproxy-xlb-ALEQQYFAJOE576GL {
        }

        chain k8s-nfproxy-sep-5CXJFIVYWUOH4QP5 {
                counter packets 1 bytes 60 comment ""
                ip saddr 57.112.0.47 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.47:443 fully-random
        }

        chain k8s-nfproxy-sep-ZLBUKWY4CZE4VBQ6 {
                counter packets 1597 bytes 127401 comment ""
                ip saddr 57.112.0.42 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.42:53 fully-random
        }

        chain k8s-nfproxy-sep-L7QM2ZN4KU2U3Y7S {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.43 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.43:53 fully-random
        }

        chain k8s-nfproxy-sep-47JQSZ5IZC6OSGGT {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.42 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.42:53 fully-random
        }

        chain k8s-nfproxy-sep-SLRAZLUBLWQJXVD6 {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.43 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.43:53 fully-random
        }

        chain k8s-nfproxy-sep-MDXSOI4QEYHXQ5TE {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.42 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.42:9153 fully-random
        }

        chain k8s-nfproxy-sep-MQDIJAQHMGQYQDQC {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.43 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.43:9153 fully-random
        }

        chain k8s-nfproxy-sep-23NTSA2UXPPQIPK4 {
                counter packets 0 bytes 0 comment ""
                ip saddr 57.112.0.53 meta mark set 0x00004000 comment ""
                dnat to 57.112.0.53:8787 fully-random
        }
}
table ip6 kube-nfproxy-v6 {
}
sbezverk@kube-4:~$ 






On 2020-01-20, 5:00 PM, "Florian Westphal" <fw@xxxxxxxxx> wrote:

    sbezverk <sbezverk@xxxxxxxxx> wrote:
    > Numgen has GOTO directive and not Jump (Phil asked to change it), I thought it means after hitting any chains in numgen the processing will go back to service chain, no?
    > 
    > It is Ubuntu 18.04
    > 
    > sbezverk@kube-4:~$ uname -a
    > Linux kube-4 5.4.10-050410-generic #202001091038 SMP Thu Jan 9 10:41:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    > sbezverk@kube-4:~$ sudo nft --version
    > nftables v0.9.1 (Headless Horseman)
    > sbezverk@kube-4:~$
    > 
    > I also want to remind you that I do NOT use nft cli to program rules, I use nft cli just to see resulting rules.
    
    In that case, please include "nft --debug=netlink list ruleset".
    
    It would also be good to check if things work when you add it via nft
    tool.
    
    >     > 
    >     >         chain k8s-nfproxy-svc-M53CN2XYVUHRQ7UB {
    >     >                 numgen inc mod 2 vmap { 0 : goto k8s-nfproxy-sep-TMVEFT7EX55F4T62, 1 : goto k8s-nfproxy-sep-GTJ7BFLUOQRCGMD5 }
    >     >                 counter packets 1 bytes 60 comment ""
    >     >         }
    
    Just to clarify, the "goto" means that the "counter" should NEVER
    increment here because nft interpreter returns to the chain that had
    
    "jump k8s-nfproxy-svc-M53CN2XYVUHRQ7UB".
    
    jump and goto do the same thing except that goto doesn't record the
    location/chain to return to.
    






[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux