Keepalived与iptables Mark的联动

Iptable可以给进来的包打上标签,比如我们把从1.2.3.4进来的包都打上标签2000(标签可以是任何整数)

1iptables -t mangle -A PREROUTING -i eth0 \  
2-p tcp -s 1.2.3.4 --dport http -j MARK --set-mark 2000

或者把访问172.16.8.1的80和443端口的包都打上标签123:

1iptables -t mangle -A PREROUTING -i eth0 \  
2-p tcp -d 172.16.8.1/32 -m multiport --dports 80,443 -j MARK --set-mark 123

随后我们就可以在keepalived里来指定virtual_server来处理这些打过标签的流量了:

1virtual_server fwmark 123 {  
2   ...
3}

具体的一个用法,如果你想禁止从1.2.3.4来的ip访问你服务器,于是乎你就可以先给包打上标签2000,然后配个服务器,上面写联系人和电话,单独给他看,他看到会联系你询问被屏蔽的原因,如下:

 1virtual_server fwmark 2000 {
 2
 3delay_loop 6  
 4 lb_algo wlc
 5 lb_kind NAT
 6 persistence_timeout 0
 7 protocol TCP
 8
 9real_server 10.10.10.1 80 {  
10 weight 1
11 TCP_CHECK {
12  connect_port 80
13  connect_timeout 3
14  }
15 }
16}

F5利用irule来防止Ddos的方法
多网关、策略路由、负载均衡的实际应用
comments powered by Disqus