Blame bootstrap_ver/extensions/libxt_cluster.man

Packit Service 1ec7f4
Allows you to deploy gateway and back-end load-sharing clusters without the
Packit Service 1ec7f4
need of load-balancers.
Packit Service 1ec7f4
.PP
Packit Service 1ec7f4
This match requires that all the nodes see the same packets. Thus, the cluster
Packit Service 1ec7f4
match decides if this node has to handle a packet given the following options:
Packit Service 1ec7f4
.TP
Packit Service 1ec7f4
\fB\-\-cluster\-total\-nodes\fP \fInum\fP
Packit Service 1ec7f4
Set number of total nodes in cluster.
Packit Service 1ec7f4
.TP
Packit Service 1ec7f4
[\fB!\fP] \fB\-\-cluster\-local\-node\fP \fInum\fP
Packit Service 1ec7f4
Set the local node number ID.
Packit Service 1ec7f4
.TP
Packit Service 1ec7f4
[\fB!\fP] \fB\-\-cluster\-local\-nodemask\fP \fImask\fP
Packit Service 1ec7f4
Set the local node number ID mask. You can use this option instead
Packit Service 1ec7f4
of \fB\-\-cluster\-local\-node\fP.
Packit Service 1ec7f4
.TP
Packit Service 1ec7f4
\fB\-\-cluster\-hash\-seed\fP \fIvalue\fP
Packit Service 1ec7f4
Set seed value of the Jenkins hash.
Packit Service 1ec7f4
.PP
Packit Service 1ec7f4
Example:
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
iptables \-A PREROUTING \-t mangle \-i eth1 \-m cluster
Packit Service 1ec7f4
\-\-cluster\-total\-nodes 2 \-\-cluster\-local\-node 1
Packit Service 1ec7f4
\-\-cluster\-hash\-seed 0xdeadbeef
Packit Service 1ec7f4
\-j MARK \-\-set-mark 0xffff
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
iptables \-A PREROUTING \-t mangle \-i eth2 \-m cluster
Packit Service 1ec7f4
\-\-cluster\-total\-nodes 2 \-\-cluster\-local\-node 1
Packit Service 1ec7f4
\-\-cluster\-hash\-seed 0xdeadbeef
Packit Service 1ec7f4
\-j MARK -\-set\-mark 0xffff
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
iptables \-A PREROUTING \-t mangle \-i eth1
Packit Service 1ec7f4
\-m mark ! \-\-mark 0xffff \-j DROP
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
iptables \-A PREROUTING \-t mangle \-i eth2
Packit Service 1ec7f4
\-m mark ! \-\-mark 0xffff \-j DROP
Packit Service 1ec7f4
.PP
Packit Service 1ec7f4
And the following commands to make all nodes see the same packets:
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
ip maddr add 01:00:5e:00:01:01 dev eth1
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
ip maddr add 01:00:5e:00:01:02 dev eth2
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
arptables \-A OUTPUT \-o eth1 \-\-h\-length 6
Packit Service 1ec7f4
\-j mangle \-\-mangle-mac-s 01:00:5e:00:01:01
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
arptables \-A INPUT \-i eth1 \-\-h-length 6
Packit Service 1ec7f4
\-\-destination-mac 01:00:5e:00:01:01
Packit Service 1ec7f4
\-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
arptables \-A OUTPUT \-o eth2 \-\-h\-length 6
Packit Service 1ec7f4
\-j mangle \-\-mangle\-mac\-s 01:00:5e:00:01:02
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
arptables \-A INPUT \-i eth2 \-\-h\-length 6
Packit Service 1ec7f4
\-\-destination\-mac 01:00:5e:00:01:02
Packit Service 1ec7f4
\-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27
Packit Service 1ec7f4
.PP
Packit Service 1ec7f4
\fBNOTE\fP: the arptables commands above use mainstream syntax. If you
Packit Service 1ec7f4
are using arptables-jf included in some RedHat, CentOS and Fedora
Packit Service 1ec7f4
versions, you will hit syntax errors. Therefore, you'll have to adapt
Packit Service 1ec7f4
these to the arptables-jf syntax to get them working.
Packit Service 1ec7f4
.PP
Packit Service 1ec7f4
In the case of TCP connections, pickup facility has to be disabled
Packit Service 1ec7f4
to avoid marking TCP ACK packets coming in the reply direction as
Packit Service 1ec7f4
valid.
Packit Service 1ec7f4
.IP
Packit Service 1ec7f4
echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose