1 Allows you to deploy gateway and back-end load-sharing clusters without the 2 need of load-balancers. 3 .PP 4 This match requires that all the nodes see the same packets. Thus, the cluster 5 match decides if this node has to handle a packet given the following options: 6 .TP 7 \fB\-\-cluster\-total\-nodes\fP \fInum\fP 8 Set number of total nodes in cluster. 9 .TP 10 [\fB!\fP] \fB\-\-cluster\-local\-node\fP \fInum\fP 11 Set the local node number ID. 12 .TP 13 [\fB!\fP] \fB\-\-cluster\-local\-nodemask\fP \fImask\fP 14 Set the local node number ID mask. You can use this option instead 15 of \fB\-\-cluster\-local\-node\fP. 16 .TP 17 \fB\-\-cluster\-hash\-seed\fP \fIvalue\fP 18 Set seed value of the Jenkins hash. 19 .PP 20 Example: 21 .IP 22 iptables \-A PREROUTING \-t mangle \-i eth1 \-m cluster 23 \-\-cluster\-total\-nodes 2 \-\-cluster\-local\-node 1 24 \-\-cluster\-hash\-seed 0xdeadbeef 25 \-j MARK \-\-set-mark 0xffff 26 .IP 27 iptables \-A PREROUTING \-t mangle \-i eth2 \-m cluster 28 \-\-cluster\-total\-nodes 2 \-\-cluster\-local\-node 1 29 \-\-cluster\-hash\-seed 0xdeadbeef 30 \-j MARK -\-set\-mark 0xffff 31 .IP 32 iptables \-A PREROUTING \-t mangle \-i eth1 33 \-m mark ! \-\-mark 0xffff \-j DROP 34 .IP 35 iptables \-A PREROUTING \-t mangle \-i eth2 36 \-m mark ! \-\-mark 0xffff \-j DROP 37 .PP 38 And the following commands to make all nodes see the same packets: 39 .IP 40 ip maddr add 01:00:5e:00:01:01 dev eth1 41 .IP 42 ip maddr add 01:00:5e:00:01:02 dev eth2 43 .IP 44 arptables \-A OUTPUT \-o eth1 \-\-h\-length 6 45 \-j mangle \-\-mangle-mac-s 01:00:5e:00:01:01 46 .IP 47 arptables \-A INPUT \-i eth1 \-\-h-length 6 48 \-\-destination-mac 01:00:5e:00:01:01 49 \-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27 50 .IP 51 arptables \-A OUTPUT \-o eth2 \-\-h\-length 6 52 \-j mangle \-\-mangle\-mac\-s 01:00:5e:00:01:02 53 .IP 54 arptables \-A INPUT \-i eth2 \-\-h\-length 6 55 \-\-destination\-mac 01:00:5e:00:01:02 56 \-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27 57 .PP 58 \fBNOTE\fP: the arptables commands above use mainstream syntax. If you 59 are using arptables-jf included in some RedHat, CentOS and Fedora 60 versions, you will hit syntax errors. Therefore, you'll have to adapt 61 these to the arptables-jf syntax to get them working. 62 .PP 63 In the case of TCP connections, pickup facility has to be disabled 64 to avoid marking TCP ACK packets coming in the reply direction as 65 valid. 66 .IP 67 echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose 68